[api-minor] Update the minimum supported Node.js version to 18

This patch updates the minimum supported environments as follows:
 - Node.js 18, which was released on 2022-04-19; see https://en.wikipedia.org/wiki/Node.js#Releases

Note also that Node.js 16 will soon reach EOL, and thus no longer receive any security updates.
This commit is contained in:
Jonas Jenwald 2023-04-05 10:40:19 +02:00
parent eca40773b8
commit ed8be6f882
5 changed files with 9 additions and 41 deletions

View File

@ -80,7 +80,7 @@ const ENV_TARGETS = [
"Chrome >= 88",
"Firefox ESR",
"Safari >= 14.1",
"Node >= 16",
"Node >= 18",
"> 1%",
"not IE > 0",
"not dead",
@ -2168,7 +2168,6 @@ function packageJson() {
},
dependencies: {
"path2d-polyfill": "^2.0.1",
"web-streams-polyfill": "^3.2.1",
},
browser: {
canvas: false,
@ -2184,7 +2183,7 @@ function packageJson() {
url: DIST_REPO_URL,
},
engines: {
node: ">=16",
node: ">=18",
},
};

18
package-lock.json generated
View File

@ -62,14 +62,13 @@
"typogr": "^0.6.8",
"vinyl": "^3.0.0",
"vinyl-fs": "^3.0.3",
"web-streams-polyfill": "^3.2.1",
"webpack": "^5.80.0",
"webpack-stream": "^7.0.0",
"wintersmith": "^2.5.0",
"yargs": "^17.7.1"
},
"engines": {
"node": ">=16"
"node": ">=18"
}
},
"node_modules/@ampproject/remapping": {
@ -18622,15 +18621,6 @@
"node": ">=10.13.0"
}
},
"node_modules/web-streams-polyfill": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
"dev": true,
"engines": {
"node": ">= 8"
}
},
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
@ -33566,12 +33556,6 @@
"graceful-fs": "^4.1.2"
}
},
"web-streams-polyfill": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
"dev": true
},
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",

View File

@ -55,7 +55,6 @@
"typogr": "^0.6.8",
"vinyl": "^3.0.0",
"vinyl-fs": "^3.0.3",
"web-streams-polyfill": "^3.2.1",
"webpack": "^5.80.0",
"webpack-stream": "^7.0.0",
"wintersmith": "^2.5.0",
@ -69,7 +68,7 @@
"url": "git://github.com/mozilla/pdf.js.git"
},
"engines": {
"node": ">=16"
"node": ">=18"
},
"license": "Apache-2.0"
}

View File

@ -133,14 +133,10 @@ class WorkerMessageHandler {
// Ensure that (primarily) Node.js users won't accidentally attempt to use
// a non-translated/non-polyfilled build of the library, since that would
// quickly fail anyway because of missing functionality.
if (
(isNodeJS && typeof Path2D === "undefined") ||
typeof ReadableStream === "undefined"
) {
if (isNodeJS && typeof Path2D === "undefined") {
const partialMsg =
"The browser/environment lacks native support for critical " +
"functionality used by the PDF.js library " +
"(e.g. `Path2D` and/or `ReadableStream`); ";
"functionality used by the PDF.js library (e.g. `Path2D`); ";
if (isNodeJS) {
throw new Error(partialMsg + "please use a `legacy`-build instead.");

View File

@ -36,17 +36,7 @@ import { isNodeJS } from "./is_node.js";
polyfillPath2D(globalThis);
})();
// Support: Node.js<18.0.0
(function checkReadableStream() {
if (globalThis.ReadableStream || !isNodeJS) {
return;
}
globalThis.ReadableStream = __non_webpack_require__(
"web-streams-polyfill/dist/ponyfill.js"
).ReadableStream;
})();
// Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0
// Support: Chrome<92, Safari<15.4
(function checkArrayAt() {
if (Array.prototype.at) {
return;
@ -54,7 +44,7 @@ import { isNodeJS } from "./is_node.js";
require("core-js/es/array/at.js");
})();
// Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0
// Support: Chrome<92, Safari<15.4
(function checkTypedArrayAt() {
if (Uint8Array.prototype.at) {
return;
@ -62,7 +52,7 @@ import { isNodeJS } from "./is_node.js";
require("core-js/es/typed-array/at.js");
})();
// Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0
// Support: Chrome<98, Safari<15.4
(function checkStructuredClone() {
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("IMAGE_DECODERS")) {
// The current image decoders are synchronous, hence `structuredClone`