From c0fcbf6820f79aa34115a5cbd2f073669f578ac6 Mon Sep 17 00:00:00 2001 From: angelraph Date: Fri, 28 Aug 2026 06:25:47 +0100 Subject: [PATCH] Add engines.node field to package.json package.json had no engines field, so nothing warned or blocked a contributor running the project on an incompatible Node version. The version was already implicit elsewhere: - .github/workflows/validate-docs.yml pins node-version: 20 - Dockerfile.web / Dockerfile.worker both build from node:20-alpine - next@16.2.10 (a direct dependency) itself declares engines.node ">=20.9.0" Set engines.node to ">=20.9.0" to match all three, making the existing requirement explicit instead of introducing a new one. Also corrected README.md and CONTRIBUTING.md, which both still said "Node.js >= 18" - already inaccurate given Next 16's own floor, and now directly contradicted by the new engines field. package-lock.json was regenerated by `npm install` to resync with package.json (it was missing a few devDependencies entries, e.g. @eslint/eslintrc and @types/react-syntax-highlighter). This was already a latent problem: both Dockerfiles run `npm ci`, which fails outright on a package.json/package-lock.json mismatch. Closes #425 --- CONTRIBUTING.md | 2 +- README.md | 2 +- package-lock.json | 26 +++++++++++++++++++++++--- package.json | 3 +++ 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a92c226..20a8130 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,7 +53,7 @@ Violations can be reported by opening a private GitHub issue or contacting a mai ### Prerequisites -- Node.js >= 18 (we recommend [nvm](https://github.com/nvm-sh/nvm)) +- Node.js >= 20.9 (we recommend [nvm](https://github.com/nvm-sh/nvm)) - npm >= 9 ### Install Dependencies diff --git a/README.md b/README.md index 1adc286..00888b5 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Smart contracts on Stellar/Soroban emit events as cryptic, hex-encoded binary da ### Prerequisites -- Node.js >= 18 +- Node.js >= 20.9 - npm >= 9 ### Installation diff --git a/package-lock.json b/package-lock.json index 17371ea..058eaa2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "yaml": "^2.8.1" }, "devDependencies": { - "@testing-library/dom": "^10.4.1", + "@eslint/eslintrc": "^3.3.6", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/bull": "^4.10.4", @@ -66,6 +66,7 @@ "@types/node-cron": "^3.0.11", "@types/react": "^18", "@types/react-dom": "^18", + "@types/react-syntax-highlighter": "^15.5.13", "@types/swagger-ui-react": "^5.18.0", "@types/ws": "^8.5.13", "@typescript-eslint/eslint-plugin": "^8.19.0", @@ -93,6 +94,9 @@ "util-deprecate": "^1.0.2", "vitest": "^3.2.7", "vitest-axe": "^0.1.0" + }, + "engines": { + "node": ">=20.9.0" } }, "node_modules/@acemir/cssom": { @@ -5199,6 +5203,7 @@ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -5318,7 +5323,8 @@ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/bull": { "version": "4.10.4", @@ -5454,6 +5460,16 @@ "@types/react": "^18.0.0" } }, + "node_modules/@types/react-syntax-highlighter": { + "version": "15.5.13", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", + "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/set-cookie-parser": { "version": "2.4.10", "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.10.tgz", @@ -10893,6 +10909,7 @@ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "lz-string": "bin/bin.js" } @@ -12154,6 +12171,7 @@ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -12169,6 +12187,7 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -12486,7 +12505,8 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/react-kapsule": { "version": "2.6.0", diff --git a/package.json b/package.json index 34ecf99..c2e02d2 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,9 @@ "name": "open-audit", "version": "0.1.0", "private": true, + "engines": { + "node": ">=20.9.0" + }, "scripts": { "postinstall": "prisma generate", "dev": "next dev",