@payloadcms/plugin-sentry 0.0.3 → 0.0.5-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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) - *not required*
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 seo 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: ["email"],
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
- 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
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.
@@ -1 +1,2 @@
1
1
  export declare const captureException: (err: Error) => void;
2
+ //# sourceMappingURL=captureException.d.ts.map
@@ -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"}
@@ -1,32 +1,55 @@
1
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]; } };
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
- 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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.captureException = void 0;
27
- var Sentry = __importStar(require("@sentry/node"));
28
- var captureException = function (err) {
29
- Sentry.captureException(err);
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
- exports.captureException = captureException;
32
- //# sourceMappingURL=captureException.js.map
54
+
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jYXB0dXJlRXhjZXB0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L25vZGUnXG5cbmV4cG9ydCBjb25zdCBjYXB0dXJlRXhjZXB0aW9uID0gKGVycjogRXJyb3IpOiB2b2lkID0+IHtcbiAgU2VudHJ5LmNhcHR1cmVFeGNlcHRpb24oZXJyKVxufVxuIl0sIm5hbWVzIjpbImNhcHR1cmVFeGNlcHRpb24iLCJlcnIiLCJTZW50cnkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7Ozs4REFGVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVqQixNQUFNQSxtQkFBbUIsQ0FBQ0M7SUFDL0JDLE1BQU9GLGdCQUFnQixDQUFDQztBQUMxQiJ9
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { sentry } from './plugin';
2
2
  export type { PluginOptions } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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", { value: true });
3
- exports.sentry = void 0;
4
- var plugin_1 = require("./plugin");
5
- Object.defineProperty(exports, "sentry", { enumerable: true, get: function () { return plugin_1.sentry; } });
6
- //# sourceMappingURL=index.js.map
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
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  module.exports = {
3
- startSentry: function () { },
4
- captureException: function () { },
3
+ captureException: ()=>{},
4
+ startSentry: ()=>{}
5
5
  };
6
- //# sourceMappingURL=mockFile.js.map
6
+
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2Nrcy9tb2NrRmlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgY2FwdHVyZUV4Y2VwdGlvbjogKCkgPT4ge30sXG4gIHN0YXJ0U2VudHJ5OiAoKSA9PiB7fSxcbn1cbiJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiY2FwdHVyZUV4Y2VwdGlvbiIsInN0YXJ0U2VudHJ5Il0sIm1hcHBpbmdzIjoiO0FBQUFBLE9BQU9DLE9BQU8sR0FBRztJQUNmQyxrQkFBa0IsS0FBTztJQUN6QkMsYUFBYSxLQUFPO0FBQ3RCIn0=
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import type { Config } from 'payload/config';
2
2
  import type { PluginOptions } from './types';
3
3
  export declare const sentry: (pluginOptions: PluginOptions) => (incomingConfig: Config) => Config;
4
+ //# sourceMappingURL=plugin.d.ts.map
@@ -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,86 +1,40 @@
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
- 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 (_) 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
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.sentry = void 0;
51
- var captureException_1 = require("./captureException");
52
- var startSentry_1 = require("./startSentry");
53
- var webpack_1 = require("./webpack");
54
- var sentry = function (pluginOptions) {
55
- return function (incomingConfig) {
56
- var config = __assign({}, incomingConfig);
57
- var webpack = (0, webpack_1.extendWebpackConfig)(incomingConfig);
58
- config.admin = __assign(__assign({}, (config.admin || {})), { webpack: webpack });
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
+ };
59
23
  if (pluginOptions.enabled === false || !pluginOptions.dsn) {
60
24
  return config;
61
25
  }
62
- config.hooks = __assign(__assign({}, (incomingConfig.hooks || {})), {
26
+ config.hooks = {
27
+ ...incomingConfig.hooks || {},
63
28
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
64
- afterError: function (err) {
65
- (0, captureException_1.captureException)(err);
66
- } });
67
- config.onInit = function (payload) { return __awaiter(void 0, void 0, void 0, function () {
68
- return __generator(this, function (_a) {
69
- switch (_a.label) {
70
- case 0:
71
- if (!incomingConfig.onInit) return [3 /*break*/, 2];
72
- return [4 /*yield*/, incomingConfig.onInit(payload)];
73
- case 1:
74
- _a.sent();
75
- _a.label = 2;
76
- case 2:
77
- (0, startSentry_1.startSentry)(pluginOptions, payload);
78
- return [2 /*return*/];
79
- }
80
- });
81
- }); };
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
+ };
82
37
  return config;
83
38
  };
84
- };
85
- exports.sentry = sentry;
86
- //# sourceMappingURL=plugin.js.map
39
+
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcblxuaW1wb3J0IHR5cGUgeyBQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY2FwdHVyZUV4Y2VwdGlvbiB9IGZyb20gJy4vY2FwdHVyZUV4Y2VwdGlvbidcbmltcG9ydCB7IHN0YXJ0U2VudHJ5IH0gZnJvbSAnLi9zdGFydFNlbnRyeSdcbmltcG9ydCB7IGV4dGVuZFdlYnBhY2tDb25maWcgfSBmcm9tICcuL3dlYnBhY2snXG5cbmV4cG9ydCBjb25zdCBzZW50cnkgPVxuICAocGx1Z2luT3B0aW9uczogUGx1Z2luT3B0aW9ucykgPT5cbiAgKGluY29taW5nQ29uZmlnOiBDb25maWcpOiBDb25maWcgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgLi4uaW5jb21pbmdDb25maWcgfVxuICAgIGNvbnN0IHdlYnBhY2sgPSBleHRlbmRXZWJwYWNrQ29uZmlnKGluY29taW5nQ29uZmlnKVxuXG4gICAgY29uZmlnLmFkbWluID0ge1xuICAgICAgLi4uKGNvbmZpZy5hZG1pbiB8fCB7fSksXG4gICAgICB3ZWJwYWNrLFxuICAgIH1cblxuICAgIGlmIChwbHVnaW5PcHRpb25zLmVuYWJsZWQgPT09IGZhbHNlIHx8ICFwbHVnaW5PcHRpb25zLmRzbikge1xuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH1cblxuICAgIGNvbmZpZy5ob29rcyA9IHtcbiAgICAgIC4uLihpbmNvbWluZ0NvbmZpZy5ob29rcyB8fCB7fSksXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgYWZ0ZXJFcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIGNhcHR1cmVFeGNlcHRpb24oZXJyKVxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25maWcub25Jbml0ID0gYXN5bmMgKHBheWxvYWQpID0+IHtcbiAgICAgIGlmIChpbmNvbWluZ0NvbmZpZy5vbkluaXQpIGF3YWl0IGluY29taW5nQ29uZmlnLm9uSW5pdChwYXlsb2FkKVxuICAgICAgc3RhcnRTZW50cnkocGx1Z2luT3B0aW9ucywgcGF5bG9hZClcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cbiJdLCJuYW1lcyI6WyJzZW50cnkiLCJwbHVnaW5PcHRpb25zIiwiaW5jb21pbmdDb25maWciLCJjb25maWciLCJ3ZWJwYWNrIiwiZXh0ZW5kV2VicGFja0NvbmZpZyIsImFkbWluIiwiZW5hYmxlZCIsImRzbiIsImhvb2tzIiwiYWZ0ZXJFcnJvciIsImVyciIsImNhcHR1cmVFeGNlcHRpb24iLCJvbkluaXQiLCJwYXlsb2FkIiwic3RhcnRTZW50cnkiXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2Qjs7OzsrQkFTaEJBOzs7ZUFBQUE7OztrQ0FKb0I7NkJBQ0w7eUJBQ1E7QUFFN0IsTUFBTUEsU0FDWCxDQUFDQyxnQkFDRCxDQUFDQztRQUNDLE1BQU1DLFNBQVM7WUFBRSxHQUFHRCxjQUFjO1FBQUM7UUFDbkMsTUFBTUUsVUFBVUMsSUFBQUEsNEJBQW1CLEVBQUNIO1FBRXBDQyxPQUFPRyxLQUFLLEdBQUc7WUFDYixHQUFJSCxPQUFPRyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ3RCRjtRQUNGO1FBRUEsSUFBSUgsY0FBY00sT0FBTyxLQUFLLFNBQVMsQ0FBQ04sY0FBY08sR0FBRyxFQUFFO1lBQ3pELE9BQU9MO1FBQ1Q7UUFFQUEsT0FBT00sS0FBSyxHQUFHO1lBQ2IsR0FBSVAsZUFBZU8sS0FBSyxJQUFJLENBQUMsQ0FBQztZQUM5Qiw4REFBOEQ7WUFDOURDLFlBQVksQ0FBQ0M7Z0JBQ1hDLElBQUFBLGtDQUFnQixFQUFDRDtZQUNuQjtRQUNGO1FBRUFSLE9BQU9VLE1BQU0sR0FBRyxPQUFPQztZQUNyQixJQUFJWixlQUFlVyxNQUFNLEVBQUUsTUFBTVgsZUFBZVcsTUFBTSxDQUFDQztZQUN2REMsSUFBQUEsd0JBQVcsRUFBQ2QsZUFBZWE7UUFDN0I7UUFFQSxPQUFPWDtJQUNUIn0=
@@ -1,3 +1,4 @@
1
- import type { Payload } from 'payload/dist/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"}
@@ -1,86 +1,92 @@
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
- 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
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
- if (ar || !(i in from)) {
39
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
- ar[i] = from[i];
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
- return to.concat(ar || Array.prototype.slice.call(from));
44
- };
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.startSentry = void 0;
47
- /* eslint-disable @typescript-eslint/no-unused-vars */
48
- /* eslint-disable no-console */
49
- var Sentry = __importStar(require("@sentry/node"));
50
- var startSentry = function (pluginOptions, payload) {
51
- var _a;
52
- var dsn = pluginOptions.dsn, options = pluginOptions.options;
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
- Sentry.init(__assign(__assign({}, options === null || options === void 0 ? void 0 : options.init), { dsn: dsn, integrations: __spreadArray(__spreadArray(__spreadArray([], (((_a = options === null || options === void 0 ? void 0 : options.init) === null || _a === void 0 ? void 0 : _a.integrations) || []), true), [
58
- new Sentry.Integrations.Http({ tracing: true }),
59
- new Sentry.Integrations.Express({ app: app })
60
- ], false), Sentry.autoDiscoverNodePerformanceMonitoringIntegrations(), true) }));
61
- app.use(Sentry.Handlers.requestHandler((options === null || options === void 0 ? void 0 : options.requestHandler) || {}));
62
- app.use(Sentry.Handlers.tracingHandler());
63
- app.use(Sentry.Handlers.errorHandler({
64
- shouldHandleError: function (error) {
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 ((options === null || options === void 0 ? void 0 : options.captureErrors) &&
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
- exports.startSentry = startSentry;
86
- //# sourceMappingURL=startSentry.js.map
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: string | null;
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", { value: true });
3
- //# sourceMappingURL=types.js.map
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
package/dist/webpack.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import type { Config } from 'payload/config';
2
2
  import type { Configuration as WebpackConfig } from 'webpack';
3
3
  export declare const extendWebpackConfig: (config: Config) => (webpackConfig: WebpackConfig) => WebpackConfig;
4
+ //# sourceMappingURL=webpack.d.ts.map
@@ -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
- 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;
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
- return __assign.apply(this, arguments);
12
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.extendWebpackConfig = void 0;
18
- var path_1 = __importDefault(require("path"));
19
- var extendWebpackConfig = function (config) {
20
- return function (webpackConfig) {
21
- var _a;
22
- var _b, _c;
23
- var existingWebpackConfig = typeof ((_b = config.admin) === null || _b === void 0 ? void 0 : _b.webpack) === 'function'
24
- ? config.admin.webpack(webpackConfig)
25
- : webpackConfig;
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
- exports.extendWebpackConfig = extendWebpackConfig;
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",
3
+ "version": "0.0.5-beta.0",
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",
@@ -28,7 +20,7 @@
28
20
  "dist"
29
21
  ],
30
22
  "peerDependencies": {
31
- "payload": "^1.10.1",
23
+ "payload": "^1.10.1 || ^2.0.0",
32
24
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
33
25
  },
34
26
  "dependencies": {
@@ -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
- "ts-node": "^10.9.1",
63
- "typescript": "^4.1.3"
42
+ "webpack": "^5.78.0",
43
+ "@payloadcms/eslint-config": "1.0.0",
44
+ "payload": "2.0.15"
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,2 +0,0 @@
1
- export function startSentry(): void;
2
- export function captureException(): void;
@@ -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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,uDAAqD;AACrD,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,GACR,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;AA3BD,CA2BC,CAAA;AA7BU,QAAA,MAAM,UA6BhB"}
@@ -1 +0,0 @@
1
- export {};
@@ -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
@@ -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"}
@@ -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":""}
@@ -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"}