Socket
Socket
Sign inDemoInstall

@sentry/core

Package Overview
Dependencies
Maintainers
8
Versions
526
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sentry/core - npm Package Compare versions

Comparing version 4.4.2 to 4.5.0

dist/promisebuffer.d.ts

15

dist/basebackend.d.ts
import { Scope } from '@sentry/hub';
import { Breadcrumb, SentryEvent, SentryEventHint, SentryResponse, Severity, Transport } from '@sentry/types';
import { Backend, Options } from './interfaces';
import { RequestBuffer } from './requestbuffer';
/** A class object that can instanciate Backend objects. */

@@ -15,9 +14,11 @@ export interface BackendClass<B extends Backend, O extends Options> {

protected readonly options: O;
/** Cached transport used internally. */
protected transport: Transport;
/** Creates a new browser backend instance. */
constructor(options: O);
/** Cached transport used internally. */
protected transport?: Transport;
/** A simple buffer holding all requests. */
protected readonly buffer: RequestBuffer<SentryResponse>;
/**
* Sets up the transport so it can be used later to send requests.
*/
protected setupTransport(): Transport;
/**
* @inheritDoc

@@ -33,3 +34,3 @@ */

*/
sendEvent(_event: SentryEvent): Promise<SentryResponse>;
sendEvent(event: SentryEvent): Promise<SentryResponse>;
/**

@@ -46,3 +47,3 @@ * @inheritDoc

*/
getBuffer(): RequestBuffer<SentryResponse>;
getTransport(): Transport;
}

@@ -5,4 +5,5 @@ "use strict";

var logger_1 = require("@sentry/utils/logger");
var object_1 = require("@sentry/utils/object");
var error_1 = require("./error");
var requestbuffer_1 = require("./requestbuffer");
var noop_1 = require("./transports/noop");
/**

@@ -14,4 +15,2 @@ * This is the base implemention of a Backend.

function BaseBackend(options) {
/** A simple buffer holding all requests. */
this.buffer = new requestbuffer_1.RequestBuffer();
this.options = options;

@@ -21,4 +20,11 @@ if (!this.options.dsn) {

}
this.transport = this.setupTransport();
}
/**
* Sets up the transport so it can be used later to send requests.
*/
BaseBackend.prototype.setupTransport = function () {
return new noop_1.NoopTransport();
};
/**
* @inheritDoc

@@ -46,6 +52,13 @@ */

*/
BaseBackend.prototype.sendEvent = function (_event) {
BaseBackend.prototype.sendEvent = function (event) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
throw new error_1.SentryError('Backend has to implement `sendEvent` method');
// TODO: Remove with v5
// tslint:disable-next-line
if (this.transport.captureEvent) {
// tslint:disable-next-line
return [2 /*return*/, this.transport.captureEvent(event)];
}
// --------------------
return [2 /*return*/, this.transport.sendEvent(object_1.serialize(event))];
});

@@ -69,4 +82,4 @@ });

*/
BaseBackend.prototype.getBuffer = function () {
return this.buffer;
BaseBackend.prototype.getTransport = function () {
return this.transport;
};

@@ -73,0 +86,0 @@ return BaseBackend;

@@ -7,2 +7,3 @@ import { Scope } from '@sentry/hub';

import { Backend, Client, Options } from './interfaces';
import { PromiseBuffer } from './promisebuffer';
/**

@@ -61,2 +62,4 @@ * Base implementation for all JavaScript SDK clients.

private readonly integrations;
/** A simple buffer holding all requests. */
protected readonly buffer: PromiseBuffer<SentryResponse>;
/**

@@ -74,8 +77,2 @@ * Initializes this client instance.

/**
* Internal helper function to buffer promises.
*
* @param promise Any promise, but in this case Promise<SentryResponse>.
*/
protected buffer(promise: Promise<SentryResponse>): Promise<SentryResponse>;
/**
* @inheritDoc

@@ -82,0 +79,0 @@ */

@@ -6,2 +6,3 @@ "use strict";

var async_1 = require("@sentry/utils/async");
var is_1 = require("@sentry/utils/is");
var logger_1 = require("@sentry/utils/logger");

@@ -12,2 +13,3 @@ var misc_1 = require("@sentry/utils/misc");

var integration_1 = require("./integration");
var promisebuffer_1 = require("./promisebuffer");
/**

@@ -67,2 +69,4 @@ * Default maximum number of breadcrumbs added to an event. Can be overwritten

function BaseClient(backendClass, options) {
/** A simple buffer holding all requests. */
this.buffer = new promisebuffer_1.PromiseBuffer();
this.backend = new backendClass(options);

@@ -91,16 +95,2 @@ this.options = options;

/**
* Internal helper function to buffer promises.
*
* @param promise Any promise, but in this case Promise<SentryResponse>.
*/
BaseClient.prototype.buffer = function (promise) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, this.getBackend()
.getBuffer()
.add(promise)];
});
});
};
/**
* @inheritDoc

@@ -112,3 +102,3 @@ */

