Fedora 39 Update: nodejs20-20.12.0-1.fc39

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--------------------------------------------------------------------------------
Fedora Update Notification
FEDORA-2024-31becf3519
2024-04-05 02:35:50.388260
--------------------------------------------------------------------------------

Name        : nodejs20
Product     : Fedora 39
Version     : 20.12.0
Release     : 1.fc39
URL         : http://nodejs.org/
Summary     : JavaScript runtime
Description :
Node.js is a platform built on Chrome's JavaScript runtime \
for easily building fast, scalable network applications. \
Node.js uses an event-driven, non-blocking I/O model that \
makes it lightweight and efficient, perfect for data-intensive \
real-time applications that run across distributed devices.}

--------------------------------------------------------------------------------
Update Information:

2024-03-26, Version 20.12.0 'Iron' (LTS), @richardlau
Notable Changes
crypto: implement crypto.hash()
This patch introduces a helper crypto.hash() that computes
a digest from the input at one shot. This can be 1.2-2x faster
than the object-based createHash() for smaller inputs (<= 5MB)
that are readily available (not streamed) and incur less memory
overhead since no intermediate objects will be created.
const crypto = require('node:crypto');
// Hashing a string and return the result as a hex-encoded string.
const string = 'Node.js';
// 10b3493287f831e81a438811a1ffba01f8cec4b7
console.log(crypto.hash('sha1', string));
Contributed by Joyee Cheung in #51044.
Loading and parsing environment variables
process.loadEnvFile(path):
Use this function to load the .env file. If no path is specified, it
automatically loads the .env file in the current directory. Example:
process.loadEnvFile().
Load a specific .env file by specifying its path. Example:
process.loadEnvFile('./development.env').
util.parseEnv(content):
Use this function to parse an existing string containing environment variable
assignments.
Example usage: require('node:util').parseEnv('HELLO=world').
Contributed by Yagiz Nizipli in #51476.
New connection attempt events
Three new events were added in the net.createConnection flow:
connectionAttempt: Emitted when a new connection attempt is established. In case
of Happy Eyeballs, this might emitted multiple times.
connectionAttemptFailed: Emitted when a connection attempt failed. In case of
Happy Eyeballs, this might emitted multiple times.
connectionAttemptTimeout: Emitted when a connection attempt timed out. In case
of Happy Eyeballs, this will not be emitted for the last attempt. This is not
emitted at all if Happy Eyeballs is not used.
Additionally, a previous bug has been fixed where a new connection attempt could
have been started after a previous one failed and after the connection was
destroyed by the user.
This led to a failed assertion.
Contributed by Paolo Insogna in #51045.
Permission Model changes
Node.js 20.12.0 comes with several fixes for the experimental permission model
and two new semver-minor commits.
We're adding a new flag --allow-addons to enable addon usage when using the
Permission Model.
$ node --experimental-permission --allow-addons
Contributed by Rafael Gonzaga in #51183
And relative paths are now supported through the --allow-fs-* flags.
Therefore, with this release one can use:
$ node --experimental-permission --allow-fs-read=./index.js
To give only read access to the entrypoint of the application.
Contributed by Rafael Gonzaga and Carlos Espa in #50758.
sea: support embedding assets
Users can now include assets by adding a key-path dictionary
to the configuration as the assets field. At build time, Node.js
would read the assets from the specified paths and bundle them into
the preparation blob. In the generated executable, users can retrieve
the assets using the sea.getAsset() and sea.getAssetAsBlob() API.
{
  "main": "/path/to/bundled/script.js",
  "output": "/path/to/write/the/generated/blob.blob",
  "assets": {
    "a.jpg": "/path/to/a.jpg",
    "b.txt": "/path/to/b.txt"
  }
}
The single-executable application can access the assets as follows:
const { getAsset } = require('node:sea');
// Returns a copy of the data in an ArrayBuffer
const image = getAsset('a.jpg');
// Returns a string decoded from the asset as UTF8.
const text = getAsset('b.txt', 'utf8');
// Returns a Blob containing the asset without copying.
const blob = getAssetAsBlob('a.jpg');
Contributed by Joyee Cheung in #50960.
Support configurable snapshot through --build-snapshot-config flag
We are adding a new flag --build-snapshot-config to configure snapshots through
a custom JSON configuration file.
$ node --build-snapshot-config=/path/to/myconfig.json
When using this flag, additional script files provided on the command line will
not be executed and instead be interpreted as regular command line arguments.
These changes were contributed by Joyee Cheung and Anna Henningsen in #50453
Text Styling
util.styleText(format, text): This function returns a formatted text considering
the format passed.
A new API has been created to format text based on util.inspect.colors, enabling
you to style text in different colors (such as red, blue, ...) and emphasis
(italic, bold, ...).
const { styleText } = require('node:util');
const errorMessage = styleText('red', 'Error! Error!');
console.log(errorMessage);
Contributed by Rafael Gonzaga in #51850.
vm: support using the default loader to handle dynamic import()
This patch adds support for using vm.constants.USE_MAIN_CONTEXT_DEFAULT_LOADER
as the
importModuleDynamically option in all vm APIs that take this option except
vm.SourceTextModule. This allows users to have a shortcut to support dynamic
import() in the compiled code without missing the compilation cache if they
don't need customization of the loading process. We emit an experimental warning
when the import() is actually handled by the default loader through this option
instead of requiring --experimental-vm-modules.
const { Script, constants } = require('node:vm');
const { resolve } = require('node:path');
const { writeFileSync } = require('node:fs');
// Write test.js and test.txt to the directory where the current script
// being run is located.
writeFileSync(resolve(__dirname, 'test.mjs'),
              'export const filename = "./test.json";');
