@rustwrap/webpack 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +26 -0
  2. package/package.json +5 -2
package/README.md CHANGED
@@ -38,6 +38,32 @@ removes far more dead code. `@rustwrap/webpack` exposes the webpack Node API + t
38
38
  The CLI stubs unresolved webpack-only plugin requires (`terser-webpack-plugin`, `webpack-bundle-analyzer`,
39
39
  `eslint-webpack-plugin`, …) so existing `webpack.config.js` files load unchanged.
40
40
 
41
+ ## Requirements
42
+
43
+ **Node.js `^20.19.0 || ^22.13.0 || >=24`** (enforced via the package's `engines` field).
44
+
45
+ This is **not** an arbitrary floor — it is the exact intersection of the engine requirements of the
46
+ Rust toolchain this package is built on:
47
+
48
+ | Dependency | Requires | Why |
49
+ |---|---|---|
50
+ | `rolldown` (+ native binding) | `^20.19.0 \|\| >=22.12.0` | The N-API/V8 features the Rust binary uses were backported into each LTS line at Node **20.19.0** and **22.12.0**. |
51
+ | `eslint-scope` | `^20.19.0 \|\| ^22.13.0 \|\| >=24` | Follows ESLint's policy: active LTS lines only, skipping odd non-LTS majors (21.x, 23.x). |
52
+
53
+ Taking the **strictest** clause on each line yields the declared range. Reading it:
54
+
55
+ - `^20.19.0` → the **Node 20 LTS** line, from patch **.19** up (`>=20.19.0 <21`). Earlier 20.x patches
56
+ lack the backported native feature.
57
+ - `^22.13.0` → the **Node 22 LTS** line, from patch **.13** up (`>=22.13.0 <23`). Note this is one
58
+ patch higher than Rolldown's own `22.12.0` floor, because `eslint-scope` requires `22.13.0`.
59
+ - `>=24` → **Node 24+** (the next even LTS line and beyond).
60
+ - **Excluded:** Node ≤16 (EOL), 18.x, 21.x, 22.0–22.12, and 23.x — none satisfy every dependency.
61
+
62
+ > **Node 16 / 18 are not supported.** Rolldown 1.x and oxlint 1.x dropped them; the native Rust
63
+ > binaries will not run there. The `engines` field makes this an **immediate, named `EBADENGINE`
64
+ > warning** at install (or a hard failure under `engine-strict=true`/CI) instead of a cryptic deep
65
+ > crash inside the native module.
66
+
41
67
  ## Support matrix
42
68
 
43
69
  ### ✅ Supported
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rustwrap/webpack",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "A webpack-compatible Node API and CLI backed by the Rolldown bundler (Rust/Oxc) for fast builds and excellent tree-shaking. Drop-in `webpack` override for pcf-scripts and webpack-based pipelines.",
5
5
  "main": "lib/index.js",
6
6
  "publishConfig": {
@@ -38,5 +38,8 @@
38
38
  "pcf",
39
39
  "tree-shaking"
40
40
  ],
41
- "license": "MIT"
41
+ "license": "MIT",
42
+ "engines": {
43
+ "node": "^20.19.0 || ^22.13.0 || >=24"
44
+ }
42
45
  }