@strapi/plugin-sentry 5.8.1 → 5.10.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 (75) hide show
  1. package/dist/admin/chunks/dk-2c1X5YD1.mjs +8 -0
  2. package/dist/admin/chunks/dk-2c1X5YD1.mjs.map +1 -0
  3. package/dist/admin/chunks/dk-C64Vk1_X.js +10 -0
  4. package/dist/admin/chunks/dk-C64Vk1_X.js.map +1 -0
  5. package/dist/admin/chunks/en-CzMdlTs0.js +10 -0
  6. package/dist/admin/chunks/en-CzMdlTs0.js.map +1 -0
  7. package/dist/admin/chunks/en-DDCHBy0-.mjs +8 -0
  8. package/dist/admin/chunks/en-DDCHBy0-.mjs.map +1 -0
  9. package/dist/admin/chunks/es-BnizV7-a.mjs +8 -0
  10. package/dist/admin/chunks/es-BnizV7-a.mjs.map +1 -0
  11. package/dist/admin/chunks/es-l4HaM-C0.js +10 -0
  12. package/dist/admin/chunks/es-l4HaM-C0.js.map +1 -0
  13. package/dist/admin/chunks/fr-BsXNdB-N.mjs +8 -0
  14. package/dist/admin/chunks/fr-BsXNdB-N.mjs.map +1 -0
  15. package/dist/admin/chunks/fr-rJIDC4Jx.js +10 -0
  16. package/dist/admin/chunks/fr-rJIDC4Jx.js.map +1 -0
  17. package/dist/admin/chunks/ko-BrDfWiIr.mjs +8 -0
  18. package/dist/admin/chunks/ko-BrDfWiIr.mjs.map +1 -0
  19. package/dist/admin/chunks/ko-CoJrUsj1.js +10 -0
  20. package/dist/admin/chunks/ko-CoJrUsj1.js.map +1 -0
  21. package/dist/admin/chunks/pl-6JvJwTZm.mjs +8 -0
  22. package/dist/admin/chunks/pl-6JvJwTZm.mjs.map +1 -0
  23. package/dist/admin/chunks/pl-DbPKh3_6.js +10 -0
  24. package/dist/admin/chunks/pl-DbPKh3_6.js.map +1 -0
  25. package/dist/admin/chunks/ru-B4OA2fUb.mjs +8 -0
  26. package/dist/admin/chunks/ru-B4OA2fUb.mjs.map +1 -0
  27. package/dist/admin/chunks/ru-CgCHTIu5.js +10 -0
  28. package/dist/admin/chunks/ru-CgCHTIu5.js.map +1 -0
  29. package/dist/admin/chunks/sv-DrckibdJ.js +10 -0
  30. package/dist/admin/chunks/sv-DrckibdJ.js.map +1 -0
  31. package/dist/admin/chunks/sv-OPAT8f7H.mjs +8 -0
  32. package/dist/admin/chunks/sv-OPAT8f7H.mjs.map +1 -0
  33. package/dist/admin/chunks/tr-C8CxtgGx.mjs +8 -0
  34. package/dist/admin/chunks/tr-C8CxtgGx.mjs.map +1 -0
  35. package/dist/admin/chunks/tr-DMgP5sU_.js +10 -0
  36. package/dist/admin/chunks/tr-DMgP5sU_.js.map +1 -0
  37. package/dist/admin/chunks/vi-CpPssghl.js +10 -0
  38. package/dist/admin/chunks/vi-CpPssghl.js.map +1 -0
  39. package/dist/admin/chunks/vi-D0rPKKIu.mjs +8 -0
  40. package/dist/admin/chunks/vi-D0rPKKIu.mjs.map +1 -0
  41. package/dist/admin/chunks/zh-MmnOh-xz.mjs +8 -0
  42. package/dist/admin/chunks/zh-MmnOh-xz.mjs.map +1 -0
  43. package/dist/admin/chunks/zh-TX10GrSY.js +10 -0
  44. package/dist/admin/chunks/zh-TX10GrSY.js.map +1 -0
  45. package/dist/admin/index.js +142 -133
  46. package/dist/admin/index.js.map +1 -0
  47. package/dist/admin/index.mjs +141 -135
  48. package/dist/admin/index.mjs.map +1 -0
  49. package/dist/server/index.js +126 -104
  50. package/dist/server/index.js.map +1 -0
  51. package/dist/server/index.mjs +115 -97
  52. package/dist/server/index.mjs.map +1 -0
  53. package/package.json +11 -10
  54. package/dist/_chunks/dk-D9TLFbt6.mjs +0 -8
  55. package/dist/_chunks/dk-NQyAzZiU.js +0 -8
  56. package/dist/_chunks/en-CegwVP3M.mjs +0 -8
  57. package/dist/_chunks/en-bbgXRWo3.js +0 -8
  58. package/dist/_chunks/es-31ok883l.js +0 -8
  59. package/dist/_chunks/es-DxC1UwjP.mjs +0 -8
  60. package/dist/_chunks/fr-6Xd8HjNA.js +0 -8
  61. package/dist/_chunks/fr-BRlwHIG8.mjs +0 -8
  62. package/dist/_chunks/ko-C_MXyOM9.mjs +0 -8
  63. package/dist/_chunks/ko-DdXSFVkr.js +0 -8
  64. package/dist/_chunks/pl-6hJT3Sda.mjs +0 -8
  65. package/dist/_chunks/pl-KE2e7O1o.js +0 -8
  66. package/dist/_chunks/ru-C41W13kt.js +0 -8
  67. package/dist/_chunks/ru-DnVqFddA.mjs +0 -8
  68. package/dist/_chunks/sv-DCUFAW2Z.js +0 -8
  69. package/dist/_chunks/sv-DjL9wmwK.mjs +0 -8
  70. package/dist/_chunks/tr-BKL2AN-d.mjs +0 -8
  71. package/dist/_chunks/tr-DgnL-Yfr.js +0 -8
  72. package/dist/_chunks/vi-DLBe31mD.mjs +0 -8
  73. package/dist/_chunks/vi-E2aG_wR_.js +0 -8
  74. package/dist/_chunks/zh-5kkOa7U5.mjs +0 -8
  75. package/dist/_chunks/zh-Uq7oN9Sz.js +0 -8
