@sentry/nuxt 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 (66) hide show
  1. package/build/cjs/client/piniaIntegration.js +7 -19
  2. package/build/cjs/client/piniaIntegration.js.map +1 -1
  3. package/build/cjs/client/sdk.js +2 -9
  4. package/build/cjs/client/sdk.js.map +1 -1
  5. package/build/cjs/client/vueIntegration.js +3 -10
  6. package/build/cjs/client/vueIntegration.js.map +1 -1
  7. package/build/cjs/common/debug-build.js +0 -5
  8. package/build/cjs/common/debug-build.js.map +1 -1
  9. package/build/cjs/module.js +52 -107
  10. package/build/cjs/module.js.map +1 -1
  11. package/build/cjs/server/sdk.js +20 -60
  12. package/build/cjs/server/sdk.js.map +1 -1
  13. package/build/cjs/vendor/server-template.js +0 -6
  14. package/build/cjs/vendor/server-template.js.map +1 -1
  15. package/build/cjs/vite/addServerConfig.js +45 -144
  16. package/build/cjs/vite/addServerConfig.js.map +1 -1
  17. package/build/cjs/vite/databaseConfig.js +10 -32
  18. package/build/cjs/vite/databaseConfig.js.map +1 -1
  19. package/build/cjs/vite/middlewareConfig.js +11 -46
  20. package/build/cjs/vite/middlewareConfig.js.map +1 -1
  21. package/build/cjs/vite/sentryVitePlugin.js +7 -24
  22. package/build/cjs/vite/sentryVitePlugin.js.map +1 -1
  23. package/build/cjs/vite/sourceMaps.js +89 -248
  24. package/build/cjs/vite/sourceMaps.js.map +1 -1
  25. package/build/cjs/vite/storageConfig.js +4 -10
  26. package/build/cjs/vite/storageConfig.js.map +1 -1
  27. package/build/cjs/vite/utils.js +51 -143
  28. package/build/cjs/vite/utils.js.map +1 -1
  29. package/build/esm/client/piniaIntegration.js +7 -19
  30. package/build/esm/client/piniaIntegration.js.map +1 -1
  31. package/build/esm/client/sdk.js +2 -9
  32. package/build/esm/client/sdk.js.map +1 -1
  33. package/build/esm/client/vueIntegration.js +3 -10
  34. package/build/esm/client/vueIntegration.js.map +1 -1
  35. package/build/esm/common/debug-build.js +0 -5
  36. package/build/esm/common/debug-build.js.map +1 -1
  37. package/build/esm/module.js +52 -107
  38. package/build/esm/module.js.map +1 -1
  39. package/build/esm/package.json +1 -1
  40. package/build/esm/server/sdk.js +20 -60
  41. package/build/esm/server/sdk.js.map +1 -1
  42. package/build/esm/vendor/server-template.js +0 -6
  43. package/build/esm/vendor/server-template.js.map +1 -1
  44. package/build/esm/vite/addServerConfig.js +45 -144
  45. package/build/esm/vite/addServerConfig.js.map +1 -1
  46. package/build/esm/vite/databaseConfig.js +10 -32
  47. package/build/esm/vite/databaseConfig.js.map +1 -1
  48. package/build/esm/vite/middlewareConfig.js +11 -46
  49. package/build/esm/vite/middlewareConfig.js.map +1 -1
  50. package/build/esm/vite/sentryVitePlugin.js +7 -24
  51. package/build/esm/vite/sentryVitePlugin.js.map +1 -1
  52. package/build/esm/vite/sourceMaps.js +89 -248
  53. package/build/esm/vite/sourceMaps.js.map +1 -1
  54. package/build/esm/vite/storageConfig.js +4 -10
  55. package/build/esm/vite/storageConfig.js.map +1 -1
  56. package/build/esm/vite/utils.js +51 -143
  57. package/build/esm/vite/utils.js.map +1 -1
  58. package/build/module/module.d.mts +17 -0
  59. package/build/module/module.d.ts +17 -0
  60. package/build/module/module.json +1 -1
  61. package/build/module/module.mjs +6 -6
  62. package/build/types/common/types.d.ts +17 -0
  63. package/build/types/common/types.d.ts.map +1 -1
  64. package/build/types/vite/utils.d.ts +2 -1
  65. package/build/types/vite/utils.d.ts.map +1 -1
  66. package/package.json +8 -8
@@ -3,36 +3,24 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
3
  const core = require('@sentry/core');
4
4
  const vue = require('@sentry/vue');
5
5
 
6
- const INTEGRATION_NAME = 'Pinia';
7
-
8
- const _piniaIntegration = ((
9
- // `unknown` here as well because usePinia declares this type: `export declare const usePinia: () => unknown;`
10
- pinia,
11
- options = {},
12
- ) => {
6
+ const INTEGRATION_NAME = "Pinia";
7
+ const _piniaIntegration = ((pinia, options = {}) => {
13
8
  return {
14
9
  name: INTEGRATION_NAME,
15
10
  setup() {
16
- if (!pinia || (typeof pinia === 'object' && !('use' in pinia))) {
11
+ if (!pinia || typeof pinia === "object" && !("use" in pinia)) {
17
12
  core.consoleSandbox(() => {
18
- // eslint-disable-next-line no-console
19
13
  console.warn(
20
14
  '[Sentry] The Pinia integration was added, but the passed parameter `pinia` has the wrong value. Make sure to enable Pinia by adding `"@pinia/nuxt"` to the Nuxt modules array and pass pinia to Sentry with `piniaIntegration(usePinia())`. Current value of `pinia`:',
21
- pinia,
15
+ pinia
22
16
  );
23
17
  });
24
18
  } else {
25
- (pinia ).use(vue.createSentryPiniaPlugin(options));
19
+ pinia.use(vue.createSentryPiniaPlugin(options));
26
20
  }
27
- },
21
+ }
28
22
  };
29
- }) ;
30
-
31
- /**
32
- * Monitor an existing Pinia store.
33
- *
34
- * This only works if "@pinia/nuxt" is added to the `modules` array.
35
- */
23
+ });
36
24
  const piniaIntegration = core.defineIntegration(_piniaIntegration);
37
25
 
38
26
  exports.piniaIntegration = piniaIntegration;
@@ -1 +1 @@
1
- {"version":3,"file":"piniaIntegration.js","sources":["../../../src/client/piniaIntegration.ts"],"sourcesContent":["import type { IntegrationFn } from '@sentry/core';\nimport { consoleSandbox, defineIntegration } from '@sentry/core';\nimport { createSentryPiniaPlugin } from '@sentry/vue';\n\nconst INTEGRATION_NAME = 'Pinia';\n\ntype Pinia = { use: (plugin: ReturnType<typeof createSentryPiniaPlugin>) => void };\n\nconst _piniaIntegration = ((\n // `unknown` here as well because usePinia declares this type: `export declare const usePinia: () => unknown;`\n pinia: unknown | Pinia,\n options: Parameters<typeof createSentryPiniaPlugin>[0] = {},\n) => {\n return {\n name: INTEGRATION_NAME,\n setup() {\n if (!pinia || (typeof pinia === 'object' && !('use' in pinia))) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] The Pinia integration was added, but the passed parameter `pinia` has the wrong value. Make sure to enable Pinia by adding `\"@pinia/nuxt\"` to the Nuxt modules array and pass pinia to Sentry with `piniaIntegration(usePinia())`. Current value of `pinia`:',\n pinia,\n );\n });\n } else {\n (pinia as Pinia).use(createSentryPiniaPlugin(options));\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Monitor an existing Pinia store.\n *\n * This only works if \"@pinia/nuxt\" is added to the `modules` array.\n */\nexport const piniaIntegration = defineIntegration(_piniaIntegration);\n"],"names":["consoleSandbox","createSentryPiniaPlugin","defineIntegration"],"mappings":";;;;;AAIA,MAAM,gBAAA,GAAmB,OAAO;;AAIhC,MAAM,iBAAA,IAAqB;AAC3B;AACA,EAAE,KAAK;AACP,EAAE,OAAO,GAAkD,EAAE;AAC7D,KAAK;AACL,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,KAAK,GAAG;AACZ,MAAM,IAAI,CAAC,UAAU,OAAO,KAAA,KAAU,QAAA,IAAY,EAAE,KAAA,IAAS,KAAK,CAAC,CAAC,EAAE;AACtE,QAAQA,mBAAc,CAAC,MAAM;AAC7B;AACA,UAAU,OAAO,CAAC,IAAI;AACtB,YAAY,uQAAuQ;AACnR,YAAY,KAAK;AACjB,WAAW;AACX,QAAQ,CAAC,CAAC;AACV,MAAM,OAAO;AACb,QAAQ,CAAC,KAAA,GAAgB,GAAG,CAACC,2BAAuB,CAAC,OAAO,CAAC,CAAC;AAC9D,MAAM;AACN,IAAI,CAAC;AACL,GAAG;AACH,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;MACa,gBAAA,GAAmBC,sBAAiB,CAAC,iBAAiB;;;;"}
1
+ {"version":3,"file":"piniaIntegration.js","sources":["../../../src/client/piniaIntegration.ts"],"sourcesContent":["import type { IntegrationFn } from '@sentry/core';\nimport { consoleSandbox, defineIntegration } from '@sentry/core';\nimport { createSentryPiniaPlugin } from '@sentry/vue';\n\nconst INTEGRATION_NAME = 'Pinia';\n\ntype Pinia = { use: (plugin: ReturnType<typeof createSentryPiniaPlugin>) => void };\n\nconst _piniaIntegration = ((\n // `unknown` here as well because usePinia declares this type: `export declare const usePinia: () => unknown;`\n pinia: unknown | Pinia,\n options: Parameters<typeof createSentryPiniaPlugin>[0] = {},\n) => {\n return {\n name: INTEGRATION_NAME,\n setup() {\n if (!pinia || (typeof pinia === 'object' && !('use' in pinia))) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] The Pinia integration was added, but the passed parameter `pinia` has the wrong value. Make sure to enable Pinia by adding `\"@pinia/nuxt\"` to the Nuxt modules array and pass pinia to Sentry with `piniaIntegration(usePinia())`. Current value of `pinia`:',\n pinia,\n );\n });\n } else {\n (pinia as Pinia).use(createSentryPiniaPlugin(options));\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Monitor an existing Pinia store.\n *\n * This only works if \"@pinia/nuxt\" is added to the `modules` array.\n */\nexport const piniaIntegration = defineIntegration(_piniaIntegration);\n"],"names":["consoleSandbox","createSentryPiniaPlugin","defineIntegration"],"mappings":";;;;;AAIA,MAAM,gBAAA,GAAmB,OAAA;AAIzB,MAAM,iBAAA,IAAqB,CAEzB,KAAA,EACA,OAAA,GAAyD,EAAC,KACvD;AACH,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,KAAA,GAAQ;AACN,MAAA,IAAI,CAAC,KAAA,IAAU,OAAO,UAAU,QAAA,IAAY,EAAE,SAAS,KAAA,CAAA,EAAS;AAC9D,QAAAA,mBAAA,CAAe,MAAM;AAEnB,UAAA,OAAA,CAAQ,IAAA;AAAA,YACN,uQAAA;AAAA,YACA;AAAA,WACF;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA,MAAO;AACL,QAAC,KAAA,CAAgB,GAAA,CAAIC,2BAAA,CAAwB,OAAO,CAAC,CAAA;AAAA,MACvD;AAAA,IACF;AAAA,GACF;AACF,CAAA,CAAA;AAOO,MAAM,gBAAA,GAAmBC,uBAAkB,iBAAiB;;;;"}
@@ -3,22 +3,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
3
  const browser = require('@sentry/browser');
4
4
  const core = require('@sentry/core');
5
5
 
6
- /**
7
- * Initializes the client-side of the Nuxt SDK
8
- *
9
- * @param options Configuration options for the SDK.
10
- */
11
6
  function init(options) {
12
7
  const envFallback = undefined ? core.DEV_ENVIRONMENT : core.DEFAULT_ENVIRONMENT;
13
8
  const sentryOptions = {
14
9
  /* BrowserTracing is added later with the Nuxt client plugin */
15
10
  defaultIntegrations: [...browser.getDefaultIntegrations(options)],
16
11
  environment: options.environment ?? process.env.SENTRY_ENVIRONMENT ?? envFallback,
17
- ...options,
12
+ ...options
18
13
  };
19
-
20
- core.applySdkMetadata(sentryOptions, 'nuxt', ['nuxt', 'vue']);
21
-
14
+ core.applySdkMetadata(sentryOptions, "nuxt", ["nuxt", "vue"]);
22
15
  return browser.init(sentryOptions);
23
16
  }
