# Studio frontend npm configuration. # # Mini Shai-Hulud / Axios-style supply chain defense. # Requires npm >=11.10.0. Refuses tarballs published less than 7 days ago, # closing the typical 4-72h attack window between malicious publish and # upstream removal. npm interprets the bare integer as DAYS; do not # append `d`, npm 11.x will parse `7d` as a Date string and abort. min-release-age=7 # Do not re-add the old `minimum-release-age` alias: npm >=11.16 warns on # unknown project configs and npm 12 stops accepting them. # Belt-and-braces: refuse to write back loose `^x.y.z` ranges into # package.json when a maintainer runs `npm install ` locally. This # does NOT rewrite already-present ranges (those need an explicit # `npm install @ --save-exact` pass) but it stops new # carets from creeping into the manifest as patch-version footguns. save-exact=true # Lock the registry. A user-set PIP_INDEX_URL-style override (here: # NPM_CONFIG_REGISTRY env var or a stale ~/.npmrc) shouldn't redirect # our installs to an attacker registry. registry=https://registry.npmjs.org/ audit-level=high fund=false # Maintainer note: use `npm ci` (never `npm install`) in CI and locally # when reproducing a build. The 7-day cooldown above is enforced by npm # itself; downgrading or removing it bypasses the supply-chain gate.