@@ -1,153 +1,159 @@
1
- const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
2
- const v = glob[path];
3
- if (v) {
4
- return typeof v === "function" ? v() : Promise.resolve(v);
5
- }
6
- return new Promise((_, reject) => {
7
- (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
8
- reject.bind(
9
- null,
10
- new Error(
11
- "Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
12
- )
13
- )
14
- );
15
- });
1
+ var name$1 = "@strapi/plugin-sentry";
2
+ var version = "5.9.0";
3
+ var description = "Send Strapi error events to Sentry";
4
+ var repository = {
5
+ type: "git",
6
+ url: "https://github.com/strapi/strapi.git",
7
+ directory: "packages/plugins/sentry"
16
8
  };
17
- const name$1 = "@strapi/plugin-sentry";
18
- const version = "5.8.0";
19
- const description = "Send Strapi error events to Sentry";
20
- const repository = {
21
- type: "git",
22
- url: "https://github.com/strapi/strapi.git",
23
- directory: "packages/plugins/sentry"
24
- };
25
- const license = "SEE LICENSE IN LICENSE";
26
- const author = {
27
- name: "Strapi Solutions SAS",
28
- email: "hi@strapi.io",
29
- url: "https://strapi.io"
30
- };
31
- const maintainers = [
32
- {
9
+ var license = "SEE LICENSE IN LICENSE";
10
+ var author = {
33
11
  name: "Strapi Solutions SAS",
34
12
  email: "hi@strapi.io",
35
13
  url: "https://strapi.io"
36
- }
14
+ };
15
+ var maintainers = [
16
+ {
17
+ name: "Strapi Solutions SAS",
18
+ email: "hi@strapi.io",
19
+ url: "https://strapi.io"
20
+ }
37
21
  ];
38
- const exports = {
39
- "./strapi-admin": {
40
- types: "./dist/admin/src/index.d.ts",
41
- source: "./admin/src/index.ts",
42
- "import": "./dist/admin/index.mjs",
43
- require: "./dist/admin/index.js",
44
- "default": "./dist/admin/index.js"
45
- },
46
- "./strapi-server": {
47
- types: "./dist/server/src/index.d.ts",
48
- source: "./server/src/index.ts",
49
- "import": "./dist/server/index.mjs",
50
- require: "./dist/server/index.js",
51
- "default": "./dist/server/index.js"
52
- },
53
- "./package.json": "./package.json"
22
+ var exports = {
23
+ "./strapi-admin": {
24
+ types: "./dist/admin/src/index.d.ts",
25
+ source: "./admin/src/index.ts",
26
+ "import": "./dist/admin/index.mjs",
27
+ require: "./dist/admin/index.js",
28
+ "default": "./dist/admin/index.js"
29
+ },
30
+ "./strapi-server": {
31
+ types: "./dist/server/src/index.d.ts",
32
+ source: "./server/src/index.ts",
33
+ "import": "./dist/server/index.mjs",
34
+ require: "./dist/server/index.js",
35
+ "default": "./dist/server/index.js"
36
+ },
37
+ "./package.json": "./package.json"
54
38
  };
55
- const files = [
56
- "./dist",
57
- "strapi-server.js"
39
+ var files = [
40
+ "./dist"
58
41
  ];
59
- const scripts = {
60
- build: "strapi-plugin build",
61
- clean: "run -T rimraf dist",
62
- lint: "run -T eslint .",
63
- "test:unit": "run -T jest",
64
- "test:unit:watch": "run -T jest --watch",
65
- watch: "strapi-plugin watch"
42
+ var scripts = {
43
+ build: "run -T npm-run-all clean --parallel build:code build:types",
44
+ "build:code": "run -T rollup -c",
45
+ "build:types": "run -T run-p build:types:server build:types:admin",
46
+ "build:types:server": "run -T tsc -p server/tsconfig.build.json --emitDeclarationOnly",
47
+ "build:types:admin": "run -T tsc -p admin/tsconfig.build.json --emitDeclarationOnly",
48
+ clean: "run -T rimraf dist",
49
+ lint: "run -T eslint .",
50
+ "test:unit": "run -T jest",
51
+ "test:unit:watch": "run -T jest --watch",
52
+ watch: "run -T rollup -c -w"
66
53
  };
67
- const dependencies = {
68
- "@sentry/node": "7.112.2",
69
- "@strapi/design-system": "2.0.0-rc.14",
70
- "@strapi/icons": "2.0.0-rc.14"
54
+ var dependencies = {
55
+ "@sentry/node": "7.112.2",
56
+ "@strapi/design-system": "2.0.0-rc.16",
57
+ "@strapi/icons": "2.0.0-rc.16"
71
58
  };
72
- const devDependencies = {
73
- "@strapi/pack-up": "5.0.2",
74
- "@strapi/sdk-plugin": "^5.2.0",
75
- "@strapi/strapi": "5.8.0",
76
- react: "18.3.1",
77
- "react-dom": "18.3.1",
78
- "react-router-dom": "6.22.3",
79
- "styled-components": "6.1.8"
59
+ var devDependencies = {
60
+ "@strapi/strapi": "5.9.0",
61
+ react: "18.3.1",
62
+ "react-dom": "18.3.1",
63
+ "react-router-dom": "6.22.3",
64
+ "styled-components": "6.1.8"
80
65
  };
81
- const peerDependencies = {
82
- "@strapi/strapi": "^5.0.0",
83
- react: "^17.0.0 || ^18.0.0",
84
- "react-dom": "^17.0.0 || ^18.0.0",
85
- "react-router-dom": "^6.0.0",
86
- "styled-components": "^6.0.0"
66
+ var peerDependencies = {
67
+ "@strapi/strapi": "^5.0.0",
68
+ react: "^17.0.0 || ^18.0.0",
69
+ "react-dom": "^17.0.0 || ^18.0.0",
70
+ "react-router-dom": "^6.0.0",
71
+ "styled-components": "^6.0.0"
87
72
  };
88
- const engines = {
89
- node: ">=18.0.0 <=22.x.x",
90
- npm: ">=6.0.0"
73
+ var engines = {
74
+ node: ">=18.0.0 <=22.x.x",
75
+ npm: ">=6.0.0"
91
76
  };
92
- const strapi = {
93
- name: "sentry",
94
- displayName: "Sentry",
95
- description: "Send Strapi error events to Sentry.",
96
- kind: "plugin"
77
+ var strapi = {
78
+ name: "sentry",
79
+ displayName: "Sentry",
80
+ description: "Send Strapi error events to Sentry.",
81
+ kind: "plugin"
97
82
  };
98
- const pluginPkg = {
99
- name: name$1,
100
- version,
101
- description,
102
- repository,
103
- license,
104
- author,
105
- maintainers,
106
- exports,
107
- files,
108
- scripts,
109
- dependencies,
110
- devDependencies,
111
- peerDependencies,
112
- engines,
113
- strapi
83
+ var pluginPkg = {
84
+ name: name$1,
85
+ version: version,
86
+ description: description,
87
+ repository: repository,
88
+ license: license,
89
+ author: author,
90
+ maintainers: maintainers,
91
+ exports: exports,
92
+ files: files,
93
+ scripts: scripts,
94
+ dependencies: dependencies,
95
+ devDependencies: devDependencies,
96
+ peerDependencies: peerDependencies,
97
+ engines: engines,
98
+ strapi: strapi
114
99
  };
115
- const pluginId = "sentry";
116
- const prefixPluginTranslations = (trad, pluginId2) => {
117
- return Object.keys(trad).reduce((acc, current) => {
118
- acc[`${pluginId2}.${current}`] = trad[current];
119
- return acc;
120
- }, {});
100
+
101
+ const pluginId = 'sentry';
102
+
103
+ const prefixPluginTranslations = (trad, pluginId)=>{
104
+ return Object.keys(trad).reduce((acc, current)=>{
105
+ acc[`${pluginId}.${current}`] = trad[current];
106
+ return acc;
107
+ }, {});
121
108
  };
109
+
110
+ function __variableDynamicImportRuntime0__(path) {
111
+ switch (path) {
112
+ case './translations/dk.json': return import('./chunks/dk-2c1X5YD1.mjs');
113
+ case './translations/en.json': return import('./chunks/en-DDCHBy0-.mjs');
114
+ case './translations/es.json': return import('./chunks/es-BnizV7-a.mjs');
115
+ case './translations/fr.json': return import('./chunks/fr-BsXNdB-N.mjs');
116
+ case './translations/ko.json': return import('./chunks/ko-BrDfWiIr.mjs');
117
+ case './translations/pl.json': return import('./chunks/pl-6JvJwTZm.mjs');
118
+ case './translations/ru.json': return import('./chunks/ru-B4OA2fUb.mjs');
119
+ case './translations/sv.json': return import('./chunks/sv-OPAT8f7H.mjs');
120
+ case './translations/tr.json': return import('./chunks/tr-C8CxtgGx.mjs');
121
+ case './translations/vi.json': return import('./chunks/vi-D0rPKKIu.mjs');
122
+ case './translations/zh.json': return import('./chunks/zh-MmnOh-xz.mjs');
123
+ default: return new Promise(function(resolve, reject) {
124
+ (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
125
+ reject.bind(null, new Error("Unknown variable dynamic import: " + path))
126
+ );
127
+ })
128
+ }
129
+ }
122
130
  const name = pluginPkg.strapi.name;
123
- const index = {
124
- register(app) {
125
- app.registerPlugin({
126
- id: pluginId,
127
- name
128
- });
129
- },
130
- bootstrap() {
131
- },
132
- async registerTrads({ locales }) {
133
- const importedTrads = await Promise.all(
134
- locales.map((locale) => {
135
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/dk.json": () => import("../_chunks/dk-D9TLFbt6.mjs"), "./translations/en.json": () => import("../_chunks/en-CegwVP3M.mjs"), "./translations/es.json": () => import("../_chunks/es-DxC1UwjP.mjs"), "./translations/fr.json": () => import("../_chunks/fr-BRlwHIG8.mjs"), "./translations/ko.json": () => import("../_chunks/ko-C_MXyOM9.mjs"), "./translations/pl.json": () => import("../_chunks/pl-6hJT3Sda.mjs"), "./translations/ru.json": () => import("../_chunks/ru-DnVqFddA.mjs"), "./translations/sv.json": () => import("../_chunks/sv-DjL9wmwK.mjs"), "./translations/tr.json": () => import("../_chunks/tr-BKL2AN-d.mjs"), "./translations/vi.json": () => import("../_chunks/vi-DLBe31mD.mjs"), "./translations/zh.json": () => import("../_chunks/zh-5kkOa7U5.mjs") }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
136
- return {
137
- data: prefixPluginTranslations(data, pluginId),
138
- locale
139
- };
140
- }).catch(() => {
141
- return {
142
- data: {},
143
- locale
144
- };
131
+ // eslint-disable-next-line import/no-default-export
132
+ var index = {
133
+ register (app) {
134
+ app.registerPlugin({
135
+ id: pluginId,
136
+ name
145
137
  });
146
- })
147
- );
148
- return Promise.resolve(importedTrads);
149
- }
150
- };
151
- export {
152
- index as default
138
+ },
139
+ bootstrap () {},
140
+ async registerTrads ({ locales }) {
141
+ const importedTrads = await Promise.all(locales.map((locale)=>{
142
+ return __variableDynamicImportRuntime0__(`./translations/${locale}.json`).then(({ default: data })=>{
143
+ return {
144
+ data: prefixPluginTranslations(data, pluginId),
145
+ locale
146
+ };
147
+ }).catch(()=>{
148
+ return {
149
+ data: {},
150
+ locale
151
+ };
152
+ });
153
+ }));
154
+ return Promise.resolve(importedTrads);
155
+ }
153
156
  };
157
+
158
+ export { index as default };
159
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/pluginId.ts","../../admin/src/utils/prefixPluginTranslations.ts","../../admin/src/index.ts"],"sourcesContent":["export const pluginId = 'sentry';\n","type TradOptions = Record<string, string>;\n\nconst prefixPluginTranslations = (trad: TradOptions, pluginId: string): TradOptions => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n return Object.keys(trad).reduce((acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n return acc;\n }, {} as TradOptions);\n};\n\nexport { prefixPluginTranslations };\n","import pluginPkg from '../../package.json';\n\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nconst name = pluginPkg.strapi.name;\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n bootstrap() {},\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["pluginId","prefixPluginTranslations","trad","Object","keys","reduce","acc","current","name","pluginPkg","strapi","register","app","registerPlugin","id","bootstrap","registerTrads","locales","importedTrads","Promise","all","map","locale","then","default","data","catch","resolve"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,WAAW,QAAS;;ACEjC,MAAMC,wBAAAA,GAA2B,CAACC,IAAmBF,EAAAA,QAAAA,GAAAA;AAInD,IAAA,OAAOG,OAAOC,IAAI,CAACF,MAAMG,MAAM,CAAC,CAACC,GAAKC,EAAAA,OAAAA,GAAAA;AACpCD,QAAAA,GAAG,CAAC,CAAC,EAAEN,QAAAA,CAAS,CAAC,EAAEO,OAAQ,CAAA,CAAC,CAAC,GAAGL,IAAI,CAACK,OAAQ,CAAA;QAC7C,OAAOD,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AACN,CAAA;;;;;;;;;;;;;;;;;;;;;;ACLA,MAAME,IAAOC,GAAAA,SAAAA,CAAUC,MAAM,CAACF,IAAI;AAElC;AACA,YAAe;AACbG,IAAAA,QAAAA,CAAAA,CAASC,GAAQ,EAAA;AACfA,QAAAA,GAAAA,CAAIC,cAAc,CAAC;YACjBC,EAAId,EAAAA,QAAAA;AACJQ,YAAAA;AACF,SAAA,CAAA;AACF,KAAA;IACAO,SAAa,CAAA,GAAA,EAAA;IACb,MAAMC,aAAAA,CAAAA,CAAc,EAAEC,OAAO,EAAyB,EAAA;QACpD,MAAMC,aAAAA,GAAgB,MAAMC,OAAQC,CAAAA,GAAG,CACrCH,OAAQI,CAAAA,GAAG,CAAC,CAACC,MAAAA,GAAAA;AACX,YAAA,OAAO,iCAAM,CAAC,CAAC,eAAe,EAAEA,MAAO,CAAA,KAAK,CAAC,CAAA,CAC1CC,IAAI,CAAC,CAAC,EAAEC,OAAAA,EAASC,IAAI,EAAE,GAAA;gBACtB,OAAO;AACLA,oBAAAA,IAAAA,EAAMxB,yBAAyBwB,IAAMzB,EAAAA,QAAAA,CAAAA;AACrCsB,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA,CACCI,KAAK,CAAC,IAAA;gBACL,OAAO;AACLD,oBAAAA,IAAAA,EAAM,EAAC;AACPH,oBAAAA;AACF,iBAAA;AACF,aAAA,CAAA;AACJ,SAAA,CAAA,CAAA;QAGF,OAAOH,OAAAA,CAAQQ,OAAO,CAACT,aAAAA,CAAAA;AACzB;AACF,CAAE;;;;"}
@@ -1,122 +1,144 @@
1
- "use strict";
2
- const Sentry = require("@sentry/node");
3
- function _interopNamespace(e) {
4
- if (e && e.__esModule) return e;
5
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
1
+ 'use strict';
2
+
3
+ var Sentry = require('@sentry/node');
4
+
5
+ function _interopNamespaceDefault(e) {
6
+ var n = Object.create(null);
6
7
  if (e) {
7
- for (const k in e) {
8
- if (k !== "default") {
9
- const d = Object.getOwnPropertyDescriptor(e, k);
8
+ Object.keys(e).forEach(function (k) {
9
+ if (k !== 'default') {
10
+ var d = Object.getOwnPropertyDescriptor(e, k);
10
11
  Object.defineProperty(n, k, d.get ? d : {
11
12
  enumerable: true,
12
- get: () => e[k]
13
+ get: function () { return e[k]; }
13
14
  });
14
15
  }
15
- }
16
+ });
16
17
  }
17
18
  n.default = e;
18
19
  return Object.freeze(n);
19
20
  }
20
- const Sentry__namespace = /* @__PURE__ */ _interopNamespace(Sentry);
21
- const initSentryMiddleware = ({ strapi }) => {
22
- const sentryService = strapi.plugin("sentry").service("sentry");
23
- sentryService.init();
24
- const sentry2 = sentryService.getInstance();
25
- if (!sentry2) {
26
- return;
27
- }
28
- strapi.server.use(async (ctx, next) => {
29
- try {
30
- await next();
31
- } catch (error) {
32
- if (error instanceof Error) {
33
- sentryService.sendError(error, (scope) => {
34
- scope.addEventProcessor((event) => {
35
- return sentry2.Handlers.parseRequest(event, ctx.request, {
36
- // Don't parse the transaction name, we'll do it manually
37
- transaction: false
38
- });
39
- });
40
- scope.setTag("transaction", `${ctx.method} ${ctx._matchedRoute}`);
41
- scope.setTag("strapi_version", strapi.config.info.strapi);
42
- scope.setTag("method", ctx.method);
43
- });
44
- }
45
- throw error;
21
+
22
+ var Sentry__namespace = /*#__PURE__*/_interopNamespaceDefault(Sentry);
23
+
24
+ /**
25
+ * Programmatic sentry middleware. We do not want to expose it in the plugin
26
+ */ var initSentryMiddleware = (({ strapi })=>{
27
+ const sentryService = strapi.plugin('sentry').service('sentry');
28
+ sentryService.init();
29
+ const sentry = sentryService.getInstance();
30
+ if (!sentry) {
31
+ // initialization failed
32
+ return;
46
33
  }
47
- });
48
- };
49
- const bootstrap = async ({ strapi }) => {
50
- initSentryMiddleware({ strapi });
51
- };
52
- const createSentryService = (strapi) => {
53
- let isReady = false;
54
- let instance = null;
55
- const config2 = strapi.config.get("plugin::sentry");
56
- return {
57
- /**
34
+ strapi.server.use(async (ctx, next)=>{
35
+ try {
36
+ await next();
37
+ } catch (error) {
38
+ if (error instanceof Error) {
39
+ sentryService.sendError(error, (scope)=>{
40
+ scope.addEventProcessor((event)=>{
41
+ // Parse Koa context to add error metadata
42
+ return sentry.Handlers.parseRequest(event, ctx.request, {
43
+ // Don't parse the transaction name, we'll do it manually
44
+ transaction: false
45
+ });
46
+ });
47
+ // Manually add transaction name
48
+ scope.setTag('transaction', `${ctx.method} ${ctx._matchedRoute}`);
49
+ // Manually add Strapi version
50
+ scope.setTag('strapi_version', strapi.config.info.strapi);
51
+ scope.setTag('method', ctx.method);
52
+ });
53
+ }
54
+ throw error;
55
+ }
56
+ });
57
+ });
58
+
59
+ var bootstrap = (async ({ strapi })=>{
60
+ // Initialize the Sentry service exposed by this plugin
61
+ initSentryMiddleware({
62
+ strapi
63
+ });
64
+ });
65
+
66
+ const createSentryService = (strapi)=>{
67
+ let isReady = false;
68
+ let instance = null;
69
+ // Retrieve user config and merge it with the default one
70
+ const config = strapi.config.get('plugin::sentry');
71
+ return {
72
+ /**
58
73
  * Initialize Sentry service
59
- */
60
- init() {
61
- if (instance != null) {
62
- return this;
63
- }
64
- if (!config2.dsn) {
65
- strapi.log.info("@strapi/plugin-sentry is disabled because no Sentry DSN was provided");
66
- return this;
67
- }
68
- try {
69
- Sentry__namespace.init({
70
- dsn: config2.dsn,
71
- environment: strapi.config.get("environment"),
72
- ...config2.init
73
- });
74
- instance = Sentry__namespace;
75
- isReady = true;
76
- } catch (error) {
77
- strapi.log.warn("Could not set up Sentry, make sure you entered a valid DSN");
78
- }
79
- return this;
80
- },
81
- /**
74
+ */ init () {
75
+ // Make sure there isn't a Sentry instance already running
76
+ if (instance != null) {
77
+ return this;
78
+ }
79
+ // Don't init Sentry if no DSN was provided
80
+ if (!config.dsn) {
81
+ strapi.log.info('@strapi/plugin-sentry is disabled because no Sentry DSN was provided');
82
+ return this;
83
+ }
84
+ try {
85
+ Sentry__namespace.init({
86
+ dsn: config.dsn,
87
+ environment: strapi.config.get('environment'),
88
+ ...config.init
89
+ });
90
+ // Store the successfully initialized Sentry instance
91
+ instance = Sentry__namespace;
92
+ isReady = true;
93
+ } catch (error) {
94
+ strapi.log.warn('Could not set up Sentry, make sure you entered a valid DSN');
95
+ }
96
+ return this;
97
+ },
98
+ /**
82
99
  * Expose Sentry instance through a getter
83
- */
84
- getInstance() {
85
- return instance;
86
- },
87
- /**
100
+ */ getInstance () {
101
+ return instance;
102
+ },
103
+ /**
88
104
  * Higher level method to send exception events to Sentry
89
- */
90
- sendError(error, configureScope) {
91
- if (!isReady || !instance) {
92
- strapi.log.warn("Sentry wasn't properly initialized, cannot send event");
93
- return;
94
- }
95
- instance.withScope((scope) => {
96
- if (configureScope && config2.sendMetadata) {
97
- configureScope(scope);
105
+ */ sendError (error, configureScope) {
106
+ // Make sure Sentry is ready
107
+ if (!isReady || !instance) {
108
+ strapi.log.warn("Sentry wasn't properly initialized, cannot send event");
109
+ return;
110
+ }
111
+ instance.withScope((scope)=>{
112
+ // Configure the Sentry scope using the provided callback
113
+ if (configureScope && config.sendMetadata) {
114
+ configureScope(scope);
115
+ }
116
+ // Actually send the Error to Sentry
117
+ instance?.captureException(error);
118
+ });
98
119
  }
99
- instance?.captureException(error);
100
- });
101
- }
102
- };
120
+ };
103
121
  };
104
- const sentry = ({ strapi }) => createSentryService(strapi);
105
- const services = {
106
- sentry
122
+ var sentry = (({ strapi })=>createSentryService(strapi));
123
+
124
+ var services = {
125
+ sentry
107
126
  };
108
- const config = {
109
- default: {
110
- dsn: null,
111
- sendMetadata: true,
112
- init: {}
113
- },
114
- validator() {
115
- }
127
+
128
+ var config = {
129
+ default: {
130
+ dsn: null,
131
+ sendMetadata: true,
132
+ init: {}
133
+ },
134
+ validator () {}
116
135
  };
117
- const index = () => ({
118
- bootstrap,
119
- config,
120
- services
121
- });
136
+
137
+ var index = (()=>({
138
+ bootstrap,
139
+ config,
140
+ services
141
+ }));
142
+
122
143
  module.exports = index;
144
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../server/src/middlewares/sentry.ts","../../server/src/bootstrap.ts","../../server/src/services/sentry.ts","../../server/src/services/index.ts","../../server/src/config.ts","../../server/src/index.ts"],"sourcesContent":["import type { Core } from '@strapi/strapi';\nimport type Sentry from '@sentry/node';\nimport type createSentryService from '../services/sentry';\n\n/**\n * Programmatic sentry middleware. We do not want to expose it in the plugin\n */\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const sentryService: ReturnType<typeof createSentryService> = strapi\n .plugin('sentry')\n .service('sentry');\n sentryService.init();\n const sentry = sentryService.getInstance();\n\n if (!sentry) {\n // initialization failed\n return;\n }\n\n strapi.server.use(async (ctx, next) => {\n try {\n await next();\n } catch (error) {\n if (error instanceof Error) {\n sentryService.sendError(error, (scope: Sentry.Scope) => {\n scope.addEventProcessor((event) => {\n // Parse Koa context to add error metadata\n return sentry.Handlers.parseRequest(event, ctx.request as Sentry.Request, {\n // Don't parse the transaction name, we'll do it manually\n transaction: false,\n });\n });\n\n // Manually add transaction name\n scope.setTag('transaction', `${ctx.method} ${ctx._matchedRoute}`);\n // Manually add Strapi version\n scope.setTag('strapi_version', strapi.config.info.strapi);\n scope.setTag('method', ctx.method);\n });\n }\n\n throw error;\n }\n });\n};\n","import type { Core } from '@strapi/strapi';\nimport initSentryMiddleware from './middlewares/sentry';\n\nexport default async ({ strapi }: { strapi: Core.Strapi }) => {\n // Initialize the Sentry service exposed by this plugin\n initSentryMiddleware({ strapi });\n};\n","import type { Core } from '@strapi/strapi';\nimport type { Config } from 'src/config';\nimport * as Sentry from '@sentry/node';\n\nconst createSentryService = (strapi: Core.Strapi) => {\n let isReady = false;\n let instance: typeof Sentry | null = null;\n\n // Retrieve user config and merge it with the default one\n const config = strapi.config.get('plugin::sentry') as Config;\n\n return {\n /**\n * Initialize Sentry service\n */\n init() {\n // Make sure there isn't a Sentry instance already running\n if (instance != null) {\n return this;\n }\n\n // Don't init Sentry if no DSN was provided\n if (!config.dsn) {\n strapi.log.info('@strapi/plugin-sentry is disabled because no Sentry DSN was provided');\n return this;\n }\n\n try {\n Sentry.init({\n dsn: config.dsn,\n environment: strapi.config.get('environment'),\n ...config.init,\n });\n\n // Store the successfully initialized Sentry instance\n instance = Sentry;\n isReady = true;\n } catch (error) {\n strapi.log.warn('Could not set up Sentry, make sure you entered a valid DSN');\n }\n\n return this;\n },\n\n /**\n * Expose Sentry instance through a getter\n */\n getInstance() {\n return instance;\n },\n\n /**\n * Higher level method to send exception events to Sentry\n */\n sendError(error: Error, configureScope?: (scope: Sentry.Scope) => void) {\n // Make sure Sentry is ready\n if (!isReady || !instance) {\n strapi.log.warn(\"Sentry wasn't properly initialized, cannot send event\");\n return;\n }\n\n instance.withScope((scope) => {\n // Configure the Sentry scope using the provided callback\n if (configureScope && config.sendMetadata) {\n configureScope(scope);\n }\n\n // Actually send the Error to Sentry\n instance?.captureException(error);\n });\n },\n };\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => createSentryService(strapi);\n","import sentry from './sentry';\n\nexport default {\n sentry,\n};\n","import type { NodeOptions } from '@sentry/node';\n\nexport interface Config {\n dsn: string | null;\n sendMetadata: boolean;\n init: NodeOptions;\n}\n\nexport default {\n default: {\n dsn: null,\n sendMetadata: true,\n init: {},\n } satisfies Config,\n validator() {},\n};\n","import bootstrap from './bootstrap';\nimport services from './services';\nimport config from './config';\n\nexport default () => ({\n bootstrap,\n config,\n services,\n});\n"],"names":["strapi","sentryService","plugin","service","init","sentry","getInstance","server","use","ctx","next","error","Error","sendError","scope","addEventProcessor","event","Handlers","parseRequest","request","transaction","setTag","method","_matchedRoute","config","info","initSentryMiddleware","createSentryService","isReady","instance","get","dsn","log","Sentry","environment","warn","configureScope","withScope","sendMetadata","captureException","default","validator","bootstrap","services"],"mappings":"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"}