writeFileSync(resolve(__dirname, 'test.json'),
              '{"hello": "world"}');
// Compile a script that loads test.mjs and then test.json
// as if the script is placed in the same directory.
const script = new Script(
  `(async function() {
    const { filename } = await import('./test.mjs');
    return import(filename, { with: { type: 'json' } })
  })();`,
  {
    filename: resolve(__dirname, 'test-with-default.js'),
    importModuleDynamically: constants.USE_MAIN_CONTEXT_DEFAULT_LOADER,
  });
// { default: { hello: 'world' } }
script.runInThisContext().then(console.log);
Contributed by Joyee Cheung in #51244.
Root certificates updated to NSS 3.98
Certificates added:
Telekom Security TLS ECC Root 2020
Telekom Security TLS RSA Root 2023
Certificates removed:
Security Communication Root CA
Updated dependencies
acorn updated to 8.11.3.
ada updated to 2.7.6.
base64 updated to 0.5.2.
brotli updated to 1.1.0.
c-ares updated to 1.27.0.
corepack updated to 0.25.2.
ICU updated to 74.2. Includes CLDR 44.1 and Unicode 15.1.
nghttp2 updated to 1.60.0.
npm updated to 10.5.0. Fixes a regression in signals not being passed onto child
processes.
simdutf8 updated to 4.0.8.
Timezone updated to 2024a.
zlib updated to 1.3.0.1-motley-40e35a7.
Include Provides: nodejs20-* for non-versioned packages.
--------------------------------------------------------------------------------
ChangeLog:

* Wed Mar 27 2024 Stephen Gallagher <sgallagh@xxxxxxxxxx> - 1:20.12.0-1
- Update to 20.12.0
* Thu Mar 21 2024 Stephen Gallagher <sgallagh@xxxxxxxxxx> - 1:20.11.1-3
- Have default versions provide the versioned name
* Thu Feb 15 2024 Stephen Gallagher <sgallagh@xxxxxxxxxx> - 1:20.11.1-2
- Temporarily add Node.js 20 as default for F41 and RHEL 11+
* Wed Feb 14 2024 Stephen Gallagher <sgallagh@xxxxxxxxxx> - 1:20.11.1-1
- Update to 20.11.1
* Wed Feb 14 2024 Lukas Javorsky <ljavorsk@xxxxxxxxxx> - 1:20.11.0-9
- Add missing bundled libraries to the spec template
* Wed Feb 14 2024 Lukas Javorsky <ljavorsk@xxxxxxxxxx> - 1:20.11.0-8
- Add helping script for missing bundled packages, fix typo
* Fri Feb  9 2024 Honza Horak <hhorak@xxxxxxxxxx> - 1:20.11.0-7
- Update licenses in the template spec
* Fri Feb  9 2024 Honza Horak <hhorak@xxxxxxxxxx> - 1:20.11.0-6
- Fix typos and add info where to find license-validate
* Fri Feb  9 2024 Honza Horak <hhorak@xxxxxxxxxx> - 1:20.11.0-5
- SPDX migration and introduction of bundled_licenses.py
* Wed Feb  7 2024 Zephyr Lykos <git@xxxxxxxxx> - 1:20.11.0-4
- Fix loading unbundled undici builtin (rhbz#2259320)
* Thu Jan 25 2024 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 1:20.11.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sun Jan 21 2024 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 1:20.11.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 10 2024 Stephen Gallagher <sgallagh@xxxxxxxxxx> - 1:20.11.0-1
- Update to 20.11.0
--------------------------------------------------------------------------------
References:

  [ 1 ] Bug #2257692 - nodejs20-20.12.0 is available
        https://bugzilla.redhat.com/show_bug.cgi?id=2257692
--------------------------------------------------------------------------------

This update can be installed with the "dnf" update program. Use
su -c 'dnf upgrade --advisory FEDORA-2024-31becf3519' at the command
line. For more information, refer to the dnf documentation available at
http://dnf.readthedocs.io/en/latest/command_ref.html#upgrade-command-label

All packages are signed with the Fedora Project GPG key. More details on the
GPG keys used by the Fedora Project can be found at
https://fedoraproject.org/keys
--------------------------------------------------------------------------------
--
_______________________________________________
package-announce mailing list -- package-announce@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-announce-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-announce@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Legacy]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]

  Powered by Linux