24
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sources":["../../../src/client/sdk.ts"],"sourcesContent":["import { getDefaultIntegrations as getBrowserDefaultIntegrations, init as initBrowser } from '@sentry/browser';\nimport type { Client } from '@sentry/core';\nimport { applySdkMetadata, DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT } from '@sentry/core';\nimport type { SentryNuxtClientOptions } from '../common/types';\n\n/**\n * Initializes the client-side of the Nuxt SDK\n *\n * @param options Configuration options for the SDK.\n */\nexport function init(options: SentryNuxtClientOptions): Client | undefined {\n const envFallback = import.meta.dev ? DEV_ENVIRONMENT : DEFAULT_ENVIRONMENT;\n const sentryOptions = {\n /* BrowserTracing is added later with the Nuxt client plugin */\n defaultIntegrations: [...getBrowserDefaultIntegrations(options)],\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT ?? envFallback,\n ...options,\n };\n\n applySdkMetadata(sentryOptions, 'nuxt', ['nuxt', 'vue']);\n\n return initBrowser(sentryOptions);\n}\n"],"names":["DEV_ENVIRONMENT","DEFAULT_ENVIRONMENT","getBrowserDefaultIntegrations","applySdkMetadata","initBrowser"],"mappings":";;;;;AAKA;AACA;AACA;AACA;AACA;AACO,SAAS,IAAI,CAAC,OAAO,EAA+C;AAC3E,EAAE,MAAM,WAAA,GAAc,SAAY,GAAMA,oBAAA,GAAkBC,wBAAmB;AAC7E,EAAE,MAAM,gBAAgB;AACxB;AACA,IAAI,mBAAmB,EAAE,CAAC,GAAGC,8BAA6B,CAAC,OAAO,CAAC,CAAC;AACpE,IAAI,WAAW,EAAE,OAAO,CAAC,WAAA,IAAe,OAAO,CAAC,GAAG,CAAC,kBAAA,IAAsB,WAAW;AACrF,IAAI,GAAG,OAAO;AACd,GAAG;;AAEH,EAAEC,qBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;;AAE1D,EAAE,OAAOC,YAAW,CAAC,aAAa,CAAC;AACnC;;;;"}
1
+ {"version":3,"file":"sdk.js","sources":["../../../src/client/sdk.ts"],"sourcesContent":["import { getDefaultIntegrations as getBrowserDefaultIntegrations, init as initBrowser } from '@sentry/browser';\nimport type { Client } from '@sentry/core';\nimport { applySdkMetadata, DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT } from '@sentry/core';\nimport type { SentryNuxtClientOptions } from '../common/types';\n\n/**\n * Initializes the client-side of the Nuxt SDK\n *\n * @param options Configuration options for the SDK.\n */\nexport function init(options: SentryNuxtClientOptions): Client | undefined {\n const envFallback = import.meta.dev ? DEV_ENVIRONMENT : DEFAULT_ENVIRONMENT;\n const sentryOptions = {\n /* BrowserTracing is added later with the Nuxt client plugin */\n defaultIntegrations: [...getBrowserDefaultIntegrations(options)],\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT ?? envFallback,\n ...options,\n };\n\n applySdkMetadata(sentryOptions, 'nuxt', ['nuxt', 'vue']);\n\n return initBrowser(sentryOptions);\n}\n"],"names":["DEV_ENVIRONMENT","DEFAULT_ENVIRONMENT","getBrowserDefaultIntegrations","applySdkMetadata","initBrowser"],"mappings":";;;;;AAUO,SAAS,KAAK,OAAA,EAAsD;AACzE,EAAA,MAAM,WAAA,GAAc,SAAY,GAAMA,oBAAA,GAAkBC,wBAAA;AACxD,EAAA,MAAM,aAAA,GAAgB;AAAA;AAAA,IAEpB,mBAAA,EAAqB,CAAC,GAAGC,8BAAA,CAA8B,OAAO,CAAC,CAAA;AAAA,IAC/D,WAAA,EAAa,OAAA,CAAQ,WAAA,IAAe,OAAA,CAAQ,IAAI,kBAAA,IAAsB,WAAA;AAAA,IACtE,GAAG;AAAA,GACL;AAEA,EAAAC,qBAAA,CAAiB,aAAA,EAAe,MAAA,EAAQ,CAAC,MAAA,EAAQ,KAAK,CAAC,CAAA;AAEvD,EAAA,OAAOC,aAAY,aAAa,CAAA;AAClC;;;;"}
@@ -2,20 +2,13 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
3
  const core = require('@sentry/core');
4
4
 
5
- // The vue integration is actually set up in the Sentry Client Module. There it is set up as soon as the nuxt app object is available.
6
- // However, we need to export the vueIntegration from the Client SDK. This means all this integration does is store away
7
- // its options for the Sentry Client Module to pick them up when initializing the actual vueIntegration.
8
-
9
- /**
10
- * Add additional error and span instrumentation specialized for Vue.
11
- */
12
5
  const vueIntegration = core.defineIntegration((options = {}) => {
13
6
  return {
14
7
  // NOTE: This name is different from the original vueIntegration's name.
15
- name: 'NuxtVueIntegration',
8
+ name: "NuxtVueIntegration",
16
9
  setup() {
17
- (core.GLOBAL_OBJ )._sentryNuxtVueIntegrationOptions = options;
18
- },
10
+ core.GLOBAL_OBJ._sentryNuxtVueIntegrationOptions = options;
11
+ }
19
12
  };
20
13
  });
21
14
 
@@ -1 +1 @@
1
- {"version":3,"file":"vueIntegration.js","sources":["../../../src/client/vueIntegration.ts"],"sourcesContent":["import { defineIntegration, GLOBAL_OBJ } from '@sentry/core';\nimport type { VueIntegrationOptions } from '@sentry/vue';\n\ntype Options = Omit<VueIntegrationOptions, 'app' | 'Vue'>;\n\n// Since the options object needs to cross the boundary between some builds (i.e. the nuxt module build and our client\n// SDK build) we cannot use a getter that is exported from here. Instead we'll pass the options object through a global\n// to the module.\nexport type GlobalObjWithIntegrationOptions = { _sentryNuxtVueIntegrationOptions?: Options };\n\n// The vue integration is actually set up in the Sentry Client Module. There it is set up as soon as the nuxt app object is available.\n// However, we need to export the vueIntegration from the Client SDK. This means all this integration does is store away\n// its options for the Sentry Client Module to pick them up when initializing the actual vueIntegration.\n\n/**\n * Add additional error and span instrumentation specialized for Vue.\n */\nexport const vueIntegration = defineIntegration((options: Options = {}) => {\n return {\n // NOTE: This name is different from the original vueIntegration's name.\n name: 'NuxtVueIntegration',\n setup() {\n (GLOBAL_OBJ as GlobalObjWithIntegrationOptions)._sentryNuxtVueIntegrationOptions = options;\n },\n };\n});\n"],"names":["defineIntegration","GLOBAL_OBJ"],"mappings":";;;;AAUA;AACA;AACA;;AAEA;AACA;AACA;AACO,MAAM,cAAA,GAAiBA,sBAAiB,CAAC,CAAC,OAAO,GAAY,EAAE,KAAK;AAC3E,EAAE,OAAO;AACT;AACA,IAAI,IAAI,EAAE,oBAAoB;AAC9B,IAAI,KAAK,GAAG;AACZ,MAAM,CAACC,eAAA,GAA+C,gCAAA,GAAmC,OAAO;AAChG,IAAI,CAAC;AACL,GAAG;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"vueIntegration.js","sources":["../../../src/client/vueIntegration.ts"],"sourcesContent":["import { defineIntegration, GLOBAL_OBJ } from '@sentry/core';\nimport type { VueIntegrationOptions } from '@sentry/vue';\n\ntype Options = Omit<VueIntegrationOptions, 'app' | 'Vue'>;\n\n// Since the options object needs to cross the boundary between some builds (i.e. the nuxt module build and our client\n// SDK build) we cannot use a getter that is exported from here. Instead we'll pass the options object through a global\n// to the module.\nexport type GlobalObjWithIntegrationOptions = { _sentryNuxtVueIntegrationOptions?: Options };\n\n// The vue integration is actually set up in the Sentry Client Module. There it is set up as soon as the nuxt app object is available.\n// However, we need to export the vueIntegration from the Client SDK. This means all this integration does is store away\n// its options for the Sentry Client Module to pick them up when initializing the actual vueIntegration.\n\n/**\n * Add additional error and span instrumentation specialized for Vue.\n */\nexport const vueIntegration = defineIntegration((options: Options = {}) => {\n return {\n // NOTE: This name is different from the original vueIntegration's name.\n name: 'NuxtVueIntegration',\n setup() {\n (GLOBAL_OBJ as GlobalObjWithIntegrationOptions)._sentryNuxtVueIntegrationOptions = options;\n },\n };\n});\n"],"names":["defineIntegration","GLOBAL_OBJ"],"mappings":";;;;AAiBO,MAAM,cAAA,GAAiBA,sBAAA,CAAkB,CAAC,OAAA,GAAmB,EAAC,KAAM;AACzE,EAAA,OAAO;AAAA;AAAA,IAEL,IAAA,EAAM,oBAAA;AAAA,IACN,KAAA,GAAQ;AACN,MAACC,gBAA+C,gCAAA,GAAmC,OAAA;AAAA,IACrF;AAAA,GACF;AACF,CAAC;;;;"}
@@ -1,10 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
- /**
4
- * 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.
5
- *
6
- * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.
7
- */
8
3
  const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);
