Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update node docker tag to v12.18.0 #5

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Apr 9, 2020

This PR contains the following updates:

Package Type Update Change
node final minor 12.16.1-alpine -> 12.18.0-alpine

Release Notes

nodejs/node

v12.18.0

Compare Source

Notable changes

This is a security release.

Vulnerabilities fixed:

  • CVE-2020-8172: TLS session reuse can lead to host certificate verification bypass (High).
  • CVE-2020-11080: HTTP/2 Large Settings Frame DoS (Low).
  • CVE-2020-8174: napi_get_value_string_*() allows various kinds of memory corruption (High).
Commits

v12.17.0

Compare Source

Notable Changes
ECMAScript Modules - --experimental-modules flag removal

As of Node.js 12.17.0, the --experimental-modules flag is no longer necessary
to use ECMAScript modules (ESM). However, the ESM implementation in Node.js
remains experimental. As per our stability index: “The feature is not subject
to Semantic Versioning rules. Non-backward compatible changes or removal may
occur in any future release.” Users should be cautious when using the feature
in production environments.

Unlike Node.js 14, using ESM will still emit a runtime experimental warning,
either when a module is used a the application's entrypoint or the first time
dynamic import() is called.

Please keep in mind that the implementation of ESM in Node.js differs from the
developer experience you might be familiar with. Most transpilation workflows
support features such as named exports from CommonJS module imports, optional
file extensions or JSON modules that the Node.js ESM implementation does not
support. It is highly likely that modules from transpiled environments will
require a certain degree of refactoring to work in Node.js. It is worth
mentioning that many of our design decisions were made with two primary goals.
Spec compliance and Web Compatibility. It is our belief that the current
implementation offers a future proof model to authoring ESM modules that paves
the path to Universal JavaScript. Please read more in our documentation.

The ESM implementation in Node.js is still experimental but we do believe that
we are getting very close to being able to call ESM in Node.js “stable”.
Removing the flag is a huge step in that direction.

We expect to remove the warning Node.js 12 later this year, possibly in late
October, when Node.js 14 will become LTS.

AsyncLocalStorage API (experimental)

The AsyncLocalStorage class has been introduced in the Async Hooks module.

This API allows keeping a context across asynchronous operations. For instance,
if a sequence id is stored within an instance of AsyncLocalStorage for each
HTTP request entering in a server, it will be possible to retrieve this id
without having access the current HTTP request:

const http = require('http');
const { AsyncLocalStorage } = require('async_hooks');

const asyncLocalStorage = new AsyncLocalStorage();

function logWithId(msg) {
  const id = asyncLocalStorage.getStore();
  console.log(`${id !== undefined ? id : '-'}: `, msg);
}

let idSeq = 0;
http.createServer((req, res) => {
  asyncLocalStorage.run(idSeq++, () => {
    logWithId('start');
    // Imagine any chain of async operations here.
    setImmediate(() => {
      logWithId('finish');
      res.end();
    });
  });
}).listen(8080);

In this example, the logWithId function will always know what the current
request id is, even when there are multiple requests in parallel.

What can this API be used for

Use cases of this API include:

  • Logging
  • User identification
  • Performance tracking
  • Error tracking and handling
  • Much more!

Note: This API is still experimental and some methods might change in future releases of Node.js

Contributed by Vladimir de Turckheim - #​26540.

REPL previews

If further input is predicable, a suggestion is inserted as preview.

The REPL now supports previews similar to the Chrome DevTools console. An input
suggestion is inserted as preview in case further input is predicable. The
suggestion may be accepted by either pressing <TAB> or <RIGHT> at the end of
the input.
On top of that, output is previewed when entering variable names or function
calls that have no side effect.

image
image

Check the preview in action
and try it out on your own. Just access the REPL on your terminal by starting
the Node.js executable without any further command.

Contributed by Ruben Bridgewater - #​30907, #​30811.

REPL reverse-i-search

The REPL supports bi-directional reverse-i-search similar to
ZSH. It is triggered with <ctrl> + R
to search backwards and <ctrl> + S to search forwards.

Entries are accepted as soon as any button is pressed that doesn't correspond
with the reverse search. Cancelling is possible by pressing escape or
<ctrl> + C.

Changing the direction immediately searches for the next entry in the expected
direction from the current position on.

image

Reverse-i-search in action.

Contributed by Ruben Bridgewater - #​31006.

REPL substring-based search

It is now possible to access former history entries very fast by writing the
first characters of the formerly entered code you are looking for. Then push
<UP> or <DOWN> to go through the history entries that start with those
characters.

It works similar to the Fish Shell substring-based
history search.

Contributed by Ruben Bridgewater - #​31112.

Error monitoring
Monitoring error events

It is now possible to monitor 'error' events on an EventEmitter without
consuming the emitted error by installing a listener using the symbol
EventEmitter.errorMonitor:

const myEmitter = new MyEmitter();

myEmitter.on(EventEmitter.errorMonitor, (err) => {
  MyMonitoringTool.log(err);
});

myEmitter.emit('error', new Error('whoops!'));
// Still throws and crashes Node.js

