{"_id":"@eklmv/jscpd-finder","_rev":"3-c0915ed2de000bfa1fbc85da5e078b5e","name":"@eklmv/jscpd-finder","dist-tags":{"latest":"4.0.3"},"versions":{"4.0.1":{"name":"@eklmv/jscpd-finder","version":"4.0.1","author":{"name":"Andrey Kucherenko","email":"kucherenko.andrey@gmail.com"},"license":"MIT","_id":"@eklmv/jscpd-finder@4.0.1","maintainers":[{"name":"eklmv","email":"eklmv.mail@gmail.com"}],"homepage":"https://github.com/kucherenko/jscpd#readme","bugs":{"url":"https://github.com/eklmv/jscpd/issues"},"dist":{"shasum":"9a7120a108a9d155305edad97e3ea3b3aef75b54","tarball":"https://registry.npmjs.org/@eklmv/jscpd-finder/-/jscpd-finder-4.0.1.tgz","fileCount":9,"integrity":"sha512-F7t+IoWdH75xUmdMQK9jvKxrnjbn1qFJO2wIA2b2P3Ae/ZOWCrJr3QtbnTxx6sVLMCNg9D5gLiYAx86pX02Tqw==","signatures":[{"sig":"MEQCIGVihyRF1OxwK/UtMMqK4aInfZ5iLwmiSqgNfCKUBQ0VAiBj7OYHMyYPWjGE8n6j+RPFZDWIT1acZ94MymkQM9kOgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144723},"main":"dist/index.js","_from":"file:eklmv-jscpd-finder-4.0.1.tgz","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./README.md":"./README.md"},"gitHead":"fa06f839d6c5335a1e9dbf0c7387710fcd42eb54","scripts":{"dev":"nodemon","test":"vitest run","build":"tsup-node --dts","cleanup":"rimraf ./dist .turbo","typecheck":"tsc"},"typings":"dist/index.d.mts","_npmUser":{"name":"eklmv","email":"eklmv.mail@gmail.com"},"_resolved":"/private/var/folders/s_/rs3w0h1n2v138tk_px2b_fd40000gq/T/d3da8f84c71791f99c0a6de2c473dff8/eklmv-jscpd-finder-4.0.1.tgz","_integrity":"sha512-F7t+IoWdH75xUmdMQK9jvKxrnjbn1qFJO2wIA2b2P3Ae/ZOWCrJr3QtbnTxx6sVLMCNg9D5gLiYAx86pX02Tqw==","repository":{"url":"git+ssh://git@github.com/eklmv/jscpd.git","type":"git"},"_npmVersion":"10.7.0","description":"detector of copy/paste in files","directories":{"src":"src","test":"__tests__"},"_nodeVersion":"18.20.4","dependencies":{"pug":"^3.0.3","bytes":"^3.1.2","blamer":"^1.0.6","colors":"^1.4.0","fs-extra":"^11.2.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","markdown-table":"^2.0.0","@eklmv/jscpd-core":"4.0.1","@eklmv/jscpd-tokenizer":"4.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.0.5","nodemon":"^3.1.4","ts-node":"^10.9.2","@types/pug":"^2.0.10","typescript":"^5.5.4","@types/bytes":"^3.1.4","@types/fs-extra":"^11.0.4","@eklmv/jscpd-tsconfig":"5.0.1","@types/markdown-table":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/jscpd-finder_4.0.1_1748512994252_0.15978287259597157","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@eklmv/jscpd-finder","version":"4.0.2","author":{"name":"Andrey Kucherenko","email":"kucherenko.andrey@gmail.com"},"license":"MIT","_id":"@eklmv/jscpd-finder@4.0.2","maintainers":[{"name":"eklmv","email":"eklmv.mail@gmail.com"}],"homepage":"https://github.com/kucherenko/jscpd#readme","bugs":{"url":"https://github.com/eklmv/jscpd/issues"},"dist":{"shasum":"71c0fb0dda1f238b66a5b3ac9210cd87780144ac","tarball":"https://registry.npmjs.org/@eklmv/jscpd-finder/-/jscpd-finder-4.0.2.tgz","fileCount":9,"integrity":"sha512-iKRnzpszuhNYCb1XDoazeh/XUj27agok+JgITYIlvhMOixKoHQ46i6FMZ73kpDTVdFffb/MLSlbxczlntbAXfw==","signatures":[{"sig":"MEQCIGzMJ56FRx1qjuU6itlZYuE3i+kltjmbPid3jiQ46JZnAiATZnNIn4q9kl4bwADXdtljacEbGOKMIW0mZhe+ezo4Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144723},"main":"dist/index.js","_from":"file:eklmv-jscpd-finder-4.0.2.tgz","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./README.md":"./README.md"},"gitHead":"fa06f839d6c5335a1e9dbf0c7387710fcd42eb54","scripts":{"dev":"nodemon","test":"vitest run","build":"tsup-node --dts","cleanup":"rimraf ./dist .turbo","typecheck":"tsc"},"typings":"dist/index.d.mts","_npmUser":{"name":"eklmv","email":"eklmv.mail@gmail.com"},"_resolved":"/private/var/folders/s_/rs3w0h1n2v138tk_px2b_fd40000gq/T/95dd556cb98032cffe960c3b9fe6d2c1/eklmv-jscpd-finder-4.0.2.tgz","_integrity":"sha512-iKRnzpszuhNYCb1XDoazeh/XUj27agok+JgITYIlvhMOixKoHQ46i6FMZ73kpDTVdFffb/MLSlbxczlntbAXfw==","repository":{"url":"git+ssh://git@github.com/eklmv/jscpd.git","type":"git"},"_npmVersion":"10.7.0","description":"detector of copy/paste in files","directories":{"src":"src","test":"__tests__"},"_nodeVersion":"18.20.4","dependencies":{"pug":"^3.0.3","bytes":"^3.1.2","blamer":"^1.0.6","colors":"^1.4.0","fs-extra":"^11.2.0","fast-glob":"^3.3.2","cli-table3":"^0.6.5","markdown-table":"^2.0.0","@eklmv/jscpd-core":"5.0.0","@eklmv/jscpd-tokenizer":"4.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","vitest":"^2.0.5","nodemon":"^3.1.4","ts-node":"^10.9.2","@types/pug":"^2.0.10","typescript":"^5.5.4","@types/bytes":"^3.1.4","@types/fs-extra":"^11.0.4","@eklmv/jscpd-tsconfig":"5.0.1","@types/markdown-table":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/jscpd-finder_4.0.2_1748515474489_0.32423071412957394","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@eklmv/jscpd-finder","version":"4.0.3","description":"detector of copy/paste in files","author":{"name":"Andrey Kucherenko","email":"kucherenko.andrey@gmail.com"},"homepage":"https://github.com/kucherenko/jscpd#readme","license":"MIT","main":"dist/index.js","module":"dist/index.mjs","typings":"dist/index.d.mts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./README.md":"./README.md"},"directories":{"src":"src","test":"__tests__"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/eklmv/jscpd.git"},"dependencies":{"blamer":"^1.0.6","bytes":"^3.1.2","cli-table3":"^0.6.5","colors":"^1.4.0","fast-glob":"^3.3.2","fs-extra":"^11.2.0","markdown-table":"^2.0.0","pug":"^3.0.3","@eklmv/jscpd-core":"5.0.1","@eklmv/jscpd-tokenizer":"4.0.3"},"devDependencies":{"@types/bytes":"^3.1.4","@types/fs-extra":"^11.0.4","@types/markdown-table":"^2.0.0","@types/pug":"^2.0.10","nodemon":"^3.1.4","ts-node":"^10.9.2","tsup":"^8.2.4","typescript":"^5.5.4","vitest":"^2.0.5","@eklmv/jscpd-tsconfig":"5.0.1"},"gitHead":"fa06f839d6c5335a1e9dbf0c7387710fcd42eb54","scripts":{"build":"tsup-node --dts","dev":"nodemon","test":"vitest run","typecheck":"tsc","cleanup":"rimraf ./dist .turbo"},"_id":"@eklmv/jscpd-finder@4.0.3","bugs":{"url":"https://github.com/eklmv/jscpd/issues"},"_integrity":"sha512-dsc/DVRHNJ4ZIMYuL8MUuSg5rNV0UDKl5vNzmzz2cp5eHqQMBXoeD3w81wL65+zyYQnAhUaXUDL8fh1AVzZfsQ==","_resolved":"/private/var/folders/s_/rs3w0h1n2v138tk_px2b_fd40000gq/T/67edb233864adc83a3e82276001718a5/eklmv-jscpd-finder-4.0.3.tgz","_from":"file:eklmv-jscpd-finder-4.0.3.tgz","_nodeVersion":"18.20.4","_npmVersion":"10.7.0","dist":{"integrity":"sha512-dsc/DVRHNJ4ZIMYuL8MUuSg5rNV0UDKl5vNzmzz2cp5eHqQMBXoeD3w81wL65+zyYQnAhUaXUDL8fh1AVzZfsQ==","shasum":"553023006294077f8ca0f0e5c079ef21974481b5","tarball":"https://registry.npmjs.org/@eklmv/jscpd-finder/-/jscpd-finder-4.0.3.tgz","fileCount":9,"unpackedSize":144723,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICReB5V2QLGiLPnEIxAK1duKkLDkT4vpJJ9xf9egQlLqAiEAvjzYgXUhFCgk6aynxLd3qvdpiwEp5Kb76RaMXBnncPg="}]},"_npmUser":{"name":"eklmv","email":"eklmv.mail@gmail.com"},"maintainers":[{"name":"eklmv","email":"eklmv.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jscpd-finder_4.0.3_1749485913411_0.02868796177758748"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-29T10:03:14.145Z","modified":"2025-06-09T16:18:33.747Z","4.0.1":"2025-05-29T10:03:14.512Z","4.0.2":"2025-05-29T10:44:34.681Z","4.0.3":"2025-06-09T16:18:33.585Z"},"bugs":{"url":"https://github.com/eklmv/jscpd/issues"},"author":{"name":"Andrey Kucherenko","email":"kucherenko.andrey@gmail.com"},"license":"MIT","homepage":"https://github.com/kucherenko/jscpd#readme","repository":{"type":"git","url":"git+ssh://git@github.com/eklmv/jscpd.git"},"description":"detector of copy/paste in files","maintainers":[{"name":"eklmv","email":"eklmv.mail@gmail.com"}],"readme":"# `@eklmv/jscpd-finder`\n\n> core package for detect duplicates, depends only on eventemitter3.\n\n## Installation\n\n```\nnpm install @eklmv/jscpd-finder --save\n```\n\n## Usage\n\n```typescript\nimport {Tokenizer} from '@eklmv/jscpd-tokenizer';\nimport {\n    MemoryStore,\n    IOptions,\n    IClone,\n    IStore,\n    ITokenizer\n} from '@eklmv/jscpd-core';\nimport {EntryWithContent, getFilesToDetect, InFilesDetector} from '@eklmv/jscpd-finder';\n\nconst options: IOptions = {\n    minLines: 5,\n    maxLines: 500,\n    path: ['list of folders and files to analyse for clones']\n}\n\nconst tokenizer: ITokenizer = new Tokenizer();\n// here you can use any store what implement IStore interface\nconst store: IStore = new MemoryStore();\nconst statistic = new Statistic(options);\n\nconst files: EntryWithContent[] = getFilesToDetect(options);\n\nconst detector = new InFilesDetector(tokenizer, store, statistic, options);\n\n( async () => {\n  const clones: IClone[] = await detector.detect(files);\n})();\n```\n\n\n![ga tracker](https://www.google-analytics.com/collect?v=1&a=257770996&t=pageview&dl=https%3A%2F%2Fgithub.com%2Fkucherenko%2Fjscpd&ul=en-us&de=UTF-8&cid=978224512.1377738459&tid=UA-730549-17&z=887657232 \"ga tracker\")\n\n## License\n\n[MIT](LICENSE) © Andrey Kucherenko\n","readmeFilename":"README.md"}