@contrast/agent 4.5.2 → 4.6.0

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 (121) hide show
  1. package/lib/assess/policy/propagators.json +20 -0
  2. package/lib/assess/policy/signatures.json +10 -0
  3. package/lib/core/config/options.js +3 -2
  4. package/lib/core/stacktrace.js +2 -1
  5. package/lib/hooks/frameworks/base.js +8 -2
  6. package/lib/hooks/frameworks/http.js +23 -16
  7. package/lib/hooks/frameworks/http2.js +73 -0
  8. package/lib/hooks/frameworks/index.js +8 -3
  9. package/lib/hooks/http.js +112 -128
  10. package/lib/hooks/require.js +16 -22
  11. package/lib/instrumentation.js +0 -3
  12. package/package.json +12 -15
  13. package/lib/hooks/frameworks/https.js +0 -42
  14. package/node_modules/bindings/LICENSE.md +0 -22
  15. package/node_modules/bindings/README.md +0 -98
  16. package/node_modules/bindings/bindings.js +0 -221
  17. package/node_modules/bindings/package.json +0 -32
  18. package/node_modules/file-uri-to-path/.npmignore +0 -1
  19. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  20. package/node_modules/file-uri-to-path/History.md +0 -21
  21. package/node_modules/file-uri-to-path/LICENSE +0 -20
  22. package/node_modules/file-uri-to-path/README.md +0 -74
  23. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  24. package/node_modules/file-uri-to-path/index.js +0 -66
  25. package/node_modules/file-uri-to-path/package.json +0 -36
  26. package/node_modules/file-uri-to-path/test/test.js +0 -24
  27. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  28. package/node_modules/glossy/LICENSE +0 -19
  29. package/node_modules/glossy/README.md +0 -129
  30. package/node_modules/glossy/index.js +0 -12
  31. package/node_modules/glossy/lib/glossy/parse.js +0 -520
  32. package/node_modules/glossy/lib/glossy/produce.js +0 -459
  33. package/node_modules/glossy/package.json +0 -47
  34. package/node_modules/glossy/test/decide.js +0 -7
  35. package/node_modules/glossy/test/decode_pri.js +0 -24
  36. package/node_modules/glossy/test/parse_3164.js +0 -104
  37. package/node_modules/glossy/test/parse_5424.js +0 -106
  38. package/node_modules/glossy/test/parse_5848.js +0 -40
  39. package/node_modules/glossy/test/parse_8601.js +0 -14
  40. package/node_modules/glossy/test/parse_rfc3339.js +0 -9
  41. package/node_modules/glossy/test/produce.js +0 -162
  42. package/node_modules/glossy/test/runner.js +0 -40
  43. package/node_modules/glossy/test/structure_data.js +0 -24
  44. package/node_modules/nan/CHANGELOG.md +0 -537
  45. package/node_modules/nan/LICENSE.md +0 -13
  46. package/node_modules/nan/README.md +0 -455
  47. package/node_modules/nan/doc/asyncworker.md +0 -146
  48. package/node_modules/nan/doc/buffers.md +0 -54
  49. package/node_modules/nan/doc/callback.md +0 -76
  50. package/node_modules/nan/doc/converters.md +0 -41
  51. package/node_modules/nan/doc/errors.md +0 -226
  52. package/node_modules/nan/doc/json.md +0 -62
  53. package/node_modules/nan/doc/maybe_types.md +0 -583
  54. package/node_modules/nan/doc/methods.md +0 -664
  55. package/node_modules/nan/doc/new.md +0 -147
  56. package/node_modules/nan/doc/node_misc.md +0 -123
  57. package/node_modules/nan/doc/object_wrappers.md +0 -263
  58. package/node_modules/nan/doc/persistent.md +0 -296
  59. package/node_modules/nan/doc/scopes.md +0 -73
  60. package/node_modules/nan/doc/script.md +0 -38
  61. package/node_modules/nan/doc/string_bytes.md +0 -62
  62. package/node_modules/nan/doc/v8_internals.md +0 -199
  63. package/node_modules/nan/doc/v8_misc.md +0 -85
  64. package/node_modules/nan/include_dirs.js +0 -1
  65. package/node_modules/nan/nan.h +0 -2898
  66. package/node_modules/nan/nan_callbacks.h +0 -88
  67. package/node_modules/nan/nan_callbacks_12_inl.h +0 -514
  68. package/node_modules/nan/nan_callbacks_pre_12_inl.h +0 -520
  69. package/node_modules/nan/nan_converters.h +0 -72
  70. package/node_modules/nan/nan_converters_43_inl.h +0 -68
  71. package/node_modules/nan/nan_converters_pre_43_inl.h +0 -42
  72. package/node_modules/nan/nan_define_own_property_helper.h +0 -29
  73. package/node_modules/nan/nan_implementation_12_inl.h +0 -430
  74. package/node_modules/nan/nan_implementation_pre_12_inl.h +0 -263
  75. package/node_modules/nan/nan_json.h +0 -166
  76. package/node_modules/nan/nan_maybe_43_inl.h +0 -356
  77. package/node_modules/nan/nan_maybe_pre_43_inl.h +0 -268
  78. package/node_modules/nan/nan_new.h +0 -340
  79. package/node_modules/nan/nan_object_wrap.h +0 -156
  80. package/node_modules/nan/nan_persistent_12_inl.h +0 -132
  81. package/node_modules/nan/nan_persistent_pre_12_inl.h +0 -242
  82. package/node_modules/nan/nan_private.h +0 -73
  83. package/node_modules/nan/nan_string_bytes.h +0 -305
  84. package/node_modules/nan/nan_typedarray_contents.h +0 -96
  85. package/node_modules/nan/nan_weak.h +0 -437
  86. package/node_modules/nan/package.json +0 -41
  87. package/node_modules/nan/tools/1to2.js +0 -412
  88. package/node_modules/nan/tools/README.md +0 -14
  89. package/node_modules/nan/tools/package.json +0 -19
  90. package/node_modules/unix-dgram/LICENSE +0 -13
  91. package/node_modules/unix-dgram/README.md +0 -107
  92. package/node_modules/unix-dgram/binding.gyp +0 -20
  93. package/node_modules/unix-dgram/build/Makefile +0 -324
  94. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram/src/unix_dgram.o.d +0 -58
  95. package/node_modules/unix-dgram/build/Release/.deps/Release/obj.target/unix_dgram.node.d +0 -1
  96. package/node_modules/unix-dgram/build/Release/.deps/Release/unix_dgram.node.d +0 -1
  97. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram/src/unix_dgram.o +0 -0
  98. package/node_modules/unix-dgram/build/Release/obj.target/unix_dgram.node +0 -0
  99. package/node_modules/unix-dgram/build/Release/unix_dgram.node +0 -0
  100. package/node_modules/unix-dgram/build/binding.Makefile +0 -6
  101. package/node_modules/unix-dgram/build/config.gypi +0 -213
  102. package/node_modules/unix-dgram/build/unix_dgram.target.mk +0 -159
  103. package/node_modules/unix-dgram/lib/unix_dgram.js +0 -168
  104. package/node_modules/unix-dgram/package.json +0 -36
  105. package/node_modules/unix-dgram/src/unix_dgram.cc +0 -404
  106. package/node_modules/unix-dgram/src/win_dummy.cc +0 -7
  107. package/node_modules/unix-dgram/test/test-connect-callback.js +0 -68
  108. package/node_modules/unix-dgram/test/test-connect.js +0 -53
  109. package/node_modules/unix-dgram/test/test-dgram-unix.js +0 -58
  110. package/node_modules/unix-dgram/test/test-send-error.js +0 -26
  111. package/node_modules/winston-syslog/.eslintrc +0 -7
  112. package/node_modules/winston-syslog/.travis.yml +0 -14
  113. package/node_modules/winston-syslog/CHANGELOG.md +0 -9
  114. package/node_modules/winston-syslog/LICENSE +0 -20
  115. package/node_modules/winston-syslog/README.md +0 -135
  116. package/node_modules/winston-syslog/lib/utils.js +0 -26
  117. package/node_modules/winston-syslog/lib/winston-syslog.js +0 -385
  118. package/node_modules/winston-syslog/package.json +0 -56
  119. package/node_modules/winston-syslog/test/format-test.js +0 -122
  120. package/node_modules/winston-syslog/test/syslog-test.js +0 -95
  121. package/node_modules/winston-syslog/test/unix-connect-test.js +0 -133
