@sentry/react 10.53.1 → 10.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/build/cjs/constants.js +3 -5
  2. package/build/cjs/constants.js.map +1 -1
  3. package/build/cjs/debug-build.js +0 -5
  4. package/build/cjs/debug-build.js.map +1 -1
  5. package/build/cjs/error.js +12 -72
  6. package/build/cjs/error.js.map +1 -1
  7. package/build/cjs/errorboundary.js +22 -77
  8. package/build/cjs/errorboundary.js.map +1 -1
  9. package/build/cjs/hoist-non-react-statics.js +16 -84
  10. package/build/cjs/hoist-non-react-statics.js.map +1 -1
  11. package/build/cjs/profiler.js +35 -110
  12. package/build/cjs/profiler.js.map +1 -1
  13. package/build/cjs/reactrouter-compat-utils/instrumentation.js +219 -690
  14. package/build/cjs/reactrouter-compat-utils/instrumentation.js.map +1 -1
  15. package/build/cjs/reactrouter-compat-utils/lazy-routes.js +24 -85
  16. package/build/cjs/reactrouter-compat-utils/lazy-routes.js.map +1 -1
  17. package/build/cjs/reactrouter-compat-utils/route-manifest.js +17 -95
  18. package/build/cjs/reactrouter-compat-utils/route-manifest.js.map +1 -1
  19. package/build/cjs/reactrouter-compat-utils/utils.js +48 -190
  20. package/build/cjs/reactrouter-compat-utils/utils.js.map +1 -1
  21. package/build/cjs/reactrouter.js +33 -113
  22. package/build/cjs/reactrouter.js.map +1 -1
  23. package/build/cjs/reactrouterv3.js +27 -59
  24. package/build/cjs/reactrouterv3.js.map +1 -1
  25. package/build/cjs/reactrouterv6.js +8 -41
  26. package/build/cjs/reactrouterv6.js.map +1 -1
  27. package/build/cjs/reactrouterv7.js +8 -41
  28. package/build/cjs/reactrouterv7.js.map +1 -1
  29. package/build/cjs/redux.js +60 -88
  30. package/build/cjs/redux.js.map +1 -1
  31. package/build/cjs/sdk.js +3 -7
  32. package/build/cjs/sdk.js.map +1 -1
  33. package/build/cjs/tanstackrouter.js +24 -64
  34. package/build/cjs/tanstackrouter.js.map +1 -1
  35. package/build/esm/constants.js +3 -5
  36. package/build/esm/constants.js.map +1 -1
  37. package/build/esm/debug-build.js +0 -5
  38. package/build/esm/debug-build.js.map +1 -1
  39. package/build/esm/error.js +12 -72
  40. package/build/esm/error.js.map +1 -1
  41. package/build/esm/errorboundary.js +22 -77
  42. package/build/esm/errorboundary.js.map +1 -1
  43. package/build/esm/hoist-non-react-statics.js +16 -84
  44. package/build/esm/hoist-non-react-statics.js.map +1 -1
  45. package/build/esm/package.json +1 -1
  46. package/build/esm/profiler.js +35 -110
  47. package/build/esm/profiler.js.map +1 -1
  48. package/build/esm/reactrouter-compat-utils/instrumentation.js +219 -690
  49. package/build/esm/reactrouter-compat-utils/instrumentation.js.map +1 -1
  50. package/build/esm/reactrouter-compat-utils/lazy-routes.js +24 -85
  51. package/build/esm/reactrouter-compat-utils/lazy-routes.js.map +1 -1
  52. package/build/esm/reactrouter-compat-utils/route-manifest.js +17 -95
  53. package/build/esm/reactrouter-compat-utils/route-manifest.js.map +1 -1
  54. package/build/esm/reactrouter-compat-utils/utils.js +48 -190
  55. package/build/esm/reactrouter-compat-utils/utils.js.map +1 -1
  56. package/build/esm/reactrouter.js +33 -113
  57. package/build/esm/reactrouter.js.map +1 -1
  58. package/build/esm/reactrouterv3.js +27 -59
  59. package/build/esm/reactrouterv3.js.map +1 -1
  60. package/build/esm/reactrouterv6.js +8 -41
  61. package/build/esm/reactrouterv6.js.map +1 -1
  62. package/build/esm/reactrouterv7.js +8 -41
  63. package/build/esm/reactrouterv7.js.map +1 -1
  64. package/build/esm/redux.js +60 -88
  65. package/build/esm/redux.js.map +1 -1
  66. package/build/esm/sdk.js +3 -7
  67. package/build/esm/sdk.js.map +1 -1
  68. package/build/esm/tanstackrouter.js +24 -64
  69. package/build/esm/tanstackrouter.js.map +1 -1
  70. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"tanstackrouter.js","sources":["../../src/tanstackrouter.ts"],"sourcesContent":["import {\n browserTracingIntegration as originalBrowserTracingIntegration,\n startBrowserTracingNavigationSpan,\n startBrowserTracingPageLoadSpan,\n WINDOW,\n} from '@sentry/browser';\nimport type { Integration } from '@sentry/core/browser';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '@sentry/core/browser';\nimport type { VendoredTanstackRouter, VendoredTanstackRouterRouteMatch } from './vendor/tanstackrouter-types';\n\n/**\n * A custom browser tracing integration for TanStack Router.\n *\n * The minimum compatible version of `@tanstack/react-router` is `1.64.0`.\n *\n * @param router A TanStack Router `Router` instance that should be used for routing instrumentation.\n * @param options Sentry browser tracing configuration.\n */\nexport function tanstackRouterBrowserTracingIntegration(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n router: any, // This is `any` because we don't want any type mismatches if TanStack Router changes their types\n options: Parameters<typeof originalBrowserTracingIntegration>[0] = {},\n): Integration {\n const castRouterInstance: VendoredTanstackRouter = router;\n\n const browserTracingIntegrationInstance = originalBrowserTracingIntegration({\n ...options,\n instrumentNavigation: false,\n instrumentPageLoad: false,\n });\n\n const { instrumentPageLoad = true, instrumentNavigation = true } = options;\n\n return {\n ...browserTracingIntegrationInstance,\n afterAllSetup(client) {\n browserTracingIntegrationInstance.afterAllSetup(client);\n\n const initialWindowLocation = WINDOW.location;\n if (instrumentPageLoad && initialWindowLocation) {\n const matchedRoutes = castRouterInstance.matchRoutes(\n initialWindowLocation.pathname,\n castRouterInstance.options.parseSearch(initialWindowLocation.search),\n { preload: false, throwOnError: false },\n );\n\n const lastMatch = matchedRoutes[matchedRoutes.length - 1];\n // If we only match __root__, we ended up not matching any route at all, so\n // we fall back to the pathname.\n const routeMatch = lastMatch?.routeId !== '__root__' ? lastMatch : undefined;\n\n startBrowserTracingPageLoadSpan(client, {\n name: routeMatch ? routeMatch.routeId : initialWindowLocation.pathname,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'pageload',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.react.tanstack_router',\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: routeMatch ? 'route' : 'url',\n ...routeMatchToParamSpanAttributes(routeMatch),\n },\n });\n }\n\n if (instrumentNavigation) {\n // The onBeforeNavigate hook is called at the very beginning of a navigation and is only called once per navigation, even when the user is redirected\n castRouterInstance.subscribe('onBeforeNavigate', onBeforeNavigateArgs => {\n // onBeforeNavigate is called during pageloads. We can avoid creating navigation spans by:\n // 1. Checking if there's no fromLocation (initial pageload)\n // 2. Comparing the states of the to and from arguments\n if (\n !onBeforeNavigateArgs.fromLocation ||\n onBeforeNavigateArgs.toLocation.state === onBeforeNavigateArgs.fromLocation.state\n ) {\n return;\n }\n\n const matchedRoutesOnBeforeNavigate = castRouterInstance.matchRoutes(\n onBeforeNavigateArgs.toLocation.pathname,\n onBeforeNavigateArgs.toLocation.search,\n { preload: false, throwOnError: false },\n );\n\n const onBeforeNavigateLastMatch = matchedRoutesOnBeforeNavigate[matchedRoutesOnBeforeNavigate.length - 1];\n const onBeforeNavigateRouteMatch =\n onBeforeNavigateLastMatch?.routeId !== '__root__' ? onBeforeNavigateLastMatch : undefined;\n\n const navigationLocation = WINDOW.location;\n const navigationSpan = startBrowserTracingNavigationSpan(client, {\n name: onBeforeNavigateRouteMatch ? onBeforeNavigateRouteMatch.routeId : navigationLocation.pathname,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'navigation',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.react.tanstack_router',\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: onBeforeNavigateRouteMatch ? 'route' : 'url',\n },\n });\n\n // In case the user is redirected during navigation we want to update the span with the right value.\n const unsubscribeOnResolved = castRouterInstance.subscribe('onResolved', onResolvedArgs => {\n unsubscribeOnResolved();\n if (navigationSpan) {\n const matchedRoutesOnResolved = castRouterInstance.matchRoutes(\n onResolvedArgs.toLocation.pathname,\n onResolvedArgs.toLocation.search,\n { preload: false, throwOnError: false },\n );\n\n const onResolvedLastMatch = matchedRoutesOnResolved[matchedRoutesOnResolved.length - 1];\n const onResolvedRouteMatch =\n onResolvedLastMatch?.routeId !== '__root__' ? onResolvedLastMatch : undefined;\n\n if (onResolvedRouteMatch) {\n navigationSpan.updateName(onResolvedRouteMatch.routeId);\n navigationSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'route');\n navigationSpan.setAttributes(routeMatchToParamSpanAttributes(onResolvedRouteMatch));\n }\n }\n });\n });\n }\n },\n };\n}\n\nfunction routeMatchToParamSpanAttributes(match: VendoredTanstackRouterRouteMatch | undefined): Record<string, string> {\n if (!match) {\n return {};\n }\n\n const paramAttributes: Record<string, string> = {};\n Object.entries(match.params).forEach(([key, value]) => {\n paramAttributes[`url.path.params.${key}`] = value; // TODO(v11): remove attribute which does not adhere to Sentry's semantic convention\n paramAttributes[`url.path.parameter.${key}`] = value;\n paramAttributes[`params.${key}`] = value; // params.[key] is an alias\n });\n\n return paramAttributes;\n}\n"],"names":["originalBrowserTracingIntegration"],"mappings":";;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,uCAAuC;AACvD;AACA,EAAE,MAAM;AACR,EAAE,OAAO,GAA4D,EAAE;AACvE,EAAe;AACf,EAAE,MAAM,kBAAkB,GAA2B,MAAM;;AAE3D,EAAE,MAAM,iCAAA,GAAoCA,yBAAiC,CAAC;AAC9E,IAAI,GAAG,OAAO;AACd,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,kBAAkB,EAAE,KAAK;AAC7B,GAAG,CAAC;;AAEJ,EAAE,MAAM,EAAE,kBAAA,GAAqB,IAAI,EAAE,oBAAA,GAAuB,IAAA,EAAK,GAAI,OAAO;;AAE5E,EAAE,OAAO;AACT,IAAI,GAAG,iCAAiC;AACxC,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1B,MAAM,iCAAiC,CAAC,aAAa,CAAC,MAAM,CAAC;;AAE7D,MAAM,MAAM,qBAAA,GAAwB,MAAM,CAAC,QAAQ;AACnD,MAAM,IAAI,kBAAA,IAAsB,qBAAqB,EAAE;AACvD,QAAQ,MAAM,aAAA,GAAgB,kBAAkB,CAAC,WAAW;AAC5D,UAAU,qBAAqB,CAAC,QAAQ;AACxC,UAAU,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC;AAC9E,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO;AACjD,SAAS;;AAET,QAAQ,MAAM,SAAA,GAAY,aAAa,CAAC,aAAa,CAAC,MAAA,GAAS,CAAC,CAAC;AACjE;AACA;AACA,QAAQ,MAAM,UAAA,GAAa,SAAS,EAAE,OAAA,KAAY,UAAA,GAAa,SAAA,GAAY,SAAS;;AAEpF,QAAQ,+BAA+B,CAAC,MAAM,EAAE;AAChD,UAAU,IAAI,EAAE,UAAA,GAAa,UAAU,CAAC,OAAA,GAAU,qBAAqB,CAAC,QAAQ;AAChF,UAAU,UAAU,EAAE;AACtB,YAAY,CAAC,4BAA4B,GAAG,UAAU;AACtD,YAAY,CAAC,gCAAgC,GAAG,qCAAqC;AACrF,YAAY,CAAC,gCAAgC,GAAG,aAAa,OAAA,GAAU,KAAK;AAC5E,YAAY,GAAG,+BAA+B,CAAC,UAAU,CAAC;AAC1D,WAAW;AACX,SAAS,CAAC;AACV,MAAM;;AAEN,MAAM,IAAI,oBAAoB,EAAE;AAChC;AACA,QAAQ,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,EAAE,wBAAwB;AACjF;AACA;AACA;AACA,UAAU;AACV,YAAY,CAAC,oBAAoB,CAAC,YAAA;AAClC,YAAY,oBAAoB,CAAC,UAAU,CAAC,UAAU,oBAAoB,CAAC,YAAY,CAAC;AACxF,YAAY;AACZ,YAAY;AACZ,UAAU;;AAEV,UAAU,MAAM,6BAAA,GAAgC,kBAAkB,CAAC,WAAW;AAC9E,YAAY,oBAAoB,CAAC,UAAU,CAAC,QAAQ;AACpD,YAAY,oBAAoB,CAAC,UAAU,CAAC,MAAM;AAClD,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO;AACnD,WAAW;;AAEX,UAAU,MAAM,yBAAA,GAA4B,6BAA6B,CAAC,6BAA6B,CAAC,MAAA,GAAS,CAAC,CAAC;AACnH,UAAU,MAAM,0BAAA;AAChB,YAAY,yBAAyB,EAAE,OAAA,KAAY,aAAa,yBAAA,GAA4B,SAAS;;AAErG,UAAU,MAAM,kBAAA,GAAqB,MAAM,CAAC,QAAQ;AACpD,UAAU,MAAM,cAAA,GAAiB,iCAAiC,CAAC,MAAM,EAAE;AAC3E,YAAY,IAAI,EAAE,0BAAA,GAA6B,0BAA0B,CAAC,OAAA,GAAU,kBAAkB,CAAC,QAAQ;AAC/G,YAAY,UAAU,EAAE;AACxB,cAAc,CAAC,4BAA4B,GAAG,YAAY;AAC1D,cAAc,CAAC,gCAAgC,GAAG,uCAAuC;AACzF,cAAc,CAAC,gCAAgC,GAAG,6BAA6B,OAAA,GAAU,KAAK;AAC9F,aAAa;AACb,WAAW,CAAC;;AAEZ;AACA,UAAU,MAAM,qBAAA,GAAwB,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE,cAAA,IAAkB;AACrG,YAAY,qBAAqB,EAAE;AACnC,YAAY,IAAI,cAAc,EAAE;AAChC,cAAc,MAAM,uBAAA,GAA0B,kBAAkB,CAAC,WAAW;AAC5E,gBAAgB,cAAc,CAAC,UAAU,CAAC,QAAQ;AAClD,gBAAgB,cAAc,CAAC,UAAU,CAAC,MAAM;AAChD,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO;AACvD,eAAe;;AAEf,cAAc,MAAM,mBAAA,GAAsB,uBAAuB,CAAC,uBAAuB,CAAC,MAAA,GAAS,CAAC,CAAC;AACrG,cAAc,MAAM,oBAAA;AACpB,gBAAgB,mBAAmB,EAAE,OAAA,KAAY,aAAa,mBAAA,GAAsB,SAAS;;AAE7F,cAAc,IAAI,oBAAoB,EAAE;AACxC,gBAAgB,cAAc,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACvE,gBAAgB,cAAc,CAAC,YAAY,CAAC,gCAAgC,EAAE,OAAO,CAAC;AACtF,gBAAgB,cAAc,CAAC,aAAa,CAAC,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;AACnG,cAAc;AACd,YAAY;AACZ,UAAU,CAAC,CAAC;AACZ,QAAQ,CAAC,CAAC;AACV,MAAM;AACN,IAAI,CAAC;AACL,GAAG;AACH;;AAEA,SAAS,+BAA+B,CAAC,KAAK,EAAwE;AACtH,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,OAAO,EAAE;AACb,EAAE;;AAEF,EAAE,MAAM,eAAe,GAA2B,EAAE;AACpD,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACzD,IAAI,eAAe,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA,CAAA,GAAA,KAAA,CAAA;AACA,IAAA,eAAA,CAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,CAAA,CAAA,GAAA,KAAA;AACA,IAAA,eAAA,CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,CAAA,CAAA,GAAA,KAAA,CAAA;AACA,EAAA,CAAA,CAAA;;AAEA,EAAA,OAAA,eAAA;AACA;;;;"}