Contributed by Gerhard Stoebich - #​30932.

Monitoring uncaught exceptions

It is now possible to monitor 'uncaughtException' events without overriding
the default behavior that exits the process by installing an
'uncaughtExceptionMonitor' listener:

process.on('uncaughtExceptionMonitor', (err, origin) => {
  MyMonitoringTool.logSync(err, origin);
});

// Intentionally cause an exception, but do not catch it.
nonexistentFunc();
// Still crashes Node.js

Contributed by Gerhard Stoebich - #​31257.

File system APIs
New function: fs.readv

This new function (along with its sync and promisified versions) takes an array
of ArrayBufferView elements and will write the data it reads sequentially to
the buffers.

Contributed by Sk Sajidul Kadir - #​32356.

Optional parameters in fs.read

A new overload is available for fs.read (along with its sync and promisified
versions), which allows to optionally pass any of the offset, length and
position parameters.

Contributed by Lucas Holmquist - #​31402.

Console groupIndentation option

The Console constructor (require('console').Console) now supports different group indentations.

This is useful in case you want different grouping width than 2 spaces.

const { Console } = require('console');
const customConsole = new Console({
  stdout: process.stdout,
  stderr: process.stderr,
  groupIndentation: 10
});

customConsole.log('foo');
// 'foo'
customConsole.group();
customConsole.log('foo');
//           'foo'

Contributed by rickyes - #​32964.

maxStringLength option for util.inspect()

It is now possible to limit the length of strings while inspecting objects.
This is possible by passing through the maxStringLength option similar to:

const { inspect } = require('util');

const string = inspect(['a'.repeat(1e8)], { maxStringLength: 10 });

console.log(string);
// "[ 'aaaaaaaaaa'... 99999990 more characters ]"

Contributed by rosaxny - #​32392.

Stable N-API release 6

The following N-API features are now stable as part of the N-API 6 release:

Stable diagnostic reports

The Diagnostic Report
feature is now stable and supports a new --report-compact flag to write the
reports in a compact, single-line JSON format, more easily consumable by log
processing systems than the default multi-line format designed for human
consumption.

Increase of the default server headers timeout

The default value of server.headersTimeout for http and https servers was
increased from 40000 to 60000 (60 seconds). This to accomodate for systems
like AWS ELB that have a timeout of 60 seconds.

Contributed by Tim Costa - #​30071.

Other changes
  • cli:
    • Added a --trace-sigint CLI flag that will print the current execution
      stack on SIGINT (legendecas) #​29207.
  • crypto:
    • Various crypto APIs now support Diffie-Hellman secrets (Tobias Nießen) #​31178.
  • dns:
    • Added the dns.ALL flag, that can be passed to dns.lookup() with dns.V4MAPPED
      to return resolved IPv6 addresses as well as IPv4 mapped IPv6 addresses (murgatroid99) #​32183.
  • module
    • Added a new experimental API to interact with Source Map V3 data (Benjamin Coe) #​31132.
  • worker:
    • Added support for passing a transferList along with workerData to the
      Worker constructor (Juan José Arboleda) #​32278.
