Commit Graph

197 Commits

Author SHA1 Message Date
Tim van der Meij
96bb3c6217
Convert package-lock.json to lock file version 2
Since NPM 7, which is over a year old now since it released in October
2020, NPM automatically transforms lock files from version 1 to version
2. In the NPM 7 release notes they reported:

"One change to take note of is the new lockfile format, which is
backwards compatible with npm 6 users. The lockfile v2 unlocks the
ability to do deterministic and reproducible builds to produce a
package tree."

Not only is this change backwards compatible (so older versions of NPM
will still be able to install everything as expected), reproducability
is also a nice property to have and modern NPM versions will otherwise
constantly do the conversion anyway, causing contributors to explicitly
have to revert the change. Therefore, I believe we should do this now
since it doesn't break backwards compatibility for consumers of this
file. It only means that producers of this file (i.e., us contributors)
need to use at least NPM 7 or higher (as of writing NPM 8 is even
available). According to https://nodejs.org/en/download/releases/ this
means contributors should at least run Node.js 15.0.0, while 17.1.0 is
the most recent as of writing, so to me that sounds reasonable to ask.
2021-11-28 19:23:25 +01:00
Jonas Jenwald
d62f847db2 Update Stylelint to version 14 (along with related packages)
Based on https://github.com/stylelint/stylelint/blob/14.0.0/docs/migration-guide/to-14.md none of the changes look directly relevant for us.
2021-11-28 12:36:16 +01:00
Jonas Jenwald
fdf3f03985 Update the eslint-plugin-unicorn package to the latest version
Please see https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v39.0.0
2021-11-28 11:14:02 +01:00
Jonas Jenwald
0c301dfa8b Update the dommatrix package to the latest version 2021-11-28 11:14:02 +01:00
Jonas Jenwald
cfc55b044e Update npm packages 2021-11-28 11:13:58 +01:00
Jonas Jenwald
04bdc26d3a Update the eslint-plugin-unicorn package to the latest version 2021-11-14 10:27:29 +01:00
Jonas Jenwald
1dd74efb0f Update the eslint-plugin-no-unsanitized package to the latest version 2021-11-14 10:24:41 +01:00
Jonas Jenwald
bd1e140e2a Update the dommatrix package to the latest version 2021-11-14 10:20:54 +01:00
Jonas Jenwald
9f6d37263c Update npm packages 2021-11-14 10:17:30 +01:00
Jonas Jenwald
a8abdfb3bb Update npm packages 2021-10-31 09:38:18 +01:00
Tim van der Meij
0aaa4e3dbe
Merge pull request #14156 from Snuffleupagus/escodegen-fork
Add support for modern ECMAScript `class` features
2021-10-23 19:12:44 +02:00
Jonas Jenwald
2c27f54e4e Update the browserslist database
Following https://github.com/browserslist/browserslist#browsers-data-updating, since very recently warnings started to appear when running various gulp-tasks.
2021-10-23 10:07:18 +02:00
Jonas Jenwald
00f8fab8a5 Add support for modern ECMAScript class features
With ESLint 8 we should now finally be able to start using modern `class` features, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields and https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields

However, while both ESLint and Acorn now support this, it unfortunately turns out that Escodegen (which we use during building) still lack the necessary support. Looking at https://github.com/estools/escodegen there's not been any updates since last year, and there's also open PRs adding support for these new `class` features.

To avoid blocking usage of these `class` features in the PDF.js code-base, in particular *private* fields/methods, this patch thus proposes that we (hopefully temporarily) switch to an `escodegen` fork that has the necessary support; please see https://www.npmjs.com/package/@javascript-obfuscator/escodegen

While I have no reason to doubt the security of the `escodegen` fork, this patch nonetheless pins the version number. Furthermore, I've also diffed the output of the two `.js`-files in this forked package against the original files without finding anything that looks immediately "dangerous".
2021-10-22 22:01:17 +02:00
Jonas Jenwald
b0affcd87c Fix (some) vulnerabilities reported by npm audit
This was done automatically, using the `npm audit fix` command.
2021-10-17 11:47:09 +02:00
Jonas Jenwald
a712b601ee Update ESLint to version 8
Please refer to https://eslint.org/docs/8.0.0/user-guide/migrating-to-8.0.0