9
4
 
10
5
  exports.DEBUG_BUILD = DEBUG_BUILD;
@@ -1 +1 @@
1
- {"version":3,"file":"debug-build.js","sources":["../../../src/common/debug-build.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"],"names":[],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACO,MAAM,WAAA,IAAc,OAAA,gBAAA,KAAA,WAAA,IAAA,gBAAA;;;;"}
1
+ {"version":3,"file":"debug-build.js","sources":["../../../src/common/debug-build.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"],"names":[],"mappings":";;AAOO,MAAM,WAAA,IAAc,OAAA,gBAAA,KAAA,WAAA,IAAA,gBAAA;;;;"}
@@ -11,40 +11,34 @@ const utils = require('./vite/utils.js');
11
11
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
12
12
  const module$1 = kit.defineNuxtModule({
13
13
  meta: {
14
- name: '@sentry/nuxt/module',
15
- configKey: 'sentry',
14
+ name: "@sentry/nuxt/module",
15
+ configKey: "sentry",
16
16
  compatibility: {
17
- nuxt: '>=3.7.0',
18
- },
17
+ nuxt: ">=3.7.0"
18
+ }
19
19
  },
20
20
  defaults: {},
21
21
  async setup(moduleOptionsParam, nuxt) {
22
22
  if (moduleOptionsParam?.enabled === false) {
23
23
  return;
24
24
  }
25
-
26
25
  const moduleOptions = {
27
26
  ...moduleOptionsParam,
28
27
  autoInjectServerSentry: moduleOptionsParam.autoInjectServerSentry,
29
28
  experimental_entrypointWrappedFunctions: moduleOptionsParam.experimental_entrypointWrappedFunctions || [
30
- 'default',
31
- 'handler',
32
- 'server',
33
- ],
29
+ "default",
30
+ "handler",
31
+ "server"
32
+ ]
34
33
  };
35
-
36
34
  const moduleDirResolver = kit.createResolver((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('module.js', document.baseURI).href)));
37
35
  const buildDirResolver = kit.createResolver(nuxt.options.buildDir);
38
-
39
- const clientConfigFile = utils.findDefaultSdkInitFile('client', nuxt);
40
-
36
+ const clientConfigFile = await utils.findDefaultSdkInitFile("client", nuxt, moduleOptions);
41
37
  if (clientConfigFile) {
42
- // Inject the client-side Sentry config file with a side effect import
43
38
  kit.addPluginTemplate({
44
- mode: 'client',
45
- filename: 'sentry-client-config.mjs',
39
+ mode: "client",
40
+ filename: "sentry-client-config.mjs",
46
41
  order: 0,
47
-
48
42
  // Dynamic import of config file to wrap it within a Nuxt context (here: defineNuxtPlugin)
49
43
  // Makes it possible to call useRuntimeConfig() in the user-defined sentry config file
50
44
  getContents: () => `
@@ -55,91 +49,64 @@ const module$1 = kit.defineNuxtModule({
55
49
  async setup() {
56
50
  await import("${buildDirResolver.resolve(`/${clientConfigFile}`)}")
57
51
  }
58
- });`,
52
+ });`
59
53
  });
60
-
61
- // Add the plugin which loads client integrations etc. -
62
- // this must run after the sentry-client-config plugin has run, and the client is initialized!
63
54
  kit.addPlugin({
64
- src: moduleDirResolver.resolve('./runtime/plugins/sentry.client'),
65
- mode: 'client',
66
- order: 1,
55
+ src: moduleDirResolver.resolve("./runtime/plugins/sentry.client"),
56
+ mode: "client",
57
+ order: 1
67
58
  });
68
59
  }
69
-
70
- const serverConfigFile = utils.findDefaultSdkInitFile('server', nuxt);
71
- const isNitroV3 = (await utils.getNitroMajorVersion()) >= 3;
72
- const nuxtMajor = parseInt((nuxt )._version?.split('.')[0] ?? '3', 10);
60
+ const serverConfigFile = await utils.findDefaultSdkInitFile("server", nuxt, moduleOptions);
61
+ const isNitroV3 = await utils.getNitroMajorVersion() >= 3;
62
+ const nuxtMajor = parseInt(nuxt._version?.split(".")[0] ?? "3", 10);
73
63
  const isMinNuxtV4 = nuxtMajor >= 4;
74
-
75
64
  if (serverConfigFile) {
76
65
  if (isNitroV3) {
77
- kit.addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/handler.server'));
78
- kit.addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/update-route-name.server'));
66
+ kit.addServerPlugin(moduleDirResolver.resolve("./runtime/plugins/handler.server"));
67
+ kit.addServerPlugin(moduleDirResolver.resolve("./runtime/plugins/update-route-name.server"));
79
68
  } else {
80
- kit.addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/handler-legacy.server'));
81
- kit.addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/update-route-name-legacy.server'));
69
+ kit.addServerPlugin(moduleDirResolver.resolve("./runtime/plugins/handler-legacy.server"));
70
+ kit.addServerPlugin(moduleDirResolver.resolve("./runtime/plugins/update-route-name-legacy.server"));
82
71
  }
83
-
84
- kit.addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/sentry.server'));
85
-
72
+ kit.addServerPlugin(moduleDirResolver.resolve("./runtime/plugins/sentry.server"));
86
73
  if (isMinNuxtV4) {
87
- kit.addPlugin({ src: moduleDirResolver.resolve('./runtime/plugins/route-detector.server'), mode: 'server' });
74
+ kit.addPlugin({ src: moduleDirResolver.resolve("./runtime/plugins/route-detector.server"), mode: "server" });
88
75
  } else {
89
- kit.addPlugin({ src: moduleDirResolver.resolve('./runtime/plugins/route-detector-legacy.server'), mode: 'server' });
76
+ kit.addPlugin({ src: moduleDirResolver.resolve("./runtime/plugins/route-detector-legacy.server"), mode: "server" });
90
77
  }
91
-
92
- // Preps the middleware instrumentation module.
93
78
  middlewareConfig.addMiddlewareImports();
94
79
  storageConfig.addStorageInstrumentation(nuxt, !isNitroV3);
95
80
  databaseConfig.addDatabaseInstrumentation(nuxt.options.nitro, !isNitroV3, moduleOptions);
96
81
  }
97
-
98
82
  if (clientConfigFile || serverConfigFile) {
99
83
  sourceMaps.setupSourceMaps(moduleOptions, nuxt, kit.addVitePlugin);
100
84
  }
101
-
102
85
  utils.addOTelCommonJSImportAlias(nuxt, isNitroV3);
103
-
104
86
  let pagesData = [];
105
-
106
- nuxt.hooks.hook('pages:extend', pages => {
107
- pagesData = pages
108
- .map(page => ({ file: page.file, path: page.path }))
109
- .filter(page => {
110
- // Check for dynamic parameter (e.g., :userId or [userId])
111
- return page.path.includes(':') || page?.file?.includes('[');
112
- });
87
+ nuxt.hooks.hook("pages:extend", (pages) => {
88
+ pagesData = pages.map((page) => ({ file: page.file, path: page.path })).filter((page) => {
89
+ return page.path.includes(":") || page?.file?.includes("[");
90
+ });
113
91
  });
114
-
115
92
  if (isMinNuxtV4) {
116
- const pagesDataVirtualModuleId = '#sentry/nuxt-pages-data.mjs';
117
-
118
- // Vite virtual plugin (for the Vite SSR build, where addPlugin mode:'server' plugins are bundled)
93
+ const pagesDataVirtualModuleId = "#sentry/nuxt-pages-data.mjs";
119
94
  kit.addVitePlugin({
120
- name: 'sentry-nuxt-pages-data-virtual',
121
- resolveId: id => (id === pagesDataVirtualModuleId ? `\0${pagesDataVirtualModuleId}` : null),
122
- load: id =>
123
- id === `\0${pagesDataVirtualModuleId}` ? `export default ${JSON.stringify(pagesData, null, 2)};` : undefined,
95
+ name: "sentry-nuxt-pages-data-virtual",
96
+ resolveId: (id) => id === pagesDataVirtualModuleId ? `\0${pagesDataVirtualModuleId}` : null,
97
+ load: (id) => id === `\0${pagesDataVirtualModuleId}` ? `export default ${JSON.stringify(pagesData, null, 2)};` : void 0
124
98
  });
125
99
  } else {
126
- // Nuxt v3: register as a build template (accessible via #build/)
127
100
  kit.addTemplate({
128
- filename: 'sentry--nuxt-pages-data.mjs',
129
- getContents: () => `export default ${JSON.stringify(pagesData, null, 2)};`,
101
+ filename: "sentry--nuxt-pages-data.mjs",
102
+ getContents: () => `export default ${JSON.stringify(pagesData, null, 2)};`
130
103
  });
131
104
  }
132
-
133
- // Add the sentry config file to the include array
134
- nuxt.hook('prepare:types', options => {
135
- const tsConfig = options.tsConfig ;
136
-
105
+ nuxt.hook("prepare:types", (options) => {
106
+ const tsConfig = options.tsConfig;
137
107
  if (!tsConfig.include) {
138
108
  tsConfig.include = [];
139
109
  }
140
-
141
- // Add type references for useRuntimeConfig in root files for nuxt v4
142
- // Should be relative to `root/.nuxt`
143
110
  if (clientConfigFile) {
144
111
  const relativePath = path.relative(nuxt.options.buildDir, clientConfigFile);
145
112
  tsConfig.include.push(relativePath);
@@ -149,87 +116,65 @@ const module$1 = kit.defineNuxtModule({
149
116
  tsConfig.include.push(relativePath);
150
117
  }
151
118
  });
152
-
153
- nuxt.hooks.hook('nitro:init', nitro => {
119
+ nuxt.hooks.hook("nitro:init", (nitro) => {
154
120
  if (nuxt.options?._prepare) {
155
121
  return;
156
122
  }
157
-
158
123
  if (serverConfigFile) {
159
124
  middlewareConfig.addMiddlewareInstrumentation(nitro);
160
125
  }
161
-
162
- if (serverConfigFile?.includes('.server.config')) {
126
+ if (serverConfigFile?.includes(".server.config")) {
163
127
  core.consoleSandbox(() => {
164
128
  const serverDir = nitro.options.output.serverDir;
165
-
166
- // Netlify env: https://docs.netlify.com/configure-builds/environment-variables/#build-metadata
167
- if (serverDir.includes('.netlify') || !!process.env.NETLIFY) {
168
- // eslint-disable-next-line no-console
129
+ if (serverDir.includes(".netlify") || !!process.env.NETLIFY) {
169
130
  console.warn(
170
- '[Sentry] Warning: The Sentry SDK detected a Netlify build. Server-side support for the Sentry Nuxt SDK on Netlify is currently unreliable due to technical limitations of serverless functions. Traces are not collected, and errors may occasionally not be reported. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/',
131
+ "[Sentry] Warning: The Sentry SDK detected a Netlify build. Server-side support for the Sentry Nuxt SDK on Netlify is currently unreliable due to technical limitations of serverless functions. Traces are not collected, and errors may occasionally not be reported. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/"
171
132
  );
172
133
  }
173
-
174
- // Vercel env: https://vercel.com/docs/projects/environment-variables/system-environment-variables#VERCEL
175
- if (serverDir.includes('.vercel') || !!process.env.VERCEL) {
176
- // eslint-disable-next-line no-console
134
+ if (serverDir.includes(".vercel") || !!process.env.VERCEL) {
177
135
  console.warn(
178
- '[Sentry] Warning: The Sentry SDK detected a Vercel build. The Sentry Nuxt SDK currently does not support tracing on Vercel. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/',
136
+ "[Sentry] Warning: The Sentry SDK detected a Vercel build. The Sentry Nuxt SDK currently does not support tracing on Vercel. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/"
179
137
  );
180
138
  }
181
139
  });
182
-
183
- if (moduleOptions.autoInjectServerSentry !== 'experimental_dynamic-import') {
140
+ if (moduleOptions.autoInjectServerSentry !== "experimental_dynamic-import") {
184
141
  addServerConfig.addServerConfigToBuild(moduleOptions, nitro, serverConfigFile);
185
-
186
142
  if (moduleOptions.debug) {
187
143
  const serverDirResolver = kit.createResolver(nitro.options.output.serverDir);
188
- const serverConfigPath = serverDirResolver.resolve('sentry.server.config.mjs');
189
-
190
- // For the default nitro node-preset build output this relative path would be: ./.output/server/sentry.server.config.mjs
144
+ const serverConfigPath = serverDirResolver.resolve("sentry.server.config.mjs");
191
145
  const serverConfigRelativePath = `.${path.sep}${path.relative(nitro.options.rootDir, serverConfigPath)}`;
192
-
193
146
  core.consoleSandbox(() => {
194
- // eslint-disable-next-line no-console
195
147
  console.log(
196
- `[Sentry] Using \`${serverConfigFile}\` for server-side Sentry configuration. To activate Sentry on the Nuxt server-side, this file must be preloaded when starting your application. Make sure to add this where you deploy and/or run your application. Read more here: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/.`,
148
+ `[Sentry] Using \`${serverConfigFile}\` for server-side Sentry configuration. To activate Sentry on the Nuxt server-side, this file must be preloaded when starting your application. Make sure to add this where you deploy and/or run your application. Read more here: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/.`
197
149
  );
198
-
199
150
  if (nitro.options.dev) {
200
- // eslint-disable-next-line no-console
201
151
  console.log(
202
- `[Sentry] During development, preload Sentry with the NODE_OPTIONS environment variable: \`NODE_OPTIONS='--import ${serverConfigRelativePath}' nuxt dev\`. The file is generated in the build directory (usually '.nuxt'). If you delete the build directory, run \`nuxt dev\` to regenerate it.`,
152
+ `[Sentry] During development, preload Sentry with the NODE_OPTIONS environment variable: \`NODE_OPTIONS='--import ${serverConfigRelativePath}' nuxt dev\`. The file is generated in the build directory (usually '.nuxt'). If you delete the build directory, run \`nuxt dev\` to regenerate it.`
203
153
  );
204
154
  } else {
205
- // eslint-disable-next-line no-console
206
155
  console.log(
207
- `[Sentry] When running your built application, preload Sentry via a command-line flag (\`node --import ${serverConfigRelativePath} [...]\`) or via an environment variable (\`NODE_OPTIONS='--import ${serverConfigRelativePath}' node [...]\`).`,
156
+ `[Sentry] When running your built application, preload Sentry via a command-line flag (\`node --import ${serverConfigRelativePath} [...]\`) or via an environment variable (\`NODE_OPTIONS='--import ${serverConfigRelativePath}' node [...]\`).`
208
157
  );
209
158
  }
210
159
  });
