sentry-vir 4.0.1 → 4.0.2
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/event-context/event-context.js +5 -1
- package/dist/logging/handle-error.js +3 -1
- package/dist/logging/premature-events.js +4 -1
- package/dist/logging/send-log.d.ts +5 -1
- package/dist/logging/send-log.js +18 -9
- package/dist/processing/event-processor.js +7 -0
- package/dist/processing/throttling.js +6 -2
- package/package.json +12 -12
|
@@ -14,6 +14,10 @@ export function convertEventDetailsToSentryContext(eventDetails, options) {
|
|
|
14
14
|
return {
|
|
15
15
|
extra,
|
|
16
16
|
level: eventDetails.severity,
|
|
17
|
-
...(eventDetails.tags
|
|
17
|
+
...(eventDetails.tags
|
|
18
|
+
? {
|
|
19
|
+
tags: eventDetails.tags,
|
|
20
|
+
}
|
|
21
|
+
: {}),
|
|
18
22
|
};
|
|
19
23
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { type Event as SentryEvent } from '@sentry/core';
|
|
2
2
|
import { type ContextOptions, type EventContextAndTags, type EventDetails } from '../event-context/event-context.js';
|
|
3
|
+
/** A Sentry event object without the fields that are set by the logging context. */
|
|
4
|
+
export type SendLogEvent = Omit<SentryEvent, 'extra' | 'level'>;
|
|
5
|
+
/** All accepted input types for `sendLog`. Strings, Error objects, and raw Sentry events. */
|
|
6
|
+
export type SendLogInfo = string | Error | SendLogEvent;
|
|
3
7
|
/** Send non-error events to Sentry. */
|
|
4
8
|
export declare const sendLog: {
|
|
5
9
|
/** Sends an even to Sentry with debug severity. */
|
|
@@ -9,5 +13,5 @@ export declare const sendLog: {
|
|
|
9
13
|
/** Sends an even to Sentry with warning severity. */
|
|
10
14
|
readonly warning: (info: Parameters<typeof sendLogToSentry>[0], eventOptions?: EventContextAndTags) => string | undefined;
|
|
11
15
|
};
|
|
12
|
-
declare function sendLogToSentry(logInfo:
|
|
16
|
+
declare function sendLogToSentry(logInfo: SendLogInfo, eventDetails: EventDetails, options: ContextOptions): string | undefined;
|
|
13
17
|
export {};
|
package/dist/logging/send-log.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { check } from '@augment-vir/assert';
|
|
2
|
+
import { extractErrorMessage } from '@augment-vir/common';
|
|
2
3
|
import { convertEventDetailsToSentryContext, } from '../event-context/event-context.js';
|
|
3
4
|
import { EventSeverityEnum } from '../event-context/event-severity.js';
|
|
4
5
|
import { extractOriginalMessage } from '../processing/event-processor.js';
|
|
@@ -27,28 +28,36 @@ function wrapLogWithSeverity(severity) {
|
|
|
27
28
|
}
|
|
28
29
|
function sendLogToSentry(logInfo, eventDetails, options) {
|
|
29
30
|
try {
|
|
31
|
+
/**
|
|
32
|
+
* `Error.message` is not enumerable, so spreading an `Error` into `captureEvent` would lose
|
|
33
|
+
* the message entirely and produce an `<unlabeled event>` in Sentry. Extract the message
|
|
34
|
+
* string so it goes through the `captureMessage` path instead.
|
|
35
|
+
*/
|
|
36
|
+
const resolvedLogInfo = logInfo instanceof Error ? extractErrorMessage(logInfo) : logInfo;
|
|
30
37
|
if (!sentryClientForLogging) {
|
|
31
38
|
logToConsoleWithoutSentry(eventDetails.severity, LoggingState.NoSentryYet, {
|
|
32
|
-
message: check.isString(
|
|
33
|
-
?
|
|
34
|
-
: extractOriginalMessage(
|
|
35
|
-
event: check.isString(
|
|
39
|
+
message: check.isString(resolvedLogInfo)
|
|
40
|
+
? resolvedLogInfo
|
|
41
|
+
: extractOriginalMessage(resolvedLogInfo, undefined),
|
|
42
|
+
event: check.isString(resolvedLogInfo) ? undefined : resolvedLogInfo,
|
|
36
43
|
extra: eventDetails.extraContext,
|
|
37
44
|
hint: undefined,
|
|
38
45
|
originalException: undefined,
|
|
39
46
|
});
|
|
40
47
|
addPrematureEvent(sendLogToSentry, [
|
|
41
|
-
|
|
48
|
+
resolvedLogInfo,
|
|
42
49
|
eventDetails,
|
|
43
|
-
{
|
|
50
|
+
{
|
|
51
|
+
wasSentPrematurely: true,
|
|
52
|
+
},
|
|
44
53
|
]);
|
|
45
54
|
return undefined;
|
|
46
55
|
}
|
|
47
56
|
const scopeContext = convertEventDetailsToSentryContext(eventDetails, options);
|
|
48
|
-
const eventId = check.isString(
|
|
49
|
-
? sentryClientForLogging.captureMessage(
|
|
57
|
+
const eventId = check.isString(resolvedLogInfo)
|
|
58
|
+
? sentryClientForLogging.captureMessage(resolvedLogInfo, scopeContext)
|
|
50
59
|
: sentryClientForLogging.captureEvent({
|
|
51
|
-
...
|
|
60
|
+
...resolvedLogInfo,
|
|
52
61
|
...scopeContext,
|
|
53
62
|
});
|
|
54
63
|
return eventId;
|
|
@@ -27,6 +27,13 @@ createUniversalContext) {
|
|
|
27
27
|
wasSentPrematurely: false,
|
|
28
28
|
});
|
|
29
29
|
Object.assign(event, sentryContext);
|
|
30
|
+
/**
|
|
31
|
+
* Try to recover one from the hint's original exception. Without this, the event shows as
|
|
32
|
+
* `<unlabeled event>` in Sentry.
|
|
33
|
+
*/
|
|
34
|
+
if (!event.message && hint.originalException) {
|
|
35
|
+
event.message = extractErrorMessage(hint.originalException);
|
|
36
|
+
}
|
|
30
37
|
if (Object.keys(extraTags).length) {
|
|
31
38
|
event.tags = {
|
|
32
39
|
...event.tags,
|
|
@@ -15,9 +15,13 @@ export const throttleCache = new Map();
|
|
|
15
15
|
*/
|
|
16
16
|
export const defaultThrottleOptions = {
|
|
17
17
|
disableThrottling: false,
|
|
18
|
-
thresholdInterval: {
|
|
18
|
+
thresholdInterval: {
|
|
19
|
+
hours: 1,
|
|
20
|
+
},
|
|
19
21
|
disableThrottleLog: false,
|
|
20
|
-
throttleCooldown: {
|
|
22
|
+
throttleCooldown: {
|
|
23
|
+
days: 1,
|
|
24
|
+
},
|
|
21
25
|
throttleThreshold: 50,
|
|
22
26
|
};
|
|
23
27
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sentry-vir",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Easily use Sentry.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"config",
|
|
@@ -44,32 +44,32 @@
|
|
|
44
44
|
"test:update": "npm test update"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@augment-vir/assert": "^31.
|
|
48
|
-
"@augment-vir/common": "^31.
|
|
47
|
+
"@augment-vir/assert": "^31.67.0",
|
|
48
|
+
"@augment-vir/common": "^31.67.0",
|
|
49
49
|
"@sentry/browser": "^10.39.0",
|
|
50
50
|
"@sentry/core": "^10.39.0",
|
|
51
51
|
"@sentry/node": "^10.39.0",
|
|
52
|
-
"date-vir": "^8.
|
|
52
|
+
"date-vir": "^8.2.0",
|
|
53
53
|
"type-fest": "^5.4.4"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@augment-vir/test": "^31.
|
|
57
|
-
"@eslint/eslintrc": "^3.3.
|
|
56
|
+
"@augment-vir/test": "^31.67.0",
|
|
57
|
+
"@eslint/eslintrc": "^3.3.4",
|
|
58
58
|
"@eslint/js": "^9.39.2",
|
|
59
59
|
"@stylistic/eslint-plugin": "^5.9.0",
|
|
60
60
|
"@stylistic/eslint-plugin-ts": "^4.4.1",
|
|
61
|
-
"@typescript-eslint/eslint-plugin": "^8.56.
|
|
61
|
+
"@typescript-eslint/eslint-plugin": "^8.56.1",
|
|
62
62
|
"@web/dev-server-esbuild": "^1.0.5",
|
|
63
63
|
"@web/test-runner": "^0.20.2",
|
|
64
64
|
"@web/test-runner-commands": "^0.9.0",
|
|
65
65
|
"@web/test-runner-playwright": "^0.11.1",
|
|
66
66
|
"@web/test-runner-visual-regression": "^0.10.0",
|
|
67
|
-
"cspell": "^9.
|
|
67
|
+
"cspell": "^9.7.0",
|
|
68
68
|
"dependency-cruiser": "^17.3.8",
|
|
69
69
|
"esbuild": "^0.27.3",
|
|
70
70
|
"eslint": "^9.39.2",
|
|
71
71
|
"eslint-config-prettier": "^10.1.8",
|
|
72
|
-
"eslint-plugin-jsdoc": "^62.7.
|
|
72
|
+
"eslint-plugin-jsdoc": "^62.7.1",
|
|
73
73
|
"eslint-plugin-monorepo-cop": "^1.0.2",
|
|
74
74
|
"eslint-plugin-playwright": "^2.7.0",
|
|
75
75
|
"eslint-plugin-prettier": "^5.5.5",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"eslint-plugin-unicorn": "^63.0.0",
|
|
79
79
|
"istanbul-smart-text-reporter": "^1.1.5",
|
|
80
80
|
"markdown-code-example-inserter": "^3.0.3",
|
|
81
|
-
"npm-check-updates": "^19.
|
|
81
|
+
"npm-check-updates": "^19.6.3",
|
|
82
82
|
"prettier": "~3.3.3",
|
|
83
83
|
"prettier-plugin-interpolated-html-tags": "^2.0.1",
|
|
84
84
|
"prettier-plugin-jsdoc": "^1.8.0",
|
|
@@ -90,8 +90,8 @@
|
|
|
90
90
|
"runstorm": "^1.0.0",
|
|
91
91
|
"typedoc": "^0.28.17",
|
|
92
92
|
"typescript": "^5.9.3",
|
|
93
|
-
"typescript-eslint": "^8.56.
|
|
94
|
-
"virmator": "^14.
|
|
93
|
+
"typescript-eslint": "^8.56.1",
|
|
94
|
+
"virmator": "^14.7.2",
|
|
95
95
|
"vite": "^7.3.1"
|
|
96
96
|
},
|
|
97
97
|
"engines": {
|