profile
viewpoint

chjj/blessed 9332

A high-level terminal interface library for node.js.

mscdex/busboy 1913

A streaming parser for HTML form data for node.js

mscdex/cap 293

A cross-platform binding for performing packet capturing with node.js

mscdex/httpolyglot 156

Serve http and https connections over the same port with node.js

mscdex/dicer 149

A very fast streaming multipart parser for node.js

mscdex/connect-busboy 139

Connect middleware for busboy

mscdex/bellhop 28

A node.js module that exposes streams for doing Pubsub and RPC.

mscdex/base91.js 26

basE91 encoding/decoding for node.js and browsers

mscdex/groan 22

A PHP session file parser written in JavaScript

mscdex/grappler 19

A minimalistic server for "comet" connections in Node.js.

push eventmscdex/nodebench

nodebench

commit sha cef4f82ff331380edd7d19565a541d3c5fee3b68

results: add e212955e8ac3c2fbab94bb65243eb877b4de3099

view details

push time in 6 hours

issue closedmscdex/busboy

How to serve multipart/related contents?

I'd like to know if there are any example on how to serve multipart/related contents such as images etc.

closed time in a day

zhouhao27

issue commentmscdex/busboy

How to serve multipart/related contents?

As previously stated, compatibility with other (multipart or otherwise) formats is not a goal of this project, especially because they introduce other semantics. That kind of functionality is better suited to a different project (which could also be built upon the same underlying parser if desired).

zhouhao27

comment created time in a day

push eventmscdex/nodebench

nodebench

commit sha b5a2c5d72425c7e0f5bef95702a247fc88796344

results: add 63a856fba9aa931a59c8e6fb6487ac9741e258db

view details

push time in a day

push eventmscdex/nodebench

nodebench

commit sha d271a69ce3062c208911c0d3fb5cbc99c5da72d5

results: add ac6ecd6b7f5949950d600de21488440f9f98c961

view details

push time in 2 days

push eventmscdex/nodebench

nodebench

commit sha ffc1d0d8159ba976765d0e9b58c9fdb36fd76d54

results: add c176d5fac2f98205228142040e7778e0fff20967

view details

push time in 3 days

pull request commentnodejs/node

path: fix unicode path problems in path.relative

Current benchmark results still show significant regressions:

path/relative-win32.js n=100000 paths='C:\\\\foo\\\\bar\\\\baz\\\\quux|C:\\\\'                           ***    -40.87 %       ±2.27%  ±3.02%  ±3.94%
path/relative-win32.js n=100000 paths='C:\\\\orandea\\\\test\\\\aaa|C:\\\\orandea\\\\impl\\\\bbb'        ***    -38.16 %       ±2.47%  ±3.28%  ±4.28%
monoblaine

comment created time in 3 days

Pull request review commentnodejs/node

cluster: make kill to be just process.kill

+// Copyright Joyent, Inc. and other Node contributors.+//+// Permission is hereby granted, free of charge, to any person obtaining a+// copy of this software and associated documentation files (the+// "Software"), to deal in the Software without restriction, including+// without limitation the rights to use, copy, modify, merge, publish,+// distribute, sublicense, and/or sell copies of the Software, and to permit+// persons to whom the Software is furnished to do so, subject to the+// following conditions:+//+// The above copyright notice and this permission notice shall be included+// in all copies or substantial portions of the Software.+//+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE+// USE OR OTHER DEALINGS IN THE SOFTWARE.++'use strict';+// test-cluster-worker-kill-signal.js+// verifies that when we're killing a worker using Worker.prototype.kill+// and the worker's process was killed with the given signal (SIGKILL)+++const common = require('../common');+const assert = require('assert');+const cluster = require('cluster');++if (cluster.isWorker) {+  // Make the worker run something+  const http = require('http');+  const server = http.Server(() => { });++  server.once('listening', common.mustCall(() => { }));+  server.listen(0, '127.0.0.1');++} else if (cluster.isMaster) {+  const KILL_SIGNAL = 'SIGKILL';+  const expectedResults = {+    emitDisconnect: {+      value: 1,+      message: "the worker did not emit 'disconnect'"+    },+    emitExit: {+      value: 1,+      message: "the worker did not emit 'exit'"+    },+    state: {+      value: 'disconnected',+      message: 'the worker state is incorrect'+    },+    exitedAfter: {+      value: false,+      message: 'the .exitedAfterDisconnect flag is incorrect'+    },+    died: {+      value: true,+      message: 'the worker is still running'+    },+    exitCode: {+      value: null,+      message: 'the worker exited w/ incorrect exitCode'+    },+    signalCode: {+      value: KILL_SIGNAL,+      message: 'the worker exited w/ incorrect signalCode'+    },+  };+  const results = {+    emitDisconnect: 0,+    emitExit: 0+  };++  // Start worker+  const worker = cluster.fork();++  // When the worker is up and running, kill it+  worker.once('listening', common.mustCall(() => {+    worker.kill(KILL_SIGNAL);+  }));++  // Check worker events and properties+  worker.on('disconnect', common.mustCall(() => {+    results.emitDisconnect += 1;

I believe this is unnecessary as well because of the common.mustCall().

baradm100

comment created time in 4 days

Pull request review commentnodejs/node

cluster: make kill to be just process.kill