211
160
  }
212
161
  }
213
-
214
- if (moduleOptions.autoInjectServerSentry === 'top-level-import') {
162
+ if (moduleOptions.autoInjectServerSentry === "top-level-import") {
215
163
  addServerConfig.addSentryTopImport(moduleOptions, nitro);
216
164
  }
217
-
218
- if (moduleOptions.autoInjectServerSentry === 'experimental_dynamic-import') {
165
+ if (moduleOptions.autoInjectServerSentry === "experimental_dynamic-import") {
219
166
  addServerConfig.addDynamicImportEntryFileWrapper(nitro, serverConfigFile, moduleOptions);
220
-
221
167
  if (moduleOptions.debug) {
222
168
  core.consoleSandbox(() => {
223
- // eslint-disable-next-line no-console
224
169
  console.log(
225
- '[Sentry] Wrapping the server entry file with a dynamic `import()`, so Sentry can be preloaded before the server initializes.',
170
+ "[Sentry] Wrapping the server entry file with a dynamic `import()`, so Sentry can be preloaded before the server initializes."
226
171
  );
227
172
  });
228
173
  }
229
174
  }
230
175
  }
231
176
  });
232
- },
177
+ }
233
178
  });
234
179
 
235
180
  module.exports = module$1;
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../../src/module.ts"],"sourcesContent":["import {\n addPlugin,\n addPluginTemplate,\n addServerPlugin,\n addTemplate,\n addVitePlugin,\n createResolver,\n defineNuxtModule,\n} from '@nuxt/kit';\nimport { consoleSandbox } from '@sentry/core';\nimport * as path from 'path';\nimport type { SentryNuxtModuleOptions } from './common/types';\nimport { addDynamicImportEntryFileWrapper, addSentryTopImport, addServerConfigToBuild } from './vite/addServerConfig';\nimport { addDatabaseInstrumentation } from './vite/databaseConfig';\nimport { addMiddlewareImports, addMiddlewareInstrumentation } from './vite/middlewareConfig';\nimport { setupSourceMaps } from './vite/sourceMaps';\nimport { addStorageInstrumentation } from './vite/storageConfig';\nimport { addOTelCommonJSImportAlias, findDefaultSdkInitFile, getNitroMajorVersion } from './vite/utils';\n\nexport type ModuleOptions = SentryNuxtModuleOptions;\ntype NuxtPageSubset = { file?: string; path: string };\n\nexport default defineNuxtModule<ModuleOptions>({\n meta: {\n name: '@sentry/nuxt/module',\n configKey: 'sentry',\n compatibility: {\n nuxt: '>=3.7.0',\n },\n },\n defaults: {},\n async setup(moduleOptionsParam, nuxt) {\n if (moduleOptionsParam?.enabled === false) {\n return;\n }\n\n const moduleOptions = {\n ...moduleOptionsParam,\n autoInjectServerSentry: moduleOptionsParam.autoInjectServerSentry,\n experimental_entrypointWrappedFunctions: moduleOptionsParam.experimental_entrypointWrappedFunctions || [\n 'default',\n 'handler',\n 'server',\n ],\n };\n\n const moduleDirResolver = createResolver(import.meta.url);\n const buildDirResolver = createResolver(nuxt.options.buildDir);\n\n const clientConfigFile = findDefaultSdkInitFile('client', nuxt);\n\n if (clientConfigFile) {\n // Inject the client-side Sentry config file with a side effect import\n addPluginTemplate({\n mode: 'client',\n filename: 'sentry-client-config.mjs',\n order: 0,\n\n // Dynamic import of config file to wrap it within a Nuxt context (here: defineNuxtPlugin)\n // Makes it possible to call useRuntimeConfig() in the user-defined sentry config file\n getContents: () => `\n import { defineNuxtPlugin } from \"#imports\";\n\n export default defineNuxtPlugin({\n name: 'sentry-client-config',\n async setup() {\n await import(\"${buildDirResolver.resolve(`/${clientConfigFile}`)}\")\n }\n });`,\n });\n\n // Add the plugin which loads client integrations etc. -\n // this must run after the sentry-client-config plugin has run, and the client is initialized!\n addPlugin({\n src: moduleDirResolver.resolve('./runtime/plugins/sentry.client'),\n mode: 'client',\n order: 1,\n });\n }\n\n const serverConfigFile = findDefaultSdkInitFile('server', nuxt);\n const isNitroV3 = (await getNitroMajorVersion()) >= 3;\n const nuxtMajor = parseInt((nuxt as unknown as { _version: string })._version?.split('.')[0] ?? '3', 10);\n const isMinNuxtV4 = nuxtMajor >= 4;\n\n if (serverConfigFile) {\n if (isNitroV3) {\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/handler.server'));\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/update-route-name.server'));\n } else {\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/handler-legacy.server'));\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/update-route-name-legacy.server'));\n }\n\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/sentry.server'));\n\n if (isMinNuxtV4) {\n addPlugin({ src: moduleDirResolver.resolve('./runtime/plugins/route-detector.server'), mode: 'server' });\n } else {\n addPlugin({ src: moduleDirResolver.resolve('./runtime/plugins/route-detector-legacy.server'), mode: 'server' });\n }\n\n // Preps the middleware instrumentation module.\n addMiddlewareImports();\n addStorageInstrumentation(nuxt, !isNitroV3);\n addDatabaseInstrumentation(nuxt.options.nitro, !isNitroV3, moduleOptions);\n }\n\n if (clientConfigFile || serverConfigFile) {\n setupSourceMaps(moduleOptions, nuxt, addVitePlugin);\n }\n\n addOTelCommonJSImportAlias(nuxt, isNitroV3);\n\n let pagesData: NuxtPageSubset[] = [];\n\n nuxt.hooks.hook('pages:extend', pages => {\n pagesData = pages\n .map(page => ({ file: page.file, path: page.path }))\n .filter(page => {\n // Check for dynamic parameter (e.g., :userId or [userId])\n return page.path.includes(':') || page?.file?.includes('[');\n });\n });\n\n if (isMinNuxtV4) {\n const pagesDataVirtualModuleId = '#sentry/nuxt-pages-data.mjs';\n\n // Vite virtual plugin (for the Vite SSR build, where addPlugin mode:'server' plugins are bundled)\n addVitePlugin({\n name: 'sentry-nuxt-pages-data-virtual',\n resolveId: id => (id === pagesDataVirtualModuleId ? `\\0${pagesDataVirtualModuleId}` : null),\n load: id =>\n id === `\\0${pagesDataVirtualModuleId}` ? `export default ${JSON.stringify(pagesData, null, 2)};` : undefined,\n });\n } else {\n // Nuxt v3: register as a build template (accessible via #build/)\n addTemplate({\n filename: 'sentry--nuxt-pages-data.mjs',\n getContents: () => `export default ${JSON.stringify(pagesData, null, 2)};`,\n });\n }\n\n // Add the sentry config file to the include array\n nuxt.hook('prepare:types', options => {\n const tsConfig = options.tsConfig as { include?: string[] };\n\n if (!tsConfig.include) {\n tsConfig.include = [];\n }\n\n // Add type references for useRuntimeConfig in root files for nuxt v4\n // Should be relative to `root/.nuxt`\n if (clientConfigFile) {\n const relativePath = path.relative(nuxt.options.buildDir, clientConfigFile);\n tsConfig.include.push(relativePath);\n }\n if (serverConfigFile) {\n const relativePath = path.relative(nuxt.options.buildDir, serverConfigFile);\n tsConfig.include.push(relativePath);\n }\n });\n\n nuxt.hooks.hook('nitro:init', nitro => {\n if (nuxt.options?._prepare) {\n return;\n }\n\n if (serverConfigFile) {\n addMiddlewareInstrumentation(nitro);\n }\n\n if (serverConfigFile?.includes('.server.config')) {\n consoleSandbox(() => {\n const serverDir = nitro.options.output.serverDir;\n\n // Netlify env: https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n if (serverDir.includes('.netlify') || !!process.env.NETLIFY) {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Warning: The Sentry SDK detected a Netlify build. Server-side support for the Sentry Nuxt SDK on Netlify is currently unreliable due to technical limitations of serverless functions. Traces are not collected, and errors may occasionally not be reported. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/',\n );\n }\n\n // Vercel env: https://vercel.com/docs/projects/environment-variables/system-environment-variables#VERCEL\n if (serverDir.includes('.vercel') || !!process.env.VERCEL) {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Warning: The Sentry SDK detected a Vercel build. The Sentry Nuxt SDK currently does not support tracing on Vercel. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/',\n );\n }\n });\n\n if (moduleOptions.autoInjectServerSentry !== 'experimental_dynamic-import') {\n addServerConfigToBuild(moduleOptions, nitro, serverConfigFile);\n\n if (moduleOptions.debug) {\n const serverDirResolver = createResolver(nitro.options.output.serverDir);\n const serverConfigPath = serverDirResolver.resolve('sentry.server.config.mjs');\n\n // For the default nitro node-preset build output this relative path would be: ./.output/server/sentry.server.config.mjs\n const serverConfigRelativePath = `.${path.sep}${path.relative(nitro.options.rootDir, serverConfigPath)}`;\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] Using \\`${serverConfigFile}\\` for server-side Sentry configuration. To activate Sentry on the Nuxt server-side, this file must be preloaded when starting your application. Make sure to add this where you deploy and/or run your application. Read more here: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/.`,\n );\n\n if (nitro.options.dev) {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] During development, preload Sentry with the NODE_OPTIONS environment variable: \\`NODE_OPTIONS='--import ${serverConfigRelativePath}' nuxt dev\\`. The file is generated in the build directory (usually '.nuxt'). If you delete the build directory, run \\`nuxt dev\\` to regenerate it.`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] When running your built application, preload Sentry via a command-line flag (\\`node --import ${serverConfigRelativePath} [...]\\`) or via an environment variable (\\`NODE_OPTIONS='--import ${serverConfigRelativePath}' node [...]\\`).`,\n );\n }\n });\n }\n }\n\n if (moduleOptions.autoInjectServerSentry === 'top-level-import') {\n addSentryTopImport(moduleOptions, nitro);\n }\n\n if (moduleOptions.autoInjectServerSentry === 'experimental_dynamic-import') {\n addDynamicImportEntryFileWrapper(nitro, serverConfigFile, moduleOptions);\n\n if (moduleOptions.debug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n '[Sentry] Wrapping the server entry file with a dynamic `import()`, so Sentry can be preloaded before the server initializes.',\n );\n });\n }\n }\n }\n });\n },\n});\n"],"names":["defineNuxtModule","createResolver","findDefaultSdkInitFile","addPluginTemplate","addPlugin","getNitroMajorVersion","addServerPlugin","addMiddlewareImports","addStorageInstrumentation","addDatabaseInstrumentation","setupSourceMaps","addVitePlugin","addOTelCommonJSImportAlias","addTemplate","addMiddlewareInstrumentation","consoleSandbox","addServerConfigToBuild","addSentryTopImport","addDynamicImportEntryFileWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../../src/module.ts"],"sourcesContent":["import {\n addPlugin,\n addPluginTemplate,\n addServerPlugin,\n addTemplate,\n addVitePlugin,\n createResolver,\n defineNuxtModule,\n} from '@nuxt/kit';\nimport { consoleSandbox } from '@sentry/core';\nimport * as path from 'path';\nimport type { SentryNuxtModuleOptions } from './common/types';\nimport { addDynamicImportEntryFileWrapper, addSentryTopImport, addServerConfigToBuild } from './vite/addServerConfig';\nimport { addDatabaseInstrumentation } from './vite/databaseConfig';\nimport { addMiddlewareImports, addMiddlewareInstrumentation } from './vite/middlewareConfig';\nimport { setupSourceMaps } from './vite/sourceMaps';\nimport { addStorageInstrumentation } from './vite/storageConfig';\nimport { addOTelCommonJSImportAlias, findDefaultSdkInitFile, getNitroMajorVersion } from './vite/utils';\n\nexport type ModuleOptions = SentryNuxtModuleOptions;\ntype NuxtPageSubset = { file?: string; path: string };\n\nexport default defineNuxtModule<ModuleOptions>({\n meta: {\n name: '@sentry/nuxt/module',\n configKey: 'sentry',\n compatibility: {\n nuxt: '>=3.7.0',\n },\n },\n defaults: {},\n async setup(moduleOptionsParam, nuxt) {\n if (moduleOptionsParam?.enabled === false) {\n return;\n }\n\n const moduleOptions = {\n ...moduleOptionsParam,\n autoInjectServerSentry: moduleOptionsParam.autoInjectServerSentry,\n experimental_entrypointWrappedFunctions: moduleOptionsParam.experimental_entrypointWrappedFunctions || [\n 'default',\n 'handler',\n 'server',\n ],\n };\n\n const moduleDirResolver = createResolver(import.meta.url);\n const buildDirResolver = createResolver(nuxt.options.buildDir);\n\n const clientConfigFile = await findDefaultSdkInitFile('client', nuxt, moduleOptions);\n\n if (clientConfigFile) {\n // Inject the client-side Sentry config file with a side effect import\n addPluginTemplate({\n mode: 'client',\n filename: 'sentry-client-config.mjs',\n order: 0,\n\n // Dynamic import of config file to wrap it within a Nuxt context (here: defineNuxtPlugin)\n // Makes it possible to call useRuntimeConfig() in the user-defined sentry config file\n getContents: () => `\n import { defineNuxtPlugin } from \"#imports\";\n\n export default defineNuxtPlugin({\n name: 'sentry-client-config',\n async setup() {\n await import(\"${buildDirResolver.resolve(`/${clientConfigFile}`)}\")\n }\n });`,\n });\n\n // Add the plugin which loads client integrations etc. -\n // this must run after the sentry-client-config plugin has run, and the client is initialized!\n addPlugin({\n src: moduleDirResolver.resolve('./runtime/plugins/sentry.client'),\n mode: 'client',\n order: 1,\n });\n }\n\n const serverConfigFile = await findDefaultSdkInitFile('server', nuxt, moduleOptions);\n const isNitroV3 = (await getNitroMajorVersion()) >= 3;\n const nuxtMajor = parseInt((nuxt as unknown as { _version: string })._version?.split('.')[0] ?? '3', 10);\n const isMinNuxtV4 = nuxtMajor >= 4;\n\n if (serverConfigFile) {\n if (isNitroV3) {\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/handler.server'));\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/update-route-name.server'));\n } else {\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/handler-legacy.server'));\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/update-route-name-legacy.server'));\n }\n\n addServerPlugin(moduleDirResolver.resolve('./runtime/plugins/sentry.server'));\n\n if (isMinNuxtV4) {\n addPlugin({ src: moduleDirResolver.resolve('./runtime/plugins/route-detector.server'), mode: 'server' });\n } else {\n addPlugin({ src: moduleDirResolver.resolve('./runtime/plugins/route-detector-legacy.server'), mode: 'server' });\n }\n\n // Preps the middleware instrumentation module.\n addMiddlewareImports();\n addStorageInstrumentation(nuxt, !isNitroV3);\n addDatabaseInstrumentation(nuxt.options.nitro, !isNitroV3, moduleOptions);\n }\n\n if (clientConfigFile || serverConfigFile) {\n setupSourceMaps(moduleOptions, nuxt, addVitePlugin);\n }\n\n addOTelCommonJSImportAlias(nuxt, isNitroV3);\n\n let pagesData: NuxtPageSubset[] = [];\n\n nuxt.hooks.hook('pages:extend', pages => {\n pagesData = pages\n .map(page => ({ file: page.file, path: page.path }))\n .filter(page => {\n // Check for dynamic parameter (e.g., :userId or [userId])\n return page.path.includes(':') || page?.file?.includes('[');\n });\n });\n\n if (isMinNuxtV4) {\n const pagesDataVirtualModuleId = '#sentry/nuxt-pages-data.mjs';\n\n // Vite virtual plugin (for the Vite SSR build, where addPlugin mode:'server' plugins are bundled)\n addVitePlugin({\n name: 'sentry-nuxt-pages-data-virtual',\n resolveId: id => (id === pagesDataVirtualModuleId ? `\\0${pagesDataVirtualModuleId}` : null),\n load: id =>\n id === `\\0${pagesDataVirtualModuleId}` ? `export default ${JSON.stringify(pagesData, null, 2)};` : undefined,\n });\n } else {\n // Nuxt v3: register as a build template (accessible via #build/)\n addTemplate({\n filename: 'sentry--nuxt-pages-data.mjs',\n getContents: () => `export default ${JSON.stringify(pagesData, null, 2)};`,\n });\n }\n\n // Add the sentry config file to the include array\n nuxt.hook('prepare:types', options => {\n const tsConfig = options.tsConfig as { include?: string[] };\n\n if (!tsConfig.include) {\n tsConfig.include = [];\n }\n\n // Add type references for useRuntimeConfig in root files for nuxt v4\n // Should be relative to `root/.nuxt`\n if (clientConfigFile) {\n const relativePath = path.relative(nuxt.options.buildDir, clientConfigFile);\n tsConfig.include.push(relativePath);\n }\n if (serverConfigFile) {\n const relativePath = path.relative(nuxt.options.buildDir, serverConfigFile);\n tsConfig.include.push(relativePath);\n }\n });\n\n nuxt.hooks.hook('nitro:init', nitro => {\n if (nuxt.options?._prepare) {\n return;\n }\n\n if (serverConfigFile) {\n addMiddlewareInstrumentation(nitro);\n }\n\n if (serverConfigFile?.includes('.server.config')) {\n consoleSandbox(() => {\n const serverDir = nitro.options.output.serverDir;\n\n // Netlify env: https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n if (serverDir.includes('.netlify') || !!process.env.NETLIFY) {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Warning: The Sentry SDK detected a Netlify build. Server-side support for the Sentry Nuxt SDK on Netlify is currently unreliable due to technical limitations of serverless functions. Traces are not collected, and errors may occasionally not be reported. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/',\n );\n }\n\n // Vercel env: https://vercel.com/docs/projects/environment-variables/system-environment-variables#VERCEL\n if (serverDir.includes('.vercel') || !!process.env.VERCEL) {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Warning: The Sentry SDK detected a Vercel build. The Sentry Nuxt SDK currently does not support tracing on Vercel. For more information on setting up Sentry on the Nuxt server-side, please refer to the documentation: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/',\n );\n }\n });\n\n if (moduleOptions.autoInjectServerSentry !== 'experimental_dynamic-import') {\n addServerConfigToBuild(moduleOptions, nitro, serverConfigFile);\n\n if (moduleOptions.debug) {\n const serverDirResolver = createResolver(nitro.options.output.serverDir);\n const serverConfigPath = serverDirResolver.resolve('sentry.server.config.mjs');\n\n // For the default nitro node-preset build output this relative path would be: ./.output/server/sentry.server.config.mjs\n const serverConfigRelativePath = `.${path.sep}${path.relative(nitro.options.rootDir, serverConfigPath)}`;\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] Using \\`${serverConfigFile}\\` for server-side Sentry configuration. To activate Sentry on the Nuxt server-side, this file must be preloaded when starting your application. Make sure to add this where you deploy and/or run your application. Read more here: https://docs.sentry.io/platforms/javascript/guides/nuxt/install/.`,\n );\n\n if (nitro.options.dev) {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] During development, preload Sentry with the NODE_OPTIONS environment variable: \\`NODE_OPTIONS='--import ${serverConfigRelativePath}' nuxt dev\\`. The file is generated in the build directory (usually '.nuxt'). If you delete the build directory, run \\`nuxt dev\\` to regenerate it.`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\n `[Sentry] When running your built application, preload Sentry via a command-line flag (\\`node --import ${serverConfigRelativePath} [...]\\`) or via an environment variable (\\`NODE_OPTIONS='--import ${serverConfigRelativePath}' node [...]\\`).`,\n );\n }\n });\n }\n }\n\n if (moduleOptions.autoInjectServerSentry === 'top-level-import') {\n addSentryTopImport(moduleOptions, nitro);\n }\n\n if (moduleOptions.autoInjectServerSentry === 'experimental_dynamic-import') {\n addDynamicImportEntryFileWrapper(nitro, serverConfigFile, moduleOptions);\n\n if (moduleOptions.debug) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.log(\n '[Sentry] Wrapping the server entry file with a dynamic `import()`, so Sentry can be preloaded before the server initializes.',\n );\n });\n }\n }\n }\n });\n },\n});\n"],"names":["defineNuxtModule","createResolver","findDefaultSdkInitFile","addPluginTemplate","addPlugin","getNitroMajorVersion","addServerPlugin","addMiddlewareImports","addStorageInstrumentation","addDatabaseInstrumentation","setupSourceMaps","addVitePlugin","addOTelCommonJSImportAlias","addTemplate","addMiddlewareInstrumentation","consoleSandbox","addServerConfigToBuild","addSentryTopImport","addDynamicImportEntryFileWrapper"],"mappings":"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"}