Commits
Semver-minor commits
  • [a35e88caf5] - (SEMVER-MINOR) async_hooks: merge run and exit methods (Andrey Pechkurov) #​31950
  • [3eb34068a2] - (SEMVER-MINOR) async_hooks: prevent sync methods of async storage exiting outer context (Stephen Belanger) #​31950
  • [22db34caa7] - (SEMVER-MINOR) async_hooks: add sync enterWith to ALS (Stephen Belanger) #​31945
  • [16e8b11708] - (SEMVER-MINOR) async_hooks: introduce async-context API (Vladimir de Turckheim) #​26540
  • [f7adfcc1df] - (SEMVER-MINOR) async_hooks: add executionAsyncResource (Matteo Collina) #​30959
  • [984ae304f2] - (SEMVER-MINOR) build: make --without-report a no-op (Colin Ihrig) #​32242
  • [e67b97ee53] - (SEMVER-MINOR) cli: allow --huge-max-old-generation-size in NODE_OPTIONS (Anna Henningsen) #​32251
  • [154b18ffca] - (SEMVER-MINOR) console: support console constructor groupIndentation option (rickyes) #​32964
  • [40253cc1c8] - (SEMVER-MINOR) crypto: add crypto.diffieHellman (Tobias Nießen) #​31178
  • [1977136a19] - (SEMVER-MINOR) crypto: add DH support to generateKeyPair (Tobias Nießen) #​31178
  • [9f85585b13] - (SEMVER-MINOR) crypto: add key type 'dh' (Tobias Nießen) #​31178
  • [6ffe4ed3b5] - (SEMVER-MINOR) deps: upgrade to libuv 1.37.0 (Colin Ihrig) #​32866
  • [2d7a7592ec] - (SEMVER-MINOR) deps: upgrade to libuv 1.36.0 (Colin Ihrig) #​32866
  • [ae83f0f993] - (SEMVER-MINOR) deps: upgrade to libuv 1.35.0 (Colin Ihrig) #​32204
  • [b7d264edaf] - (SEMVER-MINOR) dns: add dns.ALL hints flag constant (murgatroid99) #​32183
  • [fd2486ea44] - (SEMVER-MINOR) doc: update stability of report features (Colin Ihrig) #​32242
  • [90d35adccd] - (SEMVER-MINOR) doc,lib,src,test: make --experimental-report a nop (Colin Ihrig) #​32242
  • [93226a5097] - (SEMVER-MINOR) esm: unflag --experimental-modules (Guy Bedford) #​29866
  • [8c497f8969] - (SEMVER-MINOR) events: allow monitoring error events (Gerhard Stoebich) #​30932
  • [a100709fa8] - (SEMVER-MINOR) fs: make parameters optional for readSync (Lucas Holmquist) #​32460
  • [6601fac06a] - (SEMVER-MINOR) fs: add fs.readv() (Sk Sajidul Kadir) #​32356
  • [16a913f702] - (SEMVER-MINOR) fs: make fs.read params optional (Lucas Holmquist) #​31402
  • [7260ede9e6] - (SEMVER-MINOR) fs: return first folder made by mkdir recursive (Benjamin Coe) #​31530
  • [a15e712ef6] - (SEMVER-MINOR) fs: allow overriding fs for streams (Robert Nagy) #​29083
  • [b5983213c1] - (SEMVER-MINOR) lib: add option to disable __proto__ (Gus Caplan) #​32279
  • [784fb8f08c] - (SEMVER-MINOR) module: add API for interacting with source maps (Benjamin Coe) #​31132
  • [e22d853c5d] - (SEMVER-MINOR) n-api: define release 6 (Gabriel Schulhof) #​32058
  • [f56c4dd933] - (SEMVER-MINOR) n-api: add napi_get_all_property_names (himself65) #​30006
  • [9eeee0d9f2] - (SEMVER-MINOR) perf_hooks: add property flags to GCPerformanceEntry (Kirill Fomichev) #​29547
  • [5ec9295034] - (SEMVER-MINOR) process: report ArrayBuffer memory in memoryUsage() (Anna Henningsen) #​31550
  • [de3603f0a6] - (SEMVER-MINOR) process: allow monitoring uncaughtException (Gerhard Stoebich) #​31257
  • [cf28afeeb6] - (SEMVER-MINOR) readline,repl: improve history up/previous (Ruben Bridgewater) #​31112
  • [a0eb3e4ed2] - (SEMVER-MINOR) readline,repl: skip history entries identical to the current line (Ruben Bridgewater) #​31112
  • [d7e153bddb] - (SEMVER-MINOR) readline,repl: add substring based history search (Ruben Bridgewater) #​31112
  • [936c85c309] - (SEMVER-MINOR) repl: implement reverse search (Ruben Bridgewater) #​31006
  • [bf9ff16412] - (SEMVER-MINOR) repl: add completion preview (Ruben Bridgewater) #​30907
  • [b14440fb5c] - (SEMVER-MINOR) repl: support previews by eager evaluating input (Ruben Bridgewater) #​30811
  • [0b310df532] - (SEMVER-MINOR) src: unconditionally include report feature (Colin Ihrig) #​32242
  • [394487e3e8] - (SEMVER-MINOR) src: create a getter for kernel version (Juan José Arboleda) #​31732
  • [4ec25b4865] - (SEMVER-MINOR) src,cli: support compact (one-line) JSON reports (Sam Roberts) #​32254
  • [b038ad91f5] - (SEMVER-MINOR) src,lib: make ^C print a JS stack trace (legendecas) #​29207
  • [6348fae690] - (SEMVER-MINOR) tls: expose SSL_export_keying_material (simon) #​31814
  • [6aa3869688] - (SEMVER-MINOR) util: add maxStrLength option to inspect function (unknown) #​32392
  • [eda6665799] - (SEMVER-MINOR) vm: add code cache support for SourceTextModule (Gus Caplan) #​31278
  • [5c81b8d814] - (SEMVER-MINOR) wasi: add returnOnExit option (Colin Ihrig) #​32101
  • [ca4e65273f] - (SEMVER-MINOR) worker: support MessagePort to workers data (Juan José Arboleda) #​32278
  • [217e3dfea6] - (SEMVER-MINOR) worker: allow URL in Worker constructor (Antoine du HAMEL) #​31664
  • [ab8f38b551] - (SEMVER-MINOR) worker: add ability to take heap snapshot from parent thread (Anna Henningsen) #​31569
Semver-patch commits

Renovate configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

@renovate renovate bot changed the title chore(deps): update node.js to v12.16.2 chore(deps): update node docker tag to v12.16.2 Apr 10, 2020
@renovate renovate bot changed the title chore(deps): update node docker tag to v12.16.2 chore(deps): update node docker tag to v12.16.3 Apr 29, 2020
@renovate renovate bot changed the title chore(deps): update node docker tag to v12.16.3 chore(deps): update node docker tag to v12.17.0 May 26, 2020
@renovate renovate bot changed the title chore(deps): update node docker tag to v12.17.0 chore(deps): update node docker tag to v12.18.0 Jun 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant