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.
Files changed (40) hide show
  1. package/cspell.config.cjs +11 -0
  2. package/dist/cjs/auto.d.ts +1 -1
  3. package/dist/cjs/auto.js +4 -3
  4. package/dist/cjs/browser.d.ts +1 -1
  5. package/dist/cjs/browser.js +2 -1
  6. package/dist/cjs/env/execution-env.d.ts +1 -1
  7. package/dist/cjs/event-context/extra-context.error.js +8 -0
  8. package/dist/cjs/index.d.ts +0 -1
  9. package/dist/cjs/index.js +0 -1
  10. package/dist/cjs/init-sentry/base-sentry-init.d.ts +6 -5
  11. package/dist/cjs/init-sentry/base-sentry-init.js +2 -2
  12. package/dist/cjs/init-sentry/sentry-config.d.ts +1 -2
  13. package/dist/cjs/init-sentry/sentry-config.js +4 -4
  14. package/dist/cjs/logging/send-log.js +2 -2
  15. package/dist/cjs/node.d.ts +1 -1
  16. package/dist/cjs/node.js +2 -1
  17. package/dist/cjs/processing/handle-sentry-send.d.ts +2 -6
  18. package/dist/cjs/processing/handle-sentry-send.js +3 -7
  19. package/dist/esm/auto.d.ts +1 -1
  20. package/dist/esm/auto.js +4 -3
  21. package/dist/esm/browser.d.ts +1 -1
  22. package/dist/esm/browser.js +2 -1
  23. package/dist/esm/env/execution-env.d.ts +1 -1
  24. package/dist/esm/event-context/extra-context.error.js +8 -0
  25. package/dist/esm/index.d.ts +0 -1
  26. package/dist/esm/index.js +0 -1
  27. package/dist/esm/init-sentry/base-sentry-init.d.ts +6 -5
  28. package/dist/esm/init-sentry/base-sentry-init.js +2 -2
  29. package/dist/esm/init-sentry/sentry-config.d.ts +1 -2
  30. package/dist/esm/init-sentry/sentry-config.js +4 -4
  31. package/dist/esm/logging/send-log.js +2 -2
  32. package/dist/esm/node.d.ts +1 -1
  33. package/dist/esm/node.js +2 -1
  34. package/dist/esm/processing/handle-sentry-send.d.ts +2 -6
  35. package/dist/esm/processing/handle-sentry-send.js +3 -7
  36. package/package.json +23 -23
  37. package/dist/cjs/env/release-env.d.ts +0 -8
  38. package/dist/cjs/env/release-env.js +0 -12
  39. package/dist/esm/env/release-env.d.ts +0 -8
  40. package/dist/esm/env/release-env.js +0 -9
@@ -0,0 +1,11 @@
1
+ const {baseConfig} = require('virmator/base-configs/base-cspell.js');
2
+
3
+ module.exports = {
4
+ ...baseConfig,
5
+ ignorePaths: [
6
+ ...baseConfig.ignorePaths,
7
+ ],
8
+ words: [
9
+ ...baseConfig.words,
10
+ ],
11
+ };
@@ -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(env) {
38
- return (await exports.sentryDepByEnv[env]());
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
  }
@@ -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>;
@@ -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<Env extends SentryExecutionEnvEnum> = Env extends SentryExecutionEnvEnum.Browser ? SentryBrowserDep : SentryNodeDep;
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.
@@ -1,5 +1,4 @@
1
1
  export * from './env/execution-env';
2
- export * from './env/release-env';
3
2
  export * from './event-context/event-context';
4
3
  export * from './event-context/event-severity';
