npm / publint
publint
What changed in publint 0.3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
1 breaking1 new APIs and options4 behavior and defaults5 tooling8 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initpublint 0.319 changes
Breaking changes 1
Checks repository.url when repository.type is omitted, so object-form repository values are checked for deprecated protocols, invalid Git URLs, and shorthand URLs.
New APIs and options 1
The USE_FILES message now reports which internal files or directories triggered it through args.internalFilePaths.
Behavior and default changes 4
The USE_FILES suggestion now recursively detects test files such as *.test.js and *.spec.ts.
Repository validation accepts a broader range of git URLs.
The USE_FILES suggestion recognizes more common internal files.
Publint skips file existence checks when crawling subpath imports because they may be dev-only and unused after bundling or publishing.
Tooling 5
Publint now supports npm v12.
Publint now supports pnpm v11.
Suggests adding "sideEffects": false when bundler-oriented package fields or conditions are detected and the field is missing.
Lint messages use less forceful wording about breaking changes.
Warns when published nested package.json files define exports or imports, which Node.js ignores outside the package root.
Fixes and other changes 8
Skips file existence checks for
browserfield values that point at another package.Detects the .ctsx extension when checking for FILE_INVALID_JSX_EXTENSION.
Suggest adding engines.node when it is missing from detected Node.js packages.
Fixes a crash in the deprecated subpath mapping check.
getPkgPathValue from publint/utils now returns undefined if the path is invalid.
Fixes packing packages with pnpm when publishConfig.directory is set.
Re-enables file existence checks for TS and TSX files when they do not use custom conditions, catching possible file typos when only common conditions are used.
The rule now handles both double-quoted and single-quoted forms of exports default.