return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return [2 /*return*/, this.buffer.add((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var event;

@@ -134,9 +124,18 @@ return tslib_1.__generator(this, function (_a) {

return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var event;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getBackend().eventFromMessage(message, level, hint)];
return [2 /*return*/, this.buffer.add((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var event, _a;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!is_1.isPrimitive(message)) return [3 /*break*/, 2];
return [4 /*yield*/, this.getBackend().eventFromMessage("" + message, level, hint)];
case 1:
event = _a.sent();
_a = _b.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this.getBackend().eventFromException(message, hint)];
case 3:
_a = _b.sent();
_b.label = 4;
case 4:
event = _a;
return [2 /*return*/, this.captureEvent(event, hint, scope)];

@@ -159,3 +158,3 @@ }

// This is fine...
return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return [2 /*return*/, this.buffer.add((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var _this = this;

@@ -283,3 +282,3 @@ return tslib_1.__generator(this, function (_a) {

return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, beforeSend, sampleRate, prepared, finalEvent, isInternalException, exception_1, response;
var _a, beforeSend, sampleRate, prepared, finalEvent, isInternalException, exception_1, response, error_1;
return tslib_1.__generator(this, function (_b) {

@@ -342,4 +341,7 @@ switch (_b.label) {

}
_b.label = 7;
case 7:
_b.trys.push([7, 9, , 10]);
return [4 /*yield*/, send(finalEvent)];
case 7:
case 8:
response = _b.sent();

@@ -352,2 +354,12 @@ response.event = finalEvent;

return [2 /*return*/, response];
case 9:
error_1 = _b.sent();
// We have a catch here since the transport can reject the request internally.
// If we do not catch this here, we will run into an endless loop.
logger_1.logger.error("" + error_1);
return [2 /*return*/, {
reason: "" + error_1,
status: types_1.Status.Failed,
}];
case 10: return [2 /*return*/];
}

@@ -363,5 +375,11 @@ });

return tslib_1.__generator(this, function (_a) {
return [2 /*return*/, this.getBackend()
.getBuffer()
.drain(timeout)];
switch (_a.label) {
case 0: return [4 /*yield*/, Promise.all([
this.getBackend()
.getTransport()
.close(timeout),
this.buffer.drain(timeout),
])];
case 1: return [2 /*return*/, (_a.sent()).reduce(function (prev, current) { return prev && current; })];
}
});

@@ -368,0 +386,0 @@ });

@@ -8,6 +8,7 @@ export { addBreadcrumb, captureException, captureEvent, captureMessage, configureScope, withScope, } from '@sentry/minimal';

export { SentryError } from './error';
export { RequestBuffer } from './requestbuffer';
export { PromiseBuffer } from './promisebuffer';
export { Backend, Client, LogLevel, Options } from './interfaces';
export { initAndBind, ClientClass } from './sdk';
export { NoopTransport } from './transports/noop';
import * as Integrations from './integrations';
export { Integrations };

@@ -26,4 +26,4 @@ "use strict";

exports.SentryError = error_1.SentryError;
var requestbuffer_1 = require("./requestbuffer");
exports.RequestBuffer = requestbuffer_1.RequestBuffer;
var promisebuffer_1 = require("./promisebuffer");
exports.PromiseBuffer = promisebuffer_1.PromiseBuffer;
var interfaces_1 = require("./interfaces");

@@ -33,4 +33,6 @@ exports.LogLevel = interfaces_1.LogLevel;

exports.initAndBind = sdk_1.initAndBind;
var noop_1 = require("./transports/noop");
exports.NoopTransport = noop_1.NoopTransport;
var Integrations = require("./integrations");
exports.Integrations = Integrations;
//# sourceMappingURL=index.js.map

@@ -72,5 +72,5 @@ "use strict";

// TODO: Remove in v5
logger_1.logger.warn("Integration " + getIntegrationName(integration) + ": The install method is deprecated. Use \"setupOnce\".");
// tslint:disable:deprecation
if (integration.install) {
logger_1.logger.warn("Integration " + getIntegrationName(integration) + ": The install method is deprecated. Use \"setupOnce\".");
integration.install(options);

@@ -77,0 +77,0 @@ }

@@ -1,2 +0,2 @@

import { Integration, SentryEvent } from '@sentry/types';
import { Integration, SentryEvent, SentryEventHint } from '@sentry/types';
/** Patch toString calls to return proper name for wrapped functions */

@@ -19,3 +19,3 @@ export declare class ExtraErrorData implements Integration {

*/
enhanceEventWithErrorData(event: SentryEvent, error: Error): SentryEvent;
enhanceEventWithErrorData(event: SentryEvent, hint?: SentryEventHint): SentryEvent;
/**

@@ -22,0 +22,0 @@ * Extract extra information from the Error object

@@ -24,6 +24,6 @@ "use strict";

self = hub_1.getCurrentHub().getIntegration(ExtraErrorData);
if (!self || !hint || !hint.originalException) {
if (!self) {
return [2 /*return*/, event];
}
return [2 /*return*/, this.enhanceEventWithErrorData(event, hint.originalException)];
return [2 /*return*/, self.enhanceEventWithErrorData(event, hint)];
});

@@ -35,4 +35,7 @@ }); });