+// Copyright Joyent, Inc. and other Node contributors.+//+// Permission is hereby granted, free of charge, to any person obtaining a+// copy of this software and associated documentation files (the+// "Software"), to deal in the Software without restriction, including+// without limitation the rights to use, copy, modify, merge, publish,+// distribute, sublicense, and/or sell copies of the Software, and to permit+// persons to whom the Software is furnished to do so, subject to the+// following conditions:+//+// The above copyright notice and this permission notice shall be included+// in all copies or substantial portions of the Software.+//+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE+// USE OR OTHER DEALINGS IN THE SOFTWARE.++'use strict';+// test-cluster-worker-kill-signal.js+// verifies that when we're killing a worker using Worker.prototype.kill+// and the worker's process was killed with the given signal (SIGKILL)+++const common = require('../common');+const assert = require('assert');+const cluster = require('cluster');++if (cluster.isWorker) {+  // Make the worker run something+  const http = require('http');+  const server = http.Server(() => { });++  server.once('listening', common.mustCall(() => { }));+  server.listen(0, '127.0.0.1');++} else if (cluster.isMaster) {+  const KILL_SIGNAL = 'SIGKILL';+  const expectedResults = {+    emitDisconnect: {+      value: 1,+      message: "the worker did not emit 'disconnect'"+    },+    emitExit: {+      value: 1,+      message: "the worker did not emit 'exit'"+    },+    state: {+      value: 'disconnected',+      message: 'the worker state is incorrect'+    },+    exitedAfter: {+      value: false,+      message: 'the .exitedAfterDisconnect flag is incorrect'+    },+    died: {+      value: true,+      message: 'the worker is still running'+    },+    exitCode: {+      value: null,+      message: 'the worker exited w/ incorrect exitCode'+    },+    signalCode: {+      value: KILL_SIGNAL,+      message: 'the worker exited w/ incorrect signalCode'+    },+  };+  const results = {+    emitDisconnect: 0,+    emitExit: 0+  };++  // Start worker+  const worker = cluster.fork();++  // When the worker is up and running, kill it+  worker.once('listening', common.mustCall(() => {+    worker.kill(KILL_SIGNAL);+  }));++  // Check worker events and properties+  worker.on('disconnect', common.mustCall(() => {+    results.emitDisconnect += 1;+    results.exitedAfter = worker.exitedAfterDisconnect;+    results.state = worker.state;+  }));++  // Check that the worker died+  worker.once('exit', common.mustCall((exitCode, signalCode) => {+    // Setting the results+    results.exitCode = exitCode;+    results.signalCode = signalCode;+    results.emitExit += 1;

This is unnecessary now since the checking now happens in this function.

baradm100

comment created time in 4 days

push eventmscdex/nodebench

nodebench

commit sha 0b0f27372f83a9de44ab6d15368cffa8a08f4df5

results: add d36e832a32dfb0c0c49bf9e3dee93ff231c97eb0

view details

push time in 4 days

Pull request review commentnodejs/node

cluster: make kill to be just process.kill

+// Copyright Joyent, Inc. and other Node contributors.+//+// Permission is hereby granted, free of charge, to any person obtaining a+// copy of this software and associated documentation files (the+// "Software"), to deal in the Software without restriction, including+// without limitation the rights to use, copy, modify, merge, publish,+// distribute, sublicense, and/or sell copies of the Software, and to permit+// persons to whom the Software is furnished to do so, subject to the+// following conditions:+//+// The above copyright notice and this permission notice shall be included+// in all copies or substantial portions of the Software.+//+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE+// USE OR OTHER DEALINGS IN THE SOFTWARE.++'use strict';+// test-cluster-worker-kill-signal.js+// verifies that when we're killing a worker using Worker.prototype.kill+// and the worker's process was killed with the given signal (SIGKILL)+++const common = require('../common');+const assert = require('assert');+const cluster = require('cluster');++if (cluster.isWorker) {+  const http = require('http');+  const server = http.Server(() => { });++  server.once('listening', common.mustCall(() => { }));+  server.listen(0, '127.0.0.1');++} else if (cluster.isMaster) {+  const KILL_SIGNAL = 'SIGKILL';+  const expected_results = {+    worker_emitDisconnect: [1, "the worker did not emit 'disconnect'"],+    worker_emitExit: [1, "the worker did not emit 'exit'"],+    worker_state: ['disconnected', 'the worker state is incorrect'],+    worker_exitedAfter: [false, 'the .exitedAfterDisconnect flag is incorrect'],+    worker_died: [true, 'the worker is still running'],+    worker_exitCode: [null, 'the worker exited w/ incorrect exitCode'],+    worker_signalCode: [KILL_SIGNAL,+                        'the worker exited w/ incorrect signalCode']+  };+  const results = {+    worker_emitDisconnect: 0,+    worker_emitExit: 0+  };+++  // start worker+  const worker = cluster.fork();++  // When the worker is up and running, kill it+  worker.once('listening', common.mustCall(() => {+    worker.kill(KILL_SIGNAL);+  }));++  // Check worker events and properties+  worker.on('disconnect', common.mustCall(() => {+    results.worker_emitDisconnect += 1;+    results.worker_exitedAfter = worker.exitedAfterDisconnect;+    results.worker_state = worker.state;+  }));++  // Check that the worker died+  worker.once('exit', common.mustCall((exitCode, signalCode) => {+    results.worker_exitCode = exitCode;+    results.worker_signalCode = signalCode;+    results.worker_emitExit += 1;+    results.worker_died = !common.isAlive(worker.process.pid);+  }));++  process.on('exit', () => {+    checkResults(expected_results, results);

I think we should just place the function's implementation here since this is the only place it's used.

baradm100

comment created time in 4 days

Pull request review commentnodejs/node

cluster: make kill to be just process.kill

+// Copyright Joyent, Inc. and other Node contributors.+//+// Permission is hereby granted, free of charge, to any person obtaining a+// copy of this software and associated documentation files (the+// "Software"), to deal in the Software without restriction, including+// without limitation the rights to use, copy, modify, merge, publish,+// distribute, sublicense, and/or sell copies of the Software, and to permit+// persons to whom the Software is furnished to do so, subject to the+// following conditions:+//+// The above copyright notice and this permission notice shall be included+// in all copies or substantial portions of the Software.+//+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE+// USE OR OTHER DEALINGS IN THE SOFTWARE.++'use strict';+// test-cluster-worker-kill-signal.js+// verifies that when we're killing a worker using Worker.prototype.kill+// and the worker's process was killed with the given signal (SIGKILL)+++const common = require('../common');+const assert = require('assert');+const cluster = require('cluster');++if (cluster.isWorker) {+  const http = require('http');+  const server = http.Server(() => { });++  server.once('listening', common.mustCall(() => { }));+  server.listen(0, '127.0.0.1');++} else if (cluster.isMaster) {+  const KILL_SIGNAL = 'SIGKILL';+  const expected_results = {+    worker_emitDisconnect: [1, "the worker did not emit 'disconnect'"],+    worker_emitExit: [1, "the worker did not emit 'exit'"],+    worker_state: ['disconnected', 'the worker state is incorrect'],+    worker_exitedAfter: [false, 'the .exitedAfterDisconnect flag is incorrect'],+    worker_died: [true, 'the worker is still running'],+    worker_exitCode: [null, 'the worker exited w/ incorrect exitCode'],+    worker_signalCode: [KILL_SIGNAL,+                        'the worker exited w/ incorrect signalCode']+  };+  const results = {+    worker_emitDisconnect: 0,+    worker_emitExit: 0+  };+++  // start worker+  const worker = cluster.fork();++  // When the worker is up and running, kill it+  worker.once('listening', common.mustCall(() => {+    worker.kill(KILL_SIGNAL);+  }));++  // Check worker events and properties+  worker.on('disconnect', common.mustCall(() => {+    results.worker_emitDisconnect += 1;+    results.worker_exitedAfter = worker.exitedAfterDisconnect;+    results.worker_state = worker.state;+  }));++  // Check that the worker died+  worker.once('exit', common.mustCall((exitCode, signalCode) => {+    results.worker_exitCode = exitCode;+    results.worker_signalCode = signalCode;+    results.worker_emitExit += 1;+    results.worker_died = !common.isAlive(worker.process.pid);+  }));++  process.on('exit', () => {

common.mustCall() ?

baradm100

comment created time in 4 days

Pull request review commentmscdex/busboy

Added limit file size example to Readme

 Busboy (special) events  * **file**(< _string_ >fieldname, < _ReadableStream_ >stream, < _string_ >filename, < _string_ >transferEncoding, < _string_ >mimeType) - Emitted for each new file form field found. `transferEncoding` contains the 'Content-Transfer-Encoding' value for the file stream. `mimeType` contains the 'Content-Type' value for the file stream.     * Note: if you listen for this event, you should always handle the `stream` no matter if you care about the file contents or not (e.g. you can simply just do `stream.resume();` if you want to discard the contents), otherwise the 'finish' event will never fire on the Busboy instance. However, if you don't care about **any** incoming files, you can simply not listen for the 'file' event at all and any/all files will be automatically and safely discarded (these discarded files do still count towards `files` and `parts` limits).-    * If a configured file size limit was reached, `stream` will both have a boolean property `truncated` (best checked at the end of the stream) and emit a 'limit' event to notify you when this happens.

This isn't a typo, it has a property and emits an event.

nerychucuy

comment created time in 5 days

push eventmscdex/nodebench

nodebench

commit sha 77a13cbd31abab729cea098c7fe6bdfa2b214ec6

results: add e8f57456bec8f4b2b23ab2a326a619ac28e8e8cf

view details

push time in 5 days

pull request commentnodejs/node

lib: cache length prop in classic for loop

@Himself65 I think you'll probably want to stop the http benchmark because running all of the http cases with all of the possible configurations for each will take weeks or more, which means no other benchmarks can run during that time. I suggest manually selecting the minimal set of files in benchmarks/http to run and for each of them explicitly set configuration parameters to reduce the number of configurations that will execute for that file. This is especially important because some combinations of parameters are actually redundant (e.g. different chunk lengths when chunked encoding is disabled) and just waste time.

SukkaW

comment created time in 6 days

push eventmscdex/nodebench

nodebench

commit sha 8520543a7c0c3b22fc41813e8aefa8524e74b2fc

results: add b99253cfcfe5e2f4b7f4a947451cb00b877f200b

view details

push time in 6 days

Pull request review commentnodejs/node

lib: simplify makeRequireFunction

 function makeRequireFunction(mod, redirects) {     const { resolve, reaction } = redirects;     const id = mod.filename || mod.id;     require = function require(path) {-      let missing = true;       const destination = resolve(path);       if (destination === true) {-        missing = false;+        reaction(new ERR_MANIFEST_DEPENDENCY_MISSING(id, path));

Isn't this doing the opposite now? Before, this was only being called when missing === true.

Himself65

comment created time in 7 days

push eventmscdex/nodebench

nodebench

commit sha d78dab3ccfc14affdb8b7f7430bdf1efc8f1ee1a

results: add 30612316e4af64e530b9b3ecc1cbfc98d11cae3e

view details

push time in 7 days

Pull request review commentnodejs/node

stream: Expose DuplexPair API

 unless `emitClose` is set in false. Once `destroy()` has been called any further calls will be a noop and no further errors except from `_destroy` may be emitted as `'error'`. +#### Class: `stream.DuplexPair`+<!-- YAML+added: REPLACEME+-->++The utility class `DuplexPair` returns an iterable object with two `Duplex`+streams on properties `0` and `1`, each connected to the other side:++```js+const [ clientSide, serverSide ] = new DuplexPair();+```++Whatever is written to one stream is made readable on the other. It provides+behavior analagous to a network connection, where the data which a client writes
behavior analogous to a network connection, where the data which a client writes
awwright

comment created time in 8 days

issue commentmscdex/ssh2

Performance issue 100% CPU with Node 12.8.0 (OpenSSL 1.1.1c) on MacOS

@JeremiFerre you're using a very outdated version of ssh2/ssh2-streams.

However in this particular case it probably won't matter much since the server you're connecting to doesn't advertise curve25519 for key exchange, which is odd since curve25519 support has existed in OpenSSH since OpenSSH 6.5. My guess is the server has it explicitly disabled one way or another.

In your particular situation there isn't much that can be done by ssh2.

lepuso

comment created time in 8 days

issue commentmscdex/ssh2

Performance issue 100% CPU with Node 12.8.0 (OpenSSL 1.1.1c) on MacOS

@JeremiFerre can you verify the handshake details (set debug to console.log or some other appropriate logging function in the connection config object) when running under node v14?

lepuso

comment created time in 8 days

push eventmscdex/nodebench

nodebench

commit sha 99e4ded5bac03b0bc5f1c260321b4a1c1ea79e19

results: add ee3416b055a3d877251c095981508e275d99f8c2

view details

push time in 8 days

pull request commentnodejs/node

lib: cache length prop in classic for loop

and Node.js itself utilize the syntax as well

The reason for that is that there was a time when caching the length did improve performance in general, but that was a long time ago.

SukkaW

comment created time in 9 days

pull request commentnodejs/node

lib: cache length prop in classic for loop

V8 has optimized the existing style (not caching array length) for quite some time now and last I checked/heard caching the length can actually prevent such optimizations from happening.

Additionally I would be very surprised if these changes showed up in http benchmarks because other things like network I/O and the http parser are going to dominate the majority of the time spent.

SukkaW

comment created time in 9 days

issue commentmscdex/node-imap

markSeen:true isn't working

What does your call to .openBox() look like?

chetanpatel6

comment created time in 9 days

push eventmscdex/nodebench

nodebench

commit sha b782b679c5db6c3527f8894066995641e904fe23

results: add 56dbe466fdbc598baea3bfce289bf52b97b8b8f7

view details

push time in 9 days

issue commentmscdex/ssh2-streams

Deprecate Arcfour

RC4 already isn't in the default cipher list so someone would have to explicitly enable it to use it.

loganaden

comment created time in 10 days

push eventmscdex/nodebench

nodebench

commit sha 7120dfcedf79086d445d4445d8dbe4db6be2d9d1

results: add bff7de3b43510232f205f11c199ee54cb5b803ec

view details

push time in 10 days

push eventmscdex/nodebench

nodebench

commit sha ffdf0e509bbddb0cbc08b6d8ad19cd7825fe7a06

results: add 1dc837ed9a139eaf86d7929e9bee6f0021fc5a3d

view details

push time in 11 days

Pull request review commentnodejs/node

fs: filehandle read now accepts object as argument

 async function open(path, flags, mode) {  async function read(handle, buffer, offset, length, position) {   validateFileHandle(handle);++  // Arguments are passed from FileHandle.read(),+  // so arguments.length is always 5,+  // explicit filtering is needed+  if (ObjectValues(arguments).filter(

Perhaps there is a simpler, more efficient check that could be used here instead?

branisha

comment created time in 12 days

push eventmscdex/nodebench

nodebench

commit sha dde9480534cc457fa88f0f12595050663c16fc34

results: add f06df175b453e397317f32a7785a7b49198f6f06

view details

push time in 12 days

pull request commentnodejs/node

net: support TCP_KEEPINTVL,TCP_KEEPCNT,TCP_USER_TIMEOUT for tcp keep-…

If the changes get merged in libuv upstream we'd pull them in the next time libuv makes a release. At that point we could pursue the rest of the PR after rebasing to include the new libuv.

theanarkh

comment created time in 13 days

pull request commentnodejs/node

net: support TCP_KEEPINTVL,TCP_KEEPCNT,TCP_USER_TIMEOUT for tcp keep-…

Changes to libuv need to be made upstream here instead.

theanarkh

comment created time in 13 days

push eventmscdex/nodebench

nodebench

commit sha 778c866789ace82fd9f081f32ec3fe0f65534e62

results: add e2b468eb5cca30640c7811b626a223359e31816c

view details

push time in 13 days

push eventmscdex/nodebench

nodebench

commit sha 7049d5b44c9722753271affae8edc7c0c4e7f89b

results: add c23d2fd3f8a018bcc624f1468a9ce176f6ce93f2

view details

push time in 14 days

issue commentmscdex/ssh2

Increase height of shell terminal

Can you show the relevant code you're using?

tamilvjm

comment created time in 15 days

push eventmscdex/nodebench

nodebench

commit sha 0c6dcbf1ffdc8b8c732ccda4f92c66a991e41b83

results: add da8a1ef21b34af25c31cab5cf2cf023b66abe413

view details

push time in 15 days

pull request commentnodejs/node

stream: Expose DuplexPair API

I'd prefer something even more generic than socket1 and socket2 because this interface doesn't utilize net in any way. Maybe something as simple as side1 and side2?

awwright

comment created time in 16 days

issue commentmscdex/ssh2-streams

Posix rename support

Support for the OpenSSH rename extension already exists via sftp.ext_openssh_rename().

aleks-m

comment created time in 16 days

issue closedmscdex/ssh2-streams

Posix rename support

Hi

Could you please add support for posix rename (posix-rename@openssh.com extension)? It would allow renaming a file even if a destination already exists in one operation and without any additional steps.

Thanks.

closed time in 16 days

aleks-m

push eventmscdex/nodebench

nodebench

commit sha 208d3c94bb6027b07590ef6c5820eddfede42552

results: add b327d335ff6bc48c3c2aaedccfa9c40522f6b32f

view details

push time in 16 days

pull request commentnodejs/node

stream: Expose DuplexPair API

If we're going to make this public, I think we should be using more generic property names instead of 'client' and 'server' since it's no longer specific to tls.

awwright

comment created time in 17 days

Pull request review commentnodejs/node

stream: Expose DuplexPair API

 class DuplexSocket extends Duplex {   } } -function makeDuplexPair() {-  const clientSide = new DuplexSocket();-  const serverSide = new DuplexSocket();+function DuplexPair() {+  if (!(this instanceof DuplexPair))

Can we avoid adding this for new APIs? We may as well use a class, which would force new anyway.

awwright

comment created time in 17 days

pull request commentnodejs/node

stream: Expose DuplexPair API

Why should we be exposing this publicly? Is this a common use case? Is there a reference issue with more information?

awwright

comment created time in 17 days

push eventmscdex/nodebench

nodebench

commit sha 875fb351a5d11c9d10728465a87fc318f5efa1da

results: add f63436d190b60e12131036aa9d1888d9023e9127

view details

push time in 17 days

pull request commentnodejs/node

build: auto start Jenkins CI via PR labels

If we add something like this, shouldn't we just get rid of the "CERTIFY_SAFE" checkbox in CI then, since there is no way to make such a confirmation explicit when applying the new label to a PR?

mmarchini

comment created time in 18 days

push eventmscdex/nodebench

nodebench

commit sha e402ce735dd9dda9a10c7a137a9e7cfab3b3c0a8

results: add e18afe45d2bb035434b8aac31375a9a15a605c9e

view details

push time in 18 days

push eventmscdex/nodebench

nodebench

commit sha 3e07b2003d0cb0e88f1889869e9d13db4cd21d0c

results: add e405e82f74babb75600f8f1d94055885968d5701

view details

push time in 19 days

Pull request review commentnodejs/node

Fixed top image not loading(README.md) on slow internet speeds by changing the image source to the GitHub camo CDN.

 alias for the latest release from an LTS line. For example, the [latest-carbon](https://nodejs.org/download/release/latest-carbon/) directory contains the latest Carbon (Node.js 8) release. ++#### Alternative Ways to Install:

If we're going to add these, we should probably first break them down by platform. Even then we should only include officially supported sources/methods.

cal3432

comment created time in 20 days

pull request commentnodejs/node

fs: readdir fails when libuv returns UV_DIRENT_UNKNOWN and the first …

I think it's better to solve this at the fs layer instead because that is where we already document that we accept Buffer arguments for path/file names for various functions there. In general it doesn't seem like using Buffers for path/file names is that common anyway (I think it was added awhile back specifically for Windows users?) as many filesystems are UTF-8-capable.

kkz13250

comment created time in 20 days

issue commentmscdex/node-imap

Search based on uid range and date range

This is what you should be passing to .search() for the criteria argument in that case:

[ ['UID', '5912:5921'], [ 'SINCE', 'January 01, 2020' ] ]

Only search criteria types that do not take arguments can be placed without a subarray. For example, if you wanted new messages since January 1, 2020:

[ 'UNSEEN', [ 'SINCE', 'January 01, 2020' ] ]
govindaraja91

comment created time in 20 days

push eventmscdex/nodebench

nodebench

commit sha 5568ad8f29277b3e34bfa6fc31bf4066a7702ebf

results: add d8f8723577583d0d3d0239013c6e503c7d4e3abb

view details

push time in 20 days

issue commentmscdex/busboy

Prioritize text fields over file fields?

You would just need to enforce an order on the server side to prevent issues like that. Most clients implicitly support this by appending to the end of the form for example.

yaneony

comment created time in 21 days

push eventmscdex/nodebench

nodebench

commit sha 11dbf48d49a38a1851384ba29e61541b26e63ce5

results: add e202df8e4b1f5aee1c9b04996807bae942723a2f

view details

push time in 22 days

PR closed nodejs/node

benchmark: fix EventTarget benchmark benchmark events eventtarget

Fixes: https://github.com/nodejs/node/issues/33782

Instead of removing the benchmark completely, I've opted to simply tweak it as little as possible so that it no longer crashes.

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines
+2 -4

8 comments

1 changed file

mscdex

pr closed time in 22 days

issue commentmscdex/busboy

finish event never fires

If you're using the Google Cloud, then if you look closely at the example you linked to they are just using:

busboy.end(req.rawBody);

so you'd use that instead of:

busboy.end(req.body);
req.pipe(busboy);
jousi592

comment created time in 22 days

issue commentmscdex/busboy

finish event never fires

You would add that line in the parent scope, after you've set up all of your event handlers.

Another thing to be aware of is that if you're running this as a "cloud function" (e.g. Amazon Lambda) it could be that the form data is already buffered and stored somewhere, so piping to your Busboy instance won't do anything in that case. For that you'd just have to find where it's being stored (e.g. on req) and write that manually to the busboy instance (e.g. busboy.end(req.body)).

jousi592

comment created time in 22 days

push eventmscdex/nodebench

nodebench

commit sha bb9a647833476dbd1581f50c00e42e7affef81d2

results: add 326a79ebb979de1a952a83c23d37bbdcd6cdc2eb

view details

push time in 22 days

pull request commentnodejs/node

benchmark: fix EventTarget benchmark

Benchmark CI as a test: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/621/

mscdex

comment created time in 23 days

push eventmscdex/nodebench

nodebench

commit sha edaea3f6a90dbab7547e22f9c9311f2f20f05275

results: add 64d22c320c67255b42c8185a333a92a499c95820

view details

push time in 23 days

pull request commentnodejs/node

benchmark: fix EventTarget benchmark

People complained that they took too long and timed out too much, so we moved them to node-daily-master. I wouldn't be opposed to adding them back to regular CI runs if we can get regular CI to be less unreliable. The current situation is pretty bad.

As far as I can tell, the node-daily-master CI job isn't currently failing on the EventTarget benchmark. Does anyone regularly check/monitor the results of node-daily-master?

mscdex

comment created time in 24 days

pull request commentnodejs/node

benchmark: fix EventTarget benchmark

On a related note, is there a reason why we aren't running make test-benchmark in CI to prevent issues like this? I thought benchmark tests used to be run along with all of the normal tests?

/cc @nodejs/collaborators

mscdex

comment created time in 24 days

PR opened nodejs/node

benchmark: fix EventTarget benchmark benchmark eventtarget

Fixes: https://github.com/nodejs/node/issues/33782

Instead of removing the benchmark completely, I've opted to simply tweak it as little as possible so that it no longer crashes.

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines
+2 -4

0 comment

1 changed file

pr created time in 24 days

create barnchmscdex/io.js

branch : benchmark-fix-events-eventtarget

created branch time in 24 days

Pull request review commentnodejs/node

http:ClientRequest return host、protocol

 const OutgoingMessage = http.OutgoingMessage;   msg.write('asd');   assert.strictEqual(msg.writableLength, 7); }++{+  const server = http.createServer(function(req, res) {+    res.end();+    server.close();+  });++  server.listen(0);++  server.on('listening', common.mustCall(function() {
  server.on('listening', common.mustCall(() => {
zhangwinning

comment created time in 24 days

Pull request review commentnodejs/node

http:ClientRequest return host、protocol

 const OutgoingMessage = http.OutgoingMessage;   msg.write('asd');   assert.strictEqual(msg.writableLength, 7); }++{+  const server = http.createServer(function(req, res) {
  const server = http.createServer((req, res) => {
zhangwinning

comment created time in 24 days

pull request commentnodejs/node

doc: add http.IncomingMessage#connection

At the very least it should be in the dedicated deprecations document. I believe we've done something similar in the past for undocumented and/or private APIs (only adding it in the one place).

rexagod

comment created time in 24 days

issue commentmscdex/mmmagic

Can't install fails at node-gyp rebuild

Sounds like something is wrong with your npm installation.

Hyperblaster

comment created time in 24 days

push eventmscdex/nodebench

nodebench

commit sha 972f5bbe9980e0a75d61b67939ad4d4d3ed33595

results: add fdf10adef8443c19899c306804cbe585113ff453

view details

push time in 25 days

issue commentmscdex/node-imap

Getting { Promise { <pending> } } downloading many attachment from a mail server

This library doesn't utilize Promises. It sounds like you might be using another library that uses imap under the hood?

melitus

comment created time in 25 days

issue commentmscdex/ssh2-streams

fastGet/fastPut problems with node v14.2.0

fastGet() and fastPut() don't use streams.

theophilusx

comment created time in a month

push eventmscdex/nodebench

nodebench

commit sha 466540fe8c3e9c8622508ed142b96ad1e9112943

results: add ea866dc81b81a71f6ff4c9cb44f8953ce5b398a6

view details

push time in a month

issue commentnodejs/node

benchmark: events/eventtarget throws

Can we temporarily remove this benchmark in the meantime? I checked and the linked PR is evidently not enough to fix the error with the benchmark. In particular this issue is currently preventing the gathering of all events benchmark data (EventTarget or otherwise) in my daily benchmark runner.

mscdex

comment created time in a month

PR closed nodejs/node

benchmark: remove deprecated tls.createSecurePair benchmark test tls
Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+2 -16

2 comments

2 changed files

mscdex

pr closed time in a month

Pull request review commentnodejs/node

timers: introduce timers/promises

 function getTimerCallbacks(runNextTicks) {   }; } +const Immediate = class Immediate {

Why is the const assignment needed here?

jasnell

comment created time in a month

issue commentmscdex/mmmagic

Error while importing module

Did you copy the node_modules from another system where the modules was originally installed? I'm betting it was copied either from a different OS (e.g. from macOS to Linux) or from a different, incompatible CPU architecture.

surdu

comment created time in a month

push eventmscdex/nodebench

nodebench

commit sha ad20e05fb25a241833288a351c9fee562d773de8

results: add a4f3206b767bee8ef3e0e1dc8bdbd5e477c5bfa6

view details

push time in a month

pull request commentnodejs/node

win,fs: improve realpathSync performance

Additionally hard links may disappear during the lifetime of the process, giving incorrect results if knownHard contains stale information.

bartbrzo

comment created time in a month

pull request commentnodejs/node

win,fs: improve realpathSync performance

I don't think this is the correct solution to the performance problem as this will create a leak since knownHard is never reset in this PR.

bartbrzo

comment created time in a month

issue commentmscdex/node-imap

Timed out while connecting to server

The line about NODE_TLS_REJECT_UNAUTHORIZED is concerning, that should never be enabled. You can pass --trace-warnings to node to get a backtrace to locate what is causing that warning.

Are you sure the connection config is correct? Your current configuration is connecting to port 993 with implicit TLS, which is common, but it could be that the server does not have that enabled. It may only be using port 143 and STARTTLS to upgrade the connection via TLS instead.

Tiago-Altus

comment created time in a month

issue commentmscdex/ssh2

conn.end() triggers ECONNRESET error with Windows OpenSSH

A better workaround is to attach an 'error' event handler on the client object instead.

codakin

comment created time in a month

issue closedmscdex/busboy

Using deprecated Buffer constructor, which results in errors

The busboy library uses the new Buffer(...) construction, which is deprecated, and results in this error message using node v13.5.0:

[DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

closed time in a month

krizzje

issue commentmscdex/node-imap

Can't connect to Exchange imap

Either someone is trying to MITM your connection or the server is actually providing a self-signed certificate. If it's the latter, you will need to make sure the certificate's CA is used by node. There are multiple ways of doing that, such as using the OS-wide OpenSSL certificate store or programmatically referencing the CA to use for the connection via the ca option in tlsOptions.

sergeymurashow

comment created time in a month

issue commentmscdex/ssh2

Cant connect to Huawei NE20 using netconf - KEY_EXCHANGE_FAILED

DEBUG: Remote ident: 'SSH-1.99--'

Was this line altered before it was posted? It's a bit strange to see an SSH ident string that bare...

diorgesl

comment created time in a month

push eventmscdex/nodebench

nodebench

commit sha b59d718eda489939c89454a00a4b26e9e3ed9035

results: add e1ad548cd4bfb996ea925584542f30c85aa3dfa1

view details

push time in a month

issue commentnodejs/node

Rename default branch from "master" to "main" or something similar

That's literally what you're seeing here.

Are you referring to the OP? If so, that didn't exactly strike me as someone saying they personally find the term offensive. To me the issue text read more like "hey, other people are making this change in other projects, should we do it too?".

Keep in mind that what you might consider "actually" and "obviously" offensive will differ significantly from what others may find "actually" and "obviously" offensive.

Here "actually" and "obviously" was meant to describe things that a greater majority of people can agree are offensive.

trivikr

comment created time in a month

issue commentnodejs/node

Rename default branch from "master" to "main" or something similar

@benjamingr I don't think such a change is necessary and by making such a change it would be creating a lot of technical issues. I've never heard anyone seriously say they found the branch name offensive since git's inception, much like I've never heard anyone seriously find similar terminology offensive elsewhere in computing in the many decades it's been in use.

I believe attaching a single context to such technical terminology (that involves inanimate things) is not useful. Instead, everyone should be focusing their time and effort on things in the world that are actually and obviously offensive.

trivikr

comment created time in a month

push eventmscdex/nodebench

nodebench

commit sha f9d749eb4fa9b64a0386e3db86e10e8a51a06861

results: add 7b46793eeedd24e576fa1aa7982b436e5cd37edd

view details

push time in a month

issue commentnodejs/node

Rename default branch from "master" to "main" or something similar

I am -1 on renaming/changing the branch.

trivikr

comment created time in a month

PR closed nodejs/node

practice commit - please ignore! doc

This is a practice commit as I learn the basic of CLI and git for a code bootcamp. Thanks!

<!-- Thank you for your pull request. Please provide a description above and review the requirements below.

Bug fixes and new features should include tests and possibly benchmarks.

Contributors guide: https://github.com/nodejs/node/blob/master/CONTRIBUTING.md -->

Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [ ] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [ ] tests and/or benchmarks are included
  • [ ] documentation is changed or added
  • [ ] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+2 -0

0 comment

1 changed file

sjaugmented

pr closed time in a month

PR opened nodejs/node

events: improve listeners() performance events performance

Benchmark results (keep in mind listeners is always implicitly multiplied by 2 by the benchmark):

                                                             confidence improvement accuracy (*)   (**)  (***)
 events/ee-listeners.js raw='false' listeners=1 n=5000000                  -0.96 %       ±2.89% ±3.85% ±5.03%
 events/ee-listeners.js raw='false' listeners=10 n=5000000         ***      7.71 %       ±1.48% ±1.98% ±2.61%
 events/ee-listeners.js raw='false' listeners=100 n=5000000        ***     35.04 %       ±0.89% ±1.19% ±1.58%
 events/ee-listeners.js raw='false' listeners=2 n=5000000          ***     20.62 %       ±1.41% ±1.89% ±2.47%
 events/ee-listeners.js raw='false' listeners=5 n=5000000          ***     27.57 %       ±0.80% ±1.07% ±1.40%
Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] tests and/or benchmarks are included
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+5 -4

0 comment

2 changed files

pr created time in a month

create barnchmscdex/io.js

branch : events-listeners-perf

created branch time in a month

issue closedmscdex/ssh2

This dependency was not found: * dns in ./node_modules/ssh2/lib/client.js

When I compile my electron app. I get this error

This dependency was not found:

* dns in ./node_modules/ssh2/lib/client.js
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\hiberfil.sys'
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\pagefile.sys'
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\swapfile.sys'

How can I resolve this! Please help!

closed time in a month

sanjitkung

issue commentmscdex/ssh2

This dependency was not found: * dns in ./node_modules/ssh2/lib/client.js

You're better off asking on the Electron issue tracker as dns is a module built into node (and Electron) so there shouldn't be a problem with that.

As for the other errors, that's outside the scope of this module as well.

sanjitkung

comment created time in a month

push eventmscdex/nodebench

nodebench

commit sha 539a82b5c2b7419e60b6e81ae8feb6ed310d2390

results: add bba9b008ef3095d346ed9a87140c81948476d9db

view details

push time in a month

issue closedmscdex/ssh2

How to limit cfg.algorithms.kex to {ecdh-sha2-nistp256} only?

Dear ALL:

according to https://github.com/mscdex/ssh2/blob/master/lib/client.js->Line 126->algoList = cfg.algorithms.kex, we can identify the kex algorithms.

The default algorithms kex is: ecdh-sha2-nistp256 , ecdh-sha2-nistp384 , ecdh-sha2-nistp521 , diffie-hellman-group-exchange-sha256 , diffie-hellman-group-exchange-sha1 , diffie-hellman-group14-sha1 , diffie-hellman-group1-sha1

But we want to use ecdh-sha2-nistp256 only, and fobid all other ones( for eg. forbid ecdh-sha2-nistp384 , forbid diffie-hellman-group1-sha1).

How can I set the 'cfg.algorithms.kex'? can you share us some example?

we are client.

closed time in a month

caozhaohong

issue commentmscdex/ssh2

How to limit cfg.algorithms.kex to {ecdh-sha2-nistp256} only?

You set it to an array of one or more names as described in the documentation:

  • algorithms - object - This option allows you to explicitly override the default transport layer algorithms used for the connection. Each value must be an array of valid algorithms for that category. The order of the algorithms in the arrays are important, with the most favorable being first. For a list of valid and default algorithm names, please review the documentation for the version of ssh2-streams used by this module. Valid keys:

    • kex - array - Key exchange algorithms.

    • cipher - array - Ciphers.

    • serverHostKey - array - Server host key formats.

    • hmac - array - (H)MAC algorithms.

    • compress - array - Compression algorithms.

caozhaohong

comment created time in a month

delete branch mscdex/io.js

delete branch : querystring-stringify-perf

delete time in a month

PR merged nodejs/node

querystring: improve stringify() performance performance querystring

Benchmark results:

                                                                        confidence improvement accuracy (*)   (**)  (***)
 querystring/querystring-stringify.js n=1000000 type='array'                  ***     27.37 %       ±0.86% ±1.15% ±1.50%
 querystring/querystring-stringify.js n=1000000 type='encodelast'             ***     19.40 %       ±1.27% ±1.70% ±2.24%
 querystring/querystring-stringify.js n=1000000 type='encodemany'             ***      9.39 %       ±1.33% ±1.78% ±2.34%
 querystring/querystring-stringify.js n=1000000 type='multiprimitives'        ***     56.64 %       ±1.93% ±2.59% ±3.43%
 querystring/querystring-stringify.js n=1000000 type='noencode'               ***     26.66 %       ±4.15% ±5.59% ±7.41%
Checklist

<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

  • [x] make -j4 test (UNIX), or vcbuild test (Windows) passes
  • [x] tests and/or benchmarks are included
  • [x] commit message follows commit guidelines

<!-- Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. -->

+47 -14

7 comments

3 changed files

mscdex

pr closed time in a month

push eventnodejs/node

Brian White

commit sha 7b46793eeedd24e576fa1aa7982b436e5cd37edd

querystring: improve stringify() performance PR-URL: https://github.com/nodejs/node/pull/33669 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>

view details

push time in a month

more