From 4fd232a1249d8a9b7dce9849e066f941e40fbc82 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Sat, 4 Jul 2026 14:30:41 +0200 Subject: [PATCH 1/3] Update dependencies to the most recent versions Note that the `prettier` update introduces a handful of formatting changes (see https://prettier.io/blog/2026/06/27/3.9.0). Moreover, the `tsc-alias` update requires explicitly defining the root URL in the compiler options now, otherwise it errors with `tsc-alias error: compilerOptions.rootDir is required with implicit baseUrl` (see https://github.com/justkey007/tsc-alias/pull/259/changes). --- examples/image_decoders/jpeg_viewer.mjs | 2 +- package-lock.json | 332 ++++++++++++--------- package.json | 28 +- src/core/calculate_md5.js | 2 +- src/core/calculate_sha256.js | 2 +- src/core/calculate_sha_other.js | 2 +- src/core/cff_parser.js | 2 +- src/core/cmap.js | 4 +- src/core/fonts.js | 4 +- src/core/glyf.js | 56 ++-- src/core/intersector.js | 28 +- src/core/jpg.js | 4 +- src/core/operator_list.js | 2 +- src/core/parser.js | 18 +- src/display/display_utils.js | 2 +- test/integration/reorganize_pages_spec.mjs | 2 +- test/types/tsconfig.json | 1 + tsconfig.json | 1 + web/pdf_link_service.js | 12 +- web/pdf_thumbnail_viewer.js | 6 +- web/pdf_viewer.js | 6 +- 21 files changed, 279 insertions(+), 237 deletions(-) diff --git a/examples/image_decoders/jpeg_viewer.mjs b/examples/image_decoders/jpeg_viewer.mjs index e196621de6dbf..50783f0e6f978 100644 --- a/examples/image_decoders/jpeg_viewer.mjs +++ b/examples/image_decoders/jpeg_viewer.mjs @@ -48,7 +48,7 @@ const jpegData = jpegImage.getData({ // const imageData = jpegCtx.createImageData(width, height); const imageBytes = imageData.data; -for (let j = 0, k = 0, jj = width * height * 4; j < jj; ) { +for (let j = 0, k = 0, jj = width * height * 4; j < jj;) { imageBytes[j++] = jpegData[k++]; imageBytes[j++] = jpegData[k++]; imageBytes[j++] = jpegData[k++]; diff --git a/package-lock.json b/package-lock.json index 734c763a25416..8870662f0c176 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,28 +10,28 @@ "@babel/core": "^8.0.1", "@babel/preset-env": "^8.0.2", "@babel/runtime": "^8.0.0", - "@eslint/json": "^2.0.0", + "@eslint/json": "^2.0.1", "@fluent/bundle": "^0.19.1", "@fluent/dom": "^0.10.2", "@metalsmith/layouts": "^3.0.0", "@metalsmith/markdown": "^1.10.0", - "@napi-rs/canvas": "^1.0.0", - "@types/node": "^26.0.0", - "autoprefixer": "^10.5.1", + "@napi-rs/canvas": "^1.0.2", + "@types/node": "^26.1.0", + "autoprefixer": "^10.5.2", "babel-loader": "^10.1.1", "babel-plugin-istanbul": "^8.0.2", "babel-plugin-polyfill-corejs3": "^1.0.0", "cached-iterable": "^0.3.0", - "caniuse-lite": "^1.0.30001799", + "caniuse-lite": "^1.0.30001800", "core-js": "^3.49.0", - "eslint": "^10.5.0", + "eslint": "^10.6.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-import-x": "^4.17.0", + "eslint-plugin-import-x": "^4.17.1", "eslint-plugin-jasmine": "^4.2.2", "eslint-plugin-no-unsanitized": "^4.1.5", "eslint-plugin-perfectionist": "^5.9.1", "eslint-plugin-prettier": "^5.5.6", - "eslint-plugin-regexp": "^3.1.0", + "eslint-plugin-regexp": "^3.1.1", "eslint-plugin-unicorn": "^68.0.0", "globals": "^17.7.0", "gulp": "^5.0.1", @@ -52,20 +52,20 @@ "metalsmith-html-relative": "^2.0.12", "ordered-read-streams": "^2.0.0", "pngjs": "^7.0.0", - "postcss": "^8.5.15", + "postcss": "^8.5.16", "postcss-discard-comments": "^8.0.1", "postcss-values-parser": "^8.0.0", - "prettier": "^3.8.4", - "puppeteer": "^25.2.0", - "stylelint": "^17.13.0", + "prettier": "^3.9.4", + "puppeteer": "^25.3.0", + "stylelint": "^17.14.0", "stylelint-prettier": "^5.0.3", "svglint": "^4.2.1", "terser-webpack-plugin": "^5.6.1", - "tsc-alias": "^1.8.17", + "tsc-alias": "^1.9.0", "ttest": "^4.0.0", "typescript": "^6.0.3", "vinyl": "^3.0.1", - "webpack": "^5.107.2", + "webpack": "^5.108.3", "webpack-stream": "^7.0.0" }, "engines": { @@ -3282,14 +3282,14 @@ } }, "node_modules/@eslint/json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@eslint/json/-/json-2.0.0.tgz", - "integrity": "sha512-P32ZJMIopNWQd1SFhd0tgjfA/hgzUuVSqHmMi2273QaLWHWimXq6V+qL4DNKnjGzO/aNECtYW+rEJ/pWB6uP+w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-2.0.1.tgz", + "integrity": "sha512-Thz2j92ceUF3Bq/0TuWb3MWn3Z+Cwc8k5ptF0fakl2D4Mp8mSx07Xr1aQM4R5NoihzarWUdxfOmQ8DesGy4jOg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.1", + "@eslint/plugin-kit": "^0.7.2", "@humanwhocodes/momoa": "^3.3.10", "natural-compare": "^1.4.0" }, @@ -3648,9 +3648,9 @@ } }, "node_modules/@napi-rs/canvas": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-1.0.0.tgz", - "integrity": "sha512-Jqxcy1XOIqj+lH9sl1GT+il6GR3uQv13vI2mrwubP3uT8Olak2ClDrK2RnxlQKjwv8BRr4b3ug0YR7c6hBX8wg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-1.0.2.tgz", + "integrity": "sha512-EYEqlMYaCbpZDz+IgDH5xp9MTd3ui4dmGqbQYryhMLnSRxrhHKq5KQWHHKxFUcEP4Hp8/BWgvqXocX4j7iSbOQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -3664,23 +3664,23 @@ "url": "https://github.com/sponsors/Brooooooklyn" }, "optionalDependencies": { - "@napi-rs/canvas-android-arm64": "1.0.0", - "@napi-rs/canvas-darwin-arm64": "1.0.0", - "@napi-rs/canvas-darwin-x64": "1.0.0", - "@napi-rs/canvas-linux-arm-gnueabihf": "1.0.0", - "@napi-rs/canvas-linux-arm64-gnu": "1.0.0", - "@napi-rs/canvas-linux-arm64-musl": "1.0.0", - "@napi-rs/canvas-linux-riscv64-gnu": "1.0.0", - "@napi-rs/canvas-linux-x64-gnu": "1.0.0", - "@napi-rs/canvas-linux-x64-musl": "1.0.0", - "@napi-rs/canvas-win32-arm64-msvc": "1.0.0", - "@napi-rs/canvas-win32-x64-msvc": "1.0.0" + "@napi-rs/canvas-android-arm64": "1.0.2", + "@napi-rs/canvas-darwin-arm64": "1.0.2", + "@napi-rs/canvas-darwin-x64": "1.0.2", + "@napi-rs/canvas-linux-arm-gnueabihf": "1.0.2", + "@napi-rs/canvas-linux-arm64-gnu": "1.0.2", + "@napi-rs/canvas-linux-arm64-musl": "1.0.2", + "@napi-rs/canvas-linux-riscv64-gnu": "1.0.2", + "@napi-rs/canvas-linux-x64-gnu": "1.0.2", + "@napi-rs/canvas-linux-x64-musl": "1.0.2", + "@napi-rs/canvas-win32-arm64-msvc": "1.0.2", + "@napi-rs/canvas-win32-x64-msvc": "1.0.2" } }, "node_modules/@napi-rs/canvas-android-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-1.0.0.tgz", - "integrity": "sha512-3hNKJObUK7JsCF9aJlVCs1J0/KE/gGfZNeK8MO1ge6bB3aicr5walGme9t9No1f/oyk9GgvdAT/rjSdsx3gbIw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-1.0.2.tgz", + "integrity": "sha512-IMXKVQod0ol4vt3gmClUfXz4JAgHYESGPCUqmH3lQxBoL0K/2greJaQE1HVBVxWWFKfLc4OLZVdxg7kXVyXv+g==", "cpu": [ "arm64" ], @@ -3699,9 +3699,9 @@ } }, "node_modules/@napi-rs/canvas-darwin-arm64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-1.0.0.tgz", - "integrity": "sha512-ZIja19/BiGz2puhki+WUYSRriwFeFJ8Mi9eK3hZdSS85w4Y60cuEAJVhMCfKwswQkKkUtrnzdKMBuO7TupvexA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-1.0.2.tgz", + "integrity": "sha512-Sc8tPi6cF+5lqOzCCKFALJHhDiRwyMzTPYm3bbhdXsOunU0lQO5f05ucyOzN2r55I23Hg5bsjH63uSCvWp3EgQ==", "cpu": [ "arm64" ], @@ -3720,9 +3720,9 @@ } }, "node_modules/@napi-rs/canvas-darwin-x64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-1.0.0.tgz", - "integrity": "sha512-hImggWc82jqZVpEsFR9S7PE9OQYjq/H/D7vwCGB6X1jRH+UVBP1+1niJTPBOat1B154T6GKK7/kcFtoWgjgFzQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-1.0.2.tgz", + "integrity": "sha512-niDXZ9LhKB1zLrUdYB64RHQFDGz9rr0eGx061qtJJU3U20EMMIx28ADF5fVYbhtOgkWQrBjFicfaye1yM0U62A==", "cpu": [ "x64" ], @@ -3741,9 +3741,9 @@ } }, "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-1.0.0.tgz", - "integrity": "sha512-hlJRy6d+kWLKVOG/+1rEvNQVURZ0DxxRPJsLmEWwhwiXZUJc0BF5o9esALHSEP4CoJK4wChRtj3hnyBgVx2oWA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-1.0.2.tgz", + "integrity": "sha512-sgatQL9JxGRH/Amzcvu0P3t8Am3duou74CisfuJ41Dwt8cWy723z/9KZ8LlgmxfypEwEZxSTNFJtU8d281lmhQ==", "cpu": [ "arm" ], @@ -3762,9 +3762,9 @@ } }, "node_modules/@napi-rs/canvas-linux-arm64-gnu": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-1.0.0.tgz", - "integrity": "sha512-5Hru4T3RXkosRQafcjelv7AUzw9mXqmGYsxnzeDDOWveFCJyEPMSJltvGCM+jfH98seOCbfwm9KyFg6Jm5FhAA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-1.0.2.tgz", + "integrity": "sha512-dgKuX0peF3xwY6ZF5QxGS4wbfDqpoFAJYXiLSp+guZKARQUKMkRqZSDrXKj7nfrec3UCMzC0PFCPte0ES98AiA==", "cpu": [ "arm64" ], @@ -3786,9 +3786,9 @@ } }, "node_modules/@napi-rs/canvas-linux-arm64-musl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-1.0.0.tgz", - "integrity": "sha512-LTUl9jS8WsLSUGaxQZKQkxfluOJRpgvBuxxdM4pYcjib+di8AU4OzQc6+L6SzGMLcKc9H0RAjojRatBhTMqYdg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-1.0.2.tgz", + "integrity": "sha512-qwROoDIC9upfvDoRLuPn2aNg9CGW1x0Ygr4k2Or+8paA9d0qBLwk87U+g8KQpoOviKoPoiwl97kvBYuYD7qZoA==", "cpu": [ "arm64" ], @@ -3810,9 +3810,9 @@ } }, "node_modules/@napi-rs/canvas-linux-riscv64-gnu": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-1.0.0.tgz", - "integrity": "sha512-Iz931SAZf+WVDzpjk52Q3ffW3zw0YflFwEZMgs036Wfu1kX/LrwT9wGjsuSqyduqefUkl91/vTdAjn8hQu5ezA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-1.0.2.tgz", + "integrity": "sha512-fXRjnPihdnbO6qy1QQOgxAonb68A0TCEG7rj1x7v7rxNElsE8EVIKIEUTvyDtU+sthYSbX+8e7g3oZiLGnOmxw==", "cpu": [ "riscv64" ], @@ -3834,9 +3834,9 @@ } }, "node_modules/@napi-rs/canvas-linux-x64-gnu": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-1.0.0.tgz", - "integrity": "sha512-pFEQ5eFK4JusgN1K6KkO9DKP/Hi1WMJOkF8Ch03/khTc4bFbCKkCCsJG4YcOMOW9bI4XbT2/eMAWxhO0xaWgPA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-1.0.2.tgz", + "integrity": "sha512-nPR97DXhbWIAy7yazF3jc06kEPMqYMLmPzFOVNlwKPfIoSChnI+x7dc0hTLaihz3jxrjL6j4BbA7earxfx4X3g==", "cpu": [ "x64" ], @@ -3858,9 +3858,9 @@ } }, "node_modules/@napi-rs/canvas-linux-x64-musl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-1.0.0.tgz", - "integrity": "sha512-jnvr8NrLHiZ3NCiOKWqDbkI4Ah+QDrqtZ+sddPZBltEb1mQ2coSvCSJYfict+oAwcm0c970oTmVySpjKP/lnaA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-1.0.2.tgz", + "integrity": "sha512-l7zZY5+jL5qnBZtDz7CoBtY6p7EkHu422g/0zWwrOrzIwWyWxZFRfZZORY1UG7YApymPLx+UbOkN206xXn/c1Q==", "cpu": [ "x64" ], @@ -3882,9 +3882,9 @@ } }, "node_modules/@napi-rs/canvas-win32-arm64-msvc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-arm64-msvc/-/canvas-win32-arm64-msvc-1.0.0.tgz", - "integrity": "sha512-y2j9/Gfd5joqiqxdP/L1smqjQ+uAx3C4N0EC7bDHrnZEEH8ToM/OC5p3uHvtj4Lq591aHj+ArL01UDLNwT5HgQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-arm64-msvc/-/canvas-win32-arm64-msvc-1.0.2.tgz", + "integrity": "sha512-yE0koHCFF4PIbMc2o2SEALhnipz7WBISh5glLvQiomtIoCcW0np3H4Lw93ceJAfJttTTeIIWFbwH84F7EVzjMQ==", "cpu": [ "arm64" ], @@ -3903,9 +3903,9 @@ } }, "node_modules/@napi-rs/canvas-win32-x64-msvc": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-1.0.0.tgz", - "integrity": "sha512-qwdhh9N6Gge/hC4pL9S1tQp0iKwhSl/dYjg7+RGp9k26iRGRi5MqqUyKGOXIWli0zOcuy5Y2wIH/jk2ry6i/jA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-1.0.2.tgz", + "integrity": "sha512-okU8/t2foV6C31n0GtvEMbfD5rOFc70+/6xUNME9Guld29sgSOIGUEDScAWFlcP3k5TYQRl9TNkwJEEjh15w8A==", "cpu": [ "x64" ], @@ -4012,9 +4012,9 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.5.tgz", - "integrity": "sha512-xYXNuEQmHNIPWWcbL/skf2KF7seyp7c1xmKFRk3wmdFx7VwBsKVrtOLKs8ecaezsKPsWeF1YsgwIiElAscaryA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.6.tgz", + "integrity": "sha512-B/gKoqlFkzhvzsI6jo9K1cZz9o5ypviVv/xu8CwA4grZzyVwN+XfkT+tu8T1zrauuEXv6VhS2oGX+6NL95WcKA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4028,11 +4028,15 @@ "node": ">=22.12.0" }, "peerDependencies": { - "proxy-agent": ">=8.0.1" + "proxy-agent": ">=8.0.1", + "yauzl": "^2.10.0 || ^3.4.0" }, "peerDependenciesMeta": { "proxy-agent": { "optional": true + }, + "yauzl": { + "optional": true } } }, @@ -4135,9 +4139,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.0.tgz", - "integrity": "sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==", + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.0.tgz", + "integrity": "sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==", "dev": true, "license": "MIT", "dependencies": { @@ -5063,9 +5067,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.5.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.1.tgz", - "integrity": "sha512-jwM2pcTuCWUoN70FEvf5XrXyDbUgRURK4FnU8v0jWZZYU/KkVvN9T33mu1sVLFY9JW3kTWzKheEpn6xYLRc/VA==", + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.2.tgz", + "integrity": "sha512-rD5t5DwOjJdmSORcTq64j8MawTC+tbQ+HHqjR4NDumamy/ambn1UJrlKL+KdwujWxMkFjPM3pPHOEA9tl4767Q==", "dev": true, "funding": [ { @@ -5478,9 +5482,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001799", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", - "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", + "version": "1.0.30001800", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz", + "integrity": "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==", "dev": true, "funding": [ { @@ -5910,9 +5914,9 @@ "license": "MIT" }, "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", "dev": true, "license": "MIT", "dependencies": { @@ -5944,9 +5948,9 @@ "license": "Python-2.0" }, "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", - "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", "dev": true, "funding": [ { @@ -6295,9 +6299,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.22.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.0.tgz", - "integrity": "sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==", + "version": "5.24.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz", + "integrity": "sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw==", "dev": true, "license": "MIT", "dependencies": { @@ -6398,9 +6402,9 @@ } }, "node_modules/eslint": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.5.0.tgz", - "integrity": "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.6.0.tgz", + "integrity": "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==", "dev": true, "license": "MIT", "workspaces": [ @@ -6498,9 +6502,9 @@ } }, "node_modules/eslint-plugin-import-x": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.17.0.tgz", - "integrity": "sha512-aM7V25Bg6YuYxtEhwjafzfS0NTMds1D2PMQI0K4KqJxQJRtkP4CO+MQTWRdBq2qAnmPxTxLevhXUBtByxJqS1w==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.17.1.tgz", + "integrity": "sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==", "dev": true, "license": "MIT", "dependencies": { @@ -6617,9 +6621,9 @@ } }, "node_modules/eslint-plugin-regexp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-3.1.0.tgz", - "integrity": "sha512-qGXIC3DIKZHcK1H9A9+Byz9gmndY6TTSRkSMTZpNXdyCw2ObSehRgccJv35n9AdUakEjQp5VFNLas6BMXizCZg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-regexp/-/eslint-plugin-regexp-3.1.1.tgz", + "integrity": "sha512-MxR5nqoQCtVWmJwia0D2+NlXX1xzdpkslsVOZLEYQ4PQWEaL65PCZXURxaBc3lPnkNFpNxzMIRmYVxdl8giXRA==", "dev": true, "license": "MIT", "dependencies": { @@ -7346,13 +7350,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/glob-watcher": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", @@ -9307,6 +9304,67 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/minimizer-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, "node_modules/minipass": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", @@ -9942,9 +10000,9 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", "dev": true, "funding": [ { @@ -10104,9 +10162,9 @@ } }, "node_modules/prettier": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", - "integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.4.tgz", + "integrity": "sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==", "dev": true, "license": "MIT", "bin": { @@ -10177,18 +10235,18 @@ } }, "node_modules/puppeteer": { - "version": "25.2.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.2.0.tgz", - "integrity": "sha512-JPMPd/2+lgdkLhEyPqH895oR3ccMt1wSra6oewgjjTuLmo2s9zPZpKXQTFEIiA/fMKpiL01kjU3+2zPEReRWNg==", + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.3.0.tgz", + "integrity": "sha512-O1tx8S315aw8eI99HZ5ZNcVEzJ9+jKF//eO5UvfZ3cXJ6okZ5sX3Y50u7DJaM+ewEK4LqXP068tBhfRaWikj+g==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.5", + "@puppeteer/browsers": "3.0.6", "chromium-bidi": "16.0.1", "devtools-protocol": "0.0.1638949", "lilconfig": "^3.1.3", - "puppeteer-core": "25.2.0", + "puppeteer-core": "25.3.0", "typed-query-selector": "^2.12.2" }, "bin": { @@ -10199,13 +10257,13 @@ } }, "node_modules/puppeteer-core": { - "version": "25.2.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.2.0.tgz", - "integrity": "sha512-jGhuGAlkgOcbyGRc0Cm9b/y4vvqoxhyAyl6a1diVe8F3sHsgTaQ60QQT5F3rGegTZV3prysgHVc+0LsvPZo3GA==", + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.3.0.tgz", + "integrity": "sha512-fm+wpUr2oigH1PXZvwgATrM2tYWHMDG8ASzTEe9uukCye4X5Ldx1K5BTHPFKITrIWvQQAQ256d1NpbEveBcKjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "3.0.5", + "@puppeteer/browsers": "3.0.6", "chromium-bidi": "16.0.1", "devtools-protocol": "0.0.1638949", "typed-query-selector": "^2.12.2", @@ -11050,9 +11108,9 @@ "license": "MIT" }, "node_modules/stylelint": { - "version": "17.13.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.13.0.tgz", - "integrity": "sha512-G1WYzMerp7ihOaIe9VJCHLt12MoAD2QLf1AFerYP37+BCRBUK5UCpq8e/mN+zCIaJPKQcaxhE4WlPmqdiOx/gw==", + "version": "17.14.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.0.tgz", + "integrity": "sha512-8xkHPpdqYryeIsOgfsYTmr6cIeC4nLYWk5S8BPxpodq8mIuepggkMljsHewWfuAjj/+qpRKou2QerhjMH3iasg==", "dev": true, "funding": [ { @@ -11068,13 +11126,13 @@ "dependencies": { "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.1.4", + "@csstools/css-syntax-patches-for-csstree": "^1.1.5", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", "@csstools/selector-resolve-nested": "^4.0.0", "@csstools/selector-specificity": "^6.0.0", "colord": "^2.9.3", - "cosmiconfig": "^9.0.1", + "cosmiconfig": "^9.0.2", "css-functions-list": "^3.3.3", "css-tree": "^3.2.1", "debug": "^4.4.3", @@ -11094,7 +11152,7 @@ "picocolors": "^1.1.1", "postcss": "^8.5.15", "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.1", + "postcss-selector-parser": "^7.1.4", "postcss-value-parser": "^4.2.0", "string-width": "^8.2.1", "supports-hyperlinks": "^4.4.0", @@ -12042,9 +12100,9 @@ } }, "node_modules/tsc-alias": { - "version": "1.8.17", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.17.tgz", - "integrity": "sha512-EIduCZHqbNwPm8BZYfq1aD7BQ697A4h6uSGMOFQfYGoQwfrYFTKwYfy9Bv42YxHkduVBcn9Zx0DkX111DKskyg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.9.0.tgz", + "integrity": "sha512-IZrCInovKxVCwXyKhcdr/HaxSYugKT0w4zyktOE/4115Nzo6gbp/NhkaEeyOG0/H7QoTeXtv+3UHffBYta9oWw==", "dev": true, "license": "MIT", "dependencies": { @@ -12499,13 +12557,12 @@ } }, "node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "dev": true, "license": "MIT", "dependencies": { - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { @@ -12520,9 +12577,9 @@ "license": "Apache-2.0" }, "node_modules/webpack": { - "version": "5.107.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz", - "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", + "version": "5.108.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.3.tgz", + "integrity": "sha512-hOpaCHmQVVY66IVTjofnH14IgSdmod2aquSGHGuYig/OIdWge01Hk2Wt988DZcwXumFUT4+FvJY5N+ikl8o/ww==", "dev": true, "license": "MIT", "dependencies": { @@ -12535,19 +12592,18 @@ "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.22.0", + "enhanced-resolve": "^5.22.2", "es-module-lexer": "^2.1.0", "eslint-scope": "5.1.1", "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "loader-runner": "^4.3.2", "mime-db": "^1.54.0", + "minimizer-webpack-plugin": "^5.6.1", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.5.0", - "watchpack": "^2.5.1", + "watchpack": "^2.5.2", "webpack-sources": "^3.5.0" }, "bin": { diff --git a/package.json b/package.json index 18e5054885535..3b0b41f9bad51 100644 --- a/package.json +++ b/package.json @@ -5,28 +5,28 @@ "@babel/core": "^8.0.1", "@babel/preset-env": "^8.0.2", "@babel/runtime": "^8.0.0", - "@eslint/json": "^2.0.0", + "@eslint/json": "^2.0.1", "@fluent/bundle": "^0.19.1", "@fluent/dom": "^0.10.2", "@metalsmith/layouts": "^3.0.0", "@metalsmith/markdown": "^1.10.0", - "@napi-rs/canvas": "^1.0.0", - "@types/node": "^26.0.0", - "autoprefixer": "^10.5.1", + "@napi-rs/canvas": "^1.0.2", + "@types/node": "^26.1.0", + "autoprefixer": "^10.5.2", "babel-loader": "^10.1.1", "babel-plugin-istanbul": "^8.0.2", "babel-plugin-polyfill-corejs3": "^1.0.0", "cached-iterable": "^0.3.0", - "caniuse-lite": "^1.0.30001799", + "caniuse-lite": "^1.0.30001800", "core-js": "^3.49.0", - "eslint": "^10.5.0", + "eslint": "^10.6.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-import-x": "^4.17.0", + "eslint-plugin-import-x": "^4.17.1", "eslint-plugin-jasmine": "^4.2.2", "eslint-plugin-no-unsanitized": "^4.1.5", "eslint-plugin-perfectionist": "^5.9.1", "eslint-plugin-prettier": "^5.5.6", - "eslint-plugin-regexp": "^3.1.0", + "eslint-plugin-regexp": "^3.1.1", "eslint-plugin-unicorn": "^68.0.0", "globals": "^17.7.0", "gulp": "^5.0.1", @@ -47,20 +47,20 @@ "metalsmith-html-relative": "^2.0.12", "ordered-read-streams": "^2.0.0", "pngjs": "^7.0.0", - "postcss": "^8.5.15", + "postcss": "^8.5.16", "postcss-discard-comments": "^8.0.1", "postcss-values-parser": "^8.0.0", - "prettier": "^3.8.4", - "puppeteer": "^25.2.0", - "stylelint": "^17.13.0", + "prettier": "^3.9.4", + "puppeteer": "^25.3.0", + "stylelint": "^17.14.0", "stylelint-prettier": "^5.0.3", "svglint": "^4.2.1", "terser-webpack-plugin": "^5.6.1", - "tsc-alias": "^1.8.17", + "tsc-alias": "^1.9.0", "ttest": "^4.0.0", "typescript": "^6.0.3", "vinyl": "^3.0.1", - "webpack": "^5.107.2", + "webpack": "^5.108.3", "webpack-stream": "^7.0.0" }, "repository": { diff --git a/src/core/calculate_md5.js b/src/core/calculate_md5.js index 4f09b0a1b6efc..a62e9bcbd08cf 100644 --- a/src/core/calculate_md5.js +++ b/src/core/calculate_md5.js @@ -75,7 +75,7 @@ function calculateMD5(data, offset, length) { i += 3; const w = new Int32Array(16); const { k, r } = PARAMS; - for (i = 0; i < paddedLength; ) { + for (i = 0; i < paddedLength;) { for (j = 0; j < 16; ++j, i += 4) { w[j] = padded[i] | diff --git a/src/core/calculate_sha256.js b/src/core/calculate_sha256.js index 29af39d286e01..09ae9b431e39f 100644 --- a/src/core/calculate_sha256.js +++ b/src/core/calculate_sha256.js @@ -96,7 +96,7 @@ function calculateSHA256(data, offset, length) { const w = new Uint32Array(64); const { k } = PARAMS; // for each 512 bit block - for (i = 0; i < paddedLength; ) { + for (i = 0; i < paddedLength;) { for (j = 0; j < 16; ++j) { w[j] = (padded[i] << 24) | diff --git a/src/core/calculate_sha_other.js b/src/core/calculate_sha_other.js index be794d01ce616..9a6f80ca154e5 100644 --- a/src/core/calculate_sha_other.js +++ b/src/core/calculate_sha_other.js @@ -303,7 +303,7 @@ function calculateSHA512(data, offset, length, mode384 = false) { let tmp3; // for each 1024 bit block - for (i = 0; i < paddedLength; ) { + for (i = 0; i < paddedLength;) { for (j = 0; j < 16; ++j) { w[j].high = (padded[i] << 24) | diff --git a/src/core/cff_parser.js b/src/core/cff_parser.js index 3ecfe12485a70..1ed1e236a0af4 100644 --- a/src/core/cff_parser.js +++ b/src/core/cff_parser.js @@ -546,7 +546,7 @@ class CFFParser { let length = data.length; - for (let j = 0; j < length; ) { + for (let j = 0; j < length;) { const value = data[j++]; let validationCommand = null; if (value === 12) { diff --git a/src/core/cmap.js b/src/core/cmap.js index 5ef35ff8fde39..35238e5b1d8ed 100644 --- a/src/core/cmap.js +++ b/src/core/cmap.js @@ -326,7 +326,7 @@ class CMap { c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0; // Check each codespace range to see if it falls within. const codespaceRange = codespaceRanges[n]; - for (let k = 0, kk = codespaceRange.length; k < kk; ) { + for (let k = 0, kk = codespaceRange.length; k < kk;) { const low = codespaceRange[k++]; const high = codespaceRange[k++]; if (c >= low && c <= high) { @@ -345,7 +345,7 @@ class CMap { for (let n = 0, nn = codespaceRanges.length; n < nn; n++) { // Check each codespace range to see if it falls within. const codespaceRange = codespaceRanges[n]; - for (let k = 0, kk = codespaceRange.length; k < kk; ) { + for (let k = 0, kk = codespaceRange.length; k < kk;) { const low = codespaceRange[k++]; const high = codespaceRange[k++]; if (charCode >= low && charCode <= high) { diff --git a/src/core/fonts.js b/src/core/fonts.js index c1a213fed0d25..c0db0c432c5af 100644 --- a/src/core/fonts.js +++ b/src/core/fonts.js @@ -550,7 +550,7 @@ function getRanges(glyphs, toUnicodeExtraMap, numGlyphs) { // Split the sorted codes into ranges. const ranges = []; const length = codes.length; - for (let n = 0; n < length; ) { + for (let n = 0; n < length;) { const start = codes[n].fontCharCode; const codeIndices = [codes[n].glyphId]; ++n; @@ -2449,7 +2449,7 @@ class Font { let inFDEF = false, ifLevel = 0, inELSE = 0; - for (let ii = data.length; i < ii; ) { + for (let ii = data.length; i < ii;) { const op = data[i++]; // The TrueType instruction set docs can be found at // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html diff --git a/src/core/glyf.js b/src/core/glyf.js index 29a3e68950797..6b973fc0cbd12 100644 --- a/src/core/glyf.js +++ b/src/core/glyf.js @@ -610,24 +610,20 @@ class CompositeGlyph { size += 2; if (this.flags & 2) { // Arguments are signed. - if ( - !( - this.argument1 >= -128 && - this.argument1 <= 127 && - this.argument2 >= -128 && - this.argument2 <= 127 - ) - ) { + if (!( + this.argument1 >= -128 && + this.argument1 <= 127 && + this.argument2 >= -128 && + this.argument2 <= 127 + )) { size += 2; } - } else if ( - !( - this.argument1 >= 0 && - this.argument1 <= 255 && - this.argument2 >= 0 && - this.argument2 <= 255 - ) - ) { + } else if (!( + this.argument1 >= 0 && + this.argument1 <= 255 && + this.argument2 >= 0 && + this.argument2 <= 255 + )) { size += 2; } @@ -639,24 +635,20 @@ class CompositeGlyph { if (this.flags & ARGS_ARE_XY_VALUES) { // Arguments are signed. - if ( - !( - this.argument1 >= -128 && - this.argument1 <= 127 && - this.argument2 >= -128 && - this.argument2 <= 127 - ) - ) { + if (!( + this.argument1 >= -128 && + this.argument1 <= 127 && + this.argument2 >= -128 && + this.argument2 <= 127 + )) { this.flags |= ARG_1_AND_2_ARE_WORDS; } - } else if ( - !( - this.argument1 >= 0 && - this.argument1 <= 255 && - this.argument2 >= 0 && - this.argument2 <= 255 - ) - ) { + } else if (!( + this.argument1 >= 0 && + this.argument1 <= 255 && + this.argument2 >= 0 && + this.argument2 <= 255 + )) { this.flags |= ARG_1_AND_2_ARE_WORDS; } diff --git a/src/core/intersector.js b/src/core/intersector.js index 687a15249b979..0af5187cefebe 100644 --- a/src/core/intersector.js +++ b/src/core/intersector.js @@ -76,28 +76,24 @@ class SingleIntersector { if (this.#lastIntersectingQuadIndex >= 0) { const i = this.#lastIntersectingQuadIndex; - if ( - !( - quadPoints[i] >= x || - quadPoints[i + 2] <= x || - quadPoints[i + 5] >= y || - quadPoints[i + 1] <= y - ) - ) { + if (!( + quadPoints[i] >= x || + quadPoints[i + 2] <= x || + quadPoints[i + 5] >= y || + quadPoints[i + 1] <= y + )) { return true; } this.#lastIntersectingQuadIndex = -1; } for (let i = 0, ii = quadPoints.length; i < ii; i += 8) { - if ( - !( - quadPoints[i] >= x || - quadPoints[i + 2] <= x || - quadPoints[i + 5] >= y || - quadPoints[i + 1] <= y - ) - ) { + if (!( + quadPoints[i] >= x || + quadPoints[i + 2] <= x || + quadPoints[i + 5] >= y || + quadPoints[i + 1] <= y + )) { this.#lastIntersectingQuadIndex = i; return true; } diff --git a/src/core/jpg.js b/src/core/jpg.js index 84ef0a5c7992f..71b75bed16c1a 100644 --- a/src/core/jpg.js +++ b/src/core/jpg.js @@ -1046,7 +1046,7 @@ class JpegImage { case 0xffc4: // DHT (Define Huffman Tables) const huffmanLength = view.getUint16(offset); offset += 2; - for (i = 2; i < huffmanLength; ) { + for (i = 2; i < huffmanLength;) { const huffmanTableSpec = data[offset++]; const codeLengths = new Uint8Array(16); let codeLengthSum = 0; @@ -1272,7 +1272,7 @@ class JpegImage { } if (transform) { - for (i = 0; i < dataLength; ) { + for (i = 0; i < dataLength;) { for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1]; } diff --git a/src/core/operator_list.js b/src/core/operator_list.js index 5f679a3f6e999..8b2111420e8ef 100644 --- a/src/core/operator_list.js +++ b/src/core/operator_list.js @@ -524,7 +524,7 @@ addState( const newBBox = F32_BBOX_INIT.slice(); Util.axialAlignedBoundingBox(minMax, transform, newBBox); minMax.set(newBBox); - for (let k = 0, kk = buffer.length; k < kk; ) { + for (let k = 0, kk = buffer.length; k < kk;) { switch (buffer[k++]) { case DrawOPS.moveTo: case DrawOPS.lineTo: diff --git a/src/core/parser.js b/src/core/parser.js index 753266a0370e7..97e88b8fff41a 100644 --- a/src/core/parser.js +++ b/src/core/parser.js @@ -1467,16 +1467,14 @@ class Linearization { const obj3 = parser.getObj(); const linDict = parser.getObj(); let obj, length; - if ( - !( - Number.isInteger(obj1) && - Number.isInteger(obj2) && - isCmd(obj3, "obj") && - linDict instanceof Dict && - typeof (obj = linDict.get("Linearized")) === "number" && - obj > 0 - ) - ) { + if (!( + Number.isInteger(obj1) && + Number.isInteger(obj2) && + isCmd(obj3, "obj") && + linDict instanceof Dict && + typeof (obj = linDict.get("Linearized")) === "number" && + obj > 0 + )) { return null; // No valid linearization dictionary found. } else if ((length = getInt(linDict, "L")) !== stream.length) { throw new Error( diff --git a/src/display/display_utils.js b/src/display/display_utils.js index 5fc5815a37a09..f83c090a59e42 100644 --- a/src/display/display_utils.js +++ b/src/display/display_utils.js @@ -782,7 +782,7 @@ function makePathFromDrawOPS(data) { if (!data) { return path; } - for (let i = 0, ii = data.length; i < ii; ) { + for (let i = 0, ii = data.length; i < ii;) { switch (data[i++]) { case DrawOPS.moveTo: path.moveTo(data[i++], data[i++]); diff --git a/test/integration/reorganize_pages_spec.mjs b/test/integration/reorganize_pages_spec.mjs index 850117125d66b..2a63fdf646927 100644 --- a/test/integration/reorganize_pages_spec.mjs +++ b/test/integration/reorganize_pages_spec.mjs @@ -119,7 +119,7 @@ async function drawInkLine(page, pageNumber) { async function waitForHavingContents(page, expected) { await page.evaluate(() => { // Make sure all the pages will be visible. - window.PDFViewerApplication.pdfViewer.scrollMode = 2 /* = ScrollMode.WRAPPED = */; + window.PDFViewerApplication.pdfViewer.scrollMode = 2; /* = ScrollMode.WRAPPED = */ window.PDFViewerApplication.pdfViewer.updateScale({ drawingDelay: 0, scaleFactor: 0.01, diff --git a/test/types/tsconfig.json b/test/types/tsconfig.json index 5a8cef756eaa4..3155373c39d26 100644 --- a/test/types/tsconfig.json +++ b/test/types/tsconfig.json @@ -1,6 +1,7 @@ { "compilerOptions": { "outDir": "../../build/tmp", + "rootDir": ".", "sourceMap": true, "declaration": false, "moduleResolution": "bundler", diff --git a/tsconfig.json b/tsconfig.json index ad957e5a2f74f..39bda9fede646 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "rootDir": ".", "target": "ES2022", "allowJs": true, "declaration": true, diff --git a/web/pdf_link_service.js b/web/pdf_link_service.js index 2ea42ec808679..1a096fcf7864a 100644 --- a/web/pdf_link_service.js +++ b/web/pdf_link_service.js @@ -221,13 +221,11 @@ class PDFLinkService { const pageNumber = (typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val)) || val | 0; - if ( - !( - Number.isInteger(pageNumber) && - pageNumber > 0 && - pageNumber <= this.pagesCount - ) - ) { + if (!( + Number.isInteger(pageNumber) && + pageNumber > 0 && + pageNumber <= this.pagesCount + )) { console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); return; } diff --git a/web/pdf_thumbnail_viewer.js b/web/pdf_thumbnail_viewer.js index 478f9abe0c6b3..709039257b833 100644 --- a/web/pdf_thumbnail_viewer.js +++ b/web/pdf_thumbnail_viewer.js @@ -592,9 +592,9 @@ class PDFThumbnailViewer { } if (!labels) { this._pageLabels = null; - } else if ( - !(Array.isArray(labels) && this.pdfDocument.numPages === labels.length) - ) { + } else if (!( + Array.isArray(labels) && this.pdfDocument.numPages === labels.length + )) { this._pageLabels = null; console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); } else { diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js index 313b55150e5b3..268888c61f6b3 100644 --- a/web/pdf_viewer.js +++ b/web/pdf_viewer.js @@ -1333,9 +1333,9 @@ class PDFViewer { } if (!labels) { this._pageLabels = null; - } else if ( - !(Array.isArray(labels) && this.pdfDocument.numPages === labels.length) - ) { + } else if (!( + Array.isArray(labels) && this.pdfDocument.numPages === labels.length + )) { this._pageLabels = null; console.error(`setPageLabels: Invalid page labels.`); } else { From 86dad16df311c54684efffc9f2f4c141508668b4 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Sat, 4 Jul 2026 14:34:23 +0200 Subject: [PATCH 2/3] Upgrade `eslint-plugin-unicorn` to version 70.0.0 This is a major version bump, but the changelog at https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v69.0.0 and https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v70.0.0 doesn't indicate any breaking changes that should impact us. --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8870662f0c176..7b283dcf80e5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "eslint-plugin-perfectionist": "^5.9.1", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-regexp": "^3.1.1", - "eslint-plugin-unicorn": "^68.0.0", + "eslint-plugin-unicorn": "^70.0.0", "globals": "^17.7.0", "gulp": "^5.0.1", "gulp-cli": "^3.1.0", @@ -6643,9 +6643,9 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "68.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-68.0.0.tgz", - "integrity": "sha512-mHYWvX948Q4H3bGc39bsNMxD/leOuNI+Iws9NVsoSz5VA7EGP86wnz7mZ/SPSvRhefT8L4hd8DHfDuGC+lIoCQ==", + "version": "70.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-70.0.0.tgz", + "integrity": "sha512-uAF9xMcVvvhTfvusCgogJ1wh4To3q2KhVMw3i1Apf/ILTbxsCjscvraAZACsEurb7no2fdXblD3whcbVnjw5zg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 3b0b41f9bad51..06eef4865803c 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "eslint-plugin-perfectionist": "^5.9.1", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-regexp": "^3.1.1", - "eslint-plugin-unicorn": "^68.0.0", + "eslint-plugin-unicorn": "^70.0.0", "globals": "^17.7.0", "gulp": "^5.0.1", "gulp-cli": "^3.1.0", From d62118073b845d5cbbd0b0a44b3225fec7c83dd9 Mon Sep 17 00:00:00 2001 From: Tim van der Meij Date: Sat, 4 Jul 2026 14:35:28 +0200 Subject: [PATCH 3/3] Fix vulnerability in the `js-yaml` dependency This patch is generated automatically using `npm audit fix` and fixes GHSA-h67p-54hq-rp68. --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7b283dcf80e5e..7becd4d45ef7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8596,9 +8596,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz", + "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==", "dev": true, "license": "MIT", "dependencies": {