Given that this is a major version increase it also required updating ESLint plugins, see https://github.com/sindresorhus/eslint-plugin-unicorn/releases and https://github.com/jrdrg/eslint-plugin-sort-exports/releases
2021-10-17 11:42:09 +02:00
Jonas Jenwald
7746732934 Update the stylelint-config-prettier package to the latest version
Please refer to https://github.com/prettier/stylelint-config-prettier/releases
2021-10-17 11:37:40 +02:00
Jonas Jenwald
decd585579 Update npm packages 2021-10-17 11:33:19 +02:00
Jonas Jenwald
de18c35c9b Update the es-module-shims package to the latest version
Please refer to https://github.com/guybedford/es-module-shims/blob/main/CHANGELOG.md
2021-10-03 08:30:20 +02:00
Jonas Jenwald
ff271f2cff Update npm packages 2021-10-03 08:30:18 +02:00
Jonas Jenwald
a09d7797fb Update the eslint-plugin-unicorn package to the latest version
Please refer to https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v36.0.0
2021-09-19 09:39:56 +02:00
Jonas Jenwald
57734b11f6 Update the es-module-shims package to the latest version
Please refer to https://github.com/guybedford/es-module-shims/blob/main/CHANGELOG.md
2021-09-19 09:33:05 +02:00
Jonas Jenwald
8679bb7aab Update npm packages 2021-09-19 09:31:42 +02:00
Jonas Jenwald
4bd1d51970 Update the webpack-stream package to the latest version 2021-09-05 09:58:59 +02:00
Jonas Jenwald
adb17bafa4 Update the needle package to the latest version 2021-09-05 09:56:50 +02:00
Jonas Jenwald
6adecdda80 Update the eslint-plugin-prettier package to the latest version
Please refer to https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md#v400-2021-08-30
2021-09-05 09:54:18 +02:00
Jonas Jenwald
91bc559f3c Update npm packages 2021-09-05 09:47:57 +02:00
dependabot[bot]
e1c2151a03
Bump tar from 4.4.15 to 4.4.19
Bumps [tar](https://github.com/npm/node-tar) from 4.4.15 to 4.4.19.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.15...v4.4.19)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-31 16:39:41 +00:00
Jonas Jenwald
a24702b942 Update npm packages 2021-08-22 10:38:52 +02:00
dependabot[bot]
91ef2e19aa
Bump path-parse from 1.0.5 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.5 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-10 18:23:47 +00:00
Jonas Jenwald
d0c87e13ce Update the eslint-plugin-unicorn package to the latest version
Also enables the `no-useless-spread` rule, see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-spread.md, which didn't require any code changes.
2021-08-08 10:49:57 +02:00
Jonas Jenwald
014d00e4fb Update npm packages 2021-08-08 10:45:36 +02:00
dependabot[bot]
81a6ade590
Bump tar from 4.4.8 to 4.4.15
Bumps [tar](https://github.com/npm/node-tar) from 4.4.8 to 4.4.15.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.8...v4.4.15)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-03 19:41:11 +00:00
Jonas Jenwald
2a667b92d8 Update npm packages 2021-07-25 10:24:10 +02:00
Jonas Jenwald
46b6e57b7c Update the eslint-plugin-unicorn package to the latest version 2021-07-11 12:21:29 +02:00
Jonas Jenwald
689e5c54a7 Update the es-module-shims package to the latest version 2021-07-11 12:16:47 +02:00
Jonas Jenwald
a926976e4d Update npm packages 2021-07-11 12:14:47 +02:00
Jonas Jenwald
e4adde3462 Remove the version field from the package.json file
According to https://docs.npmjs.com/cli/v7/configuring-npm/package-json#version, the "version" field is not required[1]:
> If you don't plan to publish your package, the name and version fields are optional.

Hence it shouldn't be necessary to have a "dummy" `version` field in the `package.json` file, and it seems quite unfortunate to have an essentially meaningless entry in that file.[2]
Furthermore, I'd even go as far as suggesting that it's actually doing more harm than good in practice, since it's not uncommon for people to open issues where they simply quote the `package.json`-entry when filling out the ISSUE_TEMPLATE thus causing confusion as to which *exact* version is actually used.

Unless I'm misremembering, I believe that the only reason for adding the `version` field was that is was necessary in order for things to work back when testing was run on Travis.
Now we're using GitHub Actions instead, where things seem to work just find even without a `version` field; hence why I think it makes sense to remove this.

---
[1] Please note that this patch doesn't affect the `pdfjs-dist` package, since the `package.json` file used there is created in `gulpfile.js` during building.

[2] Trying to, automatically, update the `version` field on *every* commit really doesn't seem worth it to me.
2021-07-03 16:46:28 +02:00
Jonas Jenwald
b146c597b0 Fix (some) vulnerabilities reported by npm audit
This was done automatically, using the `npm audit fix` command.
2021-06-27 10:29:39 +02:00
Jonas Jenwald
e79ed27f2f Update the es-module-shims package to the latest version 2021-06-27 10:27:02 +02:00
Jonas Jenwald
f03d5b3ee7 Update npm packages 2021-06-27 10:25:40 +02:00
dependabot[bot]
f40c59c7b4
Bump color-string from 1.5.3 to 1.5.5
Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.3 to 1.5.5.
- [Release notes](https://github.com/Qix-/color-string/releases)
- [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Qix-/color-string/commits/1.5.5)

---
updated-dependencies:
- dependency-name: color-string
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-22 07:59:39 +00:00
Jonas Jenwald
1cfaf07b82 Add basic linting of JSON files using eslint-plugin-json
By adding basic linting of JSON files, we can ensure that they're actually valid and prevent e.g. test-failures caused by *accidental* errors when editing the `test/test_manifest.json` file (something that I've done *many* times myself).

For now this simply uses the `recommended` configuration, but we can obviously tweak this later if/when needed. Please find additional information at https://github.com/azeemba/eslint-plugin-json
2021-06-15 12:19:01 +02:00
Jonas Jenwald
014148b28a Update the eslint-plugin-unicorn package to the latest version 2021-06-13 10:35:58 +02:00
Jonas Jenwald
99dc7af590 Update npm packages 2021-06-13 09:59:44 +02:00
Jonas Jenwald
26011c65f4 Add a DOMMatrix polyfill for Node.js environments (PR 13361 follow-up)
Given that `DOMMatrix` is, unsurprisingly, not supported in Node.js the `createMatrix` helper function in `src/display/pattern_helper.js` is most likely broken in Node.js environments. It will obviously try to fallback to the `DOMSVGFactory`, however that isn't intended for Node.js usage and errors will be thrown.

Rather than trying to implement a `NodeSVGFactory`, this patch takes the easier route of just adding a `DOMMatrix` polyfill using: https://www.npmjs.com/package/dommatrix
This isn't done only for simplicity, but it'll become necessary anyway since the `createMatrix` helper function is only temporary and will be removed in the future.
2021-06-10 21:08:23 +02:00
dependabot[bot]
0fad999fc9
Bump trim-newlines from 3.0.0 to 3.0.1
Bumps [trim-newlines](https://github.com/sindresorhus/trim-newlines) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/sindresorhus/trim-newlines/releases)
- [Commits](https://github.com/sindresorhus/trim-newlines/commits)

---
updated-dependencies:
- dependency-name: trim-newlines
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 08:11:20 +00:00
Jonas Jenwald
bc17ac5a2f Update Puppeteer to version 10
Hopefully the updated Chromium-version might help reduce the number of intermittent test failures.

Please find additional information at https://github.com/puppeteer/puppeteer/releases/tag/v10.0.0
2021-06-01 15:11:02 +02:00
dependabot[bot]
03d826affa
Bump ws from 7.4.5 to 7.4.6
Bumps [ws](https://github.com/websockets/ws) from 7.4.5 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.5...7.4.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-30 10:58:18 +00:00
Jonas Jenwald
4ef538b19a Update the yargs package to the latest version 2021-05-30 07:51:30 +02:00
Jonas Jenwald
e7ab2d6eb5 Update the eslint-plugin-unicorn package to the latest version 2021-05-30 07:50:12 +02:00