New Features
--cross-formats— detect clones across related formats via format equivalence groups sharing one comparison pool, e.g.--cross-formats "javascript,typescript"or thejs-tspreset (javascript,jsx,typescript,tsx). When a group mixes TypeScript with JavaScript, TS files are compared with erasable type syntax stripped (positions still reference the original source), sofunction f(a: number): voidmatchesfunction f(a). Also configurable ascrossFormatsin.jscpd.json/package.json(string, array-of-strings, or array-of-arrays). Cross-format clones are attributed to one member format in per-format statistics. (#810)
Bug Fixes
- Prose-only Markdown files are now analyzed — the Markdown tokenizer only extracted fenced code blocks, so
.mdfiles without code fences produced zero tokens and were silently skipped (-f markdownmatched 0 files in Markdown-only projects). Prose is now tokenized too, so duplicated prose is detected as clones, while embedded code fences keep being detected under their own sub-format pools. (#883)
Dependencies
- Bump
regexto 1.13.1 in/rust - Bump
globsetto 0.4.19 in/rust - Bump
ignoreto 0.4.28 in/rust - Bump
xxhash-rustto 0.8.16 in/rust
Published Packages
cpd-core@0.1.7on crates.iocpd-finder@0.1.9on crates.iocpd-reporter@0.1.7on crates.iocpd-tokenizer@0.1.8on crates.iojscpd@5.0.14on crates.iocpd@5.0.14on npmjscpd-darwin-arm64@5.0.14on npmjscpd-darwin-x64@5.0.14on npmjscpd-linux-x64-gnu@5.0.14on npmjscpd-linux-arm64-gnu@5.0.14on npmjscpd-linux-x64-musl@5.0.14on npmjscpd-windows-x64-msvc@5.0.14on npm
Not Yet Published
jscpd@5.0.14(published: 5.0.12)