UNPKG

7.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AAAA,qCAA8D;AAC9D,mCAA6C;AAC7C,uCAAuE;AACvE,uCAAuC;AAEvC,qCAAwC;AAGxC;;;;;GAKG;AACH;IAAgC,sCAAoC;IAGlE;;;OAGG;IACH,oBAAmB,OAAoB;QAAvC,iBAcC;QAbC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;YAC/C,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,kBAAW;iBACrB;aACF;YACD,OAAO,EAAE,kBAAW;SACrB,CAAC;QAEF,QAAA,kBAAM,qBAAW,EAAE,OAAO,CAAC,SAAC;;IAC9B,CAAC;IAED;;OAEG;IACH,iHAAiH;IAC1G,qCAAgB,GAAvB,UAAwB,SAAc,EAAE,IAAgB,EAAE,KAAa;QACrE,qHAAqH;QACrH,+GAA+G;QAC/G,uEAAuE;QACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,IAAI,IAAI,CAAC,eAAe,IAAI,KAAK,EAAE;YACtE,IAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAEjD,kFAAkF;YAClF,iGAAiG;YACjG,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,4BAAoB,CAAC,EAAE,EAAE;gBACvE,cAAc,CAAC,MAAM,GAAG,4BAAoB,CAAC,OAAO,CAAC;aACtD;SACF;QAED,OAAO,iBAAM,gBAAgB,YAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,iCAAY,GAAnB,UAAoB,KAAY,EAAE,IAAgB,EAAE,KAAa;QAC/D,qHAAqH;QACrH,+GAA+G;QAC/G,uEAAuE;QACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,IAAI,IAAI,CAAC,eAAe,IAAI,KAAK,EAAE;YACtE,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC;YAC5C,IAAM,WAAW,GACf,SAAS,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAE9G,+EAA+E;YAC/E,IAAI,WAAW,EAAE;gBACf,IAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAEjD,8FAA8F;gBAC9F,sCAAsC;gBACtC,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,4BAAoB,CAAC,EAAE,EAAE;oBACvE,cAAc,CAAC,MAAM,GAAG,4BAAoB,CAAC,OAAO,CAAC;iBACtD;aACF;SACF;QAED,OAAO,iBAAM,YAAY,YAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,0BAAK,GAAZ,UAAa,OAAgB;;QAC3B,MAAA,IAAI,CAAC,eAAe,0CAAE,KAAK,GAAG;QAC9B,OAAO,iBAAM,KAAK,YAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,sEAAsE;IAC/D,uCAAkB,GAAzB;QACQ,IAAA,kBAAwC,EAAtC,oBAAO,EAAE,4BAA6B,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;YACZ,cAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;SAC3F;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,oBAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE;gBACtE,OAAO,SAAA;gBACP,WAAW,aAAA;aACZ,CAAC,CAAC;SACJ;IACH,CAAC;IAED;;OAEG;IACO,kCAAa,GAAvB,UAAwB,KAAY,EAAE,KAAa,EAAE,IAAgB;QACnE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC;QAC1C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE;YAChC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC;SAClD;QACD,OAAO,iBAAM,aAAa,YAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACO,2CAAsB,GAAhC;QACE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,cAAM,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;SAC/F;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC;SACpD;IACH,CAAC;IACH,iBAAC;AAAD,CAAC,AAnHD,CAAgC,iBAAU,GAmHzC;AAnHY,gCAAU","sourcesContent":["import { BaseClient, Scope, SDK_VERSION } from '@sentry/core';\nimport { SessionFlusher } from '@sentry/hub';\nimport { Event, EventHint, RequestSessionStatus } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { NodeBackend } from './backend';\nimport { NodeOptions } from './types';\n\n/**\n * The Sentry Node SDK Client.\n *\n * @see NodeOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class NodeClient extends BaseClient<NodeBackend, NodeOptions> {\n protected _sessionFlusher: SessionFlusher | undefined;\n\n /**\n * Creates a new Node SDK instance.\n * @param options Configuration options for this SDK.\n */\n public constructor(options: NodeOptions) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.node',\n packages: [\n {\n name: 'npm:@sentry/node',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(NodeBackend, options);\n }\n\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n public captureException(exception: any, hint?: EventHint, scope?: Scope): string | undefined {\n // Check if the flag `autoSessionTracking` is enabled, and if `_sessionFlusher` exists because it is initialised only\n // when the `requestHandler` middleware is used, and hence the expectation is to have SessionAggregates payload\n // sent to the Server only when the `requestHandler` middleware is used\n if (this._options.autoSessionTracking && this._sessionFlusher && scope) {\n const requestSession = scope.getRequestSession();\n\n // Necessary checks to ensure this is code block is executed only within a request\n // Should override the status only if `requestSession.status` is `Ok`, which is its initial stage\n if (requestSession && requestSession.status === RequestSessionStatus.Ok) {\n requestSession.status = RequestSessionStatus.Errored;\n }\n }\n\n return super.captureException(exception, hint, scope);\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string | undefined {\n // Check if the flag `autoSessionTracking` is enabled, and if `_sessionFlusher` exists because it is initialised only\n // when the `requestHandler` middleware is used, and hence the expectation is to have SessionAggregates payload\n // sent to the Server only when the `requestHandler` middleware is used\n if (this._options.autoSessionTracking && this._sessionFlusher && scope) {\n const eventType = event.type || 'exception';\n const isException =\n eventType === 'exception' && event.exception && event.exception.values && event.exception.values.length > 0;\n\n // If the event is of type Exception, then a request session should be captured\n if (isException) {\n const requestSession = scope.getRequestSession();\n\n // Ensure that this is happening within the bounds of a request, and make sure not to override\n // Session Status if Errored / Crashed\n if (requestSession && requestSession.status === RequestSessionStatus.Ok) {\n requestSession.status = RequestSessionStatus.Errored;\n }\n }\n }\n\n return super.captureEvent(event, hint, scope);\n }\n\n /**\n *\n * @inheritdoc\n */\n public close(timeout?: number): PromiseLike<boolean> {\n this._sessionFlusher?.close();\n return super.close(timeout);\n }\n\n /** Method that initialises an instance of SessionFlusher on Client */\n public initSessionFlusher(): void {\n const { release, environment } = this._options;\n if (!release) {\n logger.warn('Cannot initialise an instance of SessionFlusher if no release is provided!');\n } else {\n this._sessionFlusher = new SessionFlusher(this._backend.getTransport(), {\n release,\n environment,\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(event: Event, scope?: Scope, hint?: EventHint): PromiseLike<Event | null> {\n event.platform = event.platform || 'node';\n if (this.getOptions().serverName) {\n event.server_name = this.getOptions().serverName;\n }\n return super._prepareEvent(event, scope, hint);\n }\n\n /**\n * Method responsible for capturing/ending a request session by calling `incrementSessionStatusCount` to increment\n * appropriate session aggregates bucket\n */\n protected _captureRequestSession(): void {\n if (!this._sessionFlusher) {\n logger.warn('Discarded request mode session because autoSessionTracking option was disabled');\n } else {\n this._sessionFlusher.incrementSessionStatusCount();\n }\n }\n}\n"]}
\No newline at end of file