@commercetools-frontend/sentry 27.9.5 → 27.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commercetools-frontend-sentry.cjs.dev.js +65 -2
- package/dist/commercetools-frontend-sentry.cjs.prod.js +65 -2
- package/dist/commercetools-frontend-sentry.esm.js +55 -3
- package/dist/declarations/src/index.d.ts +1 -0
- package/dist/declarations/src/report-performance-marks.d.ts +2 -0
- package/package.json +3 -3
|
@@ -8,6 +8,17 @@ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
|
8
8
|
var Sentry = require('@sentry/react');
|
|
9
9
|
var browser = require('@sentry/browser');
|
|
10
10
|
var history = require('@commercetools-frontend/browser-history');
|
|
11
|
+
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
12
|
+
var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
|
|
13
|
+
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
|
|
14
|
+
var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
|
|
15
|
+
var _endsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/ends-with');
|
|
16
|
+
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
17
|
+
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
|
|
18
|
+
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
19
|
+
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
20
|
+
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
21
|
+
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
11
22
|
var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
|
|
12
23
|
var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
|
|
13
24
|
var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
|
|
@@ -41,10 +52,60 @@ var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesI
|
|
|
41
52
|
var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
42
53
|
var Sentry__namespace = /*#__PURE__*/_interopNamespace(Sentry);
|
|
43
54
|
var history__default = /*#__PURE__*/_interopDefault(history);
|
|
55
|
+
var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
|
|
56
|
+
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
|
|
57
|
+
var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
|
|
58
|
+
var _endsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_endsWithInstanceProperty);
|
|
59
|
+
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
60
|
+
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
|
|
61
|
+
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
|
|
62
|
+
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
63
|
+
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
64
|
+
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
44
65
|
var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
|
|
45
66
|
|
|
46
67
|
// NOTE: This string will be replaced on build time with the package version.
|
|
47
|
-
var version = "27.
|
|
68
|
+
var version = "27.10.0";
|
|
69
|
+
|
|
70
|
+
function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
71
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
72
|
+
const MEASURE_SUFFIX = ':from-nav';
|
|
73
|
+
|
|
74
|
+
// Sentry measurement names may not contain colons (Relay restricts them to
|
|
75
|
+
// alphanumerics, `-`, `_`, `.`), so `mc:intl-ready:from-nav` becomes
|
|
76
|
+
// `mc.intl-ready`.
|
|
77
|
+
const toMeasurementKey = measureName => _sliceInstanceProperty__default["default"](measureName).call(measureName, 0, -MEASURE_SUFFIX.length).replace(/:/g, '.');
|
|
78
|
+
function addPerformanceMeasurementsToTransaction(event) {
|
|
79
|
+
// The document's `mc:*` measures describe the original page load. Navigation
|
|
80
|
+
// transactions belong to SPA route changes and must not repeat them.
|
|
81
|
+
if (event.contexts?.trace?.op !== 'pageload') return event;
|
|
82
|
+
if (typeof performance === 'undefined' || !performance.getEntriesByType) return event;
|
|
83
|
+
try {
|
|
84
|
+
var _context;
|
|
85
|
+
const markMeasures = _filterInstanceProperty__default["default"](_context = performance.getEntriesByType('measure')).call(_context, entry => {
|
|
86
|
+
var _context2, _context3;
|
|
87
|
+
return _startsWithInstanceProperty__default["default"](_context2 = entry.name).call(_context2, 'mc:') && _endsWithInstanceProperty__default["default"](_context3 = entry.name).call(_context3, MEASURE_SUFFIX);
|
|
88
|
+
});
|
|
89
|
+
for (const entry of markMeasures) {
|
|
90
|
+
var _context4;
|
|
91
|
+
const key = toMeasurementKey(entry.name);
|
|
92
|
+
event.measurements = event.measurements ?? {};
|
|
93
|
+
if (!(key in event.measurements)) {
|
|
94
|
+
event.measurements[key] = {
|
|
95
|
+
value: entry.duration,
|
|
96
|
+
unit: 'millisecond'
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
event.contexts.trace.data = _objectSpread(_objectSpread({}, event.contexts.trace.data), {}, {
|
|
100
|
+
[_sliceInstanceProperty__default["default"](_context4 = entry.name).call(_context4, 0, -MEASURE_SUFFIX.length)]: entry.duration
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
} catch {
|
|
104
|
+
// A throw here would lose the whole transaction; the measurements are
|
|
105
|
+
// not worth that.
|
|
106
|
+
}
|
|
107
|
+
return event;
|
|
108
|
+
}
|
|
48
109
|
|
|
49
110
|
const makeErrorToCapture = error => {
|
|
50
111
|
if (error instanceof Error) return error;
|
|
@@ -118,7 +179,8 @@ const boot = () => {
|
|
|
118
179
|
// We only redact PII from event fields, so hint is unused for now.
|
|
119
180
|
beforeSend(event, _hint) {
|
|
120
181
|
return redactUnsafeEventFields(event);
|
|
121
|
-
}
|
|
182
|
+
},
|
|
183
|
+
beforeSendTransaction: addPerformanceMeasurementsToTransaction
|
|
122
184
|
});
|
|
123
185
|
const sentryScope = Sentry__namespace.getCurrentScope();
|
|
124
186
|
sentryScope.setTag('role', 'frontend');
|
|
@@ -238,6 +300,7 @@ SentryUserLogoutTracker.displayName = 'SentryUserLogoutTracker';
|
|
|
238
300
|
|
|
239
301
|
exports.SentryUserLogoutTracker = SentryUserLogoutTracker;
|
|
240
302
|
exports.SentryUserTracker = SentryUserTracker;
|
|
303
|
+
exports.addPerformanceMeasurementsToTransaction = addPerformanceMeasurementsToTransaction;
|
|
241
304
|
exports.boot = boot;
|
|
242
305
|
exports.redactUnsafeEventFields = redactUnsafeEventFields;
|
|
243
306
|
exports.reportErrorToSentry = reportErrorToSentry;
|
|
@@ -8,6 +8,17 @@ var _Object$keys = require('@babel/runtime-corejs3/core-js-stable/object/keys');
|
|
|
8
8
|
var Sentry = require('@sentry/react');
|
|
9
9
|
var browser = require('@sentry/browser');
|
|
10
10
|
var history = require('@commercetools-frontend/browser-history');
|
|
11
|
+
var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
|
|
12
|
+
var _sliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/slice');
|
|
13
|
+
var _filterInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/filter');
|
|
14
|
+
var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
|
|
15
|
+
var _endsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/ends-with');
|
|
16
|
+
var _Object$getOwnPropertySymbols = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols');
|
|
17
|
+
var _Object$getOwnPropertyDescriptor = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor');
|
|
18
|
+
var _forEachInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/for-each');
|
|
19
|
+
var _Object$getOwnPropertyDescriptors = require('@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors');
|
|
20
|
+
var _Object$defineProperties = require('@babel/runtime-corejs3/core-js-stable/object/define-properties');
|
|
21
|
+
var _Object$defineProperty = require('@babel/runtime-corejs3/core-js-stable/object/define-property');
|
|
11
22
|
var _Reflect$construct = require('@babel/runtime-corejs3/core-js-stable/reflect/construct');
|
|
12
23
|
var _classCallCheck = require('@babel/runtime-corejs3/helpers/classCallCheck');
|
|
13
24
|
var _createClass = require('@babel/runtime-corejs3/helpers/createClass');
|
|
@@ -41,10 +52,60 @@ var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesI
|
|
|
41
52
|
var _Object$keys__default = /*#__PURE__*/_interopDefault(_Object$keys);
|
|
42
53
|
var Sentry__namespace = /*#__PURE__*/_interopNamespace(Sentry);
|
|
43
54
|
var history__default = /*#__PURE__*/_interopDefault(history);
|
|
55
|
+
var _sliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_sliceInstanceProperty);
|
|
56
|
+
var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
|
|
57
|
+
var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
|
|
58
|
+
var _endsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_endsWithInstanceProperty);
|
|
59
|
+
var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
|
|
60
|
+
var _Object$getOwnPropertyDescriptor__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptor);
|
|
61
|
+
var _forEachInstanceProperty__default = /*#__PURE__*/_interopDefault(_forEachInstanceProperty);
|
|
62
|
+
var _Object$getOwnPropertyDescriptors__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertyDescriptors);
|
|
63
|
+
var _Object$defineProperties__default = /*#__PURE__*/_interopDefault(_Object$defineProperties);
|
|
64
|
+
var _Object$defineProperty__default = /*#__PURE__*/_interopDefault(_Object$defineProperty);
|
|
44
65
|
var _Reflect$construct__default = /*#__PURE__*/_interopDefault(_Reflect$construct);
|
|
45
66
|
|
|
46
67
|
// NOTE: This string will be replaced on build time with the package version.
|
|
47
|
-
var version = "27.
|
|
68
|
+
var version = "27.10.0";
|
|
69
|
+
|
|
70
|
+
function ownKeys(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
71
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context5 = ownKeys(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
|
|
72
|
+
const MEASURE_SUFFIX = ':from-nav';
|
|
73
|
+
|
|
74
|
+
// Sentry measurement names may not contain colons (Relay restricts them to
|
|
75
|
+
// alphanumerics, `-`, `_`, `.`), so `mc:intl-ready:from-nav` becomes
|
|
76
|
+
// `mc.intl-ready`.
|
|
77
|
+
const toMeasurementKey = measureName => _sliceInstanceProperty__default["default"](measureName).call(measureName, 0, -MEASURE_SUFFIX.length).replace(/:/g, '.');
|
|
78
|
+
function addPerformanceMeasurementsToTransaction(event) {
|
|
79
|
+
// The document's `mc:*` measures describe the original page load. Navigation
|
|
80
|
+
// transactions belong to SPA route changes and must not repeat them.
|
|
81
|
+
if (event.contexts?.trace?.op !== 'pageload') return event;
|
|
82
|
+
if (typeof performance === 'undefined' || !performance.getEntriesByType) return event;
|
|
83
|
+
try {
|
|
84
|
+
var _context;
|
|
85
|
+
const markMeasures = _filterInstanceProperty__default["default"](_context = performance.getEntriesByType('measure')).call(_context, entry => {
|
|
86
|
+
var _context2, _context3;
|
|
87
|
+
return _startsWithInstanceProperty__default["default"](_context2 = entry.name).call(_context2, 'mc:') && _endsWithInstanceProperty__default["default"](_context3 = entry.name).call(_context3, MEASURE_SUFFIX);
|
|
88
|
+
});
|
|
89
|
+
for (const entry of markMeasures) {
|
|
90
|
+
var _context4;
|
|
91
|
+
const key = toMeasurementKey(entry.name);
|
|
92
|
+
event.measurements = event.measurements ?? {};
|
|
93
|
+
if (!(key in event.measurements)) {
|
|
94
|
+
event.measurements[key] = {
|
|
95
|
+
value: entry.duration,
|
|
96
|
+
unit: 'millisecond'
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
event.contexts.trace.data = _objectSpread(_objectSpread({}, event.contexts.trace.data), {}, {
|
|
100
|
+
[_sliceInstanceProperty__default["default"](_context4 = entry.name).call(_context4, 0, -MEASURE_SUFFIX.length)]: entry.duration
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
} catch {
|
|
104
|
+
// A throw here would lose the whole transaction; the measurements are
|
|
105
|
+
// not worth that.
|
|
106
|
+
}
|
|
107
|
+
return event;
|
|
108
|
+
}
|
|
48
109
|
|
|
49
110
|
const makeErrorToCapture = error => {
|
|
50
111
|
if (error instanceof Error) return error;
|
|
@@ -118,7 +179,8 @@ const boot = () => {
|
|
|
118
179
|
// We only redact PII from event fields, so hint is unused for now.
|
|
119
180
|
beforeSend(event, _hint) {
|
|
120
181
|
return redactUnsafeEventFields(event);
|
|
121
|
-
}
|
|
182
|
+
},
|
|
183
|
+
beforeSendTransaction: addPerformanceMeasurementsToTransaction
|
|
122
184
|
});
|
|
123
185
|
const sentryScope = Sentry__namespace.getCurrentScope();
|
|
124
186
|
sentryScope.setTag('role', 'frontend');
|
|
@@ -238,6 +300,7 @@ SentryUserLogoutTracker.displayName = 'SentryUserLogoutTracker';
|
|
|
238
300
|
|
|
239
301
|
exports.SentryUserLogoutTracker = SentryUserLogoutTracker;
|
|
240
302
|
exports.SentryUserTracker = SentryUserTracker;
|
|
303
|
+
exports.addPerformanceMeasurementsToTransaction = addPerformanceMeasurementsToTransaction;
|
|
241
304
|
exports.boot = boot;
|
|
242
305
|
exports.redactUnsafeEventFields = redactUnsafeEventFields;
|
|
243
306
|
exports.reportErrorToSentry = reportErrorToSentry;
|
|
@@ -4,6 +4,17 @@ import _Object$keys from '@babel/runtime-corejs3/core-js-stable/object/keys';
|
|
|
4
4
|
import * as Sentry from '@sentry/react';
|
|
5
5
|
import { globalHandlersIntegration } from '@sentry/browser';
|
|
6
6
|
import history from '@commercetools-frontend/browser-history';
|
|
7
|
+
import _defineProperty from '@babel/runtime-corejs3/helpers/esm/defineProperty';
|
|
8
|
+
import _sliceInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/slice';
|
|
9
|
+
import _filterInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/filter';
|
|
10
|
+
import _startsWithInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/starts-with';
|
|
11
|
+
import _endsWithInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/ends-with';
|
|
12
|
+
import _Object$getOwnPropertySymbols from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols';
|
|
13
|
+
import _Object$getOwnPropertyDescriptor from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor';
|
|
14
|
+
import _forEachInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/for-each';
|
|
15
|
+
import _Object$getOwnPropertyDescriptors from '@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors';
|
|
16
|
+
import _Object$defineProperties from '@babel/runtime-corejs3/core-js-stable/object/define-properties';
|
|
17
|
+
import _Object$defineProperty from '@babel/runtime-corejs3/core-js-stable/object/define-property';
|
|
7
18
|
import _Reflect$construct from '@babel/runtime-corejs3/core-js-stable/reflect/construct';
|
|
8
19
|
import _classCallCheck from '@babel/runtime-corejs3/helpers/esm/classCallCheck';
|
|
9
20
|
import _createClass from '@babel/runtime-corejs3/helpers/esm/createClass';
|
|
@@ -13,7 +24,47 @@ import _inherits from '@babel/runtime-corejs3/helpers/esm/inherits';
|
|
|
13
24
|
import { PureComponent, Component } from 'react';
|
|
14
25
|
|
|
15
26
|
// NOTE: This string will be replaced on build time with the package version.
|
|
16
|
-
var version = "27.
|
|
27
|
+
var version = "27.10.0";
|
|
28
|
+
|
|
29
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
30
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context5 = ownKeys(Object(t), !0)).call(_context5, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
|
+
const MEASURE_SUFFIX = ':from-nav';
|
|
32
|
+
|
|
33
|
+
// Sentry measurement names may not contain colons (Relay restricts them to
|
|
34
|
+
// alphanumerics, `-`, `_`, `.`), so `mc:intl-ready:from-nav` becomes
|
|
35
|
+
// `mc.intl-ready`.
|
|
36
|
+
const toMeasurementKey = measureName => _sliceInstanceProperty(measureName).call(measureName, 0, -MEASURE_SUFFIX.length).replace(/:/g, '.');
|
|
37
|
+
function addPerformanceMeasurementsToTransaction(event) {
|
|
38
|
+
// The document's `mc:*` measures describe the original page load. Navigation
|
|
39
|
+
// transactions belong to SPA route changes and must not repeat them.
|
|
40
|
+
if (event.contexts?.trace?.op !== 'pageload') return event;
|
|
41
|
+
if (typeof performance === 'undefined' || !performance.getEntriesByType) return event;
|
|
42
|
+
try {
|
|
43
|
+
var _context;
|
|
44
|
+
const markMeasures = _filterInstanceProperty(_context = performance.getEntriesByType('measure')).call(_context, entry => {
|
|
45
|
+
var _context2, _context3;
|
|
46
|
+
return _startsWithInstanceProperty(_context2 = entry.name).call(_context2, 'mc:') && _endsWithInstanceProperty(_context3 = entry.name).call(_context3, MEASURE_SUFFIX);
|
|
47
|
+
});
|
|
48
|
+
for (const entry of markMeasures) {
|
|
49
|
+
var _context4;
|
|
50
|
+
const key = toMeasurementKey(entry.name);
|
|
51
|
+
event.measurements = event.measurements ?? {};
|
|
52
|
+
if (!(key in event.measurements)) {
|
|
53
|
+
event.measurements[key] = {
|
|
54
|
+
value: entry.duration,
|
|
55
|
+
unit: 'millisecond'
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
event.contexts.trace.data = _objectSpread(_objectSpread({}, event.contexts.trace.data), {}, {
|
|
59
|
+
[_sliceInstanceProperty(_context4 = entry.name).call(_context4, 0, -MEASURE_SUFFIX.length)]: entry.duration
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
} catch {
|
|
63
|
+
// A throw here would lose the whole transaction; the measurements are
|
|
64
|
+
// not worth that.
|
|
65
|
+
}
|
|
66
|
+
return event;
|
|
67
|
+
}
|
|
17
68
|
|
|
18
69
|
const makeErrorToCapture = error => {
|
|
19
70
|
if (error instanceof Error) return error;
|
|
@@ -87,7 +138,8 @@ const boot = () => {
|
|
|
87
138
|
// We only redact PII from event fields, so hint is unused for now.
|
|
88
139
|
beforeSend(event, _hint) {
|
|
89
140
|
return redactUnsafeEventFields(event);
|
|
90
|
-
}
|
|
141
|
+
},
|
|
142
|
+
beforeSendTransaction: addPerformanceMeasurementsToTransaction
|
|
91
143
|
});
|
|
92
144
|
const sentryScope = Sentry.getCurrentScope();
|
|
93
145
|
sentryScope.setTag('role', 'frontend');
|
|
@@ -205,4 +257,4 @@ let SentryUserLogoutTracker = /*#__PURE__*/function (_Component) {
|
|
|
205
257
|
}(Component);
|
|
206
258
|
SentryUserLogoutTracker.displayName = 'SentryUserLogoutTracker';
|
|
207
259
|
|
|
208
|
-
export { SentryUserLogoutTracker, SentryUserTracker, boot, redactUnsafeEventFields, reportErrorToSentry, version };
|
|
260
|
+
export { SentryUserLogoutTracker, SentryUserTracker, addPerformanceMeasurementsToTransaction, boot, redactUnsafeEventFields, reportErrorToSentry, version };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as version } from "./version.js";
|
|
2
2
|
export * from "./sentry.js";
|
|
3
|
+
export { addPerformanceMeasurementsToTransaction } from "./report-performance-marks.js";
|
|
3
4
|
export { default as SentryUserTracker } from "./sentry-user-tracker/index.js";
|
|
4
5
|
export { default as SentryUserLogoutTracker } from "./sentry-user-logout-tracker/index.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commercetools-frontend/sentry",
|
|
3
|
-
"version": "27.
|
|
3
|
+
"version": "27.10.0",
|
|
4
4
|
"description": "Components to set up Sentry for a MC application",
|
|
5
5
|
"bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
|
|
6
6
|
"repository": {
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"@types/prop-types": "^15.7.5",
|
|
37
37
|
"@types/react": "^19.0.3",
|
|
38
38
|
"prop-types": "15.8.1",
|
|
39
|
-
"@commercetools-frontend/browser-history": "^27.
|
|
40
|
-
"@commercetools-frontend/constants": "^27.
|
|
39
|
+
"@commercetools-frontend/browser-history": "^27.10.0",
|
|
40
|
+
"@commercetools-frontend/constants": "^27.10.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@emotion/react": "^11.14.0",
|