@sentry/tanstackstart-react 10.55.0 → 10.57.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.
@@ -11,7 +11,7 @@ function makeRoutePatternPlugin() {
11
11
  configResolved(config) {
12
12
  resolvedRoot = config.root || process.cwd();
13
13
  },
14
- transform(code, id) {
14
+ transform(code, _id) {
15
15
  if (!code.includes("__SENTRY_ROUTE_PATTERNS__")) {
16
16
  return null;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routePatterns.js","sources":["../../../src/vite/routePatterns.ts"],"sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport type { Plugin } from 'vite';\n\n/**\n * Extracts route patterns from TanStack Start's generated routeTree.gen.ts\n * and replaces `__SENTRY_ROUTE_PATTERNS__` references with the extracted patterns.\n *\n * The route tree file is read during `transform` rather than `config` because\n * TanStack Start generates it during the build.\n */\nexport function makeRoutePatternPlugin(): Plugin {\n let resolvedRoot = '';\n\n return {\n name: 'sentry-tanstackstart-route-patterns',\n enforce: 'post',\n\n configResolved(config) {\n resolvedRoot = config.root || process.cwd();\n },\n\n transform(code, id) {\n // this is set in the `wrapFetchWithSentry` where the paths are getting replaced by their parametrized counterparts\n // so this extraction should only happen once during the build (for the `wrapFetchWithSentry` file)\n if (!code.includes('__SENTRY_ROUTE_PATTERNS__')) {\n return null;\n }\n\n // extract the patterns from the route tree file\n const routeTreePath = path.resolve(resolvedRoot, 'src/routeTree.gen.ts');\n let patterns: string[] = [];\n try {\n if (fs.existsSync(routeTreePath)) {\n patterns = extractRoutePatterns(fs.readFileSync(routeTreePath, 'utf-8'));\n }\n } catch {\n // skip\n }\n\n return {\n code: code.replace(/__SENTRY_ROUTE_PATTERNS__/g, JSON.stringify(patterns)),\n map: null,\n };\n },\n };\n}\n\n/**\n * Extracts full route path patterns from the content of routeTree.gen.ts.\n *\n * Parses the `fullPaths` type union which contains the resolved full paths\n * (e.g., `fullPaths: '/' | '/page-a' | '/users/$userId'`).\n * This is more reliable than `path:` properties which can be relative for nested routes.\n */\nexport function extractRoutePatterns(content: string): string[] {\n const fullPathsMatch = content.match(/fullPaths:\\s*([\\s\\S]*?)(?:\\n\\s*\\w|\\n\\})/);\n if (!fullPathsMatch) {\n return [];\n }\n\n const patterns: string[] = [];\n const pathRegex = /['\"]([^'\"]+)['\"]/g;\n let match;\n while ((match = pathRegex.exec(fullPathsMatch[1] || '')) !== null) {\n if (match[1]) {\n patterns.push(match[1]);\n }\n }\n\n return [...new Set(patterns)].sort((a, b) => {\n const aSegments = a.split('/');\n const bSegments = b.split('/');\n if (bSegments.length !== aSegments.length) {\n return bSegments.length - aSegments.length;\n }\n const aDynamic = aSegments.filter(s => s.startsWith('$')).length;\n const bDynamic = bSegments.filter(s => s.startsWith('$')).length;\n return aDynamic - bDynamic;\n });\n}\n"],"names":[],"mappings":";;;;;AAWO,SAAS,sBAAA,GAAiC;AAC/C,EAAA,IAAI,YAAA,GAAe,EAAA;AAEnB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,qCAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IAET,eAAe,MAAA,EAAQ;AACrB,MAAA,YAAA,GAAe,MAAA,CAAO,IAAA,IAAQ,OAAA,CAAQ,GAAA,EAAI;AAAA,IAC5C,CAAA;AAAA,IAEA,SAAA,CAAU,MAAM,EAAA,EAAI;AAGlB,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,CAAS,2BAA2B,CAAA,EAAG;AAC/C,QAAA,OAAO,IAAA;AAAA,MACT;AAGA,MAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,sBAAsB,CAAA;AACvE,MAAA,IAAI,WAAqB,EAAC;AAC1B,MAAA,IAAI;AACF,QAAA,IAAI,EAAA,CAAG,UAAA,CAAW,aAAa,CAAA,EAAG;AAChC,UAAA,QAAA,GAAW,oBAAA,CAAqB,EAAA,CAAG,YAAA,CAAa,aAAA,EAAe,OAAO,CAAC,CAAA;AAAA,QACzE;AAAA,MACF,CAAA,CAAA,MAAQ;AAAA,MAER;AAEA,MAAA,OAAO;AAAA,QACL,MAAM,IAAA,CAAK,OAAA,CAAQ,8BAA8B,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAC,CAAA;AAAA,QACzE,GAAA,EAAK;AAAA,OACP;AAAA,IACF;AAAA,GACF;AACF;AASO,SAAS,qBAAqB,OAAA,EAA2B;AAC9D,EAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,KAAA,CAAM,yCAAyC,CAAA;AAC9E,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,WAAqB,EAAC;AAC5B,EAAA,MAAM,SAAA,GAAY,mBAAA;AAClB,EAAA,IAAI,KAAA;AACJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,UAAU,IAAA,CAAK,cAAA,CAAe,CAAC,CAAA,IAAK,EAAE,OAAO,IAAA,EAAM;AACjE,IAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,MAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,IACxB;AAAA,EACF;AAEA,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AAC3C,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,IAAI,SAAA,CAAU,MAAA,KAAW,SAAA,CAAU,MAAA,EAAQ;AACzC,MAAA,OAAO,SAAA,CAAU,SAAS,SAAA,CAAU,MAAA;AAAA,IACtC;AACA,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,OAAO,QAAA,GAAW,QAAA;AAAA,EACpB,CAAC,CAAA;AACH;;;;;"}
1
+ {"version":3,"file":"routePatterns.js","sources":["../../../src/vite/routePatterns.ts"],"sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport type { Plugin } from 'vite';\n\n/**\n * Extracts route patterns from TanStack Start's generated routeTree.gen.ts\n * and replaces `__SENTRY_ROUTE_PATTERNS__` references with the extracted patterns.\n *\n * The route tree file is read during `transform` rather than `config` because\n * TanStack Start generates it during the build.\n */\nexport function makeRoutePatternPlugin(): Plugin {\n let resolvedRoot = '';\n\n return {\n name: 'sentry-tanstackstart-route-patterns',\n enforce: 'post',\n\n configResolved(config) {\n resolvedRoot = config.root || process.cwd();\n },\n\n transform(code, _id) {\n // this is set in the `wrapFetchWithSentry` where the paths are getting replaced by their parametrized counterparts\n // so this extraction should only happen once during the build (for the `wrapFetchWithSentry` file)\n if (!code.includes('__SENTRY_ROUTE_PATTERNS__')) {\n return null;\n }\n\n // extract the patterns from the route tree file\n const routeTreePath = path.resolve(resolvedRoot, 'src/routeTree.gen.ts');\n let patterns: string[] = [];\n try {\n if (fs.existsSync(routeTreePath)) {\n patterns = extractRoutePatterns(fs.readFileSync(routeTreePath, 'utf-8'));\n }\n } catch {\n // skip\n }\n\n return {\n code: code.replace(/__SENTRY_ROUTE_PATTERNS__/g, JSON.stringify(patterns)),\n map: null,\n };\n },\n };\n}\n\n/**\n * Extracts full route path patterns from the content of routeTree.gen.ts.\n *\n * Parses the `fullPaths` type union which contains the resolved full paths\n * (e.g., `fullPaths: '/' | '/page-a' | '/users/$userId'`).\n * This is more reliable than `path:` properties which can be relative for nested routes.\n */\nexport function extractRoutePatterns(content: string): string[] {\n const fullPathsMatch = content.match(/fullPaths:\\s*([\\s\\S]*?)(?:\\n\\s*\\w|\\n\\})/);\n if (!fullPathsMatch) {\n return [];\n }\n\n const patterns: string[] = [];\n const pathRegex = /['\"]([^'\"]+)['\"]/g;\n let match;\n while ((match = pathRegex.exec(fullPathsMatch[1] || '')) !== null) {\n if (match[1]) {\n patterns.push(match[1]);\n }\n }\n\n return [...new Set(patterns)].sort((a, b) => {\n const aSegments = a.split('/');\n const bSegments = b.split('/');\n if (bSegments.length !== aSegments.length) {\n return bSegments.length - aSegments.length;\n }\n const aDynamic = aSegments.filter(s => s.startsWith('$')).length;\n const bDynamic = bSegments.filter(s => s.startsWith('$')).length;\n return aDynamic - bDynamic;\n });\n}\n"],"names":[],"mappings":";;;;;AAWO,SAAS,sBAAA,GAAiC;AAC/C,EAAA,IAAI,YAAA,GAAe,EAAA;AAEnB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,qCAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IAET,eAAe,MAAA,EAAQ;AACrB,MAAA,YAAA,GAAe,MAAA,CAAO,IAAA,IAAQ,OAAA,CAAQ,GAAA,EAAI;AAAA,IAC5C,CAAA;AAAA,IAEA,SAAA,CAAU,MAAM,GAAA,EAAK;AAGnB,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,CAAS,2BAA2B,CAAA,EAAG;AAC/C,QAAA,OAAO,IAAA;AAAA,MACT;AAGA,MAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,sBAAsB,CAAA;AACvE,MAAA,IAAI,WAAqB,EAAC;AAC1B,MAAA,IAAI;AACF,QAAA,IAAI,EAAA,CAAG,UAAA,CAAW,aAAa,CAAA,EAAG;AAChC,UAAA,QAAA,GAAW,oBAAA,CAAqB,EAAA,CAAG,YAAA,CAAa,aAAA,EAAe,OAAO,CAAC,CAAA;AAAA,QACzE;AAAA,MACF,CAAA,CAAA,MAAQ;AAAA,MAER;AAEA,MAAA,OAAO;AAAA,QACL,MAAM,IAAA,CAAK,OAAA,CAAQ,8BAA8B,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAC,CAAA;AAAA,QACzE,GAAA,EAAK;AAAA,OACP;AAAA,IACF;AAAA,GACF;AACF;AASO,SAAS,qBAAqB,OAAA,EAA2B;AAC9D,EAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,KAAA,CAAM,yCAAyC,CAAA;AAC9E,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,WAAqB,EAAC;AAC5B,EAAA,MAAM,SAAA,GAAY,mBAAA;AAClB,EAAA,IAAI,KAAA;AACJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,UAAU,IAAA,CAAK,cAAA,CAAe,CAAC,CAAA,IAAK,EAAE,OAAO,IAAA,EAAM;AACjE,IAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,MAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,IACxB;AAAA,EACF;AAEA,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AAC3C,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,IAAI,SAAA,CAAU,MAAA,KAAW,SAAA,CAAU,MAAA,EAAQ;AACzC,MAAA,OAAO,SAAA,CAAU,SAAS,SAAA,CAAU,MAAA;AAAA,IACtC;AACA,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,OAAO,QAAA,GAAW,QAAA;AAAA,EACpB,CAAC,CAAA;AACH;;;;;"}
@@ -1 +1 @@
1
- {"type":"module","version":"10.55.0","sideEffects":false}
1
+ {"type":"module","version":"10.57.0","sideEffects":false}
@@ -9,7 +9,7 @@ function makeRoutePatternPlugin() {
9
9
  configResolved(config) {
10
10
  resolvedRoot = config.root || process.cwd();
11
11
  },
12
- transform(code, id) {
12
+ transform(code, _id) {
13
13
  if (!code.includes("__SENTRY_ROUTE_PATTERNS__")) {
14
14
  return null;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"routePatterns.js","sources":["../../../src/vite/routePatterns.ts"],"sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport type { Plugin } from 'vite';\n\n/**\n * Extracts route patterns from TanStack Start's generated routeTree.gen.ts\n * and replaces `__SENTRY_ROUTE_PATTERNS__` references with the extracted patterns.\n *\n * The route tree file is read during `transform` rather than `config` because\n * TanStack Start generates it during the build.\n */\nexport function makeRoutePatternPlugin(): Plugin {\n let resolvedRoot = '';\n\n return {\n name: 'sentry-tanstackstart-route-patterns',\n enforce: 'post',\n\n configResolved(config) {\n resolvedRoot = config.root || process.cwd();\n },\n\n transform(code, id) {\n // this is set in the `wrapFetchWithSentry` where the paths are getting replaced by their parametrized counterparts\n // so this extraction should only happen once during the build (for the `wrapFetchWithSentry` file)\n if (!code.includes('__SENTRY_ROUTE_PATTERNS__')) {\n return null;\n }\n\n // extract the patterns from the route tree file\n const routeTreePath = path.resolve(resolvedRoot, 'src/routeTree.gen.ts');\n let patterns: string[] = [];\n try {\n if (fs.existsSync(routeTreePath)) {\n patterns = extractRoutePatterns(fs.readFileSync(routeTreePath, 'utf-8'));\n }\n } catch {\n // skip\n }\n\n return {\n code: code.replace(/__SENTRY_ROUTE_PATTERNS__/g, JSON.stringify(patterns)),\n map: null,\n };\n },\n };\n}\n\n/**\n * Extracts full route path patterns from the content of routeTree.gen.ts.\n *\n * Parses the `fullPaths` type union which contains the resolved full paths\n * (e.g., `fullPaths: '/' | '/page-a' | '/users/$userId'`).\n * This is more reliable than `path:` properties which can be relative for nested routes.\n */\nexport function extractRoutePatterns(content: string): string[] {\n const fullPathsMatch = content.match(/fullPaths:\\s*([\\s\\S]*?)(?:\\n\\s*\\w|\\n\\})/);\n if (!fullPathsMatch) {\n return [];\n }\n\n const patterns: string[] = [];\n const pathRegex = /['\"]([^'\"]+)['\"]/g;\n let match;\n while ((match = pathRegex.exec(fullPathsMatch[1] || '')) !== null) {\n if (match[1]) {\n patterns.push(match[1]);\n }\n }\n\n return [...new Set(patterns)].sort((a, b) => {\n const aSegments = a.split('/');\n const bSegments = b.split('/');\n if (bSegments.length !== aSegments.length) {\n return bSegments.length - aSegments.length;\n }\n const aDynamic = aSegments.filter(s => s.startsWith('$')).length;\n const bDynamic = bSegments.filter(s => s.startsWith('$')).length;\n return aDynamic - bDynamic;\n });\n}\n"],"names":[],"mappings":";;;AAWO,SAAS,sBAAA,GAAiC;AAC/C,EAAA,IAAI,YAAA,GAAe,EAAA;AAEnB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,qCAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IAET,eAAe,MAAA,EAAQ;AACrB,MAAA,YAAA,GAAe,MAAA,CAAO,IAAA,IAAQ,OAAA,CAAQ,GAAA,EAAI;AAAA,IAC5C,CAAA;AAAA,IAEA,SAAA,CAAU,MAAM,EAAA,EAAI;AAGlB,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,CAAS,2BAA2B,CAAA,EAAG;AAC/C,QAAA,OAAO,IAAA;AAAA,MACT;AAGA,MAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,sBAAsB,CAAA;AACvE,MAAA,IAAI,WAAqB,EAAC;AAC1B,MAAA,IAAI;AACF,QAAA,IAAI,EAAA,CAAG,UAAA,CAAW,aAAa,CAAA,EAAG;AAChC,UAAA,QAAA,GAAW,oBAAA,CAAqB,EAAA,CAAG,YAAA,CAAa,aAAA,EAAe,OAAO,CAAC,CAAA;AAAA,QACzE;AAAA,MACF,CAAA,CAAA,MAAQ;AAAA,MAER;AAEA,MAAA,OAAO;AAAA,QACL,MAAM,IAAA,CAAK,OAAA,CAAQ,8BAA8B,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAC,CAAA;AAAA,QACzE,GAAA,EAAK;AAAA,OACP;AAAA,IACF;AAAA,GACF;AACF;AASO,SAAS,qBAAqB,OAAA,EAA2B;AAC9D,EAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,KAAA,CAAM,yCAAyC,CAAA;AAC9E,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,WAAqB,EAAC;AAC5B,EAAA,MAAM,SAAA,GAAY,mBAAA;AAClB,EAAA,IAAI,KAAA;AACJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,UAAU,IAAA,CAAK,cAAA,CAAe,CAAC,CAAA,IAAK,EAAE,OAAO,IAAA,EAAM;AACjE,IAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,MAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,IACxB;AAAA,EACF;AAEA,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AAC3C,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,IAAI,SAAA,CAAU,MAAA,KAAW,SAAA,CAAU,MAAA,EAAQ;AACzC,MAAA,OAAO,SAAA,CAAU,SAAS,SAAA,CAAU,MAAA;AAAA,IACtC;AACA,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,OAAO,QAAA,GAAW,QAAA;AAAA,EACpB,CAAC,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"routePatterns.js","sources":["../../../src/vite/routePatterns.ts"],"sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport type { Plugin } from 'vite';\n\n/**\n * Extracts route patterns from TanStack Start's generated routeTree.gen.ts\n * and replaces `__SENTRY_ROUTE_PATTERNS__` references with the extracted patterns.\n *\n * The route tree file is read during `transform` rather than `config` because\n * TanStack Start generates it during the build.\n */\nexport function makeRoutePatternPlugin(): Plugin {\n let resolvedRoot = '';\n\n return {\n name: 'sentry-tanstackstart-route-patterns',\n enforce: 'post',\n\n configResolved(config) {\n resolvedRoot = config.root || process.cwd();\n },\n\n transform(code, _id) {\n // this is set in the `wrapFetchWithSentry` where the paths are getting replaced by their parametrized counterparts\n // so this extraction should only happen once during the build (for the `wrapFetchWithSentry` file)\n if (!code.includes('__SENTRY_ROUTE_PATTERNS__')) {\n return null;\n }\n\n // extract the patterns from the route tree file\n const routeTreePath = path.resolve(resolvedRoot, 'src/routeTree.gen.ts');\n let patterns: string[] = [];\n try {\n if (fs.existsSync(routeTreePath)) {\n patterns = extractRoutePatterns(fs.readFileSync(routeTreePath, 'utf-8'));\n }\n } catch {\n // skip\n }\n\n return {\n code: code.replace(/__SENTRY_ROUTE_PATTERNS__/g, JSON.stringify(patterns)),\n map: null,\n };\n },\n };\n}\n\n/**\n * Extracts full route path patterns from the content of routeTree.gen.ts.\n *\n * Parses the `fullPaths` type union which contains the resolved full paths\n * (e.g., `fullPaths: '/' | '/page-a' | '/users/$userId'`).\n * This is more reliable than `path:` properties which can be relative for nested routes.\n */\nexport function extractRoutePatterns(content: string): string[] {\n const fullPathsMatch = content.match(/fullPaths:\\s*([\\s\\S]*?)(?:\\n\\s*\\w|\\n\\})/);\n if (!fullPathsMatch) {\n return [];\n }\n\n const patterns: string[] = [];\n const pathRegex = /['\"]([^'\"]+)['\"]/g;\n let match;\n while ((match = pathRegex.exec(fullPathsMatch[1] || '')) !== null) {\n if (match[1]) {\n patterns.push(match[1]);\n }\n }\n\n return [...new Set(patterns)].sort((a, b) => {\n const aSegments = a.split('/');\n const bSegments = b.split('/');\n if (bSegments.length !== aSegments.length) {\n return bSegments.length - aSegments.length;\n }\n const aDynamic = aSegments.filter(s => s.startsWith('$')).length;\n const bDynamic = bSegments.filter(s => s.startsWith('$')).length;\n return aDynamic - bDynamic;\n });\n}\n"],"names":[],"mappings":";;;AAWO,SAAS,sBAAA,GAAiC;AAC/C,EAAA,IAAI,YAAA,GAAe,EAAA;AAEnB,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,qCAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IAET,eAAe,MAAA,EAAQ;AACrB,MAAA,YAAA,GAAe,MAAA,CAAO,IAAA,IAAQ,OAAA,CAAQ,GAAA,EAAI;AAAA,IAC5C,CAAA;AAAA,IAEA,SAAA,CAAU,MAAM,GAAA,EAAK;AAGnB,MAAA,IAAI,CAAC,IAAA,CAAK,QAAA,CAAS,2BAA2B,CAAA,EAAG;AAC/C,QAAA,OAAO,IAAA;AAAA,MACT;AAGA,MAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,OAAA,CAAQ,YAAA,EAAc,sBAAsB,CAAA;AACvE,MAAA,IAAI,WAAqB,EAAC;AAC1B,MAAA,IAAI;AACF,QAAA,IAAI,EAAA,CAAG,UAAA,CAAW,aAAa,CAAA,EAAG;AAChC,UAAA,QAAA,GAAW,oBAAA,CAAqB,EAAA,CAAG,YAAA,CAAa,aAAA,EAAe,OAAO,CAAC,CAAA;AAAA,QACzE;AAAA,MACF,CAAA,CAAA,MAAQ;AAAA,MAER;AAEA,MAAA,OAAO;AAAA,QACL,MAAM,IAAA,CAAK,OAAA,CAAQ,8BAA8B,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAC,CAAA;AAAA,QACzE,GAAA,EAAK;AAAA,OACP;AAAA,IACF;AAAA,GACF;AACF;AASO,SAAS,qBAAqB,OAAA,EAA2B;AAC9D,EAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,KAAA,CAAM,yCAAyC,CAAA;AAC9E,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,WAAqB,EAAC;AAC5B,EAAA,MAAM,SAAA,GAAY,mBAAA;AAClB,EAAA,IAAI,KAAA;AACJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,UAAU,IAAA,CAAK,cAAA,CAAe,CAAC,CAAA,IAAK,EAAE,OAAO,IAAA,EAAM;AACjE,IAAA,IAAI,KAAA,CAAM,CAAC,CAAA,EAAG;AACZ,MAAA,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,IACxB;AAAA,EACF;AAEA,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM;AAC3C,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AAC7B,IAAA,IAAI,SAAA,CAAU,MAAA,KAAW,SAAA,CAAU,MAAA,EAAQ;AACzC,MAAA,OAAO,SAAA,CAAU,SAAS,SAAA,CAAU,MAAA;AAAA,IACtC;AACA,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,UAAU,MAAA,CAAO,CAAA,CAAA,KAAK,EAAE,UAAA,CAAW,GAAG,CAAC,CAAA,CAAE,MAAA;AAC1D,IAAA,OAAO,QAAA,GAAW,QAAA;AAAA,EACpB,CAAC,CAAA;AACH;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/tanstackstart-react",
3
- "version": "10.55.0",
3
+ "version": "10.57.0",
4
4
  "description": "Official Sentry SDK for TanStack Start React",
5
5
  "repository": "git://github.com/getsentry/sentry-javascript.git",
6
6
  "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/tanstackstart-react",
@@ -65,10 +65,10 @@
65
65
  "dependencies": {
66
66
  "@opentelemetry/api": "^1.9.1",
67
67
  "@opentelemetry/semantic-conventions": "^1.40.0",
68
- "@sentry-internal/browser-utils": "10.55.0",
69
- "@sentry/core": "10.55.0",
70
- "@sentry/node": "10.55.0",
71
- "@sentry/react": "10.55.0",
68
+ "@sentry-internal/browser-utils": "10.57.0",
69
+ "@sentry/core": "10.57.0",
70
+ "@sentry/node": "10.57.0",
71
+ "@sentry/react": "10.57.0",
72
72
  "@sentry/vite-plugin": "^5.3.0"
73
73
  },
74
74
  "devDependencies": {