*/
ExtraErrorData.prototype.enhanceEventWithErrorData = function (event, error) {
var errorData = this.extractErrorData(error);
ExtraErrorData.prototype.enhanceEventWithErrorData = function (event, hint) {
if (!hint || !hint.originalException || !is_1.isError(hint.originalException)) {
return event;
}
var errorData = this.extractErrorData(hint.originalException);
if (errorData) {

@@ -52,3 +55,3 @@ return tslib_1.__assign({}, event, { extra: tslib_1.__assign({}, event.extra, errorData) });

var name_1 = error.name || error.constructor.name;
var errorKeys = Object.keys(error).filter(function (key) { return nativeKeys_1.indexOf(key) === -1; });
var errorKeys = Object.getOwnPropertyNames(error).filter(function (key) { return nativeKeys_1.indexOf(key) === -1; });
if (errorKeys.length) {

@@ -55,0 +58,0 @@ var extraErrorInfo = {};

import { Scope } from '@sentry/hub';
import { Breadcrumb, Integration, IntegrationClass, SentryBreadcrumbHint, SentryEvent, SentryEventHint, SentryResponse, Severity, Transport, TransportClass, TransportOptions } from '@sentry/types';
import { Dsn } from './dsn';
import { RequestBuffer } from './requestbuffer';
/** Console logging verbosity for the SDK. */

@@ -37,3 +36,3 @@ export declare enum LogLevel {

*/
defaultIntegrations?: boolean | Integration[];
defaultIntegrations?: false | Integration[];
/**

@@ -237,6 +236,8 @@ * List of integrations that should be installed after SDK was initialized.

/**
* Returns the internal instance of the request buffer.
* Only used internally.
* Returns the transport that is used by the backend.
* Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.
*
* @returns The transport.
*/
getBuffer(): RequestBuffer<SentryResponse>;
getTransport(): Transport;
}
{
"name": "@sentry/core",
"version": "4.4.2",
"version": "4.5.0",
"description": "Base implementation for all Sentry JavaScript SDKs",
"repository": "git://github.com/getsentry/raven-js.git",
"homepage": "https://github.com/getsentry/raven-js/tree/master/packages/core",
"repository": "git://github.com/getsentry/sentry-javascript.git",
"homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/core",
"author": "Sentry",

@@ -18,6 +18,6 @@ "license": "BSD-3-Clause",

"dependencies": {
"@sentry/hub": "4.4.2",
"@sentry/minimal": "4.4.2",
"@sentry/types": "4.4.2",
"@sentry/utils": "4.4.2",
"@sentry/hub": "4.5.0",
"@sentry/minimal": "4.5.0",
"@sentry/types": "4.5.0",
"@sentry/utils": "4.5.0",
"tslib": "^1.9.3"

@@ -32,6 +32,10 @@ },

"tslint": "^5.11.0",
"typescript": "^3.0.1"
"typescript": "^3.2.0"
},
"scripts": {
"build": "tsc -p tsconfig.build.json",
"build": "run-p build:es5 build:esm",
"build:es5": "tsc -p tsconfig.build.json",
"build:esm": "run-s build:esm:transpile build:esm:rewrite",
"build:esm:transpile": "tsc -p tsconfig.esm.json",
"build:esm:rewrite": "node ../../scripts/esm-rewrite.js",
"build:watch": "tsc -p tsconfig.build.json -w --preserveWatchOutput",

@@ -47,3 +51,3 @@ "clean": "rimraf dist coverage",

"test": "jest",
"test:watch": "jest --watch --notify"
"test:watch": "jest --watch"
},

@@ -70,3 +74,4 @@ "jest": {

},
"gitHead": "a91da22f8bd3bddb38fab7f868326e376da82d4d"
"gitHead": "a91da22f8bd3bddb38fab7f868326e376da82d4d",
"sideEffects": false
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc