profile
viewpoint

chjj/blessed 9099

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

mscdex/busboy 1824

A streaming parser for HTML form data for node.js

mscdex/cap 281

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

mscdex/httpolyglot 151

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

mscdex/dicer 145

A very fast streaming multipart parser for node.js

mscdex/connect-busboy 137

Connect middleware for busboy

mscdex/bellhop 28

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

mscdex/base91.js 25

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.

pull request commentnodejs/node

workers: implement --max-worker-threads command line option

I'm not a fan of this being activated by default. I think the warning should only be emitted when someone explicitly enables the feature (via command line option or whatever future method).

jasnell

comment created time in 9 hours

push eventmscdex/nodebench

nodebench

commit sha f3dd1f7fc5068bf2d1b89d510c8fffe4c4fc37ba

results: add 8905be2ceea9abead85a5018c09645a3650d7495

view details

push time in 16 hours

issue commentmscdex/ssh2

Uploading with FileZilla hangs after rekey.

Why not just do this.stream.write(buffer, callback) and avoid the whole drainQueue thing?

btimby

comment created time in 19 hours

issue commentmscdex/ssh2

Uploading with FileZilla hangs after rekey.

I don't really understand the situation/what you're trying to do. Perhaps showing relevant code might help?

btimby

comment created time in 19 hours

issue commentmscdex/ssh2

No supported authentication methods available?

The server examples don't show interactive sessions. For that, you'll need to listen for the 'shell' event on the session object instead of 'exec'.

Panics11

comment created time in a day

issue commentmscdex/ssh2

No supported authentication methods available?

Some clients may rely on the list of allowable authentication methods. You can pass this list to reject(). For example: ctx.reject(['publickey']).

Panics11

comment created time in 2 days

push eventmscdex/nodebench

nodebench

commit sha 3d59bf39fbb394a5c52c132fe6c6dadf50e02646

results: add accc984ca93a9d002cc61f5960fcfe5902622cb4

view details

push time in 2 days

pull request commentnodejs/node

lib: use map for worker mapping in cluster

The description for cluster.workers needs to also be updated in the documentation.

yashLadha

comment created time in 2 days

issue commentnodejs/node

Weird Timezone issue

Everything seems correct to me. CEST (GMT+2) started at Sun, Mar 29 at 2:00 am. So these dates (Mar 17) before that should only be GMT+1, which agrees with the examples you've shown.

FredericLatour

comment created time in 2 days

push eventmscdex/nodebench

nodebench

commit sha e3be6775f19dfea132958e8e05dd00e6e3abe9c6

results: add 768b0f54eb143329743d2696bd36327f1bad7744

view details

push time in 3 days

push eventmscdex/nodebench

nodebench

commit sha 725b291f714bf6733d871d0ebf6ffd3cf8033270

results: add cd1db2db48d28db805227e7f6ade79a106d85bc6

view details

push time in 4 days

push eventmscdex/nodebench

nodebench

commit sha 4f92adde46df24399fc536f9ded5840266b4fd2c

results: add 1b1c2993a5bc9a64cb4d417509d2fc35a64182f4

view details

push time in 5 days

issue commentmscdex/cap

Cap Module ignores TCP segment of Reassembled PDU

@wyxcoder libpcap (and thus cap) operates at a lower level than Wireshark and thus does not process packets, including reassembly. This is up to cap users if they wish to reassemble packets.

dheerajreddy1

comment created time in 5 days

pull request commentnodejs/node

crypto: add crypto.createMac()

Except for missing documentation, LGTM.

bnoordhuis

comment created time in 6 days

push eventmscdex/nodebench

nodebench

commit sha 9c93b6f5a638c18c3545bf901f11796911489163

results: add f0a33d99ec4656b87bebb97162837047b52eb6f8

view details

push time in 6 days

Pull request review commentnodejs/node

lib: changed functional logic in cluster schedulers

 RoundRobinHandle.prototype.remove = function(worker) {  RoundRobinHandle.prototype.distribute = function(err, handle) {   this.handles.push(handle);-  const worker = this.free.shift();+  const workerId = this.free.keys().next().value;

I think it would be better to just use .entries().next().value so that workerId and worker can be obtained in one go.

yashLadha

comment created time in 7 days

push eventmscdex/nodebench

nodebench

commit sha 87dcae814fc8fa580db668299abdf07ae8acbe3f

results: add 9e3eddc75dde9df9356264b42bd30facb82583cd

view details

push time in 7 days

Pull request review commentnodejs/node

lib: refactored cluster schedule_handlers

 const net = require('net'); const { sendHelper } = require('internal/cluster/utils'); const { constants } = internalBinding('tcp_wrap'); -module.exports = RoundRobinHandle;--function RoundRobinHandle(key, address, port, addressType, fd, flags) {-  this.key = key;-  this.all = new Map();-  this.free = [];-  this.handles = [];-  this.handle = null;-  this.server = net.createServer(assert.fail);--  if (fd >= 0)-    this.server.listen({ fd });-  else if (port >= 0) {-    this.server.listen({-      port,-      host: address,-      // Currently, net module only supports `ipv6Only` option in `flags`.-      ipv6Only: Boolean(flags & constants.UV_TCP_IPV6ONLY),+class RoundRobinHandle {+  constructor(key, address, { port, fd, flags }) {+    this.key = key;+    this.all = new Map();+    this.free = new Map();+    this.handles = [];+    this.handle = null;+    this.server = net.createServer(assert.fail);+    this.attachListener(fd, port, address, flags); // UNIX socket path.

I think if the logic gets that complicated then we can revisit it at that point. Separating out 10 lines of code does not seem worthwhile.

yashLadha

comment created time in 7 days

Pull request review commentnodejs/node

lib: refactored cluster schedule_handlers

 'use strict';+const { Map } = primordials; const assert = require('internal/assert'); const dgram = require('internal/dgram'); const net = require('net'); -module.exports = SharedHandle;--function SharedHandle(key, address, port, addressType, fd, flags) {-  this.key = key;-  this.workers = [];-  this.handle = null;-  this.errno = 0;--  let rval;-  if (addressType === 'udp4' || addressType === 'udp6')-    rval = dgram._createSocketHandle(address, port, addressType, fd, flags);-  else-    rval = net._createServerHandle(address, port, addressType, fd, flags);--  if (typeof rval === 'number')-    this.errno = rval;-  else-    this.handle = rval;+class SharedHandle {+  constructor(key, address, { port, addressType, fd, flags }) {+    this.key = key;+    this.workers = new Map();+    this.handle = null;+    this.errno = 0;+    const rval = this.determineRval(addressType,

I don't see the use of let being a problem, especially given the size of the function and that the assignments happen immediately after the declaration.

yashLadha

comment created time in 7 days

pull request commentnodejs/node

crypto: add crypto.createMac()

2. it deviates from the other crypto stream classes. The docs for Cipher, Hash, Hmac, etc. all state it's just for "stream.transform options".

I think it's ok to deviate from the other classes in this way because this function is encompassing different types of (MAC) computation with each type requiring different parameters.

Also we don't have a precedent for passing context-specific values as separate parameters for any of these other classes. If anything, by keeping all of the context-specific values in the object, it's more like with the existing classes by keeping the function signature consistent.

Another minor reason to do it this way is it might appease V8 because parameter types wouldn't possibly change across multiple calls.

bnoordhuis

comment created time in 7 days

Pull request review commentnodejs/node

lib: refactored cluster schedule_handlers

 const net = require('net'); const { sendHelper } = require('internal/cluster/utils'); const { constants } = internalBinding('tcp_wrap'); -module.exports = RoundRobinHandle;--function RoundRobinHandle(key, address, port, addressType, fd, flags) {-  this.key = key;-  this.all = new Map();-  this.free = [];-  this.handles = [];-  this.handle = null;-  this.server = net.createServer(assert.fail);--  if (fd >= 0)-    this.server.listen({ fd });-  else if (port >= 0) {-    this.server.listen({-      port,-      host: address,-      // Currently, net module only supports `ipv6Only` option in `flags`.-      ipv6Only: Boolean(flags & constants.UV_TCP_IPV6ONLY),+class RoundRobinHandle {+  constructor(key, address, { port, fd, flags }) {+    this.key = key;+    this.all = new Map();+    this.free = new Map();

I think it's best to keep this as an array since an array is most likely designed better for the purposes of a queue than a Map is. The only real benefit of the Map is faster lookups, but we shouldn't really optimize that over faster/easier shift()/push() because workers are not likely to be added/removed as often as workers being selected for requests.

yashLadha

comment created time in 8 days

Pull request review commentnodejs/node

lib: refactored cluster schedule_handlers

 const net = require('net'); const { sendHelper } = require('internal/cluster/utils'); const { constants } = internalBinding('tcp_wrap'); -module.exports = RoundRobinHandle;--function RoundRobinHandle(key, address, port, addressType, fd, flags) {-  this.key = key;-  this.all = new Map();-  this.free = [];-  this.handles = [];-  this.handle = null;-  this.server = net.createServer(assert.fail);--  if (fd >= 0)-    this.server.listen({ fd });-  else if (port >= 0) {-    this.server.listen({-      port,-      host: address,-      // Currently, net module only supports `ipv6Only` option in `flags`.-      ipv6Only: Boolean(flags & constants.UV_TCP_IPV6ONLY),+class RoundRobinHandle {+  constructor(key, address, { port, fd, flags }) {+    this.key = key;+    this.all = new Map();+    this.free = new Map();+    this.handles = [];+    this.handle = null;+    this.server = net.createServer(assert.fail);+    this.attachListener(fd, port, address, flags); // UNIX socket path.+    this.server.once('listening', () => {+      this.handle = this.server._handle;+      this.handle.onconnection = (err, handle) => this.distribute(err, handle);+      this.server._handle = null;+      this.server = null;     });-  } else-    this.server.listen(address);  // UNIX socket path.--  this.server.once('listening', () => {-    this.handle = this.server._handle;-    this.handle.onconnection = (err, handle) => this.distribute(err, handle);-    this.server._handle = null;-    this.server = null;-  });-}+  } -RoundRobinHandle.prototype.add = function(worker, send) {-  assert(this.all.has(worker.id) === false);-  this.all.set(worker.id, worker);+  attachListener(fd, port, address, flags) {+    if (fd >= 0)+      this.server.listen({ fd });+    else if (port >= 0) {+      this.server.listen({+        port,+        host: address,+        // Currently, net module only supports `ipv6Only` option in `flags`.+        ipv6Only: Boolean(flags & constants.UV_TCP_IPV6ONLY),+      });+    } else+      this.server.listen(address);+  }+  add(worker, send) {+    assert(!this.all.has(worker.id));+    this.all.set(worker.id, worker);+    const done = () => {+      if (this.handle.getsockname) {+        const out = {};+        this.handle.getsockname(out);+        // TODO(bnoordhuis) Check err.+        send(null, { sockname: out }, null);+      } else {+        send(null, null, null); // UNIX socket.+      }+      this.handoff(worker); // In case there are connections pending.+    };+    if (this.server === null)+      return done();+    // Still busy binding.+    this.server.once('listening', done);+    this.server.once('error', (err) => {+      send(err.errno, null);+    });+  } -  const done = () => {-    if (this.handle.getsockname) {-      const out = {};-      this.handle.getsockname(out);-      // TODO(bnoordhuis) Check err.-      send(null, { sockname: out }, null);-    } else {-      send(null, null, null);  // UNIX socket.+  remove(worker) {+    const existed = this.all.delete(worker.id);+    if (!existed)+      return false;+    this.free.delete(worker.id);+    if (this.all.size !== 0)+      return false;+    for (const handle of this.handles) {+      handle.close();     }--    this.handoff(worker);  // In case there are connections pending.-  };--  if (this.server === null)-    return done();--  // Still busy binding.-  this.server.once('listening', done);-  this.server.once('error', (err) => {-    send(err.errno, null);-  });-};--RoundRobinHandle.prototype.remove = function(worker) {-  const existed = this.all.delete(worker.id);--  if (!existed)-    return false;--  const index = this.free.indexOf(worker);--  if (index !== -1)-    this.free.splice(index, 1);--  if (this.all.size !== 0)-    return false;--  for (const handle of this.handles) {-    handle.close();+    this.handles = [];+    this.handle.close();+    this.handle = null;+    return true;   }-  this.handles = [];--  this.handle.close();-  this.handle = null;-  return true;-}; -RoundRobinHandle.prototype.distribute = function(err, handle) {-  this.handles.push(handle);-  const worker = this.free.shift();--  if (worker)-    this.handoff(worker);-};--RoundRobinHandle.prototype.handoff = function(worker) {-  if (this.all.has(worker.id) === false) {-    return;  // Worker is closing (or has closed) the server.+  distribute(err, handle) {+    this.handles.push(handle);+    const worker = this.free.values().next().value;

The previous implementation actually removed the worker from .free(), this will keep the worker in place.

yashLadha

comment created time in 8 days

Pull request review commentnodejs/node

lib: refactored cluster schedule_handlers

 const net = require('net'); const { sendHelper } = require('internal/cluster/utils'); const { constants } = internalBinding('tcp_wrap'); -module.exports = RoundRobinHandle;--function RoundRobinHandle(key, address, port, addressType, fd, flags) {-  this.key = key;-  this.all = new Map();-  this.free = [];-  this.handles = [];-  this.handle = null;-  this.server = net.createServer(assert.fail);--  if (fd >= 0)-    this.server.listen({ fd });-  else if (port >= 0) {-    this.server.listen({-      port,-      host: address,-      // Currently, net module only supports `ipv6Only` option in `flags`.-      ipv6Only: Boolean(flags & constants.UV_TCP_IPV6ONLY),+class RoundRobinHandle {+  constructor(key, address, { port, fd, flags }) {+    this.key = key;+    this.all = new Map();+    this.free = new Map();+    this.handles = [];+    this.handle = null;+    this.server = net.createServer(assert.fail);+    this.attachListener(fd, port, address, flags); // UNIX socket path.

Since this method is only used here, I think it's best to just keep the original code here.

yashLadha

comment created time in 8 days

Pull request review commentnodejs/node

lib: refactored cluster schedule_handlers

 'use strict';+const { Map } = primordials; const assert = require('internal/assert'); const dgram = require('internal/dgram'); const net = require('net'); -module.exports = SharedHandle;--function SharedHandle(key, address, port, addressType, fd, flags) {-  this.key = key;-  this.workers = [];-  this.handle = null;-  this.errno = 0;--  let rval;-  if (addressType === 'udp4' || addressType === 'udp6')-    rval = dgram._createSocketHandle(address, port, addressType, fd, flags);-  else-    rval = net._createServerHandle(address, port, addressType, fd, flags);--  if (typeof rval === 'number')-    this.errno = rval;-  else-    this.handle = rval;+class SharedHandle {+  constructor(key, address, { port, addressType, fd, flags }) {+    this.key = key;+    this.workers = new Map();+    this.handle = null;+    this.errno = 0;+    const rval = this.determineRval(addressType,

This method is only used here, I don't think it's worth moving to a separate function. I think keeping the original conditionals here is best.

yashLadha

comment created time in 8 days

pull request commentnodejs/node

crypto: add crypto.createMac()

These appear to be the options for the underlying LazyTransform yes?

It would probably be both, for the stream settings and for the computation parameters. I suggested changing the parameter name in the signature to something else because it may/may not be optional, depending on the type (e.g. at least cipher required for the 'cmac' type). I don't have any suggestions for a new name at the moment though.

bnoordhuis

comment created time in 8 days

Pull request review commentnodejs/node

crypto: add crypto.createMac()

 Hmac.prototype.digest = function digest(outputEncoding) { Hmac.prototype._flush = Hash.prototype._flush; Hmac.prototype._transform = Hash.prototype._transform; +function Mac(mac, key, options) {+  if (!(this instanceof Mac))

Right, I meant changing it for this new class, not changing existing classes.

bnoordhuis

comment created time in 8 days

Pull request review commentnodejs/node

crypto: add crypto.createMac()

 Hmac.prototype.digest = function digest(outputEncoding) { Hmac.prototype._flush = Hash.prototype._flush; Hmac.prototype._transform = Hash.prototype._transform; +function Mac(mac, key, options) {+  if (!(this instanceof Mac))+    return new Mac(mac, key, options);++  validateString(mac, 'mac');+  key = prepareSecretKey(key);++  let nid = EVP_PKEY_HMAC;+  if (mac === 'poly1305') nid = EVP_PKEY_POLY1305;+  else if (mac === 'siphash') nid = EVP_PKEY_SIPHASH;+  else if (mac.startsWith('cmac:')) {+    nid = EVP_PKEY_CMAC;+    mac = mac.slice(5);+  }++  this[kHandle] = new _Mac(nid, toBuf(key), mac);+  this[kState] = {+    [kFinalized]: false+  };+  LazyTransform.call(this, options);+}++ObjectSetPrototypeOf(Mac.prototype, LazyTransform.prototype);+ObjectSetPrototypeOf(Mac, LazyTransform);++Mac.prototype.update = Hash.prototype.update;++Mac.prototype.digest = function digest(outputEncoding) {+  const state = this[kState];+  outputEncoding = outputEncoding || getDefaultEncoding();++  if (state[kFinalized]) {+    const buf = Buffer.from('');+    return outputEncoding === 'buffer' ? buf : buf.toString(outputEncoding);

Personally I'd prefer an exception be thrown on multiple calls.

bnoordhuis

comment created time in 8 days

pull request commentnodejs/node

crypto: add crypto.createMac()

I still think moving all parameters (e.g. cipher name, digest name) to the object in the third parameter will keeps things neater signature-wise and will be simpler once EVP_MAC is available (we could just pass the object to C++ where we'd just have a series of conditionals). We will probably want to rename options to something else at that point.

bnoordhuis

comment created time in 8 days

Pull request review commentnodejs/node

crypto: add crypto.createMac()

 Hmac.prototype.digest = function digest(outputEncoding) { Hmac.prototype._flush = Hash.prototype._flush; Hmac.prototype._transform = Hash.prototype._transform; +class Mac extends LazyTransform {+  constructor(mac, ...args) {+    validateString(mac, 'mac');++    let nid = EVP_PKEY_HMAC;+    let alg, key, options;++    switch (mac) {+      case 'cmac':+        nid = EVP_PKEY_CMAC;+        // Fall through.++      case 'hmac':+        [alg, key, options] = args;+        validateString(alg, 'alg');+        break;++      case 'poly1305':+        [key, options] = args;+        nid = EVP_PKEY_POLY1305;+        break;++      case 'siphash':+        [key, options] = args;+        nid = EVP_PKEY_SIPHASH;+        break;++      default:+        throw new ERR_INVALID_OPT_VALUE('mac', mac);+    }++    key = prepareSecretKey(key);+    super(options);++    this[kHandle] = new _Mac(nid, toBuf(key), alg);+  }++  _transform(chunk, encoding, callback) {+    this[kHandle].update(chunk, encoding);+    callback();+  }++  _flush(callback) {+    this.push(this[kHandle].digest());
    this.push(this[kHandle].final());
bnoordhuis

comment created time in 8 days

push eventmscdex/nodebench

nodebench

commit sha cc91a05630242fc76ec454a10c4fd0e41c861227

results: add f92df338321ac528747ea2374dd72d95bdd1059a

view details

push time in 8 days

pull request commentnodejs/node

crypto: add crypto.createMac()

Also I think using .digest() instead of something like .final() can be misleading since we're now dealing with more than just HMACs, so we need something more generic.

bnoordhuis

comment created time in 8 days

pull request commentnodejs/node

crypto: add crypto.createMac()

I think we could get around having to use prefixes by using EVP_MAC names, for example:

crypto.createMac('cmac', key, { cipher: 'aes-128-cbc' });

crypto.createMac('hmac', key, { digest: 'sha1' });

crypto.createMac('poly1305', key);

crypto.createMac('siphash', key);
bnoordhuis

comment created time in 8 days

Pull request review commentnodejs/node

crypto: add crypto.createMac()

 Hmac.prototype.digest = function digest(outputEncoding) { Hmac.prototype._flush = Hash.prototype._flush; Hmac.prototype._transform = Hash.prototype._transform; +function Mac(mac, key, options) {+  if (!(this instanceof Mac))

I wonder if we can start getting away from having to do this sort of thing and even make this an actual ES6 class?

bnoordhuis

comment created time in 8 days

pull request commentnodejs/node

crypto: make crypto.sign() support poly1305 mac

As far as a new API goes, I think it should support both streaming (traditional sense and/or update()/final()-style if it's faster than a real stream) and one-shot methods.

Examples:

const output = crypto.createMAC('poly1305', { key: .... }).update(data).final();

// or equivalent one-shot API:

const output = crypto.mac(data, 'poly1305', { key: .... });

With the one-shot API I would suggest having the data parameter first (despite that going against the order used in our existing APIs) so that the algorithm name and options are in the same order as passed to createMAC().

The options object would at least contain properties whose names align with the EVP_MAC parameter names, which are currently: key, iv, custom, salt, xof, flags, properties, digest, cipher, and size.

bnoordhuis

comment created time in 8 days

PR closed nodejs/node

Change variable name in http 'upgrade' event doc http

<!-- 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
  • [x] 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. -->

+1 -1

1 comment

1 changed file

sploders101

pr closed time in 8 days

pull request commentnodejs/node

Change variable name in http 'upgrade' event

This change isn't correct as this is the documentation for the 'upgrade' event for ClientRequest, not ServerResponse. The documentation for both classes' 'upgrade' events are already correct.

sploders101

comment created time in 8 days

pull request commentnodejs/node

crypto: make crypto.sign() support poly1305 mac

@tniessen It is a 'key', however it's implemented this way because of the underlying OpenSSL API. We could write our own "MAC" API for crypto now that encompasses HMAC, Poly1305, SIPHash, etc., but with the current OpenSSL releases I feel like the code would end up being less straight forwarding internally because of the different considerations needed for different algorithms.

Once EVP_MAC is available, things will be a lot easier implementation-wise since we could just have a node API that more or less passes values on to OpenSSL as-is and supplying the required values would be on the user. Until then, I see the changes in this PR as a temporary measure to allow access to these specialty algorithms.

bnoordhuis

comment created time in 9 days

push eventmscdex/nodebench

nodebench

commit sha a8c1bcf1cc1f2ad2b4be0159616e9dce7f41cdb1

results: add 07a1fb953e1ecbd98c93cde96b6b0bca7e3aecbd

view details

push time in 9 days

issue commentmscdex/node-imap

Authentication Failed on Sever, working on Localhost.

I don't know what else to suggest then, other than to contact the support folks for the server in question.

anandchapter247

comment created time in 9 days

pull request commentnodejs/node

crypto: make crypto.sign() support poly1305 mac

What about reusing existing properties inside the object that'd be passed to createPrivateKey()? So in the case of poly1305, a plain object is passed in whose key property would still contain the (binary/raw) key data but the type property would be set to 'poly1305' and format would then be ignored.

bnoordhuis

comment created time in 9 days

Pull request review commentnodejs/node

crypto: make crypto.sign() support poly1305 mac

 function createPublicKey(key) {   return new PublicKeyObject(handle); } -function createPrivateKey(key) {+function createPrivateKey(key, secret = null) {+  if (key === 'poly1305') {+    if (!isArrayBufferView(secret)) {+      throw new ERR_INVALID_ARG_TYPE(+        'secret',+        ['Buffer', 'TypedArray', 'DataView'],+        secret);+    }+    const handle = new KeyObjectHandle(kKeyTypePrivate);+    handle.initRaw(/* NID_poly1305 */ 1061, secret);

I think we could export and use EVP_PKEY_POLY1305 from the binding since it seems like we're already doing that for other types.

bnoordhuis

comment created time in 9 days

issue closedmscdex/nodebench

Format specification

I'd like to open this issue to discuss the format you are using, in order to facilitate possible issues from parsing or consuming your results.

At the current time, I'll start with an open ended question: what are your current thoughts regarding the format that is currently used? (For example, are there any plans to adjust the file layout or JSON formats, or in general how stable is this repo for others to consume)

Thank you!

closed time in 10 days

maxwellb

issue commentmscdex/nodebench

Format specification

I'll close this out for now.

maxwellb

comment created time in 10 days

issue commentnodejs/node

crypto: poly1305 not supported as hmac

Supposedly it's already supported via the EVP_PKEY API.

mscdex

comment created time in 10 days

issue commentmscdex/node-imap

Authentication Failed on Sever, working on Localhost.

Are you able to log in using the same set of credentials via the IMAP provider's webmail interface? Is two-factor authentication enabled on the account?

anandchapter247

comment created time in 10 days

push eventmscdex/nodebench

nodebench

commit sha cd89b7d74934d4ccb75605ebe587ed8b8ee599db

results: add ecfb7b0988da93b1b140f7fbe877824296697364

view details

push time in 10 days

issue openednodejs/node

crypto: poly1305 not supported as hmac

Is your feature request related to a problem? Please describe. I can't use poly1305 separately from chacha20-poly1305. Some algorithms (e.g. chacha20-poly1305 in OpenSSH) require the operations to be separate due to limitations/restrictions of chacha20-poly1305 as defined in RFC 7539.

Describe the solution you'd like To be able to use poly1305 as efficiently as possible, whether it's via crypto.createHmac() or crypto.sign() or something else.

Describe alternatives you've considered Unfortunately there are none, except doing the calculations in javascript, which I assume is going to be pretty slow in comparison.

created time in 10 days

issue commentnodejs/node

child_process spawn missing stdout on Ubuntu 20.04

I'm not able to reproduce the issue (on Ubuntu 18.04 FWIW) with node v10.x, v12.x, or master.

doubleswirve

comment created time in 11 days

push eventmscdex/nodebench

nodebench

commit sha 6ecb01a1bd79acdf0a098338921fa590c361fa6c

results: add d23eed256b2ba2c594011f6957fbabe2568c8751

view details

push time in 11 days

push eventmscdex/nodebench

nodebench

commit sha cd1a6f39cfdb3015b795aa20ee9b83361d205754

results: add b891e9348b77468623ece665ae6b0a78c9644478

view details

push time in 12 days

push eventmscdex/nodebench

nodebench

commit sha ec7a73f7c2454594ea9eb832c765aa49861e710d

results: add ffdf1dec85a61a4a913f83c3970298aac7e05f93

view details

push time in 13 days

Pull request review commentnodejs/node

quic: part 1... quic-modified openssl

 L_BF_encrypt_begin: 	movl	16(%esp),%ebp 	pushl	%esi 	pushl	%edi-	# Load the 2 words+	# Load the 2 words 

What's the reason for the whitespace addition? Is it the use of an older Perl version or ?

jasnell

comment created time in 13 days

Pull request review commentnodejs/node

quic: part 1... quic-modified openssl

 L_BF_encrypt_begin: 	movl	16(%esp),%ebp 	pushl	%esi 	pushl	%edi-	# Load the 2 words+	# Load the 2 words 

Can these be undone?

jasnell

comment created time in 13 days

push eventmscdex/nodebench

nodebench

commit sha f5cf3a8fb50a3cbda37d68eb5de5bcb2ffb6ac3a

results: add 7a742ec050222dfabfa8fca07167a3b2c680fb3c

view details

push time in 14 days

Pull request review commentnodejs/node

doc: add unreachable code on events example

 const { on, EventEmitter } = require('events');     // if concurrent execution is required.     console.log(event); // prints ['bar'] [42]   }+  throw new Error('Unreachable');

Or maybe the comment inside the loop could be expanded to be more clear that it loops forever?

Himself65

comment created time in 14 days

Pull request review commentnodejs/node

doc: add unreachable code on events example

 const { on, EventEmitter } = require('events');     // if concurrent execution is required.     console.log(event); // prints ['bar'] [42]   }+  throw new Error('Unreachable');

Perhaps a comment would suffice as I'm not sure most people would need to add this to their code if they're modelling their code based on this example?

Himself65

comment created time in 14 days

issue commentnodejs/node

µWebSockets.js x node.js

PRs to improve performance are always welcome.

ynwd

comment created time in 14 days

issue closedmscdex/ssh2

how to use one file to save different privateKeys

I'd like to connect to different linux servers depends on current user, now I have to use multiple files to save the privateKey. Is there any way to save al the privateKey in one file. now I get the privateKey like "require('fs').readFileSync(path)".

closed time in 14 days

jorxie

issue commentmscdex/ssh2

how to use one file to save different privateKeys

No, there is only one key per file.

jorxie

comment created time in 14 days

issue closednodejs/node

npm install doesnt install angular/dev-kit

<!--🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅

Oh hi there! 😄

To expedite issue processing please search open and closed issues before submitting a new one. Existing issues often contain information about workarounds, resolution, or progress updates.

🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅🔅-->

🐞 Bug report

Command (mark with an x)

<!-- Can you pin-point the command or commands that are effected by this bug? --> <!-- ✍️edit: -->

  • [x] new
  • [x] build
  • [x] serve
  • [ ] test
  • [ ] e2e
  • [ ] generate
  • [ ] add
  • [ ] update
  • [ ] lint
  • [ ] xi18n
  • [ ] run
  • [ ] config
  • [ ] help
  • [ ] version
  • [ ] doc

Is this a regression?

i did't have this error before

Description

i tried to build a new project (sample template) but while extracting i got these errors

🔬 Minimal Reproduction

ionic start Project name: test-report Starter template: conference

🔥 Exception or Error

here is the error: https://aws1.discourse-cdn.com/ionicframework/original/3X/6/d/6d8d829d37e4db4a76b54d4edc097800ed46108c.png

https://aws1.discourse-cdn.com/ionicframework/original/3X/b/d/bdc2031459d0d42cdf8fced11bd102edb2a63aa4.png

🌍 Your Environment

<pre><code> Angular CLI: 9.0.6 Node: 12.16.1 OS: win32 x64

Angular: ... Ivy Workspace:

Package Version

@angular-devkit/architect 0.900.6 @angular-devkit/core 9.0.6 @angular-devkit/schematics 9.0.6 @schematics/angular 9.0.6 @schematics/update 0.900.6 rxjs 6.5.3

</code></pre>

Anything else relevant?

full log at here :https://gofile.io/?c=dKTtf3 i also check with run as admin same problem

closed time in 15 days

arashsoftco

issue commentnodejs/node

npm install doesnt install angular/dev-kit

Already moved to https://github.com/nodejs/help/issues/2531.

arashsoftco

comment created time in 15 days

issue commentmscdex/nodebench

Format specification

As far as the data itself goes, I don't have any plans to change the format/structure at the moment.

Do you have any specific questions/concerns about the existing format?

maxwellb

comment created time in 15 days

issue commentmscdex/ssh2

nodejs execute command on remote linux server,but how can I get the privatekey

It's not clear from the issue title what you're asking about. Can you elaborate?

jorxie

comment created time in 15 days

push eventmscdex/nodebench

nodebench

commit sha a73948de9d757858674191a5bfaa1147a83d8ba0

results: add 9b20b5db7b829dff0bcf0383c898c7fc85924369

view details

push time in 15 days

Pull request review commentnodejs/node

util: mark classes while inspecting them

 assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'");   ); }); +// Verify that classes are properly inspected.+[+  // The whitespace is intentional.+  // eslint-disable-next-line no-multi-spaces+  [class   { }, 'class (anonymous) {}'],+  [class extends Error { log() {} }, 'class (anonymous) extends Error {}'],+  [class A { constructor(a) { this.a = a; } log() { return this.a; } }],+  [class+  // Random comments are part of the stringified result

Is this a typo? Shouldn't it say comments are not part of the stringified result?

BridgeAR

comment created time in 15 days

pull request commentnodejs/node

doc: Add useful v8 option section

Just a note: when squashing/landing, make sure 'V8' is used instead of 'v8' in the commit message to avoid confusion.

nimit95

comment created time in 16 days

Pull request review commentnodejs/node

doc: Add useful v8 option section

 threadpool by setting the `'UV_THREADPOOL_SIZE'` environment variable to a value greater than `4` (its current default value). For more information, see the [libuv threadpool documentation][]. +## Useful V8 options++V8 has its own set of CLI options. Any V8 CLI option that is provided to `node` will+be passed on to V8 to handle. V8's options have _no stability guarantee_.+The V8 team themselves don't consider them to be part of their formal API,+and reserve the right to change them at any time. The Node.js team does not+consider them covered by the Node.js stability guarantees. Many of the V8+options are of interest only to V8 developers. Despite this, there is a small+set of V8 options that are widely applicable to the Node.js, and they are+documented here. V8 options that are allowed are:++### `--max-old-space-size=SIZE` (in Mbytes)++Sets the max memory size of V8 old memory section. As memory
Sets the max memory size of V8's old memory section. As memory
nimit95

comment created time in 16 days

Pull request review commentnodejs/node

doc: Add useful v8 option section

 threadpool by setting the `'UV_THREADPOOL_SIZE'` environment variable to a value greater than `4` (its current default value). For more information, see the [libuv threadpool documentation][]. +## Useful V8 options++V8 has its own set of CLI options. Any V8 CLI option that is provided to `node` will+be passed on to V8 to handle. V8's options have _no stability guarantee_.+The V8 team themselves don't consider them to be part of their formal API,+and reserve the right to change them at any time. The Node.js team does not+consider them covered by the Node.js stability guarantees. Many of the V8+options are of interest only to V8 developers. Despite this, there is a small+set of V8 options that are widely applicable to the Node.js, and they are+documented here. V8 options that are allowed are:++### `--max-old-space-size=SIZE` (in Mbytes)++Sets the max memory size of V8 old memory section. As memory+consumption approaches the limit, V8 will spend more time on+garbage collection in an effort to free unused memory.++On a machine with 2GB of memory it suggested to set 1.5GB
On a machine with 2GB of memory it is suggested to set this to 1500
nimit95

comment created time in 16 days

Pull request review commentnodejs/node

doc: Add useful v8 option section

 threadpool by setting the `'UV_THREADPOOL_SIZE'` environment variable to a value greater than `4` (its current default value). For more information, see the [libuv threadpool documentation][]. +## Useful V8 options++V8 has its own set of CLI options. Any V8 CLI option that is provided to `node` will+be passed on to V8 to handle. V8's options have _no stability guarantee_.+The V8 team themselves don't consider them to be part of their formal API,+and reserve the right to change them at any time. The Node.js team does not+consider them covered by the Node.js stability guarantees. Many of the V8+options are of interest only to V8 developers. Despite this, there is a small+set of V8 options that are widely applicable to the Node.js, and they are+documented here. V8 options that are allowed are:
documented here:
nimit95

comment created time in 16 days

Pull request review commentnodejs/node

doc: Add useful v8 option section

 threadpool by setting the `'UV_THREADPOOL_SIZE'` environment variable to a value greater than `4` (its current default value). For more information, see the [libuv threadpool documentation][]. +## Useful V8 options++V8 has its own set of CLI options. Any V8 CLI option that is provided to `node` will+be passed on to V8 to handle. V8's options have _no stability guarantee_.+The V8 team themselves don't consider them to be part of their formal API,+and reserve the right to change them at any time. The Node.js team does not+consider them covered by the Node.js stability guarantees. Many of the V8+options are of interest only to V8 developers. Despite this, there is a small+set of V8 options that are widely applicable to the Node.js, and they are
set of V8 options that are widely applicable to Node.js, and they are
nimit95

comment created time in 16 days

push eventmscdex/nodebench

nodebench

commit sha e9f84748e9c58ee2899fcf366ddaca35666ad96f

results: add 25cb855b090c29eacebb78e4180c1f3678b7e86a

view details

push time in 16 days

issue commentnodejs/node

buffer: ~2x slowdown in master compared to v12.x

@mmarchini Right, like I said I don't know that that's possible because looking through the V8 source, there are not many places that call GetBackingStore() directly or indirectly and those instances that do exist are more part of the C++ API and not methods that would be triggered from JS land.

mscdex

comment created time in 16 days

issue commentnodejs/node

buffer: ~2x slowdown in master compared to v12.x

I'm not sure if there's a way to trigger it without using any node-specific API, but here is a minimal example that should still reproduce the issue:

'use strict';

const buf = Buffer.alloc(100, 'a');
console.time('slice');
for (let i = 0; i < 1e7; ++i)
  buf.utf8Slice(0, 32);
console.timeEnd('slice');
mscdex

comment created time in 16 days

pull request commentnodejs/node

lib: add debug logs to writable stream

/cc @nodejs/v8

YoDaMa

comment created time in 17 days

pull request commentnodejs/node

lib: add debug logs to writable stream

As nice as it would be to have additional debug information, I really think we should hold off until V8 can optimize noop functions better.

YoDaMa

comment created time in 17 days

pull request commentnodejs/node

lib: add debug logs to writable stream

Do you have suggestions / idea for what's happening?

No, probably a change in V8 at some point as I'm pretty sure they used to optimize away noop functions (which although that's not what node currently uses when debugging is disabled, I tested it myself and there's still overhead into a calling an empty function for some reason).

If this is the case it would suggest all forms of debug logs should be removed from Node.js for performance

I think you'll find this to be an uphill battle as far as changing node at this point and I don't know if there is anything that can realistically be done about it. I think this is something V8 will have to fix first.

I've already got a PR here to literally make the debug function a noop function when debugging is disabled, but it unfortunately does not completely undo all performance regressions (for example it does not prevent the regressions in this PR at all).

YoDaMa

comment created time in 17 days

pull request commentnodejs/node

tools: update Boxstater script and document

s/Boxstater/Boxstarter/ in commit message

Himself65

comment created time in 17 days

push eventmscdex/ssh2

Brian White

commit sha ab8eb2a7d1f5ad8b626c64d4456a3d630449f605

package: bump ssh2-streams dependency

view details

Brian White

commit sha 632073fdef53988b71109ff49d80c61fd0e0a8bd

bump version

view details

push time in 17 days

created tagmscdex/ssh2

tagv0.8.9

SSH2 client and server modules written in pure JavaScript for node.js

created time in 17 days

created tagmscdex/ssh2-streams

tagv0.4.10

SSH2 and SFTP client/server protocol streams for node.js

created time in 17 days

push eventmscdex/ssh2-streams

Brian White

commit sha b73528a14ba9ab422557be376b867e67ff9df35e

bump version

view details

push time in 17 days

push eventmscdex/ssh2-streams

Brian White

commit sha 21a2eb924adaa555e79600df0dfa22892c75e072

SSH2Stream: fix typo Fixes: https://github.com/mscdex/ssh2-streams/issues/151

view details

push time in 17 days

issue closedmscdex/ssh2-streams

Error: Digest method not supported for 'ecdh-sha2-nistp521' algo

https://github.com/mscdex/ssh2-streams/blob/a979592f13ee06ad9d5245eef17b0535f7354cce/lib/ssh.js#L5157

Is sha2512 possible typo and sha512 should be there? my code working well with sha512.

closed time in 17 days

natalniy

issue commentnodejs/node

Upgrade dependency mkdirp to 1.0.3 to fix CVE scored 9.8 in minimalist package

This should be posted to the npm issue tracker instead.

mleneveut

comment created time in 17 days

push eventmscdex/nodebench

nodebench

commit sha b70991aa5a9b00aae4e209df1592e249d890a1af

results: add 86f146a2c0ff08df79fd99efb238e44c75b73381

view details

push time in 17 days

issue commentnodejs/node

Piping `process.stdin` to `child.stdin` leaves behind an open handle

You could replace process.stdin.unpipe(child.stdin) with process.stdin.destroy().

ehmicky

comment created time in 18 days

pull request commentmscdex/mmmagic

updated libmagic to version 5.38

Unfortunately this removes a lot of custom changes (which admittedly need to be written as a separate patch) needed for cross-platform compatibility.

Is there a particular reason you need 5.38 at the moment?

vseryakov

comment created time in 18 days

push eventmscdex/nodebench

nodebench

commit sha de0065eeed918962bf64cea46612ef3616d81125

results: add ec204d86b06e4cc9259c1308e365a3e104212a16

view details

push time in 18 days

Pull request review commentnodejs/node

lib: Add option to disable __proto__

 'use strict';  const {+  Object,   Map,   ObjectDefineProperty,   SafeWeakMap, } = primordials;  const { getOptionValue } = require('internal/options'); const { Buffer } = require('buffer');-const { ERR_MANIFEST_ASSERT_INTEGRITY } = require('internal/errors').codes;+const {+  ERR_MANIFEST_ASSERT_INTEGRITY,+  ERR_INVALID_OPT_VALUE,+  ERR_PROTO_ACCESS,+} = require('internal/errors').codes; const assert = require('internal/assert'); +function patchObjectProto() {+  const disableProto = getOptionValue('--disable-proto');+  switch (disableProto) {+    case '':+      // Flag was not passed

Isn't this the code path taken when someone just passes --disable-proto without an option? If so, shouldn't we be throwing an exception in that case?

devsnek

comment created time in 18 days

Pull request review commentnodejs/node

Doc: Add useful v8 option section

 threadpool by setting the `'UV_THREADPOOL_SIZE'` environment variable to a value greater than `4` (its current default value). For more information, see the [libuv threadpool documentation][]. +## Useful v8 options++These are v8 options and fall outside Node.js' responsibility.++V8 options that are allowed are:

I think this should either be removed completely or at least reworded. Node does not restrict the V8 options that can be passed on the command line.

nimit95

comment created time in 19 days

Pull request review commentnodejs/node

Doc: Add useful v8 option section

 threadpool by setting the `'UV_THREADPOOL_SIZE'` environment variable to a value greater than `4` (its current default value). For more information, see the [libuv threadpool documentation][]. +## Useful v8 options++These are v8 options and fall outside Node.js' responsibility.
These are V8 options and fall outside Node.js' responsibility.
nimit95

comment created time in 19 days

Pull request review commentnodejs/node

Doc: Add useful v8 option section

 threadpool by setting the `'UV_THREADPOOL_SIZE'` environment variable to a value greater than `4` (its current default value). For more information, see the [libuv threadpool documentation][]. +## Useful v8 options
## Useful V8 options
nimit95

comment created time in 19 days

issue commentmscdex/mmmagic

Error: "Failed at the mmmagic@0.5.0 install script."

If it's not a direct dependency (you're using mmmagic explicitly in your own code), you'll have to submit a PR/issue to whichever project is using it to have them update the version/version range.

Wavey-web

comment created time in 19 days

issue commentmscdex/mmmagic

Error: "Failed at the mmmagic@0.5.0 install script."

Before going any further, try using the latest version of mmmagic as some build issues were fixed since v0.5.0.

Wavey-web

comment created time in 19 days

Pull request review commentnodejs/node

lib: improve debuglog() performance

 function debuglogImpl(set) { // so it needs to be called lazily in top scopes of internal modules // that may be loaded before these run time states are allowed to // be accessed.-function debuglog(set) {-  let debug;-  return function(...args) {-    if (debug === undefined) {-      // Only invokes debuglogImpl() when the debug function is-      // called for the first time.-      debug = debuglogImpl(set);-    }-    if (debug !== null)-      debug(...args);+function debuglog(set, cb) {+  let debug = (...args) => {+    // Only invokes debuglogImpl() when the debug function is+    // called for the first time.+    debug = debuglogImpl(set);+    if (typeof cb === 'function')+      cb(debug);+    debug(...args);+  };+  return (...args) => {+    debug(...args);   };

The suggested change is basically what the code was doing before. Having a callback is the only way to be able to avoid the wrapper function and utilizing it provides a further, noticeable performance improvement.

mscdex

comment created time in 19 days

issue commentmscdex/mmmagic

Error: "Failed at the mmmagic@0.5.0 install script."

Depends on the output from node-gyp that is only printed to the console/terminal.

Wavey-web

comment created time in 19 days

PR opened nodejs/node

lib: improve debuglog() performance performance

Example benchmark results:

                                                        confidence improvement accuracy (*)   (**)  (***)
 streams/pipe-object-mode.js n=5000000                        ***     27.10 %       ±1.46% ±1.95% ±2.55%
 streams/pipe.js n=5000000                                    ***     23.04 %       ±1.54% ±2.08% ±2.76%
 streams/readable-boundaryread.js type='buffer' n=2000         **      3.22 %       ±2.19% ±2.92% ±3.83%
 streams/readable-readall.js n=5000                           ***      9.04 %       ±2.51% ±3.35% ±4.39%
 streams/readable-unevenread.js n=1000                        ***      6.38 %       ±0.63% ±0.84% ±1.10%
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
+104 -41

0 comment

29 changed files

pr created time in 19 days

create barnchmscdex/io.js

branch : util-debuglog-perf

created branch time in 19 days

push eventmscdex/io.js

Ben Noordhuis

commit sha 7f44d2ced6dc19264778fe749e87de33e02926f1

build: disable libstdc++ debug containers globally Different parts of the debug build were using differently sized std::vectors due to `_GLIBCXX_DEBUG` sometimes being defined and sometimes not. That ended about as well as you would expect. Remove the flag. Fixes: https://github.com/nodejs/node/issues/30056 PR-URL: https://github.com/nodejs/node/pull/30147 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

ExE Boss

commit sha ba684805b6c0eded76e5cd89ee00328ac7a59365

util: use a global symbol for `util.promisify.custom` Define `util.promisify.custom` as `Symbol.for("nodejs.util.inspect.custom")`, rather than as `Symbol("util.inspect.custom")`. This allows custom `promisify` wrappers to easily/safely be defined in non‑Node.js environments. Fixes: https://github.com/nodejs/node/issues/31647 PR-URL: https://github.com/nodejs/node/pull/31672 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

cjihrig

commit sha edb3ffb0034c3d5dbaf3eacc46171801ab630d7c

doc: fix os.version() Windows API pRtlGetVersion is not a thing. This text was likely a result of copying the variable name used in libuv. This commit updates the documentation to reference the correct Windows API call. PR-URL: https://github.com/nodejs/node/pull/32156 Refs: https://github.com/nodejs/node/pull/31732 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Bartosz Sosnowski

commit sha 1a844a6f3a6695c9a6ad88218b13d473359833a2

doc: expand fs.watch caveats Document Windows specific fs.watch caveats. Fixes: https://github.com/nodejs/node/issues/31702 PR-URL: https://github.com/nodejs/node/pull/32176 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Masashi Hirano <shisama07@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Ruben Bridgewater

commit sha 9c18ff64405776ac6fff6e48f24ed0214423bcb2

repl: align preview with the actual executed code This adds preview output for input that may not be wrapped. PR-URL: https://github.com/nodejs/node/pull/32154 Reviewed-By: Shelley Vohr <codebytere@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Ruben Bridgewater

commit sha e322f74ce1f8ff3ce1224a7ea9264542871aec3b

test: refactor and simplify test-repl-preview Use an object to indicate which part belongs to the input and which to the output. On top of that this also simplifies the expected output by automatically inserting the default repl line for previews and by automatically checking for the correct output line length. PR-URL: https://github.com/nodejs/node/pull/32154 Reviewed-By: Shelley Vohr <codebytere@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Guy Bedford

commit sha 04028aac3a59548a57f4c79b03b9e8a0c6b4b25d

doc: update conditional exports recommendations Co-Authored-By: Geoffrey Booth <GeoffreyBooth@users.noreply.github.com> PR-URL: https://github.com/nodejs/node/pull/32098 Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>

view details

Antoine du HAMEL

commit sha a8b3d7b26b8be875a60cf3b137e6614f1fc8bffb

worker: allow URL in Worker constructor The explicit goal is to let users use `import.meta.url` to re-load thecurrent module inside a Worker instance. Fixes: https://github.com/nodejs/node/issues/30780 PR-URL: https://github.com/nodejs/node/pull/31664 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>

view details

Harshitha KP

commit sha 4fedb702b221469a65f0f2bc267ae08c8159e72a

test: use portable EOL The test wanted to cut huge string into 1KB strings, for which a new line character was inserted at appropriate places. The value is different in Windows (10, 13). Make it portable, by making use of os.EOL semantics Refs: https://github.com/nodejs/node/issues/25988 PR-URL: https://github.com/nodejs/node/pull/32104 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>

view details

Mateusz Krawczuk

commit sha 4ffb39bdfe033353f6f3a35698c04af51ab08d99

http2: rename counter in `mapToHeaders` inner loop This change is to prevent potential bugs - e.g., someone might automatically use the variable `k` instead of `key`, that is used in vicinity of this loop. Also changed postincrement to preincrement in iteration steps. It is probably done by the optimizer anyway, but otherwise it will save an opcode each iteration. And it is a good practice. PR-URL: https://github.com/nodejs/node/pull/32012 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>

view details

Harshitha KP

commit sha 16cce385c0e6d1fc633e0499d70e99be561ad76f

test: add new scenario for async-local storage Add a new scenario of multiple clients sharing a single data callback function managing their response data through AsyncLocalStorage APIs Refs: https://github.com/nodejs/node/pull/32063 Refs: https://github.com/nodejs/node/issues/32060 Refs: https://github.com/nodejs/node/issues/32062#issuecomment-593957787 Co-authored-by: Gireesh Punathil <gpunathi@in.ibm.com> PR-URL: https://github.com/nodejs/node/pull/32082 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Matheus Marchini

commit sha 75da64c0587f2925319cd9c1717a19b647b93511

deps: V8: cherry-pick f9257802c1c0 Original commit message: Fix scanner-level error reporting for hashbang When the file begins with a hashbang, the scanner is in a failed state when SkipHashbang() is called. This is usually not an issue but when the parser encounters an ILLEGAL token, it will reset the SyntaxError location because of it. Bug: v8:10110 Change-Id: I1c7344bf5ad20079cff80130c991f3bff4d7e9a8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1995312 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#66038} Refs: https://github.com/v8/v8/commit/f9257802c1c0a0663a1d05bacf662283f6bd9050 Fixes: https://github.com/nodejs/node/issues/31284 Signed-off-by: Matheus Marchini <mmarchini@netflix.com> PR-URL: https://github.com/nodejs/node/pull/32180 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>

view details

Bradley Farias

commit sha 417d847de2b5e7d1eec96f099f6e20593e1a97b8

util: text decoding allows SharedArrayBuffer PR-URL: https://github.com/nodejs/node/pull/32203 Fixes: https://github.com/nodejs/node/issues/32199 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>

view details

Anna Henningsen

commit sha 605615e5f33df41a307a0921f451b6dabb89410c

esm: port loader code to JS There is no reason for this to be in C++. Using JavaScript means that the code is more accessible to more developers, which is important for any Node.js feature. This also simplifies the code significantly in some areas. On the technical side, this potentially also enables making some of the file system operations that are involved asynchronous. PR-URL: https://github.com/nodejs/node/pull/32201 Reviewed-By: Bradley Farias <bradley.meck@gmail.com> Reviewed-By: Guy Bedford <guybedford@gmail.com>

view details

cjihrig

commit sha ec204d86b06e4cc9259c1308e365a3e104212a16

test: verify that WASI errors are rethrown This commit adds a test to verify that exceptions thrown from a WASI application are properly caught and rethrown. This also gets the code coverage in lib/wasi.js back to 100%. PR-URL: https://github.com/nodejs/node/pull/32157 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>

view details

Brian White

commit sha 083cb025d00c53a41390f49c09f46eb297d96b3b

lib: improve debuglog() performance

view details

push time in 19 days

issue commentmscdex/mmmagic

Error: "Failed at the mmmagic@0.5.0 install script."

The npm error log file does not include node-gyp output, so it's not useful when debugging node addon installation issues. The actual build errors should be displayed in the console/terminal though.

Wavey-web

comment created time in 19 days

more