build(npm): update Node.js and all packages

This change updates the Node Version Manager version file to the latest
long-term release version of Node.js, v20.11.1, and the Node.js Package
Manager package file to require Node.js version v20 or later.

Additionally, all Node.js modules have been updated, as some packages
required additional accommodations to be made compatible with this
version of Node.js.

As part of this, the `.commitlintrc.js` has been rewritten from CommonJS
to ECMAScript. There should be no impact on the behaviour of Commitlint,
but this was was a requirement to allow Commitlint to continue using it
for configuration.

Change-Id: I7043faabc516c58edda9e58848b0569e2158b271
Signed-off-by: Chris Kay <chris.kay@arm.com>
diff --git a/package.json b/package.json
index 1c557fd..43c897e 100644
--- a/package.json
+++ b/package.json
@@ -2,22 +2,23 @@
   "name": "trusted-firmware-a",
   "version": "2.10.0",
   "license": "BSD-3-Clause",
+  "type": "module",
   "private": true,
   "scripts": {
     "postinstall": "husky install",
     "release": "standard-version"
   },
   "engines": {
-    "node": ">=16.0.0"
+    "node": ">=20"
   },
   "devDependencies": {
-    "@commitlint/cli": "^16.1.0",
-    "@commitlint/config-conventional": "^16.0.0",
-    "@commitlint/cz-commitlint": "^16.1.0",
-    "commitizen": "^4.2.4",
+    "@commitlint/cli": "^19.0.0",
+    "@commitlint/config-conventional": "^19.0.0",
+    "@commitlint/cz-commitlint": "^19.0.0",
+    "commitizen": "^4.3.0",
     "conventional-changelog-tf-a": "file:tools/conventional-changelog-tf-a",
-    "husky": "^7.0.4",
+    "husky": "^9.0.11",
     "js-yaml": "^4.1.0",
-    "standard-version": "^9.3.2"
+    "standard-version": "^9.5.0"
   }
 }