@strapi/plugin-sentry 5.4.1 → 5.5.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.
- package/dist/_chunks/dk-D9TLFbt6.mjs +0 -1
- package/dist/_chunks/dk-NQyAzZiU.js +0 -1
- package/dist/_chunks/en-CegwVP3M.mjs +0 -1
- package/dist/_chunks/en-bbgXRWo3.js +0 -1
- package/dist/_chunks/es-31ok883l.js +0 -1
- package/dist/_chunks/es-DxC1UwjP.mjs +0 -1
- package/dist/_chunks/fr-6Xd8HjNA.js +0 -1
- package/dist/_chunks/fr-BRlwHIG8.mjs +0 -1
- package/dist/_chunks/ko-C_MXyOM9.mjs +0 -1
- package/dist/_chunks/ko-DdXSFVkr.js +0 -1
- package/dist/_chunks/pl-6hJT3Sda.mjs +0 -1
- package/dist/_chunks/pl-KE2e7O1o.js +0 -1
- package/dist/_chunks/ru-C41W13kt.js +0 -1
- package/dist/_chunks/ru-DnVqFddA.mjs +0 -1
- package/dist/_chunks/sv-DCUFAW2Z.js +0 -1
- package/dist/_chunks/sv-DjL9wmwK.mjs +0 -1
- package/dist/_chunks/tr-BKL2AN-d.mjs +0 -1
- package/dist/_chunks/tr-DgnL-Yfr.js +0 -1
- package/dist/_chunks/vi-DLBe31mD.mjs +0 -1
- package/dist/_chunks/vi-E2aG_wR_.js +0 -1
- package/dist/_chunks/zh-5kkOa7U5.mjs +0 -1
- package/dist/_chunks/zh-Uq7oN9Sz.js +0 -1
- package/dist/admin/index.js +16 -10
- package/dist/admin/index.mjs +16 -10
- package/dist/server/index.js +1 -3
- package/dist/server/index.mjs +0 -1
- package/package.json +7 -7
- package/dist/_chunks/dk-D9TLFbt6.mjs.map +0 -1
- package/dist/_chunks/dk-NQyAzZiU.js.map +0 -1
- package/dist/_chunks/en-CegwVP3M.mjs.map +0 -1
- package/dist/_chunks/en-bbgXRWo3.js.map +0 -1
- package/dist/_chunks/es-31ok883l.js.map +0 -1
- package/dist/_chunks/es-DxC1UwjP.mjs.map +0 -1
- package/dist/_chunks/fr-6Xd8HjNA.js.map +0 -1
- package/dist/_chunks/fr-BRlwHIG8.mjs.map +0 -1
- package/dist/_chunks/ko-C_MXyOM9.mjs.map +0 -1
- package/dist/_chunks/ko-DdXSFVkr.js.map +0 -1
- package/dist/_chunks/pl-6hJT3Sda.mjs.map +0 -1
- package/dist/_chunks/pl-KE2e7O1o.js.map +0 -1
- package/dist/_chunks/ru-C41W13kt.js.map +0 -1
- package/dist/_chunks/ru-DnVqFddA.mjs.map +0 -1
- package/dist/_chunks/sv-DCUFAW2Z.js.map +0 -1
- package/dist/_chunks/sv-DjL9wmwK.mjs.map +0 -1
- package/dist/_chunks/tr-BKL2AN-d.mjs.map +0 -1
- package/dist/_chunks/tr-DgnL-Yfr.js.map +0 -1
- package/dist/_chunks/vi-DLBe31mD.mjs.map +0 -1
- package/dist/_chunks/vi-E2aG_wR_.js.map +0 -1
- package/dist/_chunks/zh-5kkOa7U5.mjs.map +0 -1
- package/dist/_chunks/zh-Uq7oN9Sz.js.map +0 -1
- package/dist/admin/index.js.map +0 -1
- package/dist/admin/index.mjs.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/index.mjs.map +0 -1
package/dist/admin/index.js
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
|
2
|
+
const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
|
|
3
3
|
const v = glob[path];
|
|
4
4
|
if (v) {
|
|
5
5
|
return typeof v === "function" ? v() : Promise.resolve(v);
|
|
6
6
|
}
|
|
7
7
|
return new Promise((_, reject) => {
|
|
8
|
-
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
|
8
|
+
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
|
9
|
+
reject.bind(
|
|
10
|
+
null,
|
|
11
|
+
new Error(
|
|
12
|
+
"Unknown variable dynamic import: " + path + (path.split("/").length !== segs ? ". Note that variables only represent file names one level deep." : "")
|
|
13
|
+
)
|
|
14
|
+
)
|
|
15
|
+
);
|
|
9
16
|
});
|
|
10
17
|
};
|
|
11
18
|
const name$1 = "@strapi/plugin-sentry";
|
|
12
|
-
const version = "5.4.
|
|
19
|
+
const version = "5.4.2";
|
|
13
20
|
const description = "Send Strapi error events to Sentry";
|
|
14
21
|
const repository = {
|
|
15
22
|
type: "git",
|
|
@@ -60,13 +67,13 @@ const scripts = {
|
|
|
60
67
|
};
|
|
61
68
|
const dependencies = {
|
|
62
69
|
"@sentry/node": "7.112.2",
|
|
63
|
-
"@strapi/design-system": "2.0.0-rc.
|
|
64
|
-
"@strapi/icons": "2.0.0-rc.
|
|
70
|
+
"@strapi/design-system": "2.0.0-rc.14",
|
|
71
|
+
"@strapi/icons": "2.0.0-rc.14"
|
|
65
72
|
};
|
|
66
73
|
const devDependencies = {
|
|
67
|
-
"@strapi/pack-up": "5.0.
|
|
68
|
-
"@strapi/sdk-plugin": "^5.
|
|
69
|
-
"@strapi/strapi": "5.4.
|
|
74
|
+
"@strapi/pack-up": "5.0.2",
|
|
75
|
+
"@strapi/sdk-plugin": "^5.2.0",
|
|
76
|
+
"@strapi/strapi": "5.4.2",
|
|
70
77
|
react: "18.3.1",
|
|
71
78
|
"react-dom": "18.3.1",
|
|
72
79
|
"react-router-dom": "6.22.3",
|
|
@@ -128,7 +135,7 @@ const index = {
|
|
|
128
135
|
async registerTrads({ locales }) {
|
|
129
136
|
const importedTrads = await Promise.all(
|
|
130
137
|
locales.map((locale) => {
|
|
131
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/dk.json": () => Promise.resolve().then(() => require("../_chunks/dk-NQyAzZiU.js")), "./translations/en.json": () => Promise.resolve().then(() => require("../_chunks/en-bbgXRWo3.js")), "./translations/es.json": () => Promise.resolve().then(() => require("../_chunks/es-31ok883l.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("../_chunks/fr-6Xd8HjNA.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("../_chunks/ko-DdXSFVkr.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("../_chunks/pl-KE2e7O1o.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("../_chunks/ru-C41W13kt.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("../_chunks/sv-DCUFAW2Z.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("../_chunks/tr-DgnL-Yfr.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("../_chunks/vi-E2aG_wR_.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("../_chunks/zh-Uq7oN9Sz.js")) }), `./translations/${locale}.json
|
|
138
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/dk.json": () => Promise.resolve().then(() => require("../_chunks/dk-NQyAzZiU.js")), "./translations/en.json": () => Promise.resolve().then(() => require("../_chunks/en-bbgXRWo3.js")), "./translations/es.json": () => Promise.resolve().then(() => require("../_chunks/es-31ok883l.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("../_chunks/fr-6Xd8HjNA.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("../_chunks/ko-DdXSFVkr.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("../_chunks/pl-KE2e7O1o.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("../_chunks/ru-C41W13kt.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("../_chunks/sv-DCUFAW2Z.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("../_chunks/tr-DgnL-Yfr.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("../_chunks/vi-E2aG_wR_.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("../_chunks/zh-Uq7oN9Sz.js")) }), `./translations/${locale}.json`, 3).then(({ default: data }) => {
|
|
132
139
|
return {
|
|
133
140
|
data: prefixPluginTranslations(data, pluginId),
|
|
134
141
|
locale
|
|
@@ -145,4 +152,3 @@ const index = {
|
|
|
145
152
|
}
|
|
146
153
|
};
|
|
147
154
|
module.exports = index;
|
|
148
|
-
//# sourceMappingURL=index.js.map
|
package/dist/admin/index.mjs
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
|
1
|
+
const __variableDynamicImportRuntimeHelper = (glob, path, segs) => {
|
|
2
2
|
const v = glob[path];
|
|
3
3
|
if (v) {
|
|
4
4
|
return typeof v === "function" ? v() : Promise.resolve(v);
|
|
5
5
|
}
|
|
6
6
|
return new Promise((_, reject) => {
|
|
7
|
-
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(
|
|
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
|
+
);
|
|
8
15
|
});
|
|
9
16
|
};
|
|
10
17
|
const name$1 = "@strapi/plugin-sentry";
|
|
11
|
-
const version = "5.4.
|
|
18
|
+
const version = "5.4.2";
|
|
12
19
|
const description = "Send Strapi error events to Sentry";
|
|
13
20
|
const repository = {
|
|
14
21
|
type: "git",
|
|
@@ -59,13 +66,13 @@ const scripts = {
|
|
|
59
66
|
};
|
|
60
67
|
const dependencies = {
|
|
61
68
|
"@sentry/node": "7.112.2",
|
|
62
|
-
"@strapi/design-system": "2.0.0-rc.
|
|
63
|
-
"@strapi/icons": "2.0.0-rc.
|
|
69
|
+
"@strapi/design-system": "2.0.0-rc.14",
|
|
70
|
+
"@strapi/icons": "2.0.0-rc.14"
|
|
64
71
|
};
|
|
65
72
|
const devDependencies = {
|
|
66
|
-
"@strapi/pack-up": "5.0.
|
|
67
|
-
"@strapi/sdk-plugin": "^5.
|
|
68
|
-
"@strapi/strapi": "5.4.
|
|
73
|
+
"@strapi/pack-up": "5.0.2",
|
|
74
|
+
"@strapi/sdk-plugin": "^5.2.0",
|
|
75
|
+
"@strapi/strapi": "5.4.2",
|
|
69
76
|
react: "18.3.1",
|
|
70
77
|
"react-dom": "18.3.1",
|
|
71
78
|
"react-router-dom": "6.22.3",
|
|
@@ -127,7 +134,7 @@ const index = {
|
|
|
127
134
|
async registerTrads({ locales }) {
|
|
128
135
|
const importedTrads = await Promise.all(
|
|
129
136
|
locales.map((locale) => {
|
|
130
|
-
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
|
|
137
|
+
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 }) => {
|
|
131
138
|
return {
|
|
132
139
|
data: prefixPluginTranslations(data, pluginId),
|
|
133
140
|
locale
|
|
@@ -146,4 +153,3 @@ const index = {
|
|
|
146
153
|
export {
|
|
147
154
|
index as default
|
|
148
155
|
};
|
|
149
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/server/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const Sentry = require("@sentry/node");
|
|
3
3
|
function _interopNamespace(e) {
|
|
4
|
-
if (e && e.__esModule)
|
|
5
|
-
return e;
|
|
4
|
+
if (e && e.__esModule) return e;
|
|
6
5
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
7
6
|
if (e) {
|
|
8
7
|
for (const k in e) {
|
|
@@ -121,4 +120,3 @@ const index = () => ({
|
|
|
121
120
|
services
|
|
122
121
|
});
|
|
123
122
|
module.exports = index;
|
|
124
|
-
//# sourceMappingURL=index.js.map
|
package/dist/server/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/plugin-sentry",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.5.0",
|
|
4
4
|
"description": "Send Strapi error events to Sentry",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -51,13 +51,13 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@sentry/node": "7.112.2",
|
|
54
|
-
"@strapi/design-system": "2.0.0-rc.
|
|
55
|
-
"@strapi/icons": "2.0.0-rc.
|
|
54
|
+
"@strapi/design-system": "2.0.0-rc.14",
|
|
55
|
+
"@strapi/icons": "2.0.0-rc.14"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@strapi/pack-up": "5.0.
|
|
59
|
-
"@strapi/sdk-plugin": "^5.
|
|
60
|
-
"@strapi/strapi": "5.
|
|
58
|
+
"@strapi/pack-up": "5.0.2",
|
|
59
|
+
"@strapi/sdk-plugin": "^5.2.0",
|
|
60
|
+
"@strapi/strapi": "5.5.0",
|
|
61
61
|
"react": "18.3.1",
|
|
62
62
|
"react-dom": "18.3.1",
|
|
63
63
|
"react-router-dom": "6.22.3",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"description": "Send Strapi error events to Sentry.",
|
|
81
81
|
"kind": "plugin"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "7d785703f52464577d077c4618cbe68b44f8a9cd"
|
|
84
84
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dk-D9TLFbt6.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dk-NQyAzZiU.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"en-CegwVP3M.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"en-bbgXRWo3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"es-31ok883l.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"es-DxC1UwjP.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fr-6Xd8HjNA.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fr-BRlwHIG8.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ko-C_MXyOM9.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ko-DdXSFVkr.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pl-6hJT3Sda.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pl-KE2e7O1o.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ru-C41W13kt.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ru-DnVqFddA.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sv-DCUFAW2Z.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sv-DjL9wmwK.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tr-BKL2AN-d.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tr-DgnL-Yfr.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vi-DLBe31mD.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vi-E2aG_wR_.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zh-5kkOa7U5.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zh-Uq7oN9Sz.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
package/dist/admin/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,WAAW;ACExB,MAAM,2BAA2B,CAAC,MAAmBA,cAAkC;AAIrF,SAAO,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,KAAK,YAAY;AAChD,QAAI,GAAGA,SAAQ,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO;AACrC,WAAA;AAAA,EACT,GAAG,CAAiB,CAAA;AACtB;ACLA,MAAM,OAAO,UAAU,OAAO;AAG9B,MAAe,QAAA;AAAA,EACb,SAAS,KAAU;AACjB,QAAI,eAAe;AAAA,MACjB,IAAI;AAAA,MACJ;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EACA,YAAY;AAAA,EAAC;AAAA,EACb,MAAM,cAAc,EAAE,WAAkC;AAChD,UAAA,gBAAgB,MAAM,QAAQ;AAAA,MAClC,QAAQ,IAAI,CAAC,WAAW;AACf,eAAA,qCAA+B,uBAAA,OAAA,EAAA,0BAAA,MAAA,qCAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,IAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,2BAAA,CAAA,EAAA,CAAA,GAAA,kBAAA,MAAA,OAAA,EACnC,KAAK,CAAC,EAAE,SAAS,KAAA,MAAW;AACpB,iBAAA;AAAA,YACL,MAAM,yBAAyB,MAAM,QAAQ;AAAA,YAC7C;AAAA,UAAA;AAAA,QACF,CACD,EACA,MAAM,MAAM;AACJ,iBAAA;AAAA,YACL,MAAM,CAAC;AAAA,YACP;AAAA,UAAA;AAAA,QACF,CACD;AAAA,MAAA,CACJ;AAAA,IAAA;AAGI,WAAA,QAAQ,QAAQ,aAAa;AAAA,EACtC;AACF;;"}
|
package/dist/admin/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAM,WAAW;ACExB,MAAM,2BAA2B,CAAC,MAAmBA,cAAkC;AAIrF,SAAO,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,KAAK,YAAY;AAChD,QAAI,GAAGA,SAAQ,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO;AACrC,WAAA;AAAA,EACT,GAAG,CAAiB,CAAA;AACtB;ACLA,MAAM,OAAO,UAAU,OAAO;AAG9B,MAAe,QAAA;AAAA,EACb,SAAS,KAAU;AACjB,QAAI,eAAe;AAAA,MACjB,IAAI;AAAA,MACJ;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EACA,YAAY;AAAA,EAAC;AAAA,EACb,MAAM,cAAc,EAAE,WAAkC;AAChD,UAAA,gBAAgB,MAAM,QAAQ;AAAA,MAClC,QAAQ,IAAI,CAAC,WAAW;AACf,eAAA,qCAA+B,uBAAA,OAAA,EAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,GAAA,0BAAA,MAAA,OAAA,4BAAA,EAAA,CAAA,GAAA,kBAAA,MAAA,OAAA,EACnC,KAAK,CAAC,EAAE,SAAS,KAAA,MAAW;AACpB,iBAAA;AAAA,YACL,MAAM,yBAAyB,MAAM,QAAQ;AAAA,YAC7C;AAAA,UAAA;AAAA,QACF,CACD,EACA,MAAM,MAAM;AACJ,iBAAA;AAAA,YACL,MAAM,CAAC;AAAA,YACP;AAAA,UAAA;AAAA,QACF,CACD;AAAA,MAAA,CACJ;AAAA,IAAA;AAGI,WAAA,QAAQ,QAAQ,aAAa;AAAA,EACtC;AACF;"}
|
package/dist/server/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":["sentry","config","Sentry"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA,MAAA,uBAAe,CAAC,EAAE,OAAA,MAAsC;AACtD,QAAM,gBAAwD,OAC3D,OAAO,QAAQ,EACf,QAAQ,QAAQ;AACnB,gBAAc,KAAK;AACb,QAAAA,UAAS,cAAc;AAE7B,MAAI,CAACA,SAAQ;AAEX;AAAA,EACF;AAEA,SAAO,OAAO,IAAI,OAAO,KAAK,SAAS;AACjC,QAAA;AACF,YAAM,KAAK;AAAA,aACJ,OAAO;AACd,UAAI,iBAAiB,OAAO;AACZ,sBAAA,UAAU,OAAO,CAAC,UAAwB;AAChD,gBAAA,kBAAkB,CAAC,UAAU;AAEjC,mBAAOA,QAAO,SAAS,aAAa,OAAO,IAAI,SAA2B;AAAA;AAAA,cAExE,aAAa;AAAA,YAAA,CACd;AAAA,UAAA,CACF;AAGK,gBAAA,OAAO,eAAe,GAAG,IAAI,MAAM,IAAI,IAAI,aAAa,EAAE;AAEhE,gBAAM,OAAO,kBAAkB,OAAO,OAAO,KAAK,MAAM;AAClD,gBAAA,OAAO,UAAU,IAAI,MAAM;AAAA,QAAA,CAClC;AAAA,MACH;AAEM,YAAA;AAAA,IACR;AAAA,EAAA,CACD;AACH;ACzCA,MAAA,YAAe,OAAO,EAAE,OAAA,MAAsC;AAEvC,uBAAA,EAAE,QAAQ;AACjC;ACFA,MAAM,sBAAsB,CAAC,WAAwB;AACnD,MAAI,UAAU;AACd,MAAI,WAAiC;AAGrC,QAAMC,UAAS,OAAO,OAAO,IAAI,gBAAgB;AAE1C,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AAEL,UAAI,YAAY,MAAM;AACb,eAAA;AAAA,MACT;AAGI,UAAA,CAACA,QAAO,KAAK;AACR,eAAA,IAAI,KAAK,sEAAsE;AAC/E,eAAA;AAAA,MACT;AAEI,UAAA;AACFC,0BAAO,KAAK;AAAA,UACV,KAAKD,QAAO;AAAA,UACZ,aAAa,OAAO,OAAO,IAAI,aAAa;AAAA,UAC5C,GAAGA,QAAO;AAAA,QAAA,CACX;AAGU,mBAAAC;AACD,kBAAA;AAAA,eACH,OAAO;AACP,eAAA,IAAI,KAAK,4DAA4D;AAAA,MAC9E;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,cAAc;AACL,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,UAAU,OAAc,gBAAgD;AAElE,UAAA,CAAC,WAAW,CAAC,UAAU;AAClB,eAAA,IAAI,KAAK,uDAAuD;AACvE;AAAA,MACF;AAES,eAAA,UAAU,CAAC,UAAU;AAExB,YAAA,kBAAkBD,QAAO,cAAc;AACzC,yBAAe,KAAK;AAAA,QACtB;AAGA,kBAAU,iBAAiB,KAAK;AAAA,MAAA,CACjC;AAAA,IACH;AAAA,EAAA;AAEJ;AAEA,MAAe,SAAA,CAAC,EAAE,OAAO,MAA+B,oBAAoB,MAAM;ACxElF,MAAe,WAAA;AAAA,EACb;AACF;ACIA,MAAe,SAAA;AAAA,EACb,SAAS;AAAA,IACP,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC;AAAA,EACT;AAAA,EACA,YAAY;AAAA,EAAC;AACf;ACXA,MAAA,QAAe,OAAO;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","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":["sentry","config"],"mappings":";AAOA,MAAA,uBAAe,CAAC,EAAE,OAAA,MAAsC;AACtD,QAAM,gBAAwD,OAC3D,OAAO,QAAQ,EACf,QAAQ,QAAQ;AACnB,gBAAc,KAAK;AACb,QAAAA,UAAS,cAAc;AAE7B,MAAI,CAACA,SAAQ;AAEX;AAAA,EACF;AAEA,SAAO,OAAO,IAAI,OAAO,KAAK,SAAS;AACjC,QAAA;AACF,YAAM,KAAK;AAAA,aACJ,OAAO;AACd,UAAI,iBAAiB,OAAO;AACZ,sBAAA,UAAU,OAAO,CAAC,UAAwB;AAChD,gBAAA,kBAAkB,CAAC,UAAU;AAEjC,mBAAOA,QAAO,SAAS,aAAa,OAAO,IAAI,SAA2B;AAAA;AAAA,cAExE,aAAa;AAAA,YAAA,CACd;AAAA,UAAA,CACF;AAGK,gBAAA,OAAO,eAAe,GAAG,IAAI,MAAM,IAAI,IAAI,aAAa,EAAE;AAEhE,gBAAM,OAAO,kBAAkB,OAAO,OAAO,KAAK,MAAM;AAClD,gBAAA,OAAO,UAAU,IAAI,MAAM;AAAA,QAAA,CAClC;AAAA,MACH;AAEM,YAAA;AAAA,IACR;AAAA,EAAA,CACD;AACH;ACzCA,MAAA,YAAe,OAAO,EAAE,OAAA,MAAsC;AAEvC,uBAAA,EAAE,QAAQ;AACjC;ACFA,MAAM,sBAAsB,CAAC,WAAwB;AACnD,MAAI,UAAU;AACd,MAAI,WAAiC;AAGrC,QAAMC,UAAS,OAAO,OAAO,IAAI,gBAAgB;AAE1C,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AAEL,UAAI,YAAY,MAAM;AACb,eAAA;AAAA,MACT;AAGI,UAAA,CAACA,QAAO,KAAK;AACR,eAAA,IAAI,KAAK,sEAAsE;AAC/E,eAAA;AAAA,MACT;AAEI,UAAA;AACF,eAAO,KAAK;AAAA,UACV,KAAKA,QAAO;AAAA,UACZ,aAAa,OAAO,OAAO,IAAI,aAAa;AAAA,UAC5C,GAAGA,QAAO;AAAA,QAAA,CACX;AAGU,mBAAA;AACD,kBAAA;AAAA,eACH,OAAO;AACP,eAAA,IAAI,KAAK,4DAA4D;AAAA,MAC9E;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,cAAc;AACL,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,UAAU,OAAc,gBAAgD;AAElE,UAAA,CAAC,WAAW,CAAC,UAAU;AAClB,eAAA,IAAI,KAAK,uDAAuD;AACvE;AAAA,MACF;AAES,eAAA,UAAU,CAAC,UAAU;AAExB,YAAA,kBAAkBA,QAAO,cAAc;AACzC,yBAAe,KAAK;AAAA,QACtB;AAGA,kBAAU,iBAAiB,KAAK;AAAA,MAAA,CACjC;AAAA,IACH;AAAA,EAAA;AAEJ;AAEA,MAAe,SAAA,CAAC,EAAE,OAAO,MAA+B,oBAAoB,MAAM;ACxElF,MAAe,WAAA;AAAA,EACb;AACF;ACIA,MAAe,SAAA;AAAA,EACb,SAAS;AAAA,IACP,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC;AAAA,EACT;AAAA,EACA,YAAY;AAAA,EAAC;AACf;ACXA,MAAA,QAAe,OAAO;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF;"}
|