1
+ {"version":3,"file":"tanstackrouter.js","sources":["../../src/tanstackrouter.ts"],"sourcesContent":["import {\n browserTracingIntegration as originalBrowserTracingIntegration,\n startBrowserTracingNavigationSpan,\n startBrowserTracingPageLoadSpan,\n WINDOW,\n} from '@sentry/browser';\nimport type { Integration } from '@sentry/core/browser';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '@sentry/core/browser';\nimport type { VendoredTanstackRouter, VendoredTanstackRouterRouteMatch } from './vendor/tanstackrouter-types';\n\n/**\n * A custom browser tracing integration for TanStack Router.\n *\n * The minimum compatible version of `@tanstack/react-router` is `1.64.0`.\n *\n * @param router A TanStack Router `Router` instance that should be used for routing instrumentation.\n * @param options Sentry browser tracing configuration.\n */\nexport function tanstackRouterBrowserTracingIntegration(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n router: any, // This is `any` because we don't want any type mismatches if TanStack Router changes their types\n options: Parameters<typeof originalBrowserTracingIntegration>[0] = {},\n): Integration {\n const castRouterInstance: VendoredTanstackRouter = router;\n\n const browserTracingIntegrationInstance = originalBrowserTracingIntegration({\n ...options,\n instrumentNavigation: false,\n instrumentPageLoad: false,\n });\n\n const { instrumentPageLoad = true, instrumentNavigation = true } = options;\n\n return {\n ...browserTracingIntegrationInstance,\n afterAllSetup(client) {\n browserTracingIntegrationInstance.afterAllSetup(client);\n\n const initialWindowLocation = WINDOW.location;\n if (instrumentPageLoad && initialWindowLocation) {\n const matchedRoutes = castRouterInstance.matchRoutes(\n initialWindowLocation.pathname,\n castRouterInstance.options.parseSearch(initialWindowLocation.search),\n { preload: false, throwOnError: false },\n );\n\n const lastMatch = matchedRoutes[matchedRoutes.length - 1];\n // If we only match __root__, we ended up not matching any route at all, so\n // we fall back to the pathname.\n const routeMatch = lastMatch?.routeId !== '__root__' ? lastMatch : undefined;\n\n startBrowserTracingPageLoadSpan(client, {\n name: routeMatch ? routeMatch.routeId : initialWindowLocation.pathname,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'pageload',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.react.tanstack_router',\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: routeMatch ? 'route' : 'url',\n ...routeMatchToParamSpanAttributes(routeMatch),\n },\n });\n }\n\n if (instrumentNavigation) {\n // The onBeforeNavigate hook is called at the very beginning of a navigation and is only called once per navigation, even when the user is redirected\n castRouterInstance.subscribe('onBeforeNavigate', onBeforeNavigateArgs => {\n // onBeforeNavigate is called during pageloads. We can avoid creating navigation spans by:\n // 1. Checking if there's no fromLocation (initial pageload)\n // 2. Comparing the states of the to and from arguments\n if (\n !onBeforeNavigateArgs.fromLocation ||\n onBeforeNavigateArgs.toLocation.state === onBeforeNavigateArgs.fromLocation.state\n ) {\n return;\n }\n\n const matchedRoutesOnBeforeNavigate = castRouterInstance.matchRoutes(\n onBeforeNavigateArgs.toLocation.pathname,\n onBeforeNavigateArgs.toLocation.search,\n { preload: false, throwOnError: false },\n );\n\n const onBeforeNavigateLastMatch = matchedRoutesOnBeforeNavigate[matchedRoutesOnBeforeNavigate.length - 1];\n const onBeforeNavigateRouteMatch =\n onBeforeNavigateLastMatch?.routeId !== '__root__' ? onBeforeNavigateLastMatch : undefined;\n\n const navigationLocation = WINDOW.location;\n const navigationSpan = startBrowserTracingNavigationSpan(client, {\n name: onBeforeNavigateRouteMatch ? onBeforeNavigateRouteMatch.routeId : navigationLocation.pathname,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'navigation',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.react.tanstack_router',\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: onBeforeNavigateRouteMatch ? 'route' : 'url',\n },\n });\n\n // In case the user is redirected during navigation we want to update the span with the right value.\n const unsubscribeOnResolved = castRouterInstance.subscribe('onResolved', onResolvedArgs => {\n unsubscribeOnResolved();\n if (navigationSpan) {\n const matchedRoutesOnResolved = castRouterInstance.matchRoutes(\n onResolvedArgs.toLocation.pathname,\n onResolvedArgs.toLocation.search,\n { preload: false, throwOnError: false },\n );\n\n const onResolvedLastMatch = matchedRoutesOnResolved[matchedRoutesOnResolved.length - 1];\n const onResolvedRouteMatch =\n onResolvedLastMatch?.routeId !== '__root__' ? onResolvedLastMatch : undefined;\n\n if (onResolvedRouteMatch) {\n navigationSpan.updateName(onResolvedRouteMatch.routeId);\n navigationSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'route');\n navigationSpan.setAttributes(routeMatchToParamSpanAttributes(onResolvedRouteMatch));\n }\n }\n });\n });\n }\n },\n };\n}\n\nfunction routeMatchToParamSpanAttributes(match: VendoredTanstackRouterRouteMatch | undefined): Record<string, string> {\n if (!match) {\n return {};\n }\n\n const paramAttributes: Record<string, string> = {};\n Object.entries(match.params).forEach(([key, value]) => {\n paramAttributes[`url.path.params.${key}`] = value; // TODO(v11): remove attribute which does not adhere to Sentry's semantic convention\n paramAttributes[`url.path.parameter.${key}`] = value;\n paramAttributes[`params.${key}`] = value; // params.[key] is an alias\n });\n\n return paramAttributes;\n}\n"],"names":["originalBrowserTracingIntegration"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/react",
3
- "version": "10.53.1",
3
+ "version": "10.54.0",
4
4
  "description": "Official Sentry SDK for React.js",
5
5
  "repository": "git://github.com/getsentry/sentry-javascript.git",
6
6
  "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/react",
@@ -39,8 +39,8 @@
39
39
  "access": "public"
40
40
  },
41
41
  "dependencies": {
42
- "@sentry/browser": "10.53.1",
43
- "@sentry/core": "10.53.1"
42
+ "@sentry/browser": "10.54.0",
43
+ "@sentry/core": "10.54.0"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "react": "^16.14.0 || 17.x || 18.x || 19.x"