5
4
  export * from './event-context/extra-context.error';
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
- * The release environment, prod vs dev rather than browser vs node. In dev, events won't be
10
- * sent to sentry. In both options, all events will be logged to the local console.
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
- releaseEnv: SentryReleaseEnvEnum;
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, releaseEnv);
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 Env extends SentryExecutionEnvEnum>(env: Env, sentryDep: SentryDepByEnv<Env>, requiredSentryOptions: RequiredSentryOptions, userOverrides: UserOverrides, releaseEnv: SentryReleaseEnvEnum): Promise<SentryBrowserDep | SentryNodeDep>;
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(env, sentryDep, requiredSentryOptions, userOverrides, releaseEnv) {
8
+ async function createSentryConfig(executionEnv, sentryDep, requiredSentryOptions, userOverrides, isDev) {
9
9
  const sharedSentryConfig = {
10
- beforeSend: (0, handle_sentry_send_1.createSentryHandler)(releaseEnv),
11
- beforeSendTransaction: (0, handle_sentry_send_1.createSentryHandler)(releaseEnv),
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[env](
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 common_1 = require("@augment-vir/common");
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, common_1.isRuntimeTypeOf)(logInfo, 'string')
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,
@@ -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
- * The release environment (dev vs prod). Determines whether events should be sent to sentry or
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
- * The release environment (dev vs prod). Determines whether events should be sent to sentry or
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 (releaseEnv === release_env_1.SentryReleaseEnvEnum.Dev) {
24
+ if (isDev) {
29
25
  consoleMethod('Would have sent to Sentry:', ...logArgs);
30
26
  return null;
31
27
  }
@@ -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(env) {
12
- return (await sentryDepByEnv[env]());
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
  }
@@ -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>;
@@ -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<Env extends SentryExecutionEnvEnum> = Env extends SentryExecutionEnvEnum.Browser ? SentryBrowserDep : SentryNodeDep;
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.
@@ -1,5 +1,4 @@
1
1
  export * from './env/execution-env';
2
- export * from './env/release-env';
3
2
  export * from './event-context/event-context';
4
3
  export * from './event-context/event-severity';
5
4
  export * from './event-context/extra-context.error';
package/dist/esm/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './env/execution-env';
2
- export * from './env/release-env';
3
2
  export * from './event-context/event-context';
4
3
  export * from './event-context/event-severity';
5
4
  export * from './event-context/extra-context.error';
@@ -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
- * The release environment, prod vs dev rather than browser vs node. In dev, events won't be
10
- * sent to sentry. In both options, all events will be logged to the local console.
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
- releaseEnv: SentryReleaseEnvEnum;
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, releaseEnv);
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 Env extends SentryExecutionEnvEnum>(env: Env, sentryDep: SentryDepByEnv<Env>, requiredSentryOptions: RequiredSentryOptions, userOverrides: UserOverrides, releaseEnv: SentryReleaseEnvEnum): Promise<SentryBrowserDep | SentryNodeDep>;
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(env, sentryDep, requiredSentryOptions, userOverrides, releaseEnv) {
5
+ export async function createSentryConfig(executionEnv, sentryDep, requiredSentryOptions, userOverrides, isDev) {
6
6
  const sharedSentryConfig = {
7
- beforeSend: createSentryHandler(releaseEnv),
8
- beforeSendTransaction: createSentryHandler(releaseEnv),
7
+ beforeSend: createSentryHandler(isDev),
8
+ beforeSendTransaction: createSentryHandler(isDev),
9
9
  defaultIntegrations: false,
10
10
  enabled: true,
11
11
  };
12
- const envSentryConfig = sentryConfigByEnv[env](
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 { isRuntimeTypeOf } from '@augment-vir/common';
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 = isRuntimeTypeOf(logInfo, 'string')
36
+ const eventId = isRunTimeType(logInfo, 'string')
37
37
  ? sentryClientForLogging.captureMessage(logInfo, scopeContext)
38
38
  : sentryClientForLogging.captureEvent({
39
39
  ...logInfo,
@@ -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
- * The release environment (dev vs prod). Determines whether events should be sent to sentry or
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
- * The release environment (dev vs prod). Determines whether events should be sent to sentry or
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 (releaseEnv === SentryReleaseEnvEnum.Dev) {
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.2.5",
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": "^21.6.0",
42
- "@sentry/browser": "^7.80.1",
43
- "@sentry/core": "^7.80.1",
44
- "@sentry/node": "^7.80.1",
45
- "@sentry/types": "^7.80.1",
46
- "type-fest": "^4.7.1"
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": "^21.6.0",
49
+ "@augment-vir/browser-testing": "^23.1.1",
50
50
  "@open-wc/testing": "^4.0.0",
51
- "@types/mocha": "^10.0.4",
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.0.0",
58
- "dependency-cruiser": "^15.3.0",
59
- "esbuild": "^0.19.5",
60
- "istanbul-smart-text-reporter": "^1.1.2",
61
- "markdown-code-example-inserter": "^0.3.2",
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.1.0",
64
- "prettier-plugin-interpolated-html-tags": "^1.0.2",
65
- "prettier-plugin-jsdoc": "^1.1.1",
66
- "prettier-plugin-multiline-arrays": "^3.0.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.6",
68
+ "prettier-plugin-packagejson": "^2.4.10",
69
69
  "prettier-plugin-sort-json": "^3.1.0",
70
- "prettier-plugin-toml": "^1.0.0",
71
- "run-time-assertions": "^0.1.3",
72
- "typedoc": "^0.25.3",
73
- "virmator": "^11.1.0"
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,8 +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 declare enum SentryReleaseEnvEnum {
6
- Prod = "prod",
7
- Dev = "dev"
8
- }
@@ -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,8 +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 declare enum SentryReleaseEnvEnum {
6
- Prod = "prod",
7
- Dev = "dev"
8
- }
@@ -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 = {}));