@payloadcms/plugin-sentry 0.0.5 → 0.0.6
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/README.md +21 -21
- package/dist/captureException.d.ts +1 -0
- package/dist/captureException.d.ts.map +1 -0
- package/dist/captureException.js +51 -28
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -5
- package/dist/mocks/mockFile.js +4 -3
- package/dist/plugin.d.ts +1 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +33 -82
- package/dist/startSentry.d.ts +2 -1
- package/dist/startSentry.d.ts.map +1 -0
- package/dist/startSentry.js +73 -67
- package/dist/types.d.ts +7 -6
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -2
- package/dist/webpack.d.ts +1 -0
- package/dist/webpack.d.ts.map +1 -0
- package/dist/webpack.js +30 -28
- package/package.json +11 -24
- package/dist/captureException.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mocks/component.d.ts +0 -1
- package/dist/mocks/component.js +0 -188
- package/dist/mocks/component.js.map +0 -1
- package/dist/mocks/mockFile.d.ts +0 -2
- package/dist/mocks/mockFile.js.map +0 -1
- package/dist/plugin.js.map +0 -1
- package/dist/plugin.spec.d.ts +0 -1
- package/dist/plugin.spec.js +0 -53
- package/dist/plugin.spec.js.map +0 -1
- package/dist/startSentry.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/webpack.js.map +0 -1
package/README.md
CHANGED
|
@@ -15,12 +15,12 @@ This plugin seamlessly integrates [Sentry](https://sentry.io/) with [Payload](ht
|
|
|
15
15
|
1. Import `sentry` from `'@payloadcms/plugin-sentry'`
|
|
16
16
|
2. Add it to the `plugins` array of your [Payload config](https://payloadcms.com/docs/configuration/overview)
|
|
17
17
|
3. Pass in your Data Source Name (DSN)
|
|
18
|
-
4. Pass [additional options](#additional-options) -
|
|
18
|
+
4. Pass [additional options](#additional-options) - _not required_
|
|
19
19
|
|
|
20
20
|
```js
|
|
21
|
-
import { buildConfig } from 'payload/config'
|
|
22
|
-
import { sentry } from '@payloadcms/plugin-sentry'
|
|
23
|
-
import { Pages, Media } from './collections'
|
|
21
|
+
import { buildConfig } from 'payload/config'
|
|
22
|
+
import { sentry } from '@payloadcms/plugin-sentry'
|
|
23
|
+
import { Pages, Media } from './collections'
|
|
24
24
|
|
|
25
25
|
const config = buildConfig({
|
|
26
26
|
collections: [Pages, Media],
|
|
@@ -28,10 +28,10 @@ const config = buildConfig({
|
|
|
28
28
|
sentry({
|
|
29
29
|
dsn: 'https://61edebas777889984d323d777@o4505289711681536.ingest.sentry.io/4505357433352176',
|
|
30
30
|
}),
|
|
31
|
-
]
|
|
32
|
-
})
|
|
31
|
+
],
|
|
32
|
+
})
|
|
33
33
|
|
|
34
|
-
export default config
|
|
34
|
+
export default config
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
## Options
|
|
@@ -65,9 +65,9 @@ export default config;
|
|
|
65
65
|
You can configure any of these options by passing them to the plugin under options:
|
|
66
66
|
|
|
67
67
|
```js
|
|
68
|
-
import { buildConfig } from 'payload/config'
|
|
69
|
-
import { sentry } from '@payloadcms/plugin-sentry'
|
|
70
|
-
import { Pages, Media } from './collections'
|
|
68
|
+
import { buildConfig } from 'payload/config'
|
|
69
|
+
import { sentry } from '@payloadcms/plugin-sentry'
|
|
70
|
+
import { Pages, Media } from './collections'
|
|
71
71
|
|
|
72
72
|
const config = buildConfig({
|
|
73
73
|
collections: [Pages, Media],
|
|
@@ -82,15 +82,15 @@ const config = buildConfig({
|
|
|
82
82
|
},
|
|
83
83
|
requestHandler: {
|
|
84
84
|
serverName: false,
|
|
85
|
-
user: [
|
|
85
|
+
user: ['email'],
|
|
86
86
|
},
|
|
87
87
|
captureErrors: [400, 403, 404],
|
|
88
|
-
}
|
|
88
|
+
},
|
|
89
89
|
}),
|
|
90
|
-
]
|
|
91
|
-
})
|
|
90
|
+
],
|
|
91
|
+
})
|
|
92
92
|
|
|
93
|
-
export default config
|
|
93
|
+
export default config
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
To learn more about these options and when to use them, visit the [Sentry Docs](https://docs.sentry.io/platforms/node/guides/express/configuration/options).
|
|
@@ -100,7 +100,7 @@ To learn more about these options and when to use them, visit the [Sentry Docs](
|
|
|
100
100
|
All types can be directly imported:
|
|
101
101
|
|
|
102
102
|
```js
|
|
103
|
-
import { PluginOptions } from '@payloadcms/plugin-sentry/types'
|
|
103
|
+
import { PluginOptions } from '@payloadcms/plugin-sentry/types'
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
## Development
|
|
@@ -111,10 +111,10 @@ To actively develop or debug this plugin you can either work directly within the
|
|
|
111
111
|
|
|
112
112
|
This repo includes a demo of Payload that installs the plugin directly from the source code. This is the easiest way to get started. To spin up this demo, follow these steps:
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
1. First clone the repo
|
|
115
|
+
2. Then, `cd plugin-sentry && yarn && cd dev && yarn && yarn dev`
|
|
116
|
+
3. Now open `http://localhost:3000/admin` in your browser
|
|
117
|
+
4. Create a new user and sign in
|
|
118
|
+
5. Use the buttons to throw test errors
|
|
119
119
|
|
|
120
120
|
That's it! Changes made in `./src` will be reflected in the demo.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"captureException.d.ts","sourceRoot":"","sources":["../src/captureException.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,QAAS,KAAK,KAAG,IAE7C,CAAA"}
|
package/dist/captureException.js
CHANGED
|
@@ -1,32 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "captureException", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return captureException;
|
|
7
9
|
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
10
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
11
|
+
const _node = /*#__PURE__*/ _interop_require_wildcard(require("@sentry/node"));
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
13
|
+
if (typeof WeakMap !== "function") return null;
|
|
14
|
+
var cacheBabelInterop = new WeakMap();
|
|
15
|
+
var cacheNodeInterop = new WeakMap();
|
|
16
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
17
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
18
|
+
})(nodeInterop);
|
|
19
|
+
}
|
|
20
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
21
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
22
|
+
return obj;
|
|
23
|
+
}
|
|
24
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
25
|
+
return {
|
|
26
|
+
default: obj
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
30
|
+
if (cache && cache.has(obj)) {
|
|
31
|
+
return cache.get(obj);
|
|
32
|
+
}
|
|
33
|
+
var newObj = {};
|
|
34
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
35
|
+
for(var key in obj){
|
|
36
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
37
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
38
|
+
if (desc && (desc.get || desc.set)) {
|
|
39
|
+
Object.defineProperty(newObj, key, desc);
|
|
40
|
+
} else {
|
|
41
|
+
newObj[key] = obj[key];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
newObj.default = obj;
|
|
46
|
+
if (cache) {
|
|
47
|
+
cache.set(obj, newObj);
|
|
48
|
+
}
|
|
49
|
+
return newObj;
|
|
50
|
+
}
|
|
51
|
+
const captureException = (err)=>{
|
|
52
|
+
_node.captureException(err);
|
|
30
53
|
};
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYXB0dXJlRXhjZXB0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L25vZGUnXG5cbmV4cG9ydCBjb25zdCBjYXB0dXJlRXhjZXB0aW9uID0gKGVycjogRXJyb3IpOiB2b2lkID0+IHtcbiAgU2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZXJyKVxufVxuIl0sIm5hbWVzIjpbImNhcHR1cmVFeGNlcHRpb24iLCJlcnIiLCJTZW50cnkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7Ozs4REFGVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQixNQUFNQSxtQkFBbUIsQ0FBQ0M7SUFDL0JDLE1BQU9GLGdCQUFnQixDQUFDQztBQUMxQiJ9
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "sentry", {
|
|
6
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "sentry", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _plugin.sentry;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _plugin = require("./plugin");
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBzZW50cnkgfSBmcm9tICcuL3BsdWdpbidcbmV4cG9ydCB0eXBlIHsgUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG4iXSwibmFtZXMiOlsic2VudHJ5Il0sIm1hcHBpbmdzIjoiOzs7OytCQUFTQTs7O2VBQUFBLGNBQU07Ozt3QkFBUSJ9
|
package/dist/mocks/mockFile.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
module.exports = {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
captureException: ()=>{},
|
|
4
|
+
startSentry: ()=>{}
|
|
5
5
|
};
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2Nrcy9tb2NrRmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgY2FwdHVyZUV4Y2VwdGlvbjogKCkgPT4ge30sXG4gIHN0YXJ0U2VudHJ5OiAoKSA9PiB7fSxcbn1cbiJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiY2FwdHVyZUV4Y2VwdGlvbiIsInN0YXJ0U2VudHJ5Il0sIm1hcHBpbmdzIjoiO0FBQUFBLE9BQU9DLE9BQU8sR0FBRztJQUNmQyxrQkFBa0IsS0FBTztJQUN6QkMsYUFBYSxLQUFPO0FBQ3RCIn0=
|
package/dist/plugin.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAM5C,eAAO,MAAM,MAAM,kBACD,aAAa,sBACZ,MAAM,KAAG,MA2BzB,CAAA"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,89 +1,40 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
1
|
+
/* eslint-disable no-console */ "use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "sentry", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return sentry;
|
|
47
9
|
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
} });
|
|
10
|
+
});
|
|
11
|
+
const _captureException = require("./captureException");
|
|
12
|
+
const _startSentry = require("./startSentry");
|
|
13
|
+
const _webpack = require("./webpack");
|
|
14
|
+
const sentry = (pluginOptions)=>(incomingConfig)=>{
|
|
15
|
+
const config = {
|
|
16
|
+
...incomingConfig
|
|
17
|
+
};
|
|
18
|
+
const webpack = (0, _webpack.extendWebpackConfig)(incomingConfig);
|
|
19
|
+
config.admin = {
|
|
20
|
+
...config.admin || {},
|
|
21
|
+
webpack
|
|
22
|
+
};
|
|
62
23
|
if (pluginOptions.enabled === false || !pluginOptions.dsn) {
|
|
63
24
|
return config;
|
|
64
25
|
}
|
|
65
|
-
config.hooks =
|
|
26
|
+
config.hooks = {
|
|
27
|
+
...incomingConfig.hooks || {},
|
|
66
28
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
-
afterError:
|
|
68
|
-
(0,
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return [4 /*yield*/, incomingConfig.onInit(payload)];
|
|
76
|
-
case 1:
|
|
77
|
-
_a.sent();
|
|
78
|
-
_a.label = 2;
|
|
79
|
-
case 2:
|
|
80
|
-
(0, startSentry_1.startSentry)(pluginOptions, payload);
|
|
81
|
-
return [2 /*return*/];
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}); };
|
|
29
|
+
afterError: (err)=>{
|
|
30
|
+
(0, _captureException.captureException)(err);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
config.onInit = async (payload)=>{
|
|
34
|
+
if (incomingConfig.onInit) await incomingConfig.onInit(payload);
|
|
35
|
+
(0, _startSentry.startSentry)(pluginOptions, payload);
|
|
36
|
+
};
|
|
85
37
|
return config;
|
|
86
38
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
//# sourceMappingURL=plugin.js.map
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY2FwdHVyZUV4Y2VwdGlvbiB9IGZyb20gJy4vY2FwdHVyZUV4Y2VwdGlvbidcbmltcG9ydCB7IHN0YXJ0U2VudHJ5IH0gZnJvbSAnLi9zdGFydFNlbnRyeSdcbmltcG9ydCB7IGV4dGVuZFdlYnBhY2tDb25maWcgfSBmcm9tICcuL3dlYnBhY2snXG5cbmV4cG9ydCBjb25zdCBzZW50cnkgPVxuICAocGx1Z2luT3B0aW9uczogUGx1Z2luT3B0aW9ucykgPT5cbiAgKGluY29taW5nQ29uZmlnOiBDb25maWcpOiBDb25maWcgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgLi4uaW5jb21pbmdDb25maWcgfVxuICAgIGNvbnN0IHdlYnBhY2sgPSBleHRlbmRXZWJwYWNrQ29uZmlnKGluY29taW5nQ29uZmlnKVxuXG4gICAgY29uZmlnLmFkbWluID0ge1xuICAgICAgLi4uKGNvbmZpZy5hZG1pbiB8fCB7fSksXG4gICAgICB3ZWJwYWNrLFxuICAgIH1cblxuICAgIGlmIChwbHVnaW5PcHRpb25zLmVuYWJsZWQgPT09IGZhbHNlIHx8ICFwbHVnaW5PcHRpb25zLmRzbikge1xuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH1cblxuICAgIGNvbmZpZy5ob29rcyA9IHtcbiAgICAgIC4uLihpbmNvbWluZ0NvbmZpZy5ob29rcyB8fCB7fSksXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgYWZ0ZXJFcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIGNhcHR1cmVFeGNlcHRpb24oZXJyKVxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25maWcub25Jbml0ID0gYXN5bmMgKHBheWxvYWQpID0+IHtcbiAgICAgIGlmIChpbmNvbWluZ0NvbmZpZy5vbkluaXQpIGF3YWl0IGluY29taW5nQ29uZmlnLm9uSW5pdChwYXlsb2FkKVxuICAgICAgc3RhcnRTZW50cnkocGx1Z2luT3B0aW9ucywgcGF5bG9hZClcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbiJdLCJuYW1lcyI6WyJzZW50cnkiLCJwbHVnaW5PcHRpb25zIiwiaW5jb21pbmdDb25maWciLCJjb25maWciLCJ3ZWJwYWNrIiwiZXh0ZW5kV2VicGFja0NvbmZpZyIsImFkbWluIiwiZW5hYmxlZCIsImRzbiIsImhvb2tzIiwiYWZ0ZXJFcnJvciIsImVyciIsImNhcHR1cmVFeGNlcHRpb24iLCJvbkluaXQiLCJwYXlsb2FkIiwic3RhcnRTZW50cnkiXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2Qjs7OzsrQkFTaEJBOzs7ZUFBQUE7OztrQ0FKb0I7NkJBQ0w7eUJBQ1E7QUFFN0IsTUFBTUEsU0FDWCxDQUFDQyxnQkFDRCxDQUFDQztRQUNDLE1BQU1DLFNBQVM7WUFBRSxHQUFHRCxjQUFjO1FBQUM7UUFDbkMsTUFBTUUsVUFBVUMsSUFBQUEsNEJBQW1CLEVBQUNIO1FBRXBDQyxPQUFPRyxLQUFLLEdBQUc7WUFDYixHQUFJSCxPQUFPRyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ3RCRjtRQUNGO1FBRUEsSUFBSUgsY0FBY00sT0FBTyxLQUFLLFNBQVMsQ0FBQ04sY0FBY08sR0FBRyxFQUFFO1lBQ3pELE9BQU9MO1FBQ1Q7UUFFQUEsT0FBT00sS0FBSyxHQUFHO1lBQ2IsR0FBSVAsZUFBZU8sS0FBSyxJQUFJLENBQUMsQ0FBQztZQUM5Qiw4REFBOEQ7WUFDOURDLFlBQVksQ0FBQ0M7Z0JBQ1hDLElBQUFBLGtDQUFnQixFQUFDRDtZQUNuQjtRQUNGO1FBRUFSLE9BQU9VLE1BQU0sR0FBRyxPQUFPQztZQUNyQixJQUFJWixlQUFlVyxNQUFNLEVBQUUsTUFBTVgsZUFBZVcsTUFBTSxDQUFDQztZQUN2REMsSUFBQUEsd0JBQVcsRUFBQ2QsZUFBZWE7UUFDN0I7UUFFQSxPQUFPWDtJQUNUIn0=
|
package/dist/startSentry.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type { Payload } from 'payload
|
|
1
|
+
import type { Payload } from 'payload';
|
|
2
2
|
import type { PluginOptions } from './types';
|
|
3
3
|
export declare const startSentry: (pluginOptions: PluginOptions, payload: Payload) => void;
|
|
4
|
+
//# sourceMappingURL=startSentry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startSentry.d.ts","sourceRoot":"","sources":["../src/startSentry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAKtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,WAAW,kBAAmB,aAAa,WAAW,OAAO,KAAG,IAmD5E,CAAA"}
|
package/dist/startSentry.js
CHANGED
|
@@ -1,86 +1,92 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */ "use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "startSentry", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return startSentry;
|
|
18
9
|
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
10
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
11
|
+
const _node = /*#__PURE__*/ _interop_require_wildcard(require("@sentry/node"));
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
13
|
+
if (typeof WeakMap !== "function") return null;
|
|
14
|
+
var cacheBabelInterop = new WeakMap();
|
|
15
|
+
var cacheNodeInterop = new WeakMap();
|
|
16
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
17
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
18
|
+
})(nodeInterop);
|
|
19
|
+
}
|
|
20
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
21
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
22
|
+
return obj;
|
|
23
|
+
}
|
|
24
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
25
|
+
return {
|
|
26
|
+
default: obj
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
30
|
+
if (cache && cache.has(obj)) {
|
|
31
|
+
return cache.get(obj);
|
|
32
|
+
}
|
|
33
|
+
var newObj = {};
|
|
34
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
35
|
+
for(var key in obj){
|
|
36
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
37
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
38
|
+
if (desc && (desc.get || desc.set)) {
|
|
39
|
+
Object.defineProperty(newObj, key, desc);
|
|
40
|
+
} else {
|
|
41
|
+
newObj[key] = obj[key];
|
|
42
|
+
}
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var app = payload.express;
|
|
54
|
-
if (!dsn || !app)
|
|
55
|
-
return;
|
|
45
|
+
newObj.default = obj;
|
|
46
|
+
if (cache) {
|
|
47
|
+
cache.set(obj, newObj);
|
|
48
|
+
}
|
|
49
|
+
return newObj;
|
|
50
|
+
}
|
|
51
|
+
const startSentry = (pluginOptions, payload)=>{
|
|
52
|
+
const { dsn, options } = pluginOptions;
|
|
53
|
+
const { express: app } = payload;
|
|
54
|
+
if (!dsn || !app) return;
|
|
56
55
|
try {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
_node.init({
|
|
57
|
+
...options?.init,
|
|
58
|
+
dsn: dsn,
|
|
59
|
+
integrations: [
|
|
60
|
+
...options?.init?.integrations || [],
|
|
61
|
+
new _node.Integrations.Http({
|
|
62
|
+
tracing: true
|
|
63
|
+
}),
|
|
64
|
+
new _node.Integrations.Express({
|
|
65
|
+
app
|
|
66
|
+
}),
|
|
67
|
+
..._node.autoDiscoverNodePerformanceMonitoringIntegrations()
|
|
68
|
+
]
|
|
69
|
+
});
|
|
70
|
+
app.use(_node.Handlers.requestHandler(options?.requestHandler || {}));
|
|
71
|
+
app.use(_node.Handlers.tracingHandler());
|
|
72
|
+
app.use(_node.Handlers.errorHandler({
|
|
73
|
+
shouldHandleError (error) {
|
|
65
74
|
if (error.status === 500) {
|
|
66
75
|
return true;
|
|
67
76
|
}
|
|
68
|
-
if (
|
|
69
|
-
typeof error.status === 'number' &&
|
|
70
|
-
options.captureErrors.includes(error.status)) {
|
|
77
|
+
if (options?.captureErrors && typeof error.status === 'number' && options.captureErrors.includes(error.status)) {
|
|
71
78
|
return true;
|
|
72
79
|
}
|
|
73
80
|
return false;
|
|
74
|
-
}
|
|
81
|
+
}
|
|
75
82
|
}));
|
|
76
83
|
app.use(function onError(_err, _req, res, _next) {
|
|
77
84
|
res.statusCode = 500;
|
|
78
85
|
res.end(res.sentry + '\n');
|
|
79
86
|
});
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
87
|
+
} catch (err) {
|
|
82
88
|
console.log('There was an error initializing Sentry, please ensure you entered a valid DSN');
|
|
83
89
|
}
|
|
84
90
|
};
|
|
85
|
-
|
|
86
|
-
//# sourceMappingURL=
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFydFNlbnRyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB0eXBlIHsgTmV4dEZ1bmN0aW9uLCBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnXG5pbXBvcnQgdHlwZSBleHByZXNzIGZyb20gJ2V4cHJlc3MnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9ub2RlJ1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3Qgc3RhcnRTZW50cnkgPSAocGx1Z2luT3B0aW9uczogUGx1Z2luT3B0aW9ucywgcGF5bG9hZDogUGF5bG9hZCk6IHZvaWQgPT4ge1xuICBjb25zdCB7IGRzbiwgb3B0aW9ucyB9ID0gcGx1Z2luT3B0aW9uc1xuICBjb25zdCB7IGV4cHJlc3M6IGFwcCB9ID0gcGF5bG9hZFxuXG4gIGlmICghZHNuIHx8ICFhcHApIHJldHVyblxuXG4gIHRyeSB7XG4gICAgU2VudHJ5LmluaXQoe1xuICAgICAgLi4ub3B0aW9ucz8uaW5pdCxcbiAgICAgIGRzbjogZHNuLFxuICAgICAgaW50ZWdyYXRpb25zOiBbXG4gICAgICAgIC4uLihvcHRpb25zPy5pbml0Py5pbnRlZ3JhdGlvbnMgfHwgW10pLFxuICAgICAgICBuZXcgU2VudHJ5LkludGVncmF0aW9ucy5IdHRwKHsgdHJhY2luZzogdHJ1ZSB9KSxcbiAgICAgICAgbmV3IFNlbnRyeS5JbnRlZ3JhdGlvbnMuRXhwcmVzcyh7IGFwcCB9KSxcbiAgICAgICAgLi4uU2VudHJ5LmF1dG9EaXNjb3Zlck5vZGVQZXJmb3JtYW5jZU1vbml0b3JpbmdJbnRlZ3JhdGlvbnMoKSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIGFwcC51c2UoU2VudHJ5LkhhbmRsZXJzLnJlcXVlc3RIYW5kbGVyKG9wdGlvbnM/LnJlcXVlc3RIYW5kbGVyIHx8IHt9KSBhcyBleHByZXNzLlJlcXVlc3RIYW5kbGVyKVxuICAgIGFwcC51c2UoU2VudHJ5LkhhbmRsZXJzLnRyYWNpbmdIYW5kbGVyKCkpXG5cbiAgICBhcHAudXNlKFxuICAgICAgU2VudHJ5LkhhbmRsZXJzLmVycm9ySGFuZGxlcih7XG4gICAgICAgIHNob3VsZEhhbmRsZUVycm9yKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBvcHRpb25zPy5jYXB0dXJlRXJyb3JzICYmXG4gICAgICAgICAgICB0eXBlb2YgZXJyb3Iuc3RhdHVzID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAgICAgb3B0aW9ucy5jYXB0dXJlRXJyb3JzLmluY2x1ZGVzKGVycm9yLnN0YXR1cylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgfSkgYXMgZXhwcmVzcy5FcnJvclJlcXVlc3RIYW5kbGVyLFxuICAgIClcblxuICAgIGFwcC51c2UoZnVuY3Rpb24gb25FcnJvcihcbiAgICAgIF9lcnI6IHVua25vd24sXG4gICAgICBfcmVxOiBSZXF1ZXN0LFxuICAgICAgcmVzOiBSZXNwb25zZSAmIHsgc2VudHJ5Pzogc3RyaW5nIH0sXG4gICAgICBfbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDBcbiAgICAgIHJlcy5lbmQocmVzLnNlbnRyeSArICdcXG4nKVxuICAgIH0pXG4gIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgIGNvbnNvbGUubG9nKCdUaGVyZSB3YXMgYW4gZXJyb3IgaW5pdGlhbGl6aW5nIFNlbnRyeSwgcGxlYXNlIGVuc3VyZSB5b3UgZW50ZXJlZCBhIHZhbGlkIERTTicpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGFydFNlbnRyeSIsInBsdWdpbk9wdGlvbnMiLCJwYXlsb2FkIiwiZHNuIiwib3B0aW9ucyIsImV4cHJlc3MiLCJhcHAiLCJTZW50cnkiLCJpbml0IiwiaW50ZWdyYXRpb25zIiwiSW50ZWdyYXRpb25zIiwiSHR0cCIsInRyYWNpbmciLCJFeHByZXNzIiwiYXV0b0Rpc2NvdmVyTm9kZVBlcmZvcm1hbmNlTW9uaXRvcmluZ0ludGVncmF0aW9ucyIsInVzZSIsIkhhbmRsZXJzIiwicmVxdWVzdEhhbmRsZXIiLCJ0cmFjaW5nSGFuZGxlciIsImVycm9ySGFuZGxlciIsInNob3VsZEhhbmRsZUVycm9yIiwiZXJyb3IiLCJzdGF0dXMiLCJjYXB0dXJlRXJyb3JzIiwiaW5jbHVkZXMiLCJvbkVycm9yIiwiX2VyciIsIl9yZXEiLCJyZXMiLCJfbmV4dCIsInN0YXR1c0NvZGUiLCJlbmQiLCJzZW50cnkiLCJlcnIiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7Ozs7K0JBVXZDQTs7O2VBQUFBOzs7OERBSlc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJakIsTUFBTUEsY0FBYyxDQUFDQyxlQUE4QkM7SUFDeEQsTUFBTSxFQUFFQyxHQUFHLEVBQUVDLE9BQU8sRUFBRSxHQUFHSDtJQUN6QixNQUFNLEVBQUVJLFNBQVNDLEdBQUcsRUFBRSxHQUFHSjtJQUV6QixJQUFJLENBQUNDLE9BQU8sQ0FBQ0csS0FBSztJQUVsQixJQUFJO1FBQ0ZDLE1BQU9DLElBQUksQ0FBQztZQUNWLEdBQUdKLFNBQVNJLElBQUk7WUFDaEJMLEtBQUtBO1lBQ0xNLGNBQWM7bUJBQ1JMLFNBQVNJLE1BQU1DLGdCQUFnQixFQUFFO2dCQUNyQyxJQUFJRixNQUFPRyxZQUFZLENBQUNDLElBQUksQ0FBQztvQkFBRUMsU0FBUztnQkFBSztnQkFDN0MsSUFBSUwsTUFBT0csWUFBWSxDQUFDRyxPQUFPLENBQUM7b0JBQUVQO2dCQUFJO21CQUNuQ0MsTUFBT08saURBQWlEO2FBQzVEO1FBQ0g7UUFFQVIsSUFBSVMsR0FBRyxDQUFDUixNQUFPUyxRQUFRLENBQUNDLGNBQWMsQ0FBQ2IsU0FBU2Esa0JBQWtCLENBQUM7UUFDbkVYLElBQUlTLEdBQUcsQ0FBQ1IsTUFBT1MsUUFBUSxDQUFDRSxjQUFjO1FBRXRDWixJQUFJUyxHQUFHLENBQ0xSLE1BQU9TLFFBQVEsQ0FBQ0csWUFBWSxDQUFDO1lBQzNCQyxtQkFBa0JDLEtBQUs7Z0JBQ3JCLElBQUlBLE1BQU1DLE1BQU0sS0FBSyxLQUFLO29CQUN4QixPQUFPO2dCQUNUO2dCQUNBLElBQ0VsQixTQUFTbUIsaUJBQ1QsT0FBT0YsTUFBTUMsTUFBTSxLQUFLLFlBQ3hCbEIsUUFBUW1CLGFBQWEsQ0FBQ0MsUUFBUSxDQUFDSCxNQUFNQyxNQUFNLEdBQzNDO29CQUNBLE9BQU87Z0JBQ1Q7Z0JBQ0EsT0FBTztZQUNUO1FBQ0Y7UUFHRmhCLElBQUlTLEdBQUcsQ0FBQyxTQUFTVSxRQUNmQyxJQUFhLEVBQ2JDLElBQWEsRUFDYkMsR0FBbUMsRUFDbkNDLEtBQW1CO1lBRW5CRCxJQUFJRSxVQUFVLEdBQUc7WUFDakJGLElBQUlHLEdBQUcsQ0FBQ0gsSUFBSUksTUFBTSxHQUFHO1FBQ3ZCO0lBQ0YsRUFBRSxPQUFPQyxLQUFjO1FBQ3JCQyxRQUFRQyxHQUFHLENBQUM7SUFDZDtBQUNGIn0=
|
package/dist/types.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface PluginOptions {
|
|
|
7
7
|
* Sentry automatically assigns a DSN when you create a project.
|
|
8
8
|
* If you don't have a DSN yet, you can create a new project here: https://sentry.io
|
|
9
9
|
*/
|
|
10
|
-
dsn:
|
|
10
|
+
dsn: null | string;
|
|
11
11
|
/**
|
|
12
12
|
* Enable or disable Sentry plugin
|
|
13
13
|
* @default false
|
|
@@ -18,6 +18,11 @@ export interface PluginOptions {
|
|
|
18
18
|
* @default false
|
|
19
19
|
*/
|
|
20
20
|
options?: {
|
|
21
|
+
/**
|
|
22
|
+
* Sentry will only capture 500 errors by default.
|
|
23
|
+
* If you want to capture other errors, you can add them as an array here.
|
|
24
|
+
*/
|
|
25
|
+
captureErrors?: number[];
|
|
21
26
|
/**
|
|
22
27
|
* Passes any valid options to Sentry.init()
|
|
23
28
|
*/
|
|
@@ -26,10 +31,6 @@ export interface PluginOptions {
|
|
|
26
31
|
* Passes any valid options to Sentry.Handlers.requestHandler()
|
|
27
32
|
*/
|
|
28
33
|
requestHandler?: RequestHandlerOptions;
|
|
29
|
-
/**
|
|
30
|
-
* Sentry will only capture 500 errors by default.
|
|
31
|
-
* If you want to capture other errors, you can add them as an array here.
|
|
32
|
-
*/
|
|
33
|
-
captureErrors?: number[];
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,GAAG,EAAE,IAAI,GAAG,MAAM,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;QACxB;;WAEG;QACH,IAAI,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;QAC7B;;WAEG;QACH,cAAc,CAAC,EAAE,qBAAqB,CAAA;KACvC,CAAA;CACF"}
|
package/dist/types.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
package/dist/webpack.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webpack.d.ts","sourceRoot":"","sources":["../src/webpack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AAI7D,eAAO,MAAM,mBAAmB,WACrB,MAAM,qBAAoB,aAAa,KAAK,aAsBpD,CAAA"}
|
package/dist/webpack.js
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "extendWebpackConfig", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return extendWebpackConfig;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
10
15
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var mockModulePath = path_1.default.resolve(__dirname, './mocks/mockFile.js');
|
|
27
|
-
var newWebpack = __assign(__assign({}, existingWebpackConfig), { resolve: __assign(__assign({}, (existingWebpackConfig.resolve || {})), { alias: __assign(__assign({}, (((_c = existingWebpackConfig.resolve) === null || _c === void 0 ? void 0 : _c.alias) ? existingWebpackConfig.resolve.alias : {})), (_a = {}, _a[path_1.default.resolve(__dirname, './startSentry')] = mockModulePath, _a[path_1.default.resolve(__dirname, './captureException')] = mockModulePath, _a)) }) });
|
|
16
|
+
}
|
|
17
|
+
const extendWebpackConfig = (config)=>(webpackConfig)=>{
|
|
18
|
+
const existingWebpackConfig = typeof config.admin?.webpack === 'function' ? config.admin.webpack(webpackConfig) : webpackConfig;
|
|
19
|
+
const mockModulePath = _path.default.resolve(__dirname, './mocks/mockFile.js');
|
|
20
|
+
const newWebpack = {
|
|
21
|
+
...existingWebpackConfig,
|
|
22
|
+
resolve: {
|
|
23
|
+
...existingWebpackConfig.resolve || {},
|
|
24
|
+
alias: {
|
|
25
|
+
...existingWebpackConfig.resolve?.alias ? existingWebpackConfig.resolve.alias : {},
|
|
26
|
+
[_path.default.resolve(__dirname, './captureException')]: mockModulePath,
|
|
27
|
+
[_path.default.resolve(__dirname, './startSentry')]: mockModulePath
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
28
31
|
return newWebpack;
|
|
29
32
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=webpack.js.map
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93ZWJwYWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ3VyYXRpb24gYXMgV2VicGFja0NvbmZpZyB9IGZyb20gJ3dlYnBhY2snXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmV4cG9ydCBjb25zdCBleHRlbmRXZWJwYWNrQ29uZmlnID1cbiAgKGNvbmZpZzogQ29uZmlnKTogKCh3ZWJwYWNrQ29uZmlnOiBXZWJwYWNrQ29uZmlnKSA9PiBXZWJwYWNrQ29uZmlnKSA9PlxuICAod2VicGFja0NvbmZpZykgPT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nV2VicGFja0NvbmZpZyA9XG4gICAgICB0eXBlb2YgY29uZmlnLmFkbWluPy53ZWJwYWNrID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY29uZmlnLmFkbWluLndlYnBhY2sod2VicGFja0NvbmZpZylcbiAgICAgICAgOiB3ZWJwYWNrQ29uZmlnXG5cbiAgICBjb25zdCBtb2NrTW9kdWxlUGF0aCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuL21vY2tzL21vY2tGaWxlLmpzJylcblxuICAgIGNvbnN0IG5ld1dlYnBhY2sgPSB7XG4gICAgICAuLi5leGlzdGluZ1dlYnBhY2tDb25maWcsXG4gICAgICByZXNvbHZlOiB7XG4gICAgICAgIC4uLihleGlzdGluZ1dlYnBhY2tDb25maWcucmVzb2x2ZSB8fCB7fSksXG4gICAgICAgIGFsaWFzOiB7XG4gICAgICAgICAgLi4uKGV4aXN0aW5nV2VicGFja0NvbmZpZy5yZXNvbHZlPy5hbGlhcyA/IGV4aXN0aW5nV2VicGFja0NvbmZpZy5yZXNvbHZlLmFsaWFzIDoge30pLFxuICAgICAgICAgIFtwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi9jYXB0dXJlRXhjZXB0aW9uJyldOiBtb2NrTW9kdWxlUGF0aCxcbiAgICAgICAgICBbcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vc3RhcnRTZW50cnknKV06IG1vY2tNb2R1bGVQYXRoLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3V2VicGFja1xuICB9XG4iXSwibmFtZXMiOlsiZXh0ZW5kV2VicGFja0NvbmZpZyIsImNvbmZpZyIsIndlYnBhY2tDb25maWciLCJleGlzdGluZ1dlYnBhY2tDb25maWciLCJhZG1pbiIsIndlYnBhY2siLCJtb2NrTW9kdWxlUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwibmV3V2VicGFjayIsImFsaWFzIl0sIm1hcHBpbmdzIjoiOzs7OytCQUthQTs7O2VBQUFBOzs7NkRBRkk7Ozs7OztBQUVWLE1BQU1BLHNCQUNYLENBQUNDLFNBQ0QsQ0FBQ0M7UUFDQyxNQUFNQyx3QkFDSixPQUFPRixPQUFPRyxLQUFLLEVBQUVDLFlBQVksYUFDN0JKLE9BQU9HLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSCxpQkFDckJBO1FBRU4sTUFBTUksaUJBQWlCQyxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVztRQUUvQyxNQUFNQyxhQUFhO1lBQ2pCLEdBQUdQLHFCQUFxQjtZQUN4QkssU0FBUztnQkFDUCxHQUFJTCxzQkFBc0JLLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ3ZDRyxPQUFPO29CQUNMLEdBQUlSLHNCQUFzQkssT0FBTyxFQUFFRyxRQUFRUixzQkFBc0JLLE9BQU8sQ0FBQ0csS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDbkYsQ0FBQ0osYUFBSSxDQUFDQyxPQUFPLENBQUNDLFdBQVcsc0JBQXNCLEVBQUVIO29CQUNqRCxDQUFDQyxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxpQkFBaUIsRUFBRUg7Z0JBQzlDO1lBQ0Y7UUFDRjtRQUVBLE9BQU9JO0lBQ1QifQ==
|
package/package.json
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-sentry",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"homepage:": "https://payloadcms.com",
|
|
5
5
|
"repository": "git@github.com:payloadcms/plugin-sentry.git",
|
|
6
6
|
"description": "Sentry plugin for Payload",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
11
|
-
"test": "jest",
|
|
12
|
-
"lint": "eslint src",
|
|
13
|
-
"lint:fix": "eslint --fix --ext .ts,.tsx src",
|
|
14
|
-
"clean": "rimraf dist && rimraf dev/yarn.lock",
|
|
15
|
-
"prepublishOnly": "yarn clean && yarn build && yarn test"
|
|
16
|
-
},
|
|
17
9
|
"keywords": [
|
|
18
10
|
"payload",
|
|
19
11
|
"cms",
|
|
@@ -37,29 +29,24 @@
|
|
|
37
29
|
"express": "^4.18.2"
|
|
38
30
|
},
|
|
39
31
|
"devDependencies": {
|
|
40
|
-
"@payloadcms/eslint-config": "^0.0.1",
|
|
41
32
|
"@types/express": "^4.17.9",
|
|
42
33
|
"@types/jest": "^29.5.2",
|
|
43
34
|
"@types/node": "18.11.3",
|
|
44
35
|
"@types/react": "18.0.21",
|
|
45
|
-
"@typescript-eslint/eslint-plugin": "^5.51.0",
|
|
46
|
-
"@typescript-eslint/parser": "^5.51.0",
|
|
47
36
|
"copyfiles": "^2.4.1",
|
|
48
37
|
"cross-env": "^7.0.3",
|
|
49
38
|
"dotenv": "^8.2.0",
|
|
50
|
-
"eslint": "^8.19.0",
|
|
51
|
-
"eslint-config-prettier": "^8.5.0",
|
|
52
|
-
"eslint-plugin-filenames": "^1.3.2",
|
|
53
|
-
"eslint-plugin-import": "2.25.4",
|
|
54
|
-
"eslint-plugin-prettier": "^4.0.0",
|
|
55
|
-
"eslint-plugin-react-hooks": "^4.6.0",
|
|
56
|
-
"eslint-plugin-simple-import-sort": "^10.0.0",
|
|
57
39
|
"jest": "^29.5.0",
|
|
58
40
|
"nodemon": "^2.0.6",
|
|
59
|
-
"payload": "^1.10.1",
|
|
60
|
-
"prettier": "^2.7.1",
|
|
61
41
|
"ts-jest": "^29.1.0",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
42
|
+
"webpack": "^5.78.0",
|
|
43
|
+
"@payloadcms/eslint-config": "1.0.0",
|
|
44
|
+
"payload": "2.1.1"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "pnpm build:swc && pnpm build:types",
|
|
48
|
+
"build:swc": "swc ./src -d ./dist --config-file .swcrc",
|
|
49
|
+
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
50
|
+
"clean": "rimraf {dist,*.tsbuildinfo}"
|
|
64
51
|
}
|
|
65
|
-
}
|
|
52
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"captureException.js","sourceRoot":"","sources":["../src/captureException.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAsC;AAE/B,IAAM,gBAAgB,GAAG,UAAC,GAAU;IACzC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;AAC9B,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAAxB,gGAAA,MAAM,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const testErrors: () => JSX.Element;
|
package/dist/mocks/component.js
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
|
-
function step(op) {
|
|
39
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
41
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
42
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
|
-
switch (op[0]) {
|
|
44
|
-
case 0: case 1: t = op; break;
|
|
45
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
46
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
47
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
48
|
-
default:
|
|
49
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
-
if (t[2]) _.ops.pop();
|
|
54
|
-
_.trys.pop(); continue;
|
|
55
|
-
}
|
|
56
|
-
op = body.call(thisArg, _);
|
|
57
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
62
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
63
|
-
};
|
|
64
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
-
exports.testErrors = void 0;
|
|
66
|
-
var react_1 = __importDefault(require("react"));
|
|
67
|
-
var Sentry = __importStar(require("@sentry/react"));
|
|
68
|
-
var testErrors = function () {
|
|
69
|
-
var notFound = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
70
|
-
var runSentry, req;
|
|
71
|
-
return __generator(this, function (_a) {
|
|
72
|
-
switch (_a.label) {
|
|
73
|
-
case 0:
|
|
74
|
-
runSentry = Sentry.captureMessage('surprise', {
|
|
75
|
-
level: 'info',
|
|
76
|
-
extra: {
|
|
77
|
-
info: 'here is info',
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
return [4 /*yield*/, fetch('http://localhost:3000/api/users/notFound', {
|
|
81
|
-
method: 'GET',
|
|
82
|
-
})];
|
|
83
|
-
case 1:
|
|
84
|
-
req = _a.sent();
|
|
85
|
-
runSentry;
|
|
86
|
-
return [2 /*return*/];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}); };
|
|
90
|
-
var cannotCreate = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
91
|
-
var req;
|
|
92
|
-
return __generator(this, function (_a) {
|
|
93
|
-
switch (_a.label) {
|
|
94
|
-
case 0: return [4 /*yield*/, fetch('http://localhost:3000/api/posts', {
|
|
95
|
-
method: 'POST',
|
|
96
|
-
body: JSON.stringify({
|
|
97
|
-
text: 'New post',
|
|
98
|
-
}),
|
|
99
|
-
})];
|
|
100
|
-
case 1:
|
|
101
|
-
req = _a.sent();
|
|
102
|
-
return [2 /*return*/];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}); };
|
|
106
|
-
var badLogin = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
107
|
-
var req;
|
|
108
|
-
return __generator(this, function (_a) {
|
|
109
|
-
switch (_a.label) {
|
|
110
|
-
case 0: return [4 /*yield*/, fetch('http://localhost:3000/api/users/login', {
|
|
111
|
-
method: 'POST',
|
|
112
|
-
body: JSON.stringify({
|
|
113
|
-
email: 'sorry@whoareyou.com',
|
|
114
|
-
password: '123456',
|
|
115
|
-
}),
|
|
116
|
-
})];
|
|
117
|
-
case 1:
|
|
118
|
-
req = _a.sent();
|
|
119
|
-
return [2 /*return*/];
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}); };
|
|
123
|
-
var badReq = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
124
|
-
var req;
|
|
125
|
-
return __generator(this, function (_a) {
|
|
126
|
-
switch (_a.label) {
|
|
127
|
-
case 0: return [4 /*yield*/, fetch('http://localhost:3000/api/users/forgot-password', {
|
|
128
|
-
method: 'POST',
|
|
129
|
-
credentials: 'include',
|
|
130
|
-
headers: {
|
|
131
|
-
'Content-Type': 'application/json',
|
|
132
|
-
},
|
|
133
|
-
})];
|
|
134
|
-
case 1:
|
|
135
|
-
req = _a.sent();
|
|
136
|
-
return [2 /*return*/];
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
}); };
|
|
140
|
-
var badReset = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
141
|
-
var req;
|
|
142
|
-
return __generator(this, function (_a) {
|
|
143
|
-
switch (_a.label) {
|
|
144
|
-
case 0: return [4 /*yield*/, fetch('http://localhost:3000/api/users/reset-password', {
|
|
145
|
-
method: 'POST',
|
|
146
|
-
credentials: 'include',
|
|
147
|
-
headers: {
|
|
148
|
-
'Content-Type': 'application/json',
|
|
149
|
-
},
|
|
150
|
-
body: JSON.stringify({
|
|
151
|
-
token: '7eac3830ffcfc7f9f66c00315dabeb11575dba91',
|
|
152
|
-
password: 'newPassword',
|
|
153
|
-
}),
|
|
154
|
-
})];
|
|
155
|
-
case 1:
|
|
156
|
-
req = _a.sent();
|
|
157
|
-
return [2 /*return*/];
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}); };
|
|
161
|
-
var badVerify = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
162
|
-
var req;
|
|
163
|
-
return __generator(this, function (_a) {
|
|
164
|
-
switch (_a.label) {
|
|
165
|
-
case 0: return [4 /*yield*/, fetch('http://localhost:3000/api/users/unlock', {
|
|
166
|
-
method: 'POST',
|
|
167
|
-
headers: {
|
|
168
|
-
'Content-Type': 'application/json',
|
|
169
|
-
},
|
|
170
|
-
})];
|
|
171
|
-
case 1:
|
|
172
|
-
req = _a.sent();
|
|
173
|
-
return [2 /*return*/];
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}); };
|
|
177
|
-
return (react_1.default.createElement(Sentry.ErrorBoundary, null,
|
|
178
|
-
react_1.default.createElement("h4", null, "Test Errors"),
|
|
179
|
-
react_1.default.createElement("div", { style: { display: 'flex', gap: '10px' } },
|
|
180
|
-
react_1.default.createElement("button", { style: { marginBottom: '20px' }, onClick: function () { return notFound(); }, type: "button" }, "Not Found"),
|
|
181
|
-
react_1.default.createElement("button", { style: { marginBottom: '20px' }, onClick: function () { return cannotCreate(); }, type: "button" }, "Forbidden"),
|
|
182
|
-
react_1.default.createElement("button", { style: { marginBottom: '20px' }, onClick: function () { return badLogin(); }, type: "button" }, "Bad login"),
|
|
183
|
-
react_1.default.createElement("button", { style: { marginBottom: '20px' }, onClick: function () { return badReq(); }, type: "button" }, "TypeError"),
|
|
184
|
-
react_1.default.createElement("button", { style: { marginBottom: '20px' }, onClick: function () { return badReset(); }, type: "button" }, "Bad Reset"),
|
|
185
|
-
react_1.default.createElement("button", { style: { marginBottom: '20px' }, onClick: function () { return badVerify(); }, type: "button" }, "Bad Verify"))));
|
|
186
|
-
};
|
|
187
|
-
exports.testErrors = testErrors;
|
|
188
|
-
//# sourceMappingURL=component.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/mocks/component.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAyB;AACzB,oDAAuC;AAChC,IAAM,UAAU,GAAG;IACxB,IAAM,QAAQ,GAAG;;;;;oBACT,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE;wBAClD,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,cAAc;yBACrB;qBACF,CAAC,CAAA;oBACU,qBAAM,KAAK,CAAC,0CAA0C,EAAE;4BAClE,MAAM,EAAE,KAAK;yBACd,CAAC,EAAA;;oBAFI,GAAG,GAAG,SAEV;oBACF,SAAS,CAAA;;;;SACV,CAAA;IAED,IAAM,YAAY,GAAG;;;;wBACP,qBAAM,KAAK,CAAC,iCAAiC,EAAE;wBACzD,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,IAAI,EAAE,UAAU;yBACjB,CAAC;qBACH,CAAC,EAAA;;oBALI,GAAG,GAAG,SAKV;;;;SACH,CAAA;IAED,IAAM,QAAQ,GAAG;;;;wBACH,qBAAM,KAAK,CAAC,uCAAuC,EAAE;wBAC/D,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,qBAAqB;4BAC5B,QAAQ,EAAE,QAAQ;yBACnB,CAAC;qBACH,CAAC,EAAA;;oBANI,GAAG,GAAG,SAMV;;;;SACH,CAAA;IAED,IAAM,MAAM,GAAG;;;;wBACD,qBAAM,KAAK,CAAC,iDAAiD,EAAE;wBACzE,MAAM,EAAE,MAAM;wBACd,WAAW,EAAE,SAAS;wBACtB,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;yBACnC;qBACF,CAAC,EAAA;;oBANI,GAAG,GAAG,SAMV;;;;SACH,CAAA;IAED,IAAM,QAAQ,GAAG;;;;wBACH,qBAAM,KAAK,CAAC,gDAAgD,EAAE;wBACxE,MAAM,EAAE,MAAM;wBACd,WAAW,EAAE,SAAS;wBACtB,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;yBACnC;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,0CAA0C;4BACjD,QAAQ,EAAE,aAAa;yBACxB,CAAC;qBACH,CAAC,EAAA;;oBAVI,GAAG,GAAG,SAUV;;;;SACH,CAAA;IAED,IAAM,SAAS,GAAG;;;;wBACJ,qBAAM,KAAK,CAAC,wCAAwC,EAAE;wBAChE,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;yBACnC;qBACF,CAAC,EAAA;;oBALI,GAAG,GAAG,SAKV;;;;SACH,CAAA;IAED,OAAO,CACL,8BAAC,MAAM,CAAC,aAAa;QACnB,wDAAoB;QACpB,uCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;YAC1C,0CAAQ,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,QAAQ,EAAE,EAAV,CAAU,EAAE,IAAI,EAAC,QAAQ,gBAExE;YAET,0CAAQ,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,YAAY,EAAE,EAAd,CAAc,EAAE,IAAI,EAAC,QAAQ,gBAE5E;YAET,0CAAQ,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,QAAQ,EAAE,EAAV,CAAU,EAAE,IAAI,EAAC,QAAQ,gBAExE;YAET,0CAAQ,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,MAAM,EAAE,EAAR,CAAQ,EAAE,IAAI,EAAC,QAAQ,gBAEtE;YAET,0CAAQ,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,QAAQ,EAAE,EAAV,CAAU,EAAE,IAAI,EAAC,QAAQ,gBAExE;YAET,0CAAQ,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,SAAS,EAAE,EAAX,CAAW,EAAE,IAAI,EAAC,QAAQ,iBAEzE,CACL,CACe,CACxB,CAAA;AACH,CAAC,CAAA;AAhGY,QAAA,UAAU,cAgGtB"}
|
package/dist/mocks/mockFile.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mockFile.js","sourceRoot":"","sources":["../../src/mocks/mockFile.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,WAAW,EAAE,cAAO,CAAC;IACrB,gBAAgB,EAAE,cAAO,CAAC;CAC3B,CAAA"}
|
package/dist/plugin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,uDAAqD;AACrD,+CAA8C;AAC9C,6CAA2C;AAE3C,qCAA+C;AAExC,IAAM,MAAM,GACjB,UAAC,aAA4B;IAC7B,OAAA,UAAC,cAAsB;QACrB,IAAI,MAAM,gBAAQ,cAAc,CAAE,CAAA;QAClC,IAAM,OAAO,GAAG,IAAA,6BAAmB,EAAC,cAAc,CAAC,CAAA;QAEnD,MAAM,CAAC,KAAK,yBACP,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,KACvB,OAAO,SAAA,EACP,UAAU,EAAE;gBACV,eAAe,EAAE,CAAC,sBAAU,CAAC;aAC9B,GACF,CAAA;QAED,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;YACzD,OAAO,MAAM,CAAA;SACd;QAED,MAAM,CAAC,KAAK,yBACP,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/B,8DAA8D;YAC9D,UAAU,EAAE,UAAC,GAAQ;gBACnB,IAAA,mCAAgB,EAAC,GAAG,CAAC,CAAA;YACvB,CAAC,GACF,CAAA;QAED,MAAM,CAAC,MAAM,GAAG,UAAM,OAAO;;;;6BACvB,cAAc,CAAC,MAAM,EAArB,wBAAqB;wBAAE,qBAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;wBAApC,SAAoC,CAAA;;;wBAC/D,IAAA,yBAAW,EAAC,aAAa,EAAE,OAAO,CAAC,CAAA;;;;aACpC,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC;AA9BD,CA8BC,CAAA;AAhCU,QAAA,MAAM,UAgChB"}
|
package/dist/plugin.spec.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/plugin.spec.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
var defaults_1 = require("payload/dist/config/defaults");
|
|
15
|
-
var plugin_1 = require("./plugin");
|
|
16
|
-
describe('plugin', function () {
|
|
17
|
-
it('should run the plugin', function () {
|
|
18
|
-
var plugin = (0, plugin_1.sentry)({ enabled: true, dsn: 'asdf' });
|
|
19
|
-
var config = plugin(createConfig());
|
|
20
|
-
assertPluginRan(config);
|
|
21
|
-
});
|
|
22
|
-
it('should default enable: true', function () {
|
|
23
|
-
var plugin = (0, plugin_1.sentry)({ dsn: 'asdf' });
|
|
24
|
-
var config = plugin(createConfig());
|
|
25
|
-
assertPluginRan(config);
|
|
26
|
-
});
|
|
27
|
-
it('should not run if dsn is not provided', function () {
|
|
28
|
-
var plugin = (0, plugin_1.sentry)({ enabled: true, dsn: null });
|
|
29
|
-
var config = plugin(createConfig());
|
|
30
|
-
assertPluginDidNotRun(config);
|
|
31
|
-
});
|
|
32
|
-
it('should respect enabled: false', function () {
|
|
33
|
-
var plugin = (0, plugin_1.sentry)({ enabled: false, dsn: null });
|
|
34
|
-
var config = plugin(createConfig());
|
|
35
|
-
assertPluginDidNotRun(config);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
function assertPluginRan(config) {
|
|
39
|
-
var _a, _b;
|
|
40
|
-
expect((_a = config.admin) === null || _a === void 0 ? void 0 : _a.webpack).toBeDefined();
|
|
41
|
-
expect((_b = config.hooks) === null || _b === void 0 ? void 0 : _b.afterError).toBeDefined();
|
|
42
|
-
expect(config.onInit).toBeDefined();
|
|
43
|
-
}
|
|
44
|
-
function assertPluginDidNotRun(config) {
|
|
45
|
-
var _a, _b;
|
|
46
|
-
expect((_a = config.admin) === null || _a === void 0 ? void 0 : _a.webpack).toBeDefined();
|
|
47
|
-
expect((_b = config.hooks) === null || _b === void 0 ? void 0 : _b.afterError).toBeUndefined();
|
|
48
|
-
expect(config.onInit).toBeUndefined();
|
|
49
|
-
}
|
|
50
|
-
function createConfig(overrides) {
|
|
51
|
-
return __assign(__assign({}, defaults_1.defaults), overrides);
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=plugin.spec.js.map
|
package/dist/plugin.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.spec.js","sourceRoot":"","sources":["../src/plugin.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,yDAAuD;AAEvD,mCAAiC;AAEjC,QAAQ,CAAC,QAAQ,EAAE;IACjB,EAAE,CAAC,uBAAuB,EAAE;QAC1B,IAAM,MAAM,GAAG,IAAA,eAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QACrD,IAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;QAErC,eAAe,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE;QAChC,IAAM,MAAM,GAAG,IAAA,eAAM,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;QACtC,IAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;QAErC,eAAe,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE;QAC1C,IAAM,MAAM,GAAG,IAAA,eAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,IAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;QAErC,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE;QAClC,IAAM,MAAM,GAAG,IAAA,eAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,IAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;QAErC,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,eAAe,CAAC,MAAc;;IACrC,MAAM,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3C,MAAM,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;;IAC3C,MAAM,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3C,MAAM,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC,aAAa,EAAE,CAAA;IAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,SAA2B;IAC/C,6BACK,mBAAQ,GACR,SAAS,EACb;AACH,CAAC"}
|
package/dist/startSentry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"startSentry.js","sourceRoot":"","sources":["../src/startSentry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,+BAA+B;AAC/B,mDAAsC;AAO/B,IAAM,WAAW,GAAG,UAAC,aAA4B,EAAE,OAAgB;;IAChE,IAAA,GAAG,GAAc,aAAa,IAA3B,EAAE,OAAO,GAAK,aAAa,QAAlB,CAAkB;IAC9B,IAAS,GAAG,GAAK,OAAO,QAAZ,CAAY;IAEhC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;QAAE,OAAM;IAExB,IAAI;QACF,MAAM,CAAC,IAAI,uBACN,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,KAChB,GAAG,EAAE,GAAG,EACR,YAAY,gDACP,CAAC,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,YAAY,KAAI,EAAE,CAAC;gBACtC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC/C,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC;uBACrC,MAAM,CAAC,iDAAiD,EAAE,WAE/D,CAAA;QAEF,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,KAAI,EAAE,CAA2B,CAAC,CAAA;QAChG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAA;QAEzC,GAAG,CAAC,GAAG,CACL,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3B,iBAAiB,YAAC,KAAK;gBACrB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;oBACxB,OAAO,IAAI,CAAA;iBACZ;gBACD,IACE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;oBACtB,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;oBAChC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAC5C;oBACA,OAAO,IAAI,CAAA;iBACZ;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAgC,CAClC,CAAA;QAED,GAAG,CAAC,GAAG,CAAC,SAAS,OAAO,CACtB,IAAa,EACb,IAAa,EACb,GAAmC,EACnC,KAAmB;YAEnB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;YACpB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;KACH;IAAC,OAAO,GAAY,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAA;KAC7F;AACH,CAAC,CAAA;AAnDY,QAAA,WAAW,eAmDvB"}
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/webpack.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webpack.js","sourceRoot":"","sources":["../src/webpack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAAuB;AAIhB,IAAM,mBAAmB,GAC9B,UAAC,MAAc;IACf,OAAA,UAAA,aAAa;;;QACX,IAAM,qBAAqB,GACzB,OAAO,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,OAAO,CAAA,KAAK,UAAU;YACzC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YACrC,CAAC,CAAC,aAAa,CAAA;QAEnB,IAAM,cAAc,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAA;QAErE,IAAM,UAAU,yBACX,qBAAqB,KACxB,OAAO,wBACF,CAAC,qBAAqB,CAAC,OAAO,IAAI,EAAE,CAAC,KACxC,KAAK,wBACA,CAAC,CAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,EAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,gBACnF,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,IAAG,cAAc,KACzD,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAG,cAAc,YAGpE,CAAA;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;AArBD,CAqBC,CAAA;AAvBU,QAAA,mBAAmB,uBAuB7B"}
|