sentry-vir 0.2.5 → 1.0.1
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/cspell.config.cjs +11 -0
- package/dist/cjs/auto.d.ts +1 -1
- package/dist/cjs/auto.js +4 -3
- package/dist/cjs/browser.d.ts +1 -1
- package/dist/cjs/browser.js +2 -1
- package/dist/cjs/env/execution-env.d.ts +1 -1
- package/dist/cjs/event-context/extra-context.error.js +8 -0
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/init-sentry/base-sentry-init.d.ts +6 -5
- package/dist/cjs/init-sentry/base-sentry-init.js +2 -2
- package/dist/cjs/init-sentry/sentry-config.d.ts +1 -2
- package/dist/cjs/init-sentry/sentry-config.js +4 -4
- package/dist/cjs/logging/send-log.js +2 -2
- package/dist/cjs/node.d.ts +1 -1
- package/dist/cjs/node.js +2 -1
- package/dist/cjs/processing/handle-sentry-send.d.ts +2 -6
- package/dist/cjs/processing/handle-sentry-send.js +3 -7
- package/dist/esm/auto.d.ts +1 -1
- package/dist/esm/auto.js +4 -3
- package/dist/esm/browser.d.ts +1 -1
- package/dist/esm/browser.js +2 -1
- package/dist/esm/env/execution-env.d.ts +1 -1
- package/dist/esm/event-context/extra-context.error.js +8 -0
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/init-sentry/base-sentry-init.d.ts +6 -5
- package/dist/esm/init-sentry/base-sentry-init.js +2 -2
- package/dist/esm/init-sentry/sentry-config.d.ts +1 -2
- package/dist/esm/init-sentry/sentry-config.js +4 -4
- package/dist/esm/logging/send-log.js +2 -2
- package/dist/esm/node.d.ts +1 -1
- package/dist/esm/node.js +2 -1
- package/dist/esm/processing/handle-sentry-send.d.ts +2 -6
- package/dist/esm/processing/handle-sentry-send.js +3 -7
- package/package.json +23 -23
- package/dist/cjs/env/release-env.d.ts +0 -8
- package/dist/cjs/env/release-env.js +0 -12
- package/dist/esm/env/release-env.d.ts +0 -8
- package/dist/esm/env/release-env.js +0 -9
package/dist/cjs/auto.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export declare const sentryDepByEnv: Record<SentryExecutionEnvEnum, SentryDepImp
|
|
|
12
12
|
*
|
|
13
13
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
14
14
|
*/
|
|
15
|
-
export declare function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }: InitSentryInput): Promise<SentryDep>;
|
|
15
|
+
export declare function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }: InitSentryInput): Promise<SentryDep>;
|
package/dist/cjs/auto.js
CHANGED
|
@@ -34,8 +34,8 @@ exports.sentryDepByEnv = {
|
|
|
34
34
|
[execution_env_1.SentryExecutionEnvEnum.Node]: () => Promise.resolve().then(() => __importStar(require('@sentry/node'))),
|
|
35
35
|
};
|
|
36
36
|
/** Determine which Sentry client dependency to use and then import it. */
|
|
37
|
-
async function getSentryByEnv(
|
|
38
|
-
return (await exports.sentryDepByEnv[
|
|
37
|
+
async function getSentryByEnv(executionEnv) {
|
|
38
|
+
return (await exports.sentryDepByEnv[executionEnv]());
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Automatically determines which Sentry module to import based on the given execution env. Warning:
|
|
@@ -45,7 +45,7 @@ async function getSentryByEnv(env) {
|
|
|
45
45
|
*
|
|
46
46
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
47
47
|
*/
|
|
48
|
-
async function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }) {
|
|
48
|
+
async function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }) {
|
|
49
49
|
const sentryDep = await getSentryByEnv(executionEnv);
|
|
50
50
|
await (0, base_sentry_init_1.baseInitSentry)({
|
|
51
51
|
dsn,
|
|
@@ -55,6 +55,7 @@ async function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sent
|
|
|
55
55
|
createUniversalContext,
|
|
56
56
|
sentryDep,
|
|
57
57
|
executionEnv,
|
|
58
|
+
isDev,
|
|
58
59
|
});
|
|
59
60
|
return sentryDep;
|
|
60
61
|
}
|
package/dist/cjs/browser.d.ts
CHANGED
|
@@ -7,4 +7,4 @@ export type Sentry = SentryBrowserDep;
|
|
|
7
7
|
*
|
|
8
8
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
9
9
|
*/
|
|
10
|
-
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }: Omit<InitSentryInput, 'executionEnv'>): Promise<Sentry>;
|
|
10
|
+
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }: Omit<InitSentryInput, 'executionEnv'>): Promise<Sentry>;
|
package/dist/cjs/browser.js
CHANGED
|
@@ -32,7 +32,7 @@ const base_sentry_init_1 = require("./init-sentry/base-sentry-init");
|
|
|
32
32
|
*
|
|
33
33
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
34
34
|
*/
|
|
35
|
-
async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }) {
|
|
35
|
+
async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }) {
|
|
36
36
|
const sentryDep = await Promise.resolve().then(() => __importStar(require('@sentry/browser')));
|
|
37
37
|
await (0, base_sentry_init_1.baseInitSentry)({
|
|
38
38
|
dsn,
|
|
@@ -42,6 +42,7 @@ async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides,
|
|
|
42
42
|
createUniversalContext,
|
|
43
43
|
sentryDep,
|
|
44
44
|
executionEnv: execution_env_1.SentryExecutionEnvEnum.Browser,
|
|
45
|
+
isDev,
|
|
45
46
|
});
|
|
46
47
|
return sentryDep;
|
|
47
48
|
}
|
|
@@ -10,4 +10,4 @@ export type SentryNodeDep = typeof import('@sentry/node');
|
|
|
10
10
|
/** Any of the Sentry client dependencies. */
|
|
11
11
|
export type SentryDep = SentryBrowserDep | SentryNodeDep;
|
|
12
12
|
/** Pick a Sentry client dependency based on the given environment. */
|
|
13
|
-
export type SentryDepByEnv<
|
|
13
|
+
export type SentryDepByEnv<ExecutionEnv extends SentryExecutionEnvEnum> = ExecutionEnv extends SentryExecutionEnvEnum.Browser ? SentryBrowserDep : SentryNodeDep;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.throwWithExtraContext = exports.ExtraContextError = void 0;
|
|
4
5
|
const common_1 = require("@augment-vir/common");
|
|
@@ -19,10 +20,17 @@ const extra_event_context_1 = require("./extra-event-context");
|
|
|
19
20
|
class ExtraContextError extends Error {
|
|
20
21
|
constructor(message, extraData) {
|
|
21
22
|
super(message);
|
|
23
|
+
Object.defineProperty(this, _a, {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: void 0
|
|
28
|
+
});
|
|
22
29
|
this[extra_event_context_1.extraEventContextSymbol] = extraData;
|
|
23
30
|
}
|
|
24
31
|
}
|
|
25
32
|
exports.ExtraContextError = ExtraContextError;
|
|
33
|
+
_a = extra_event_context_1.extraEventContextSymbol;
|
|
26
34
|
/**
|
|
27
35
|
* Adds extra context to an error without modifying the error's message or stack trace (or any of
|
|
28
36
|
* its other properties), then throws the error so it can propagate as usual.
|
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -15,7 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./env/execution-env"), exports);
|
|
18
|
-
__exportStar(require("./env/release-env"), exports);
|
|
19
18
|
__exportStar(require("./event-context/event-context"), exports);
|
|
20
19
|
__exportStar(require("./event-context/event-severity"), exports);
|
|
21
20
|
__exportStar(require("./event-context/extra-context.error"), exports);
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { Options } from '@sentry/types';
|
|
2
2
|
import { SentryDep, SentryExecutionEnvEnum } from '../env/execution-env';
|
|
3
|
-
import { SentryReleaseEnvEnum } from '../env/release-env';
|
|
4
3
|
import { EventExtraContextCreator } from '../event-context/event-context';
|
|
5
4
|
import { UserOverrides } from './sentry-config';
|
|
6
5
|
/** Configuration for initializing Sentry. */
|
|
7
6
|
export type InitSentryInput = {
|
|
7
|
+
/** The release environment, rather than the execution environment (browser vs node). */
|
|
8
|
+
releaseEnv: string;
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* In dev, events won't be sent to sentry. In either case, events will be logged to the local
|
|
11
|
+
* console.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
+
isDev: boolean;
|
|
13
14
|
/**
|
|
14
15
|
* The environment wherein the Sentry client will execute. Used to determine which Sentry client
|
|
15
16
|
* to load: browser or node.
|
|
@@ -33,6 +34,6 @@ export type InitSentryInput = {
|
|
|
33
34
|
*
|
|
34
35
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
35
36
|
*/
|
|
36
|
-
export declare function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, }: InitSentryInput & {
|
|
37
|
+
export declare function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, isDev, }: InitSentryInput & {
|
|
37
38
|
sentryDep: SentryDep;
|
|
38
39
|
}): Promise<SentryDep>;
|
|
@@ -10,12 +10,12 @@ const sentry_config_1 = require("./sentry-config");
|
|
|
10
10
|
*
|
|
11
11
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
12
12
|
*/
|
|
13
|
-
async function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, }) {
|
|
13
|
+
async function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, isDev, }) {
|
|
14
14
|
const finalSentryConfig = await (0, sentry_config_1.createSentryConfig)(executionEnv, sentryDep, {
|
|
15
15
|
dsn,
|
|
16
16
|
environment: releaseEnv,
|
|
17
17
|
release: releaseName,
|
|
18
|
-
}, sentryConfigOverrides,
|
|
18
|
+
}, sentryConfigOverrides, isDev);
|
|
19
19
|
sentryDep.init(finalSentryConfig);
|
|
20
20
|
sentryDep.addGlobalEventProcessor((event, hint) => (0, event_processor_1.processSentryEvent)(event, hint, createUniversalContext));
|
|
21
21
|
(0, sentry_client_for_logging_1.setSentryClientForLogging)(sentryDep);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { Options } from '@sentry/types';
|
|
2
2
|
import { SentryBrowserDep, SentryDepByEnv, SentryExecutionEnvEnum, SentryNodeDep } from '../env/execution-env';
|
|
3
|
-
import { SentryReleaseEnvEnum } from '../env/release-env';
|
|
4
3
|
/** Optional UserOverrides of Sentry config values. */
|
|
5
4
|
export type UserOverrides = Omit<Partial<Options>, keyof RequiredSentryOptions> | undefined;
|
|
6
5
|
/** Sentry config options that are required. */
|
|
7
6
|
export type RequiredSentryOptions = Pick<Required<Options>, 'dsn' | 'environment' | 'release'>;
|
|
8
7
|
/** Creates the sentry config used internally by sentry-vir. */
|
|
9
|
-
export declare function createSentryConfig<const
|
|
8
|
+
export declare function createSentryConfig<const ExecutionEnv extends SentryExecutionEnvEnum>(executionEnv: ExecutionEnv, sentryDep: SentryDepByEnv<ExecutionEnv>, requiredSentryOptions: RequiredSentryOptions, userOverrides: UserOverrides, isDev: boolean): Promise<SentryBrowserDep | SentryNodeDep>;
|
|
@@ -5,14 +5,14 @@ const common_1 = require("@augment-vir/common");
|
|
|
5
5
|
const execution_env_1 = require("../env/execution-env");
|
|
6
6
|
const handle_sentry_send_1 = require("../processing/handle-sentry-send");
|
|
7
7
|
/** Creates the sentry config used internally by sentry-vir. */
|
|
8
|
-
async function createSentryConfig(
|
|
8
|
+
async function createSentryConfig(executionEnv, sentryDep, requiredSentryOptions, userOverrides, isDev) {
|
|
9
9
|
const sharedSentryConfig = {
|
|
10
|
-
beforeSend: (0, handle_sentry_send_1.createSentryHandler)(
|
|
11
|
-
beforeSendTransaction: (0, handle_sentry_send_1.createSentryHandler)(
|
|
10
|
+
beforeSend: (0, handle_sentry_send_1.createSentryHandler)(isDev),
|
|
11
|
+
beforeSendTransaction: (0, handle_sentry_send_1.createSentryHandler)(isDev),
|
|
12
12
|
defaultIntegrations: false,
|
|
13
13
|
enabled: true,
|
|
14
14
|
};
|
|
15
|
-
const envSentryConfig = sentryConfigByEnv[
|
|
15
|
+
const envSentryConfig = sentryConfigByEnv[executionEnv](
|
|
16
16
|
/**
|
|
17
17
|
* As cast needed because env and sentryDep are tightly coupled and there's not a good way
|
|
18
18
|
* to check that they match with a type guard. This is okay, however, because the types of
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sendLog = void 0;
|
|
4
|
-
const
|
|
4
|
+
const run_time_assertions_1 = require("run-time-assertions");
|
|
5
5
|
const event_context_1 = require("../event-context/event-context");
|
|
6
6
|
const event_severity_1 = require("../event-context/event-severity");
|
|
7
7
|
const premature_events_1 = require("./premature-events");
|
|
@@ -36,7 +36,7 @@ function sendLogToSentry(logInfo, eventDetails) {
|
|
|
36
36
|
return undefined;
|
|
37
37
|
}
|
|
38
38
|
const scopeContext = (0, event_context_1.convertEventDetailsToSentryContext)(eventDetails);
|
|
39
|
-
const eventId = (0,
|
|
39
|
+
const eventId = (0, run_time_assertions_1.isRunTimeType)(logInfo, 'string')
|
|
40
40
|
? sentry_client_for_logging_1.sentryClientForLogging.captureMessage(logInfo, scopeContext)
|
|
41
41
|
: sentry_client_for_logging_1.sentryClientForLogging.captureEvent({
|
|
42
42
|
...logInfo,
|
package/dist/cjs/node.d.ts
CHANGED
|
@@ -7,4 +7,4 @@ export type Sentry = SentryNodeDep;
|
|
|
7
7
|
*
|
|
8
8
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
9
9
|
*/
|
|
10
|
-
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }: Omit<InitSentryInput, 'executionEnv'>): Promise<SentryNodeDep>;
|
|
10
|
+
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }: Omit<InitSentryInput, 'executionEnv'>): Promise<SentryNodeDep>;
|
package/dist/cjs/node.js
CHANGED
|
@@ -32,7 +32,7 @@ const base_sentry_init_1 = require("./init-sentry/base-sentry-init");
|
|
|
32
32
|
*
|
|
33
33
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
34
34
|
*/
|
|
35
|
-
async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }) {
|
|
35
|
+
async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }) {
|
|
36
36
|
const sentryDep = await Promise.resolve().then(() => __importStar(require('@sentry/node')));
|
|
37
37
|
await (0, base_sentry_init_1.baseInitSentry)({
|
|
38
38
|
dsn,
|
|
@@ -42,6 +42,7 @@ async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides,
|
|
|
42
42
|
createUniversalContext,
|
|
43
43
|
sentryDep,
|
|
44
44
|
executionEnv: execution_env_1.SentryExecutionEnvEnum.Node,
|
|
45
|
+
isDev,
|
|
45
46
|
});
|
|
46
47
|
return sentryDep;
|
|
47
48
|
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import type { EventHint } from '@sentry/browser';
|
|
2
2
|
import type { ErrorEvent, TransactionEvent } from '@sentry/types';
|
|
3
|
-
import { SentryReleaseEnvEnum } from '../env/release-env';
|
|
4
3
|
/** Creates a handler for Sentry events based on the given env. */
|
|
5
4
|
export declare function createSentryHandler(
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
* not.
|
|
9
|
-
*/
|
|
10
|
-
releaseEnv: SentryReleaseEnvEnum): (event: TransactionEvent | ErrorEvent, hint: EventHint) => TransactionEvent | ErrorEvent | null;
|
|
5
|
+
/** If in dev, events won't be sent to Sentry. They will only be logged in the console. */
|
|
6
|
+
isDev: boolean): (event: TransactionEvent | ErrorEvent, hint: EventHint) => TransactionEvent | ErrorEvent | null;
|
|
11
7
|
/** Tries to extract the original event message from different possible Sentry types. */
|
|
12
8
|
export declare function extractOriginalMessage(
|
|
13
9
|
/** Event from Sentry. */
|
|
@@ -2,15 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractOriginalMessage = exports.createSentryHandler = void 0;
|
|
4
4
|
const common_1 = require("@augment-vir/common");
|
|
5
|
-
const release_env_1 = require("../env/release-env");
|
|
6
5
|
const event_severity_1 = require("../event-context/event-severity");
|
|
7
6
|
/** Creates a handler for Sentry events based on the given env. */
|
|
8
7
|
function createSentryHandler(
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
* not.
|
|
12
|
-
*/
|
|
13
|
-
releaseEnv) {
|
|
8
|
+
/** If in dev, events won't be sent to Sentry. They will only be logged in the console. */
|
|
9
|
+
isDev) {
|
|
14
10
|
/** The actual function that gets called when handling Sentry events. */
|
|
15
11
|
function handleSentrySend(
|
|
16
12
|
/** The event from Sentry. */
|
|
@@ -25,7 +21,7 @@ releaseEnv) {
|
|
|
25
21
|
{ event, hint },
|
|
26
22
|
hint.originalException,
|
|
27
23
|
].filter(common_1.isTruthy);
|
|
28
|
-
if (
|
|
24
|
+
if (isDev) {
|
|
29
25
|
consoleMethod('Would have sent to Sentry:', ...logArgs);
|
|
30
26
|
return null;
|
|
31
27
|
}
|
package/dist/esm/auto.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export declare const sentryDepByEnv: Record<SentryExecutionEnvEnum, SentryDepImp
|
|
|
12
12
|
*
|
|
13
13
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
14
14
|
*/
|
|
15
|
-
export declare function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }: InitSentryInput): Promise<SentryDep>;
|
|
15
|
+
export declare function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }: InitSentryInput): Promise<SentryDep>;
|
package/dist/esm/auto.js
CHANGED
|
@@ -8,8 +8,8 @@ export const sentryDepByEnv = {
|
|
|
8
8
|
[SentryExecutionEnvEnum.Node]: () => import('@sentry/node'),
|
|
9
9
|
};
|
|
10
10
|
/** Determine which Sentry client dependency to use and then import it. */
|
|
11
|
-
async function getSentryByEnv(
|
|
12
|
-
return (await sentryDepByEnv[
|
|
11
|
+
async function getSentryByEnv(executionEnv) {
|
|
12
|
+
return (await sentryDepByEnv[executionEnv]());
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Automatically determines which Sentry module to import based on the given execution env. Warning:
|
|
@@ -19,7 +19,7 @@ async function getSentryByEnv(env) {
|
|
|
19
19
|
*
|
|
20
20
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
21
21
|
*/
|
|
22
|
-
export async function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }) {
|
|
22
|
+
export async function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }) {
|
|
23
23
|
const sentryDep = await getSentryByEnv(executionEnv);
|
|
24
24
|
await baseInitSentry({
|
|
25
25
|
dsn,
|
|
@@ -29,6 +29,7 @@ export async function autoInitSentry({ executionEnv, dsn, releaseEnv, releaseNam
|
|
|
29
29
|
createUniversalContext,
|
|
30
30
|
sentryDep,
|
|
31
31
|
executionEnv,
|
|
32
|
+
isDev,
|
|
32
33
|
});
|
|
33
34
|
return sentryDep;
|
|
34
35
|
}
|
package/dist/esm/browser.d.ts
CHANGED
|
@@ -7,4 +7,4 @@ export type Sentry = SentryBrowserDep;
|
|
|
7
7
|
*
|
|
8
8
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
9
9
|
*/
|
|
10
|
-
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }: Omit<InitSentryInput, 'executionEnv'>): Promise<Sentry>;
|
|
10
|
+
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }: Omit<InitSentryInput, 'executionEnv'>): Promise<Sentry>;
|
package/dist/esm/browser.js
CHANGED
|
@@ -6,7 +6,7 @@ import { baseInitSentry } from './init-sentry/base-sentry-init';
|
|
|
6
6
|
*
|
|
7
7
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
8
8
|
*/
|
|
9
|
-
export async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }) {
|
|
9
|
+
export async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }) {
|
|
10
10
|
const sentryDep = await import('@sentry/browser');
|
|
11
11
|
await baseInitSentry({
|
|
12
12
|
dsn,
|
|
@@ -16,6 +16,7 @@ export async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOve
|
|
|
16
16
|
createUniversalContext,
|
|
17
17
|
sentryDep,
|
|
18
18
|
executionEnv: SentryExecutionEnvEnum.Browser,
|
|
19
|
+
isDev,
|
|
19
20
|
});
|
|
20
21
|
return sentryDep;
|
|
21
22
|
}
|
|
@@ -10,4 +10,4 @@ export type SentryNodeDep = typeof import('@sentry/node');
|
|
|
10
10
|
/** Any of the Sentry client dependencies. */
|
|
11
11
|
export type SentryDep = SentryBrowserDep | SentryNodeDep;
|
|
12
12
|
/** Pick a Sentry client dependency based on the given environment. */
|
|
13
|
-
export type SentryDepByEnv<
|
|
13
|
+
export type SentryDepByEnv<ExecutionEnv extends SentryExecutionEnvEnum> = ExecutionEnv extends SentryExecutionEnvEnum.Browser ? SentryBrowserDep : SentryNodeDep;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { ensureError } from '@augment-vir/common';
|
|
2
3
|
import { extraEventContextSymbol } from './extra-event-context';
|
|
3
4
|
/**
|
|
@@ -16,9 +17,16 @@ import { extraEventContextSymbol } from './extra-event-context';
|
|
|
16
17
|
export class ExtraContextError extends Error {
|
|
17
18
|
constructor(message, extraData) {
|
|
18
19
|
super(message);
|
|
20
|
+
Object.defineProperty(this, _a, {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true,
|
|
24
|
+
value: void 0
|
|
25
|
+
});
|
|
19
26
|
this[extraEventContextSymbol] = extraData;
|
|
20
27
|
}
|
|
21
28
|
}
|
|
29
|
+
_a = extraEventContextSymbol;
|
|
22
30
|
/**
|
|
23
31
|
* Adds extra context to an error without modifying the error's message or stack trace (or any of
|
|
24
32
|
* its other properties), then throws the error so it can propagate as usual.
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { Options } from '@sentry/types';
|
|
2
2
|
import { SentryDep, SentryExecutionEnvEnum } from '../env/execution-env';
|
|
3
|
-
import { SentryReleaseEnvEnum } from '../env/release-env';
|
|
4
3
|
import { EventExtraContextCreator } from '../event-context/event-context';
|
|
5
4
|
import { UserOverrides } from './sentry-config';
|
|
6
5
|
/** Configuration for initializing Sentry. */
|
|
7
6
|
export type InitSentryInput = {
|
|
7
|
+
/** The release environment, rather than the execution environment (browser vs node). */
|
|
8
|
+
releaseEnv: string;
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
10
|
+
* In dev, events won't be sent to sentry. In either case, events will be logged to the local
|
|
11
|
+
* console.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
+
isDev: boolean;
|
|
13
14
|
/**
|
|
14
15
|
* The environment wherein the Sentry client will execute. Used to determine which Sentry client
|
|
15
16
|
* to load: browser or node.
|
|
@@ -33,6 +34,6 @@ export type InitSentryInput = {
|
|
|
33
34
|
*
|
|
34
35
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
35
36
|
*/
|
|
36
|
-
export declare function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, }: InitSentryInput & {
|
|
37
|
+
export declare function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, isDev, }: InitSentryInput & {
|
|
37
38
|
sentryDep: SentryDep;
|
|
38
39
|
}): Promise<SentryDep>;
|
|
@@ -7,12 +7,12 @@ import { createSentryConfig } from './sentry-config';
|
|
|
7
7
|
*
|
|
8
8
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
9
9
|
*/
|
|
10
|
-
export async function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, }) {
|
|
10
|
+
export async function baseInitSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, sentryDep, executionEnv, isDev, }) {
|
|
11
11
|
const finalSentryConfig = await createSentryConfig(executionEnv, sentryDep, {
|
|
12
12
|
dsn,
|
|
13
13
|
environment: releaseEnv,
|
|
14
14
|
release: releaseName,
|
|
15
|
-
}, sentryConfigOverrides,
|
|
15
|
+
}, sentryConfigOverrides, isDev);
|
|
16
16
|
sentryDep.init(finalSentryConfig);
|
|
17
17
|
sentryDep.addGlobalEventProcessor((event, hint) => processSentryEvent(event, hint, createUniversalContext));
|
|
18
18
|
setSentryClientForLogging(sentryDep);
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import type { Options } from '@sentry/types';
|
|
2
2
|
import { SentryBrowserDep, SentryDepByEnv, SentryExecutionEnvEnum, SentryNodeDep } from '../env/execution-env';
|
|
3
|
-
import { SentryReleaseEnvEnum } from '../env/release-env';
|
|
4
3
|
/** Optional UserOverrides of Sentry config values. */
|
|
5
4
|
export type UserOverrides = Omit<Partial<Options>, keyof RequiredSentryOptions> | undefined;
|
|
6
5
|
/** Sentry config options that are required. */
|
|
7
6
|
export type RequiredSentryOptions = Pick<Required<Options>, 'dsn' | 'environment' | 'release'>;
|
|
8
7
|
/** Creates the sentry config used internally by sentry-vir. */
|
|
9
|
-
export declare function createSentryConfig<const
|
|
8
|
+
export declare function createSentryConfig<const ExecutionEnv extends SentryExecutionEnvEnum>(executionEnv: ExecutionEnv, sentryDep: SentryDepByEnv<ExecutionEnv>, requiredSentryOptions: RequiredSentryOptions, userOverrides: UserOverrides, isDev: boolean): Promise<SentryBrowserDep | SentryNodeDep>;
|
|
@@ -2,14 +2,14 @@ import { mergeDeep } from '@augment-vir/common';
|
|
|
2
2
|
import { SentryExecutionEnvEnum, } from '../env/execution-env';
|
|
3
3
|
import { createSentryHandler } from '../processing/handle-sentry-send';
|
|
4
4
|
/** Creates the sentry config used internally by sentry-vir. */
|
|
5
|
-
export async function createSentryConfig(
|
|
5
|
+
export async function createSentryConfig(executionEnv, sentryDep, requiredSentryOptions, userOverrides, isDev) {
|
|
6
6
|
const sharedSentryConfig = {
|
|
7
|
-
beforeSend: createSentryHandler(
|
|
8
|
-
beforeSendTransaction: createSentryHandler(
|
|
7
|
+
beforeSend: createSentryHandler(isDev),
|
|
8
|
+
beforeSendTransaction: createSentryHandler(isDev),
|
|
9
9
|
defaultIntegrations: false,
|
|
10
10
|
enabled: true,
|
|
11
11
|
};
|
|
12
|
-
const envSentryConfig = sentryConfigByEnv[
|
|
12
|
+
const envSentryConfig = sentryConfigByEnv[executionEnv](
|
|
13
13
|
/**
|
|
14
14
|
* As cast needed because env and sentryDep are tightly coupled and there's not a good way
|
|
15
15
|
* to check that they match with a type guard. This is okay, however, because the types of
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isRunTimeType } from 'run-time-assertions';
|
|
2
2
|
import { convertEventDetailsToSentryContext, } from '../event-context/event-context';
|
|
3
3
|
import { EventSeverityEnum } from '../event-context/event-severity';
|
|
4
4
|
import { addPrematureEvent } from './premature-events';
|
|
@@ -33,7 +33,7 @@ function sendLogToSentry(logInfo, eventDetails) {
|
|
|
33
33
|
return undefined;
|
|
34
34
|
}
|
|
35
35
|
const scopeContext = convertEventDetailsToSentryContext(eventDetails);
|
|
36
|
-
const eventId =
|
|
36
|
+
const eventId = isRunTimeType(logInfo, 'string')
|
|
37
37
|
? sentryClientForLogging.captureMessage(logInfo, scopeContext)
|
|
38
38
|
: sentryClientForLogging.captureEvent({
|
|
39
39
|
...logInfo,
|
package/dist/esm/node.d.ts
CHANGED
|
@@ -7,4 +7,4 @@ export type Sentry = SentryNodeDep;
|
|
|
7
7
|
*
|
|
8
8
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
9
9
|
*/
|
|
10
|
-
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }: Omit<InitSentryInput, 'executionEnv'>): Promise<SentryNodeDep>;
|
|
10
|
+
export declare function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }: Omit<InitSentryInput, 'executionEnv'>): Promise<SentryNodeDep>;
|
package/dist/esm/node.js
CHANGED
|
@@ -6,7 +6,7 @@ import { baseInitSentry } from './init-sentry/base-sentry-init';
|
|
|
6
6
|
*
|
|
7
7
|
* To override any default sentry-vir settings, include them in the userConfig input.
|
|
8
8
|
*/
|
|
9
|
-
export async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, }) {
|
|
9
|
+
export async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOverrides, createUniversalContext, isDev, }) {
|
|
10
10
|
const sentryDep = await import('@sentry/node');
|
|
11
11
|
await baseInitSentry({
|
|
12
12
|
dsn,
|
|
@@ -16,6 +16,7 @@ export async function initSentry({ dsn, releaseEnv, releaseName, sentryConfigOve
|
|
|
16
16
|
createUniversalContext,
|
|
17
17
|
sentryDep,
|
|
18
18
|
executionEnv: SentryExecutionEnvEnum.Node,
|
|
19
|
+
isDev,
|
|
19
20
|
});
|
|
20
21
|
return sentryDep;
|
|
21
22
|
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import type { EventHint } from '@sentry/browser';
|
|
2
2
|
import type { ErrorEvent, TransactionEvent } from '@sentry/types';
|
|
3
|
-
import { SentryReleaseEnvEnum } from '../env/release-env';
|
|
4
3
|
/** Creates a handler for Sentry events based on the given env. */
|
|
5
4
|
export declare function createSentryHandler(
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
* not.
|
|
9
|
-
*/
|
|
10
|
-
releaseEnv: SentryReleaseEnvEnum): (event: TransactionEvent | ErrorEvent, hint: EventHint) => TransactionEvent | ErrorEvent | null;
|
|
5
|
+
/** If in dev, events won't be sent to Sentry. They will only be logged in the console. */
|
|
6
|
+
isDev: boolean): (event: TransactionEvent | ErrorEvent, hint: EventHint) => TransactionEvent | ErrorEvent | null;
|
|
11
7
|
/** Tries to extract the original event message from different possible Sentry types. */
|
|
12
8
|
export declare function extractOriginalMessage(
|
|
13
9
|
/** Event from Sentry. */
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { extractErrorMessage, isTruthy } from '@augment-vir/common';
|
|
2
|
-
import { SentryReleaseEnvEnum } from '../env/release-env';
|
|
3
2
|
import { getConsoleMethodForSeverity } from '../event-context/event-severity';
|
|
4
3
|
/** Creates a handler for Sentry events based on the given env. */
|
|
5
4
|
export function createSentryHandler(
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
* not.
|
|
9
|
-
*/
|
|
10
|
-
releaseEnv) {
|
|
5
|
+
/** If in dev, events won't be sent to Sentry. They will only be logged in the console. */
|
|
6
|
+
isDev) {
|
|
11
7
|
/** The actual function that gets called when handling Sentry events. */
|
|
12
8
|
function handleSentrySend(
|
|
13
9
|
/** The event from Sentry. */
|
|
@@ -22,7 +18,7 @@ releaseEnv) {
|
|
|
22
18
|
{ event, hint },
|
|
23
19
|
hint.originalException,
|
|
24
20
|
].filter(isTruthy);
|
|
25
|
-
if (
|
|
21
|
+
if (isDev) {
|
|
26
22
|
consoleMethod('Would have sent to Sentry:', ...logArgs);
|
|
27
23
|
return null;
|
|
28
24
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sentry-vir",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"config",
|
|
6
6
|
"helper",
|
|
@@ -38,38 +38,38 @@
|
|
|
38
38
|
"test:types": "tsc --noEmit"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@augment-vir/common": "^
|
|
42
|
-
"@sentry/browser": "^7.
|
|
43
|
-
"@sentry/core": "^7.
|
|
44
|
-
"@sentry/node": "^7.
|
|
45
|
-
"@sentry/types": "^7.
|
|
46
|
-
"type-fest": "^4.
|
|
41
|
+
"@augment-vir/common": "^23.1.1",
|
|
42
|
+
"@sentry/browser": "^7.99.0",
|
|
43
|
+
"@sentry/core": "^7.99.0",
|
|
44
|
+
"@sentry/node": "^7.99.0",
|
|
45
|
+
"@sentry/types": "^7.99.0",
|
|
46
|
+
"type-fest": "^4.10.2"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@augment-vir/browser-testing": "^
|
|
49
|
+
"@augment-vir/browser-testing": "^23.1.1",
|
|
50
50
|
"@open-wc/testing": "^4.0.0",
|
|
51
|
-
"@types/mocha": "^10.0.
|
|
51
|
+
"@types/mocha": "^10.0.6",
|
|
52
52
|
"@web/dev-server-esbuild": "^1.0.1",
|
|
53
53
|
"@web/test-runner": "^0.18.0",
|
|
54
54
|
"@web/test-runner-commands": "^0.9.0",
|
|
55
55
|
"@web/test-runner-playwright": "^0.11.0",
|
|
56
56
|
"@web/test-runner-visual-regression": "^0.9.0",
|
|
57
|
-
"cspell": "^8.
|
|
58
|
-
"dependency-cruiser": "^
|
|
59
|
-
"esbuild": "^0.
|
|
60
|
-
"istanbul-smart-text-reporter": "^1.1.
|
|
61
|
-
"markdown-code-example-inserter": "^0.3.
|
|
57
|
+
"cspell": "^8.3.2",
|
|
58
|
+
"dependency-cruiser": "^16.1.0",
|
|
59
|
+
"esbuild": "^0.20.0",
|
|
60
|
+
"istanbul-smart-text-reporter": "^1.1.3",
|
|
61
|
+
"markdown-code-example-inserter": "^0.3.3",
|
|
62
62
|
"npm-check-updates": "~16.12.3",
|
|
63
|
-
"prettier": "^3.
|
|
64
|
-
"prettier-plugin-interpolated-html-tags": "^1.0.
|
|
65
|
-
"prettier-plugin-jsdoc": "^1.
|
|
66
|
-
"prettier-plugin-multiline-arrays": "^3.0.
|
|
63
|
+
"prettier": "^3.2.2",
|
|
64
|
+
"prettier-plugin-interpolated-html-tags": "^1.0.3",
|
|
65
|
+
"prettier-plugin-jsdoc": "^1.3.0",
|
|
66
|
+
"prettier-plugin-multiline-arrays": "^3.0.3",
|
|
67
67
|
"prettier-plugin-organize-imports": "^3.2.4",
|
|
68
|
-
"prettier-plugin-packagejson": "^2.4.
|
|
68
|
+
"prettier-plugin-packagejson": "^2.4.10",
|
|
69
69
|
"prettier-plugin-sort-json": "^3.1.0",
|
|
70
|
-
"prettier-plugin-toml": "^
|
|
71
|
-
"run-time-assertions": "^0.
|
|
72
|
-
"typedoc": "^0.25.
|
|
73
|
-
"virmator": "^11.1
|
|
70
|
+
"prettier-plugin-toml": "^2.0.1",
|
|
71
|
+
"run-time-assertions": "^0.3.0",
|
|
72
|
+
"typedoc": "^0.25.7",
|
|
73
|
+
"virmator": "^11.3.1"
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SentryReleaseEnvEnum = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Used to determine logging behavior (dev does not send events to Sentry but still logs them
|
|
6
|
-
* locally).
|
|
7
|
-
*/
|
|
8
|
-
var SentryReleaseEnvEnum;
|
|
9
|
-
(function (SentryReleaseEnvEnum) {
|
|
10
|
-
SentryReleaseEnvEnum["Prod"] = "prod";
|
|
11
|
-
SentryReleaseEnvEnum["Dev"] = "dev";
|
|
12
|
-
})(SentryReleaseEnvEnum || (exports.SentryReleaseEnvEnum = SentryReleaseEnvEnum = {}));
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Used to determine logging behavior (dev does not send events to Sentry but still logs them
|
|
3
|
-
* locally).
|
|
4
|
-
*/
|
|
5
|
-
export var SentryReleaseEnvEnum;
|
|
6
|
-
(function (SentryReleaseEnvEnum) {
|
|
7
|
-
SentryReleaseEnvEnum["Prod"] = "prod";
|
|
8
|
-
SentryReleaseEnvEnum["Dev"] = "dev";
|
|
9
|
-
})(SentryReleaseEnvEnum || (SentryReleaseEnvEnum = {}));
|