@@ -1,135 +0,0 @@
1
- # winston-syslog
2
-
3
- A Syslog transport for [winston][0].
4
-
5
- [![Version npm](https://img.shields.io/npm/v/winston-syslog.svg?style=flat-square)](https://www.npmjs.com/package/winston-syslog)[![npm
6
- Downloads](https://img.shields.io/npm/dm/winston-syslog.svg?style=flat-square)](https://npmcharts.com/compare/winston-syslog?minimal=true)[![Build
7
- Status](https://img.shields.io/travis/winstonjs/winston-syslog/master.svg?style=flat-square)](https://travis-ci.org/winstonjs/winston-syslog)[![Dependencies](https://img.shields.io/david/winstonjs/winston-syslog.svg?style=flat-square)](https://david-dm.org/winstonjs/winston-syslog)
8
-
9
- [![NPM](https://nodei.co/npm/winston-syslog.png?downloads=true&downloadRank=true)](https://nodei.co/npm/winston-syslog/)
10
-
11
- ## Requirements
12
-
13
- * winston >= 3.0.0
14
-
15
- ## Installation
16
-
17
- ### Installing npm (node package manager)
18
-
19
- ``` bash
20
- $ curl http://npmjs.org/install.sh | sh
21
- ```
22
-
23
- ### Installing winston-syslog
24
-
25
- ``` bash
26
- $ npm install winston
27
- $ npm install winston-syslog
28
- ```
29
-
30
- ## Motivation
31
- `tldr;?`: To break the [winston][0] codebase into small modules that work together.
32
-
33
- The [winston][0] codebase has been growing significantly with contributions and other logging transports. This is **awesome**. However, taking a ton of additional dependencies just to do something simple like logging to the Console and a File is overkill.
34
-
35
- ## Usage
36
- To use the Syslog transport in [winston][0], you simply need to require it and then either add it to an existing [winston][0] logger or pass an instance to a new [winston][0] logger:
37
-
38
- ``` js
39
- const winston = require('winston');
40
-
41
- //
42
- // Requiring `winston-syslog` will expose
43
- // `winston.transports.Syslog`
44
- //
45
- require('winston-syslog').Syslog;
46
-
47
- winston.add(new winston.transports.Syslog(options));
48
- ```
49
-
50
- In addition to the options accepted by the syslog (compliant with [RFC 3164][1] and [RFC 5424][2]), the Riak transport also accepts the following options. It is worth noting that the riak-js debug option is set to *false* by default:
51
-
52
- * __host:__ The host running syslogd, defaults to localhost.
53
- * __port:__ The port on the host that syslog is running on, defaults to syslogd's default port.
54
- * __protocol:__ The network protocol to log over (e.g. `tcp4`, `udp4`, `unix`, `unix-connect`, etc).
55
- * __path:__ The path to the syslog dgram socket (i.e. `/dev/log` or `/var/run/syslog` for OS X).
56
- * __pid:__ PID of the process that log messages are coming from (Default `process.pid`).
57
- * __facility:__ Syslog facility to use (Default: `local0`).
58
- * __localhost:__ Host to indicate that log messages are coming from (Default: `localhost`).
59
- * __type:__ The type of the syslog protocol to use (Default: `BSD`, also valid: `5424`).
60
- * __app_name:__ The name of the application (Default: `process.title`).
61
- * __eol:__ The end of line character to be added to the end of the message (Default: Message without modifications).
62
-
63
- *Metadata:* Logged as string compiled by [glossy][3].
64
-
65
- ## Log Levels
66
- Because syslog only allows a subset of the levels available in [winston][0], levels that do not match will be ignored. Therefore, in order to use `winston-syslog` effectively, you should indicate to [winston][0] that you want to use the syslog levels:
67
-
68
- ``` js
69
- const winston = require('winston');
70
- const logger = winston.createLogger({
71
- levels: winston.config.syslog.levels,
72
- transports: [
73
- new winston.transports.Syslog()
74
- ]
75
- });
76
- ```
77
-
78
- The `Syslog` transport will only log to the level that are available in the syslog protocol. These are (in increasing order of severity):
79
-
80
- * debug
81
- * info
82
- * notice
83
- * warning
84
- * error
85
- * crit
86
- * alert
87
- * emerg
88
-
89
- ## Syslog Configuration
90
-
91
- You will have to configure your syslog server to accept TCP connections.
92
- This is usually done in `/etc/syslog-ng.conf`. Let's say you have an app called `fnord`,
93
- the configuration would look something like this:
94
-
95
- ```
96
- source tcp_s {
97
- tcp(ip(0.0.0.0) port(514) max-connections(256));
98
- };
99
- destination fnord_d {
100
- file("/var/log/fnord.log");
101
- };
102
- log { source(tcp_s); destination(fnord_d); };
103
- ```
104
-
105
- If you have multiple apps which need to log via TCP, you can specify filters, as such:
106
-
107
- ```
108
- filter fnord_f { program("fnord"); };
109
- ```
110
-
111
- Then modify the log statement to read:
112
-
113
- ```
114
- log { source(tcp_s); filter(fnord_f); destination(fnord_d); };
115
- ```
116
-
117
- Now if you have another app, called `bnord`, create similar `destination` and `filter` configurations for it, and specify a new log statement, with the same `source`:
118
-
119
- ```
120
- log { source(tcp_s); filter(bnord_f); destination(bnord_d); };
121
- ```
122
-
123
- For this to work, you have to make sure you set the `process.title` variable in your node app.
124
-
125
- ``` js
126
- process.title = 'fnord';
127
- ```
128
-
129
- #### Author: [Charlie Robbins](http://blog.nodejitsu.com)
130
- #### Contributors: [Squeeks](https://github.com/squeeks)
131
-
132
- [0]: https://github.com/indexzero/winston
133
- [1]: http://www.ietf.org/rfc/rfc3164.txt
134
- [2]: http://tools.ietf.org/html/rfc5424
135
- [3]: https://github.com/squeeks/glossy
@@ -1,26 +0,0 @@
1
- 'use strict';
2
-
3
- exports.parseProtocol = function parseProtocol(protocol) {
4
- switch (protocol) {
5
- case 'unix':
6
- case 'unix-connect':
7
- return { type: 'unix', family: null, isDgram: true };
8
-
9
- case 'udp':
10
- case 'udp4':
11
- return { type: 'udp', family: 4, isDgram: true };
12
-
13
- case 'udp6':
14
- return { type: 'udp', family: 6, isDgram: true };
15
-
16
- case 'tcp':
17
- case 'tcp4':
18
- return { type: 'tcp', family: 4 };
19
-
20
- case 'tcp6':
21
- return { type: 'tcp', family: 6 };
22
-
23
- default:
24
- throw new Error('Invalid syslog protocol: ' + protocol);
25
- }
26
- };
@@ -1,385 +0,0 @@
1
- /*
2
- * syslog.js: Transport for logging to a remote syslog consumer
3
- *
4
- * (C) 2011 Squeeks and Charlie Robbins
5
- * MIT LICENCE
6
- *
7
- */
8
-
9
- const dgram = require('dgram');
10
- const net = require('net');
11
- const utils = require('./utils');
12
- const glossy = require('glossy');
13
- const winston = require('winston');
14
- const Transport = require('winston-transport');
15
- const { MESSAGE, LEVEL } = require('triple-beam');
16
-
17
- // Ensure we have the correct winston here.
18
- if (Number(winston.version.split('.')[0]) < 3) {
19
- throw new Error('Winston-syslog requires winston >= 3.0.0');
20
- }
21
-
22
- const levels = Object.keys({
23
- debug: 0,
24
- info: 1,
25
- notice: 2,
26
- warning: 3,
27
- error: 4,
28
- crit: 5,
29
- alert: 6,
30
- emerg: 7
31
- });
32
-
33
- //
34
- // ### function Syslog (options)
35
- // #### @options {Object} Options for this instance.
36
- // Constructor function for the Syslog Transport capable of sending
37
- // RFC 3164 and RFC 5424 compliant messages.
38
- //
39
- class Syslog extends Transport {
40
- //
41
- // Expose the name of this Transport on the prototype
42
- //
43
- get name() {
44
- return 'syslog';
45
- }
46
-
47
- constructor(options = {}) {
48
- //
49
- // Inherit from `winston-transport`.
50
- //
51
- super(options);
52
-
53
- //
54
- // Setup connection state
55
- //
56
- this.connected = false;
57
- this.congested = false;
58
- this.retries = 0;
59
- this.queue = [];
60
- this.inFlight = 0;
61
-
62
- //
63
- // Merge the options for the target Syslog server.
64
- //
65
- this.setOptions(options);
66
-
67
- //
68
- // Setup our Syslog and network members for later use.
69
- //
70
- this.socket = null;
71
- this.producer = new glossy.Produce({
72
- type: this.type,
73
- appName: this.appName,
74
- pid: this.pid,
75
- facility: this.facility
76
- });
77
- }
78
-
79
- setOptions(options) {
80
- this.host = options.host || 'localhost';
81
- this.port = options.port || 514;
82
- this.path = options.path || null;
83
- this.protocol = options.protocol || 'udp4';
84
- this.endOfLine = options.eol;
85
-
86
- this.parseProtocol(this.protocol);
87
-
88
- //
89
- // Merge the default message options.
90
- //
91
- this.localhost = typeof options.localhost !== 'undefined' ? options.localhost : 'localhost';
92
- this.type = options.type || 'BSD';
93
- this.facility = options.facility || 'local0';
94
- this.pid = options.pid || process.pid;
95
- this.appName = options.appName || options.app_name || process.title;
96
- }
97
-
98
- parseProtocol(protocol = this.protocol) {
99
- const parsedProtocol = utils.parseProtocol(protocol);
100
-
101
- this.protocolType = parsedProtocol.type;
102
- this.protocolFamily = parsedProtocol.family;
103
- this.isDgram = parsedProtocol.isDgram;
104
-
105
- if (this.protocolType === 'unix' && !this.path) {
106
- throw new Error('`options.path` is required on unix dgram sockets.');
107
- }
108
- }
109
-
110
- //
111
- // ### function log (info, callback)
112
- // #### @info {object} All relevant log information
113
- // #### @callback {function} Continuation to respond to when complete.
114
- // Core logging method exposed to Winston. Logs the `msg` and optional
115
- // metadata, `meta`, to the specified `level`.
116
- //
117
- log(info, callback) {
118
- if (!~levels.indexOf(info[LEVEL])) {
119
- return callback(new Error('Cannot log unknown syslog level: ' + info[LEVEL]));
120
- }
121
-
122
- const output = info[MESSAGE];
123
-
124
- const syslogMsg = this.producer.produce({
125
- severity: info[LEVEL],
126
- host: this.localhost,
127
- date: new Date(),
128
- message: this.endOfLine ? output + this.endOfLine : output
129
- });
130
-
131
- //
132
- // Attempt to connect to the socket
133
- //
134
- this.connect((err) => {
135
- if (err) {
136
- //
137
- // If there was an error enqueue the message
138
- //
139
- this.queue.push(syslogMsg);
140
-
141
- return callback(err);
142
- }
143
-
144
- //
145
- // On any error writing to the socket, enqueue the message
146
- //
147
- const onError = (logErr) => {
148
- if (logErr) {
149
- this.queue.push(syslogMsg);
150
- this.emit('error', logErr);
151
- }
152
- this.emit('logged', info);
153
- this.inFlight--;
154
- };
155
-
156
- const onCongestion = () => {
157
- onError(new Error('Congestion Error'));
158
- };
159
-
160
- const sendDgram = () => {
161
- const buffer = new Buffer(syslogMsg);
162
-
163
- if (this.protocolType === 'udp') {
164
- this.inFlight++;
165
- this.socket.send(buffer, 0, buffer.length, this.port, this.host, onError);
166
- } else if (this.protocol === 'unix') {
167
- this.inFlight++;
168
- this.socket.send(buffer, 0, buffer.length, this.path, onError);
169
- } else if (this.congested) {
170
- this.queue.push(syslogMsg);
171
- } else {
172
- this.socket.once('congestion', onCongestion);
173
- this.inFlight++;
174
- this.socket.send(buffer, (e) => {
175
- this.socket.removeListener('congestion', onCongestion);
176
- onError(e);
177
- });
178
- }
179
- };
180
-
181
- //
182
- // Write to the `tcp*`, `udp*`, or `unix` socket.
183
- //
184
- if (this.isDgram) {
185
- sendDgram();
186
- } else {
187
- this.socket.write(syslogMsg, 'utf8', onError);
188
- }
189
-
190
- callback(null, true);
191
- });
192
- }
193
-
194
- //
195
- // ### function close ()
196
- // Closes the socket used by this transport freeing the resource.
197
- //
198
- close() {
199
- const max = 6;
200
- let attempt = 0;
201
-
202
- const _close = () => {
203
- if (attempt >= max || (this.queue.length === 0 && this.inFlight <= 0)) {
204
- if (this.socket) {
205
- this.socket.close();
206
- }
207
-
208
- this.emit('closed', this.socket);
209
- } else {
210
- attempt++;
211
- setTimeout(_close, 200 * attempt);
212
- }
213
- };
214
- _close();
215
- }
216
-
217
- connectDgram(callback) {
218
- if (this.protocol === 'unix-connect') {
219
- return this._unixDgramConnect(callback);
220
- } else if (this.protocol === 'unix') {
221
- this.socket = require('unix-dgram').createSocket('unix_dgram');
222
- } else {
223
- // UDP protocol
224
- this.socket = new dgram.Socket(this.protocol);
225
- }
226
-
227
- return callback(null);
228
- }
229
- //
230
- // ### function connect (callback)
231
- // #### @callback {function} Continuation to respond to when complete.
232
- // Connects to the remote syslog server using `dgram` or `net` depending
233
- // on the `protocol` for this instance.
234
- //
235
- connect(callback) {
236
- //
237
- // If the socket already exists then respond
238
- //
239
- if (this.socket) {
240
- return ((!this.socket.readyState) || (this.socket.readyState === 'open')) || this.socket.connected
241
- ? callback(null)
242
- : callback(true);
243
- }
244
-
245
- //
246
- // Create the appropriate socket type.
247
- //
248
- if (this.isDgram) {
249
- return this.connectDgram(callback);
250
- }
251
-
252
- this.socket = new net.Socket();
253
- this.socket.setKeepAlive(true);
254
- this.socket.setNoDelay();
255
-
256
- this.setupEvents();
257
-
258
- const connectConfig = {
259
- host: this.host,
260
- port: this.port
261
- };
262
-
263
- if (this.protocolFamily) {
264
- connectConfig.family = this.protocolFamily;
265
- }
266
-
267
- this.socket.connect(connectConfig);
268
-
269
- //
270
- // Indicate to the callee that the socket is not ready. This
271
- // will enqueue the current message for later.
272
- //
273
- callback(true);
274
- }
275
-
276
- setupEvents() {
277
- const readyEvent = 'connect';
278
- //
279
- // On any error writing to the socket, emit the `logged` event
280
- // and the `error` event.
281
- //
282
- const onError = (logErr) => {
283
- if (logErr) { this.emit('error', logErr); }
284
- this.emit('logged');
285
- this.inFlight--;
286
- };
287
-
288
- //
289
- // Listen to the appropriate events on the socket that
290
- // was just created.
291
- //
292
- this.socket.on(readyEvent, () => {
293
- //
294
- // When the socket is ready, write the current queue
295
- // to it.
296
- //
297
- this.socket.write(this.queue.join(''), 'utf8', onError);
298
-
299
- this.emit('logged');
300
- this.queue = [];
301
- this.retries = 0;
302
- this.connected = true;
303
- }).on('error', function () {
304
- //
305
- // TODO: Pass this error back up
306
- //
307
- }).on('close', () => {
308
- //
309
- // Attempt to reconnect on lost connection(s), progressively
310
- // increasing the amount of time between each try.
311
- //
312
- const interval = Math.pow(2, this.retries);
313
- this.connected = false;
314
-
315
- setTimeout(() => {
316
- this.retries++;
317
- this.socket.connect(this.port, this.host);
318
- }, interval * 1000);
319
- }).on('timeout', () => {
320
- if (this.socket.readyState !== 'open') {
321
- this.socket.destroy();
322
- }
323
- });
324
- }
325
-
326
- _unixDgramConnect(callback) {
327
- const self = this;
328
-
329
- const flushQueue = () => {
330
- let sentMsgs = 0;
331
- this.queue.forEach((msg) => {
332
- const buffer = new Buffer(msg);
333
-
334
- if (!this.congested) {
335
- this.socket.send(buffer, function () {
336
- ++sentMsgs;
337
- });
338
- }
339
- });
340
-
341
- this.queue.splice(0, sentMsgs);
342
- };
343
-
344
- this.socket = require('unix-dgram').createSocket('unix_dgram');
345
- this.socket.on('error', (err) => {
346
- this.emit('error', err);
347
-
348
- if (err.syscall === 'connect') {
349
- this.socket.close();
350
- this.socket = null;
351
- return callback(err);
352
- }
353
- if (err.syscall === 'send') {
354
- this.socket.close();
355
- this.socket = null;
356
- }
357
- });
358
-
359
- this.socket.on('connect', function () {
360
- this.on('congestion', () => {
361
- self.congested = true;
362
- });
363
-
364
- this.on('writable', () => {
365
- self.congested = false;
366
- flushQueue();
367
- });
368
-
369
- flushQueue();
370
- callback();
371
- });
372
-
373
- this.socket.connect(this.path);
374
- }
375
- }
376
-
377
- //
378
- // Define a getter so that `winston.transports.Syslog`
379
- // is available and thus backwards compatible.
380
- //
381
- winston.transports.Syslog = Syslog;
382
-
383
- module.exports = {
384
- Syslog
385
- };
@@ -1,56 +0,0 @@
1
- {
2
- "name": "winston-syslog",
3
- "description": "A syslog transport for winston",
4
- "version": "2.1.0",
5
- "author": "Charlie Robbins <charlie.robbins@gmail.com>",
6
- "contributors": [
7
- {
8
- "name": "Squeeks",
9
- "email": "privacymyass@gmail.com"
10
- },
11
- {
12
- "name": "Mempf",
13
- "email": "mempf.com@gmail.com"
14
- }
15
- ],
16
- "repository": {
17
- "type": "git",
18
- "url": "http://github.com/indexzero/winston-syslog.git"
19
- },
20
- "keywords": [
21
- "logging",
22
- "sysadmin",
23
- "tools",
24
- "winston",
25
- "syslog"
26
- ],
27
- "dependencies": {
28
- "cycle": "^1.0.3",
29
- "glossy": "^0.1.7"
30
- },
31
- "optionalDependencies": {
32
- "unix-dgram": "^2.0.2"
33
- },
34
- "peerDependencies": {
35
- "winston": "^3.0.0"
36
- },
37
- "devDependencies": {
38
- "eslint-config-populist": "^4.1.0",
39
- "vows": "^0.8.2",
40
- "winston": "^3.0.0"
41
- },
42
- "main": "./lib/winston-syslog",
43
- "scripts": {
44
- "lint": "populist **/*.js",
45
- "pretest": "npm run lint",
46
- "test": "vows test/*-test.js --spec"
47
- },
48
- "engines": {
49
- "node": ">= 4.2.2"
50
- },
51
- "license": "MIT"
52
-
53
- ,"_resolved": "https://registry.npmjs.org/winston-syslog/-/winston-syslog-2.1.0.tgz"
54
- ,"_integrity": "sha512-y6wHm7vd99tcpIar6fNM5Widx7Kemf2iguGLC9wty351wqQU9LewRaMraj3FvO2xPJF6P4a4BuSN3jGx/tnIqg=="
55
- ,"_from": "winston-syslog@2.1.0"
56
- }