@sentry/nuxt 9.1.0 → 9.2.0-beta.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.
@@ -32,7 +32,7 @@ function findDefaultSdkInitFile(type) {
32
32
  * Extracts the filename from a node command with a path.
33
33
  */
34
34
  function getFilenameFromNodeStartCommand(nodeCommand) {
35
- const regex = /[^/\\]+$/;
35
+ const regex = /[^/\\]+\.[^/\\]+$/;
36
36
  const match = nodeCommand.match(regex);
37
37
  return match ? match[0] : null;
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/vite/utils.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { consoleSandbox } from '@sentry/core';\n\n/**\n * Find the default SDK init file for the given type (client or server).\n * The sentry.server.config file is prioritized over the instrument.server file.\n */\nexport function findDefaultSdkInitFile(type: 'server' | 'client'): string | undefined {\n const possibleFileExtensions = ['ts', 'js', 'mjs', 'cjs', 'mts', 'cts'];\n const cwd = process.cwd();\n\n const filePaths: string[] = [];\n if (type === 'server') {\n for (const ext of possibleFileExtensions) {\n // order is important here - we want to prioritize the server.config file\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n filePaths.push(path.join(cwd, 'public', `instrument.${type}.${ext}`));\n }\n } else {\n for (const ext of possibleFileExtensions) {\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n }\n }\n\n return filePaths.find(filename => fs.existsSync(filename));\n}\n\n/**\n * Extracts the filename from a node command with a path.\n */\nexport function getFilenameFromNodeStartCommand(nodeCommand: string): string | null {\n const regex = /[^/\\\\]+$/;\n const match = nodeCommand.match(regex);\n return match ? match[0] : null;\n}\n\nexport const SENTRY_WRAPPED_ENTRY = '?sentry-query-wrapped-entry';\nexport const SENTRY_WRAPPED_FUNCTIONS = '?sentry-query-wrapped-functions=';\nexport const SENTRY_REEXPORTED_FUNCTIONS = '?sentry-query-reexported-functions=';\nexport const QUERY_END_INDICATOR = 'SENTRY-QUERY-END';\n\n/**\n * Strips the Sentry query part from a path.\n * Example: example/path?sentry-query-wrapped-entry?sentry-query-functions-reexport=foo,SENTRY-QUERY-END -> /example/path\n *\n * Only exported for testing.\n */\nexport function removeSentryQueryFromPath(url: string): string {\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const regex = new RegExp(`\\\\${SENTRY_WRAPPED_ENTRY}.*?\\\\${QUERY_END_INDICATOR}`);\n return url.replace(regex, '');\n}\n\n/**\n * Extracts and sanitizes function re-export and function wrap query parameters from a query string.\n * If it is a default export, it is not considered for re-exporting.\n *\n * Only exported for testing.\n */\nexport function extractFunctionReexportQueryParameters(query: string): { wrap: string[]; reexport: string[] } {\n // Regex matches the comma-separated params between the functions query\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const wrapRegex = new RegExp(\n `\\\\${SENTRY_WRAPPED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR}|\\\\${SENTRY_REEXPORTED_FUNCTIONS})`,\n );\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const reexportRegex = new RegExp(`\\\\${SENTRY_REEXPORTED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR})`);\n\n const wrapMatch = query.match(wrapRegex);\n const reexportMatch = query.match(reexportRegex);\n\n const wrap =\n wrapMatch?.[1]\n ?.split(',')\n .filter(param => param !== '')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n const reexport =\n reexportMatch?.[1]\n ?.split(',')\n .filter(param => param !== '' && param !== 'default')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n return { wrap, reexport };\n}\n\n/**\n * Constructs a comma-separated string with all functions that need to be re-exported later from the server entry.\n * It uses Rollup's `exportedBindings` to determine the functions to re-export. Functions which should be wrapped\n * (e.g. serverless handlers) are wrapped by Sentry.\n */\nexport function constructWrappedFunctionExportQuery(\n exportedBindings: Record<string, string[]> | null,\n entrypointWrappedFunctions: string[],\n debug?: boolean,\n): string {\n const functionsToExport: { wrap: string[]; reexport: string[] } = {\n wrap: [],\n reexport: [],\n };\n\n // `exportedBindings` can look like this: `{ '.': [ 'handler' ] }` or `{ '.': [], './firebase-gen-1.mjs': [ 'server' ] }`\n // The key `.` refers to exports within the current file, while other keys show from where exports were imported first.\n Object.values(exportedBindings || {}).forEach(functions =>\n functions.forEach(fn => {\n if (entrypointWrappedFunctions.includes(fn)) {\n functionsToExport.wrap.push(fn);\n } else {\n functionsToExport.reexport.push(fn);\n }\n }),\n );\n\n if (debug && functionsToExport.wrap.length === 0) {\n consoleSandbox(() =>\n // eslint-disable-next-line no-console\n console.warn(\n \"[Sentry] No functions found to wrap. In case the server needs to export async functions other than `handler` or `server`, consider adding the name(s) to Sentry's build options `sentry.experimental_entrypointWrappedFunctions` in `nuxt.config.ts`.\",\n ),\n );\n }\n\n const wrapQuery = functionsToExport.wrap.length\n ? `${SENTRY_WRAPPED_FUNCTIONS}${functionsToExport.wrap.join(',')}`\n : '';\n const reexportQuery = functionsToExport.reexport.length\n ? `${SENTRY_REEXPORTED_FUNCTIONS}${functionsToExport.reexport.join(',')}`\n : '';\n\n return [wrapQuery, reexportQuery].join('');\n}\n\n/**\n * Constructs a code snippet with function reexports (can be used in Rollup plugins as a return value for `load()`)\n */\nexport function constructFunctionReExport(pathWithQuery: string, entryId: string): string {\n const { wrap: wrapFunctions, reexport: reexportFunctions } = extractFunctionReexportQueryParameters(pathWithQuery);\n\n return wrapFunctions\n .reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(\n `async function ${currFunctionName}_sentryWrapped(...args) {\\n` +\n ` const res = await import(${JSON.stringify(entryId)});\\n` +\n ` return res.${currFunctionName}.call(this, ...args);\\n` +\n '}\\n' +\n `export { ${currFunctionName}_sentryWrapped as ${currFunctionName} };\\n`,\n ),\n '',\n )\n .concat(\n reexportFunctions.reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(`export { ${currFunctionName} } from ${JSON.stringify(entryId)};`),\n '',\n ),\n );\n}\n"],"names":["consoleSandbox"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/vite/utils.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { consoleSandbox } from '@sentry/core';\n\n/**\n * Find the default SDK init file for the given type (client or server).\n * The sentry.server.config file is prioritized over the instrument.server file.\n */\nexport function findDefaultSdkInitFile(type: 'server' | 'client'): string | undefined {\n const possibleFileExtensions = ['ts', 'js', 'mjs', 'cjs', 'mts', 'cts'];\n const cwd = process.cwd();\n\n const filePaths: string[] = [];\n if (type === 'server') {\n for (const ext of possibleFileExtensions) {\n // order is important here - we want to prioritize the server.config file\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n filePaths.push(path.join(cwd, 'public', `instrument.${type}.${ext}`));\n }\n } else {\n for (const ext of possibleFileExtensions) {\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n }\n }\n\n return filePaths.find(filename => fs.existsSync(filename));\n}\n\n/**\n * Extracts the filename from a node command with a path.\n */\nexport function getFilenameFromNodeStartCommand(nodeCommand: string): string | null {\n const regex = /[^/\\\\]+\\.[^/\\\\]+$/;\n const match = nodeCommand.match(regex);\n return match ? match[0] : null;\n}\n\nexport const SENTRY_WRAPPED_ENTRY = '?sentry-query-wrapped-entry';\nexport const SENTRY_WRAPPED_FUNCTIONS = '?sentry-query-wrapped-functions=';\nexport const SENTRY_REEXPORTED_FUNCTIONS = '?sentry-query-reexported-functions=';\nexport const QUERY_END_INDICATOR = 'SENTRY-QUERY-END';\n\n/**\n * Strips the Sentry query part from a path.\n * Example: example/path?sentry-query-wrapped-entry?sentry-query-functions-reexport=foo,SENTRY-QUERY-END -> /example/path\n *\n * Only exported for testing.\n */\nexport function removeSentryQueryFromPath(url: string): string {\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const regex = new RegExp(`\\\\${SENTRY_WRAPPED_ENTRY}.*?\\\\${QUERY_END_INDICATOR}`);\n return url.replace(regex, '');\n}\n\n/**\n * Extracts and sanitizes function re-export and function wrap query parameters from a query string.\n * If it is a default export, it is not considered for re-exporting.\n *\n * Only exported for testing.\n */\nexport function extractFunctionReexportQueryParameters(query: string): { wrap: string[]; reexport: string[] } {\n // Regex matches the comma-separated params between the functions query\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const wrapRegex = new RegExp(\n `\\\\${SENTRY_WRAPPED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR}|\\\\${SENTRY_REEXPORTED_FUNCTIONS})`,\n );\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const reexportRegex = new RegExp(`\\\\${SENTRY_REEXPORTED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR})`);\n\n const wrapMatch = query.match(wrapRegex);\n const reexportMatch = query.match(reexportRegex);\n\n const wrap =\n wrapMatch?.[1]\n ?.split(',')\n .filter(param => param !== '')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n const reexport =\n reexportMatch?.[1]\n ?.split(',')\n .filter(param => param !== '' && param !== 'default')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n return { wrap, reexport };\n}\n\n/**\n * Constructs a comma-separated string with all functions that need to be re-exported later from the server entry.\n * It uses Rollup's `exportedBindings` to determine the functions to re-export. Functions which should be wrapped\n * (e.g. serverless handlers) are wrapped by Sentry.\n */\nexport function constructWrappedFunctionExportQuery(\n exportedBindings: Record<string, string[]> | null,\n entrypointWrappedFunctions: string[],\n debug?: boolean,\n): string {\n const functionsToExport: { wrap: string[]; reexport: string[] } = {\n wrap: [],\n reexport: [],\n };\n\n // `exportedBindings` can look like this: `{ '.': [ 'handler' ] }` or `{ '.': [], './firebase-gen-1.mjs': [ 'server' ] }`\n // The key `.` refers to exports within the current file, while other keys show from where exports were imported first.\n Object.values(exportedBindings || {}).forEach(functions =>\n functions.forEach(fn => {\n if (entrypointWrappedFunctions.includes(fn)) {\n functionsToExport.wrap.push(fn);\n } else {\n functionsToExport.reexport.push(fn);\n }\n }),\n );\n\n if (debug && functionsToExport.wrap.length === 0) {\n consoleSandbox(() =>\n // eslint-disable-next-line no-console\n console.warn(\n \"[Sentry] No functions found to wrap. In case the server needs to export async functions other than `handler` or `server`, consider adding the name(s) to Sentry's build options `sentry.experimental_entrypointWrappedFunctions` in `nuxt.config.ts`.\",\n ),\n );\n }\n\n const wrapQuery = functionsToExport.wrap.length\n ? `${SENTRY_WRAPPED_FUNCTIONS}${functionsToExport.wrap.join(',')}`\n : '';\n const reexportQuery = functionsToExport.reexport.length\n ? `${SENTRY_REEXPORTED_FUNCTIONS}${functionsToExport.reexport.join(',')}`\n : '';\n\n return [wrapQuery, reexportQuery].join('');\n}\n\n/**\n * Constructs a code snippet with function reexports (can be used in Rollup plugins as a return value for `load()`)\n */\nexport function constructFunctionReExport(pathWithQuery: string, entryId: string): string {\n const { wrap: wrapFunctions, reexport: reexportFunctions } = extractFunctionReexportQueryParameters(pathWithQuery);\n\n return wrapFunctions\n .reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(\n `async function ${currFunctionName}_sentryWrapped(...args) {\\n` +\n ` const res = await import(${JSON.stringify(entryId)});\\n` +\n ` return res.${currFunctionName}.call(this, ...args);\\n` +\n '}\\n' +\n `export { ${currFunctionName}_sentryWrapped as ${currFunctionName} };\\n`,\n ),\n '',\n )\n .concat(\n reexportFunctions.reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(`export { ${currFunctionName} } from ${JSON.stringify(entryId)};`),\n '',\n ),\n );\n}\n"],"names":["consoleSandbox"],"mappings":"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"}
@@ -1 +1 @@
1
- {"type":"module","version":"9.1.0"}
1
+ {"type":"module","version":"9.2.0-beta.0"}
@@ -30,7 +30,7 @@ function findDefaultSdkInitFile(type) {
30
30
  * Extracts the filename from a node command with a path.
31
31
  */
32
32
  function getFilenameFromNodeStartCommand(nodeCommand) {
33
- const regex = /[^/\\]+$/;
33
+ const regex = /[^/\\]+\.[^/\\]+$/;
34
34
  const match = nodeCommand.match(regex);
35
35
  return match ? match[0] : null;
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/vite/utils.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { consoleSandbox } from '@sentry/core';\n\n/**\n * Find the default SDK init file for the given type (client or server).\n * The sentry.server.config file is prioritized over the instrument.server file.\n */\nexport function findDefaultSdkInitFile(type: 'server' | 'client'): string | undefined {\n const possibleFileExtensions = ['ts', 'js', 'mjs', 'cjs', 'mts', 'cts'];\n const cwd = process.cwd();\n\n const filePaths: string[] = [];\n if (type === 'server') {\n for (const ext of possibleFileExtensions) {\n // order is important here - we want to prioritize the server.config file\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n filePaths.push(path.join(cwd, 'public', `instrument.${type}.${ext}`));\n }\n } else {\n for (const ext of possibleFileExtensions) {\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n }\n }\n\n return filePaths.find(filename => fs.existsSync(filename));\n}\n\n/**\n * Extracts the filename from a node command with a path.\n */\nexport function getFilenameFromNodeStartCommand(nodeCommand: string): string | null {\n const regex = /[^/\\\\]+$/;\n const match = nodeCommand.match(regex);\n return match ? match[0] : null;\n}\n\nexport const SENTRY_WRAPPED_ENTRY = '?sentry-query-wrapped-entry';\nexport const SENTRY_WRAPPED_FUNCTIONS = '?sentry-query-wrapped-functions=';\nexport const SENTRY_REEXPORTED_FUNCTIONS = '?sentry-query-reexported-functions=';\nexport const QUERY_END_INDICATOR = 'SENTRY-QUERY-END';\n\n/**\n * Strips the Sentry query part from a path.\n * Example: example/path?sentry-query-wrapped-entry?sentry-query-functions-reexport=foo,SENTRY-QUERY-END -> /example/path\n *\n * Only exported for testing.\n */\nexport function removeSentryQueryFromPath(url: string): string {\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const regex = new RegExp(`\\\\${SENTRY_WRAPPED_ENTRY}.*?\\\\${QUERY_END_INDICATOR}`);\n return url.replace(regex, '');\n}\n\n/**\n * Extracts and sanitizes function re-export and function wrap query parameters from a query string.\n * If it is a default export, it is not considered for re-exporting.\n *\n * Only exported for testing.\n */\nexport function extractFunctionReexportQueryParameters(query: string): { wrap: string[]; reexport: string[] } {\n // Regex matches the comma-separated params between the functions query\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const wrapRegex = new RegExp(\n `\\\\${SENTRY_WRAPPED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR}|\\\\${SENTRY_REEXPORTED_FUNCTIONS})`,\n );\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const reexportRegex = new RegExp(`\\\\${SENTRY_REEXPORTED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR})`);\n\n const wrapMatch = query.match(wrapRegex);\n const reexportMatch = query.match(reexportRegex);\n\n const wrap =\n wrapMatch?.[1]\n ?.split(',')\n .filter(param => param !== '')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n const reexport =\n reexportMatch?.[1]\n ?.split(',')\n .filter(param => param !== '' && param !== 'default')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n return { wrap, reexport };\n}\n\n/**\n * Constructs a comma-separated string with all functions that need to be re-exported later from the server entry.\n * It uses Rollup's `exportedBindings` to determine the functions to re-export. Functions which should be wrapped\n * (e.g. serverless handlers) are wrapped by Sentry.\n */\nexport function constructWrappedFunctionExportQuery(\n exportedBindings: Record<string, string[]> | null,\n entrypointWrappedFunctions: string[],\n debug?: boolean,\n): string {\n const functionsToExport: { wrap: string[]; reexport: string[] } = {\n wrap: [],\n reexport: [],\n };\n\n // `exportedBindings` can look like this: `{ '.': [ 'handler' ] }` or `{ '.': [], './firebase-gen-1.mjs': [ 'server' ] }`\n // The key `.` refers to exports within the current file, while other keys show from where exports were imported first.\n Object.values(exportedBindings || {}).forEach(functions =>\n functions.forEach(fn => {\n if (entrypointWrappedFunctions.includes(fn)) {\n functionsToExport.wrap.push(fn);\n } else {\n functionsToExport.reexport.push(fn);\n }\n }),\n );\n\n if (debug && functionsToExport.wrap.length === 0) {\n consoleSandbox(() =>\n // eslint-disable-next-line no-console\n console.warn(\n \"[Sentry] No functions found to wrap. In case the server needs to export async functions other than `handler` or `server`, consider adding the name(s) to Sentry's build options `sentry.experimental_entrypointWrappedFunctions` in `nuxt.config.ts`.\",\n ),\n );\n }\n\n const wrapQuery = functionsToExport.wrap.length\n ? `${SENTRY_WRAPPED_FUNCTIONS}${functionsToExport.wrap.join(',')}`\n : '';\n const reexportQuery = functionsToExport.reexport.length\n ? `${SENTRY_REEXPORTED_FUNCTIONS}${functionsToExport.reexport.join(',')}`\n : '';\n\n return [wrapQuery, reexportQuery].join('');\n}\n\n/**\n * Constructs a code snippet with function reexports (can be used in Rollup plugins as a return value for `load()`)\n */\nexport function constructFunctionReExport(pathWithQuery: string, entryId: string): string {\n const { wrap: wrapFunctions, reexport: reexportFunctions } = extractFunctionReexportQueryParameters(pathWithQuery);\n\n return wrapFunctions\n .reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(\n `async function ${currFunctionName}_sentryWrapped(...args) {\\n` +\n ` const res = await import(${JSON.stringify(entryId)});\\n` +\n ` return res.${currFunctionName}.call(this, ...args);\\n` +\n '}\\n' +\n `export { ${currFunctionName}_sentryWrapped as ${currFunctionName} };\\n`,\n ),\n '',\n )\n .concat(\n reexportFunctions.reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(`export { ${currFunctionName} } from ${JSON.stringify(entryId)};`),\n '',\n ),\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/vite/utils.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\nimport { consoleSandbox } from '@sentry/core';\n\n/**\n * Find the default SDK init file for the given type (client or server).\n * The sentry.server.config file is prioritized over the instrument.server file.\n */\nexport function findDefaultSdkInitFile(type: 'server' | 'client'): string | undefined {\n const possibleFileExtensions = ['ts', 'js', 'mjs', 'cjs', 'mts', 'cts'];\n const cwd = process.cwd();\n\n const filePaths: string[] = [];\n if (type === 'server') {\n for (const ext of possibleFileExtensions) {\n // order is important here - we want to prioritize the server.config file\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n filePaths.push(path.join(cwd, 'public', `instrument.${type}.${ext}`));\n }\n } else {\n for (const ext of possibleFileExtensions) {\n filePaths.push(path.join(cwd, `sentry.${type}.config.${ext}`));\n }\n }\n\n return filePaths.find(filename => fs.existsSync(filename));\n}\n\n/**\n * Extracts the filename from a node command with a path.\n */\nexport function getFilenameFromNodeStartCommand(nodeCommand: string): string | null {\n const regex = /[^/\\\\]+\\.[^/\\\\]+$/;\n const match = nodeCommand.match(regex);\n return match ? match[0] : null;\n}\n\nexport const SENTRY_WRAPPED_ENTRY = '?sentry-query-wrapped-entry';\nexport const SENTRY_WRAPPED_FUNCTIONS = '?sentry-query-wrapped-functions=';\nexport const SENTRY_REEXPORTED_FUNCTIONS = '?sentry-query-reexported-functions=';\nexport const QUERY_END_INDICATOR = 'SENTRY-QUERY-END';\n\n/**\n * Strips the Sentry query part from a path.\n * Example: example/path?sentry-query-wrapped-entry?sentry-query-functions-reexport=foo,SENTRY-QUERY-END -> /example/path\n *\n * Only exported for testing.\n */\nexport function removeSentryQueryFromPath(url: string): string {\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const regex = new RegExp(`\\\\${SENTRY_WRAPPED_ENTRY}.*?\\\\${QUERY_END_INDICATOR}`);\n return url.replace(regex, '');\n}\n\n/**\n * Extracts and sanitizes function re-export and function wrap query parameters from a query string.\n * If it is a default export, it is not considered for re-exporting.\n *\n * Only exported for testing.\n */\nexport function extractFunctionReexportQueryParameters(query: string): { wrap: string[]; reexport: string[] } {\n // Regex matches the comma-separated params between the functions query\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const wrapRegex = new RegExp(\n `\\\\${SENTRY_WRAPPED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR}|\\\\${SENTRY_REEXPORTED_FUNCTIONS})`,\n );\n // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n const reexportRegex = new RegExp(`\\\\${SENTRY_REEXPORTED_FUNCTIONS}(.*?)(\\\\${QUERY_END_INDICATOR})`);\n\n const wrapMatch = query.match(wrapRegex);\n const reexportMatch = query.match(reexportRegex);\n\n const wrap =\n wrapMatch?.[1]\n ?.split(',')\n .filter(param => param !== '')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n const reexport =\n reexportMatch?.[1]\n ?.split(',')\n .filter(param => param !== '' && param !== 'default')\n // Sanitize, as code could be injected with another rollup plugin\n .map((str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')) || [];\n\n return { wrap, reexport };\n}\n\n/**\n * Constructs a comma-separated string with all functions that need to be re-exported later from the server entry.\n * It uses Rollup's `exportedBindings` to determine the functions to re-export. Functions which should be wrapped\n * (e.g. serverless handlers) are wrapped by Sentry.\n */\nexport function constructWrappedFunctionExportQuery(\n exportedBindings: Record<string, string[]> | null,\n entrypointWrappedFunctions: string[],\n debug?: boolean,\n): string {\n const functionsToExport: { wrap: string[]; reexport: string[] } = {\n wrap: [],\n reexport: [],\n };\n\n // `exportedBindings` can look like this: `{ '.': [ 'handler' ] }` or `{ '.': [], './firebase-gen-1.mjs': [ 'server' ] }`\n // The key `.` refers to exports within the current file, while other keys show from where exports were imported first.\n Object.values(exportedBindings || {}).forEach(functions =>\n functions.forEach(fn => {\n if (entrypointWrappedFunctions.includes(fn)) {\n functionsToExport.wrap.push(fn);\n } else {\n functionsToExport.reexport.push(fn);\n }\n }),\n );\n\n if (debug && functionsToExport.wrap.length === 0) {\n consoleSandbox(() =>\n // eslint-disable-next-line no-console\n console.warn(\n \"[Sentry] No functions found to wrap. In case the server needs to export async functions other than `handler` or `server`, consider adding the name(s) to Sentry's build options `sentry.experimental_entrypointWrappedFunctions` in `nuxt.config.ts`.\",\n ),\n );\n }\n\n const wrapQuery = functionsToExport.wrap.length\n ? `${SENTRY_WRAPPED_FUNCTIONS}${functionsToExport.wrap.join(',')}`\n : '';\n const reexportQuery = functionsToExport.reexport.length\n ? `${SENTRY_REEXPORTED_FUNCTIONS}${functionsToExport.reexport.join(',')}`\n : '';\n\n return [wrapQuery, reexportQuery].join('');\n}\n\n/**\n * Constructs a code snippet with function reexports (can be used in Rollup plugins as a return value for `load()`)\n */\nexport function constructFunctionReExport(pathWithQuery: string, entryId: string): string {\n const { wrap: wrapFunctions, reexport: reexportFunctions } = extractFunctionReexportQueryParameters(pathWithQuery);\n\n return wrapFunctions\n .reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(\n `async function ${currFunctionName}_sentryWrapped(...args) {\\n` +\n ` const res = await import(${JSON.stringify(entryId)});\\n` +\n ` return res.${currFunctionName}.call(this, ...args);\\n` +\n '}\\n' +\n `export { ${currFunctionName}_sentryWrapped as ${currFunctionName} };\\n`,\n ),\n '',\n )\n .concat(\n reexportFunctions.reduce(\n (functionsCode, currFunctionName) =>\n functionsCode.concat(`export { ${currFunctionName} } from ${JSON.stringify(entryId)};`),\n '',\n ),\n );\n}\n"],"names":[],"mappings":";;;;AAIA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,CAAC,IAAI,EAA2C;AACtF,EAAE,MAAM,sBAAA,GAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACzE,EAAE,MAAM,GAAI,GAAE,OAAO,CAAC,GAAG,EAAE;;AAE3B,EAAE,MAAM,SAAS,GAAa,EAAE;AAChC,EAAE,IAAI,IAAK,KAAI,QAAQ,EAAE;AACzB,IAAI,KAAK,MAAM,GAAI,IAAG,sBAAsB,EAAE;AAC9C;AACA,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA,CAAA,CAAA;AACA,MAAA,SAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,IAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AACA;AACA,GAAA,MAAA;AACA,IAAA,KAAA,MAAA,GAAA,IAAA,sBAAA,EAAA;AACA,MAAA,SAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,QAAA,EAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AACA;AACA;;AAEA,EAAA,OAAA,SAAA,CAAA,IAAA,CAAA,QAAA,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA;AACA;;AAEA;AACA;AACA;AACA,SAAA,+BAAA,CAAA,WAAA,EAAA;AACA,EAAA,MAAA,KAAA,GAAA,mBAAA;AACA,EAAA,MAAA,KAAA,GAAA,WAAA,CAAA,KAAA,CAAA,KAAA,CAAA;AACA,EAAA,OAAA,KAAA,GAAA,KAAA,CAAA,CAAA,CAAA,GAAA,IAAA;AACA;;AAEA,MAAA,oBAAA,GAAA;AACA,MAAA,wBAAA,GAAA;AACA,MAAA,2BAAA,GAAA;AACA,MAAA,mBAAA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAA,yBAAA,CAAA,GAAA,EAAA;AACA;AACA,EAAA,MAAA,KAAA,GAAA,IAAA,MAAA,CAAA,CAAA,EAAA,EAAA,oBAAA,CAAA,KAAA,EAAA,mBAAA,CAAA,CAAA,CAAA;AACA,EAAA,OAAA,GAAA,CAAA,OAAA,CAAA,KAAA,EAAA,EAAA,CAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAA,sCAAA,CAAA,KAAA,EAAA;AACA;AACA;AACA,EAAA,MAAA,SAAA,GAAA,IAAA,MAAA;AACA,IAAA,CAAA,EAAA,EAAA,wBAAA,CAAA,QAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,2BAAA,CAAA,CAAA,CAAA;AACA,GAAA;AACA;AACA,EAAA,MAAA,aAAA,GAAA,IAAA,MAAA,CAAA,CAAA,EAAA,EAAA,2BAAA,CAAA,QAAA,EAAA,mBAAA,CAAA,CAAA,CAAA,CAAA;;AAEA,EAAA,MAAA,SAAA,GAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA;AACA,EAAA,MAAA,aAAA,GAAA,KAAA,CAAA,KAAA,CAAA,aAAA,CAAA;;AAEA,EAAA,MAAA,IAAA;AACA,IAAA,SAAA,GAAA,CAAA;AACA,QAAA,KAAA,CAAA,GAAA;AACA,OAAA,MAAA,CAAA,KAAA,IAAA,KAAA,KAAA,EAAA;AACA;AACA,OAAA,GAAA,CAAA,CAAA,GAAA,KAAA,GAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,CAAA,IAAA,EAAA;;AAEA,EAAA,MAAA,QAAA;AACA,IAAA,aAAA,GAAA,CAAA;AACA,QAAA,KAAA,CAAA,GAAA;AACA,OAAA,MAAA,CAAA,KAAA,IAAA,KAAA,KAAA,EAAA,IAAA,KAAA,KAAA,SAAA;AACA;AACA,OAAA,GAAA,CAAA,CAAA,GAAA,KAAA,GAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,CAAA,IAAA,EAAA;;AAEA,EAAA,OAAA,EAAA,IAAA,EAAA,QAAA,EAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAA,mCAAA;AACA,EAAA,gBAAA;AACA,EAAA,0BAAA;AACA,EAAA,KAAA;AACA,EAAA;AACA,EAAA,MAAA,iBAAA,GAAA;AACA,IAAA,IAAA,EAAA,EAAA;AACA,IAAA,QAAA,EAAA,EAAA;AACA,GAAA;;AAEA;AACA;AACA,EAAA,MAAA,CAAA,MAAA,CAAA,gBAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAA,SAAA;AACA,IAAA,SAAA,CAAA,OAAA,CAAA,EAAA,IAAA;AACA,MAAA,IAAA,0BAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA;AACA,QAAA,iBAAA,CAAA,IAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AACA,OAAA,MAAA;AACA,QAAA,iBAAA,CAAA,QAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AACA;AACA,KAAA,CAAA;AACA,GAAA;;AAEA,EAAA,IAAA,KAAA,IAAA,iBAAA,CAAA,IAAA,CAAA,MAAA,KAAA,CAAA,EAAA;AACA,IAAA,cAAA,CAAA;AACA;AACA,MAAA,OAAA,CAAA,IAAA;AACA,QAAA,wPAAA;AACA,OAAA;AACA,KAAA;AACA;;AAEA,EAAA,MAAA,SAAA,GAAA,iBAAA,CAAA,IAAA,CAAA;AACA,MAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AACA,MAAA,EAAA;AACA,EAAA,MAAA,aAAA,GAAA,iBAAA,CAAA,QAAA,CAAA;AACA,MAAA,CAAA,EAAA,2BAAA,CAAA,EAAA,iBAAA,CAAA,QAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AACA,MAAA,EAAA;;AAEA,EAAA,OAAA,CAAA,SAAA,EAAA,aAAA,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AACA;;AAEA;AACA;AACA;AACA,SAAA,yBAAA,CAAA,aAAA,EAAA,OAAA,EAAA;AACA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,GAAA,sCAAA,CAAA,aAAA,CAAA;;AAEA,EAAA,OAAA;AACA,KAAA,MAAA;AACA,MAAA,CAAA,aAAA,EAAA,gBAAA;AACA,QAAA,aAAA,CAAA,MAAA;AACA,UAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,2BAAA,CAAA;AACA,YAAA,CAAA,2BAAA,EAAA,IAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA,IAAA,CAAA;AACA,YAAA,CAAA,aAAA,EAAA,gBAAA,CAAA,uBAAA,CAAA;AACA,YAAA,KAAA;AACA,YAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,kBAAA,EAAA,gBAAA,CAAA,KAAA,CAAA;AACA,SAAA;AACA,MAAA,EAAA;AACA;AACA,KAAA,MAAA;AACA,MAAA,iBAAA,CAAA,MAAA;AACA,QAAA,CAAA,aAAA,EAAA,gBAAA;AACA,UAAA,aAAA,CAAA,MAAA,CAAA,CAAA,SAAA,EAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,QAAA,EAAA;AACA,OAAA;AACA,KAAA;AACA;;;;"}
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.7.0"
6
6
  },
7
- "version": "9.1.0",
7
+ "version": "9.2.0-beta.0",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "0.8.4",
10
10
  "unbuild": "2.0.0"
@@ -22,7 +22,7 @@ function findDefaultSdkInitFile(type) {
22
22
  return filePaths.find((filename) => fs.existsSync(filename));
23
23
  }
24
24
  function getFilenameFromNodeStartCommand(nodeCommand) {
25
- const regex = /[^/\\]+$/;
25
+ const regex = /[^/\\]+\.[^/\\]+$/;
26
26
  const match = nodeCommand.match(regex);
27
27
  return match ? match[0] : null;
28
28
  }
@@ -1,20 +1,24 @@
1
1
  import {
2
2
  GLOBAL_OBJ,
3
3
  flush,
4
- getClient,
5
4
  getDefaultIsolationScope,
6
5
  getIsolationScope,
7
6
  logger,
8
7
  vercelWaitUntil,
9
8
  withIsolationScope
10
9
  } from "@sentry/core";
11
- import * as Sentry from "@sentry/node";
10
+ import * as SentryNode from "@sentry/node";
12
11
  import { H3Error } from "h3";
13
12
  import { defineNitroPlugin } from "nitropack/runtime";
14
13
  import { addSentryTracingMetaTags, extractErrorContext } from "../utils.js";
15
14
  export default defineNitroPlugin((nitroApp) => {
16
15
  nitroApp.h3App.handler = patchEventHandler(nitroApp.h3App.handler);
17
16
  nitroApp.hooks.hook("error", async (error, errorContext) => {
17
+ const sentryClient = SentryNode.getClient();
18
+ const sentryClientOptions = sentryClient?.getOptions();
19
+ if (sentryClientOptions && "enableNitroErrorHandler" in sentryClientOptions && sentryClientOptions.enableNitroErrorHandler === false) {
20
+ return;
21
+ }
18
22
  if (error instanceof H3Error) {
19
23
  if (error.statusCode >= 300 && error.statusCode < 500) {
20
24
  return;
@@ -25,10 +29,10 @@ export default defineNitroPlugin((nitroApp) => {
25
29
  path: errorContext.event?._path ? errorContext.event._path : null
26
30
  };
27
31
  if (path) {
28
- Sentry.getCurrentScope().setTransactionName(`${method} ${path}`);
32
+ SentryNode.getCurrentScope().setTransactionName(`${method} ${path}`);
29
33
  }
30
34
  const structuredContext = extractErrorContext(errorContext);
31
- Sentry.captureException(error, {
35
+ SentryNode.captureException(error, {
32
36
  captureContext: { contexts: { nuxt: structuredContext } },
33
37
  mechanism: { handled: false }
34
38
  });
@@ -49,7 +53,7 @@ async function flushIfServerless() {
49
53
  }
50
54
  }
51
55
  async function flushWithTimeout() {
52
- const sentryClient = getClient();
56
+ const sentryClient = SentryNode.getClient();
53
57
  const isDebug = sentryClient ? sentryClient.getOptions().debug : false;
54
58
  try {
55
59
  isDebug && logger.log("Flushing events...");
@@ -3,7 +3,20 @@ import type { SentryRollupPluginOptions } from '@sentry/rollup-plugin';
3
3
  import type { SentryVitePluginOptions } from '@sentry/vite-plugin';
4
4
  import type { init as initVue } from '@sentry/vue';
5
5
  export type SentryNuxtClientOptions = Omit<Parameters<typeof initVue>[0] & object, 'app'>;
6
- export type SentryNuxtServerOptions = Omit<Parameters<typeof initNode>[0] & object, 'app'>;
6
+ export type SentryNuxtServerOptions = Parameters<typeof initNode>[0] & {
7
+ /**
8
+ * Enables the Sentry error handler for the Nitro error hook.
9
+ *
10
+ * When enabled, exceptions are automatically sent to Sentry with additional data such as the transaction name and Nitro error context.
11
+ * It's recommended to keep this enabled unless you need to implement a custom error handler.
12
+ *
13
+ * If you need a custom implementation, disable this option and refer to the default handler as a reference:
14
+ * https://github.com/getsentry/sentry-javascript/blob/da8ba8d77a28b43da5014acc8dd98906d2180cc1/packages/nuxt/src/runtime/plugins/sentry.server.ts#L20-L46
15
+ *
16
+ * @default true
17
+ */
18
+ enableNitroErrorHandler?: boolean;
19
+ };
7
20
  type SourceMapsOptions = {
8
21
  /**
9
22
  * Suppresses all logs.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1F,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3F,KAAK,iBAAiB,GAAG;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR;;;;;;;;;;WAUG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;;;;;;;;WASG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhC;;;;;;;WAOG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhC;;;;;;;WAOG;QACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;KACnD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,iBAAiB,CAAC;IAE5C;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,sBAAsB,CAAC,EAAE,kBAAkB,GAAG,6BAA6B,CAAC;IAE5E;;;;;;;;;;OAUG;IACH,uCAAuC,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnD;;;;;OAKG;IACH,mCAAmC,CAAC,EAAE,yBAAyB,GAAG,uBAAuB,CAAC;CAC3F,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC;AAInD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1F,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG;IACrE;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,OAAO,CAAC,EAAE;QACR;;;;;;;;;;WAUG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;;;;;;;;WASG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhC;;;;;;;WAOG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhC;;;;;;;WAOG;QACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;KACnD,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,iBAAiB,CAAC;IAE5C;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,sBAAsB,CAAC,EAAE,kBAAkB,GAAG,6BAA6B,CAAC;IAE5E;;;;;;;;;;OAUG;IACH,uCAAuC,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnD;;;;;OAKG;IACH,mCAAmC,CAAC,EAAE,yBAAyB,GAAG,uBAAuB,CAAC;CAC3F,CAAC"}
@@ -1,10 +1,9 @@
1
1
  import type { Client, Integration, Options, StackParser } from '@sentry/core';
2
- import type { SentryNuxtClientOptions } from './common/types';
2
+ import type { SentryNuxtClientOptions, SentryNuxtServerOptions } from './common/types';
3
3
  import type * as clientSdk from './index.client';
4
- import type * as serverSdk from './index.server';
5
4
  export * from './index.client';
6
5
  export * from './index.server';
7
- export declare function init(options: Options | SentryNuxtClientOptions | serverSdk.NodeOptions): Client | undefined;
6
+ export declare function init(options: Options | SentryNuxtClientOptions | SentryNuxtServerOptions): Client | undefined;
8
7
  export declare const linkedErrorsIntegration: typeof clientSdk.linkedErrorsIntegration;
9
8
  export declare const contextLinesIntegration: typeof clientSdk.contextLinesIntegration;
10
9
  export declare const getDefaultIntegrations: (options: Options) => Integration[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.types.d.ts","sourceRoot":"","sources":["../../src/index.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAIjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAG/B,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAAC,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AACrH,MAAM,CAAC,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,SAAS,CAAC,uBAAuB,CAAC;AACvF,MAAM,CAAC,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,SAAS,CAAC,uBAAuB,CAAC;AACvF,MAAM,CAAC,OAAO,CAAC,MAAM,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;AACjF,MAAM,CAAC,OAAO,CAAC,MAAM,kBAAkB,EAAE,WAAW,CAAC"}
1
+ {"version":3,"file":"index.types.d.ts","sourceRoot":"","sources":["../../src/index.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAIjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAG/B,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,MAAM,GAAG,SAAS,CAAC;AACvH,MAAM,CAAC,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,SAAS,CAAC,uBAAuB,CAAC;AACvF,MAAM,CAAC,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,SAAS,CAAC,uBAAuB,CAAC;AACvF,MAAM,CAAC,OAAO,CAAC,MAAM,sBAAsB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;AACjF,MAAM,CAAC,OAAO,CAAC,MAAM,kBAAkB,EAAE,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.server.d.ts","sourceRoot":"","sources":["../../../../src/runtime/plugins/sentry.server.ts"],"names":[],"mappings":";AAgBA,wBAmCG"}
1
+ {"version":3,"file":"sentry.server.d.ts","sourceRoot":"","sources":["../../../../src/runtime/plugins/sentry.server.ts"],"names":[],"mappings":";AAeA,wBA8CG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/nuxt",
3
- "version": "9.1.0",
3
+ "version": "9.2.0-beta.0",
4
4
  "description": "Official Sentry SDK for Nuxt (EXPERIMENTAL)",
5
5
  "repository": "git://github.com/getsentry/sentry-javascript.git",
6
6
  "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/nuxt",
@@ -43,13 +43,13 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@nuxt/kit": "^3.13.2",
46
- "@sentry/browser": "9.1.0",
47
- "@sentry/core": "9.1.0",
48
- "@sentry/node": "9.1.0",
49
- "@sentry/opentelemetry": "9.1.0",
46
+ "@sentry/browser": "9.2.0-beta.0",
47
+ "@sentry/core": "9.2.0-beta.0",
48
+ "@sentry/node": "9.2.0-beta.0",
49
+ "@sentry/opentelemetry": "9.2.0-beta.0",
50
50
  "@sentry/rollup-plugin": "3.1.2",
51
51
  "@sentry/vite-plugin": "2.22.6",
52
- "@sentry/vue": "9.1.0"
52
+ "@sentry/vue": "9.2.0-beta.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@nuxt/module-builder": "^0.8.4",