Socket
Socket
Sign inDemoInstall

raven

Package Overview
Dependencies
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

raven - npm Package Compare versions

Comparing version 0.5.6 to 0.6.0

AUTHORS

5

example/app.js

@@ -1,6 +0,5 @@

console.log(module);
// Set up Raven
var dsn = 'https://366f412ff7664f44891889321c8925eb:ff8d68e117804bd28776c0c2ee3cb9b1@app.getsentry.com/4291';
var raven = require('../');
var client = new raven.Client(dsn);

@@ -22,3 +21,3 @@ // Express

// and pass along your DSN
app.use(raven.middleware.express(dsn));
app.use(raven.middleware.express(client));
// Register an optional error handler *after* the raven

@@ -25,0 +24,0 @@ // middleware with access to res.sentry

11

example/views.js

@@ -1,10 +0,3 @@

console.log(module);
exports.broken = function brokenhandler(req, res) {
foo(req, res);
exports.broken = function(req, res) {
foo();
};
function foo(req, res) {
// lol, I don't know how to computer
req.idontexist[0];
}

@@ -110,3 +110,3 @@ var parsers = require('./parsers');

headers = {
'X-Sentry-Auth': utils.getAuthHeader(timestamp, self.dsn.public_key, self.dsn.project_id),
'X-Sentry-Auth': utils.getAuthHeader(timestamp, self.dsn.public_key, self.dsn.private_key),
'Content-Type': 'application/octet-stream',

@@ -113,0 +113,0 @@ 'Content-Length': message.length

@@ -43,3 +43,3 @@ var utils = require('./utils');

kwargs = kwargs || {};
kwargs['sentry.interfaces.Http'] = {
var http = {
method: req.method,

@@ -57,3 +57,8 @@ query_string: url.parse(req.url).query,

};
var ip = (req.headers['x-forwarded-for'] || '').split(',')[0] ||
req.connection.remoteAddress;
http.env.REMOTE_ADDR = ip;
kwargs['sentry.interfaces.Http'] = http;
return kwargs;
};

@@ -24,18 +24,16 @@ var events = require('events');

res.setEncoding('utf8');
var body = [];
res.on('data', function(data) {
body.push(data);
});
res.on('end', function(){
if(res.statusCode >= 200 && res.statusCode < 300) {
self.emit('logged');
} else {
body = body.join('');
var e = new Error('HTTP Error (' + res.statusCode + '): ' + body);
e.response = res;
e.statusCode = res.statusCode;
e.responseBody = body;
self.emit('error', e);
}
});
if(res.statusCode >= 200 && res.statusCode < 300) {
self.emit('logged');
} else {
var reason = res.headers['x-sentry-error'];
var e = new Error('HTTP Error (' + res.statusCode + '): ' + reason);
e.response = res;
e.statusCode = res.statusCode;
e.reason = reason;
self.emit('error', e);
}
// force the socket to drain
var noop = function(){};
res.on('data', noop);
res.on('end', noop);
});

@@ -42,0 +40,0 @@ req.on('error', function(e){

@@ -19,8 +19,8 @@ var raven = require('./client');

module.exports.getAuthHeader = function getAuthHeader(timestamp, api_key, project_id) {
var header = ['Sentry sentry_version=2.0'];
module.exports.getAuthHeader = function getAuthHeader(timestamp, api_key, api_secret) {
var header = ['Sentry sentry_version=4'];
header.push('sentry_timestamp='+timestamp);
header.push('sentry_client=raven-node/'+raven.version);
header.push('sentry_key='+api_key);
header.push('project_id='+project_id);
header.push('sentry_secret='+api_secret);
return header.join(', ');

@@ -111,2 +111,27 @@ };

var main_module = path.dirname(require.main.filename) + '/';
function getModule(filename, base) {
if (!base) base = main_module;
// It's specifically a module
var file = path.basename(filename, '.js');
filename = path.dirname(filename);
var n = filename.lastIndexOf('/node_modules/');
if (n > -1) {
// /node_modules/ is 14 chars
return filename.substr(n + 14).replace(/\//g, '.') + ':' + file;
}
// Let's see if it's a part of the main module
// To be a part of main module, it has to share the same base
n = (filename + '/').lastIndexOf(base, 0);
if (n === 0) {
var module = filename.substr(base.length).replace(/\//g, '.');
if (module) module += ':';
module += file;
return module
}
return file;
}
function parseStack(stack, cb) {

@@ -138,3 +163,3 @@ var frames = [],

// Extract a module name based on the filename
if (frame.filename) frame.module = path.basename(frame.filename, '.js');
if (frame.filename) frame.module = getModule(frame.filename);

@@ -186,2 +211,4 @@ // internal Node files are not full path names. Ignore them.

// expose basically for testing because I don't know what I'm doing
module.exports.parseStack = parseStack;
module.exports.getModule = getModule;

@@ -5,3 +5,3 @@ {

"keywords": ["raven", "sentry", "python"],
"version": "0.5.6",
"version": "0.6.0",
"repository": "git://github.com/mattrobenolt/raven-node.git",

@@ -8,0 +8,0 @@ "author": "Matt Robenolt <matt@ydekproductions.com>",

@@ -13,2 +13,4 @@ # Raven [![Build Status](https://secure.travis-ci.org/mattrobenolt/raven-node.png?branch=master)](http://travis-ci.org/mattrobenolt/raven-node)

Raven 0.6+ requires Sentry 6.0+
## Installation

@@ -27,11 +29,2 @@ ```

## Disable Raven
Pass `false` as the DSN (or any falsey value).
```javascript
client = new raven.Client(process.env.NODE_ENV === 'production' && '{{ SENTRY_DSN }}')
```
__Note__: We don't infer this from `NODE_ENV` automatically anymore. It's up to you to implement whatever logic you'd like.
## Logging an error

@@ -80,3 +73,3 @@ ```javascript

client.on('error', function(e){
console.log(e.responseBody); // raw response body, usually contains a message explaining the failure
console.log(e.reason); // raw response body, usually contains a message explaining the failure
console.log(e.statusCode); // status code of the http request

@@ -184,3 +177,12 @@ console.log(e.response); // entire raw http response object

## Disable Raven
Pass `false` as the DSN (or any falsey value).
```javascript
client = new raven.Client(process.env.NODE_ENV === 'production' && '{{ SENTRY_DSN }}')
```
__Note__: We don't infer this from `NODE_ENV` automatically anymore. It's up to you to implement whatever logic you'd like.
## Support
You can find me on IRC. I troll in `#sentry` on `freenode`.
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