[{"data":1,"prerenderedAt":526},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-sherlock-project\u002Fsherlock":249,"page-views-\u002Ftrending\u002Fsherlock-project\u002Fsherlock":524},[4,29,104,124,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Start",false,"\u002Fstart","1.start",[10,14,19,24],{"title":11,"path":7,"stem":12,"icon":13},"What jscpd finds","1.start\u002Findex","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quickstart","\u002Fstart\u002Fquickstart","1.start\u002F3.quickstart","i-lucide-rocket",{"title":25,"path":26,"stem":27,"icon":28},"Configuration basics","\u002Fstart\u002Fconfiguration","1.start\u002F4.configuration","i-lucide-settings-2",{"title":30,"icon":6,"path":31,"stem":32,"children":33,"page":6},"Guides","\u002Fguides","2.guides",[34,39,44,49,54,59,64,69,74,79,84,89,94,99],{"title":35,"path":36,"stem":37,"icon":38},"Use jscpd in CI","\u002Fguides\u002Fci","2.guides\u002F01.ci","i-lucide-github",{"title":40,"path":41,"stem":42,"icon":43},"Pre-commit hooks","\u002Fguides\u002Fpre-commit","2.guides\u002F02.pre-commit","i-lucide-git-commit",{"title":45,"path":46,"stem":47,"icon":48},"Fail only on new duplication","\u002Fguides\u002Fbaseline","2.guides\u002F03.baseline","i-lucide-git-compare",{"title":50,"path":51,"stem":52,"icon":53},"Monorepos","\u002Fguides\u002Fmonorepos","2.guides\u002F04.monorepos","i-lucide-folder-tree",{"title":55,"path":56,"stem":57,"icon":58},"Cross-format detection","\u002Fguides\u002Fcross-format","2.guides\u002F05.cross-format","i-lucide-layers",{"title":60,"path":61,"stem":62,"icon":63},"Agents","\u002Fguides\u002Fagents","2.guides\u002F06.agents","i-lucide-cpu",{"title":65,"path":66,"stem":67,"icon":68},"Editors","\u002Fguides\u002Feditors","2.guides\u002F07.editors","i-lucide-code",{"title":70,"path":71,"stem":72,"icon":73},"Duplication over git history","\u002Fguides\u002Fhistory","2.guides\u002F08.history","i-lucide-chart-no-axes-combined",{"title":75,"path":76,"stem":77,"icon":78},"Dashboard and health score","\u002Fguides\u002Fdashboard","2.guides\u002F09.dashboard","i-lucide-layout-dashboard",{"title":80,"path":81,"stem":82,"icon":83},"Dead code","\u002Fguides\u002Fdead-code","2.guides\u002F10.dead-code","i-lucide-ghost",{"title":85,"path":86,"stem":87,"icon":88},"Comparing two codebases","\u002Fguides\u002Fcompare","2.guides\u002F11.compare","i-lucide-git-compare-arrows",{"title":90,"path":91,"stem":92,"icon":93},"Semantic clones","\u002Fguides\u002Fsemantic-clones","2.guides\u002F12.semantic-clones","i-lucide-brain-circuit",{"title":95,"path":96,"stem":97,"icon":98},"Similar functions","\u002Fguides\u002Fsimilarity","2.guides\u002F13.similarity","i-lucide-list-tree",{"title":100,"path":101,"stem":102,"icon":103},"Boundaries","\u002Fguides\u002Fboundaries","2.guides\u002F14.boundaries","i-lucide-fence",{"title":105,"icon":6,"path":106,"stem":107,"children":108,"page":6},"Concepts","\u002Fconcepts","3.concepts",[109,114,119],{"title":110,"path":111,"stem":112,"icon":113},"Types of code clones","\u002Fconcepts\u002Fclone-types","3.concepts\u002F1.clone-types","i-lucide-copy",{"title":115,"path":116,"stem":117,"icon":118},"How detection works","\u002Fconcepts\u002Fhow-detection-works","3.concepts\u002F2.how-detection-works","i-lucide-scan-search",{"title":120,"path":121,"stem":122,"icon":123},"The health score","\u002Fconcepts\u002Fhealth-score","3.concepts\u002F3.health-score","i-lucide-heart-pulse",{"title":125,"icon":6,"path":126,"stem":127,"children":128,"page":6},"Reference","\u002Freference","4.reference",[129,134,139,144,181,186,190],{"title":130,"path":131,"stem":132,"icon":133},"CLI options","\u002Freference\u002Fcli","4.reference\u002F1.cli","i-lucide-terminal",{"title":135,"path":136,"stem":137,"icon":138},"The config file","\u002Freference\u002Fconfig-file","4.reference\u002F2.config-file","i-lucide-settings",{"title":140,"path":141,"stem":142,"icon":143},"Exit codes","\u002Freference\u002Fexit-codes","4.reference\u002F3.exit-codes","i-lucide-log-out",{"title":145,"icon":6,"path":146,"stem":147,"children":148},"Reporters","\u002Freference\u002Freporters","4.reference\u002F4.reporters\u002Findex",[149,151,156,161,166,171,176],{"title":145,"path":146,"stem":147,"icon":150},"i-lucide-file-chart-column",{"title":152,"path":153,"stem":154,"icon":155},"HTML reporter","\u002Freference\u002Freporters\u002Fhtml","4.reference\u002F4.reporters\u002F2.html","i-lucide-file-code",{"title":157,"path":158,"stem":159,"icon":160},"JSON reporter","\u002Freference\u002Freporters\u002Fjson","4.reference\u002F4.reporters\u002F3.json","i-lucide-braces",{"title":162,"path":163,"stem":164,"icon":165},"Badge reporter","\u002Freference\u002Freporters\u002Fbadge","4.reference\u002F4.reporters\u002F4.badge","i-lucide-award",{"title":167,"path":168,"stem":169,"icon":170},"SARIF reporter","\u002Freference\u002Freporters\u002Fsarif","4.reference\u002F4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":172,"path":173,"stem":174,"icon":175},"CodeClimate reporter","\u002Freference\u002Freporters\u002Fcodeclimate","4.reference\u002F4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":177,"path":178,"stem":179,"icon":180},"OpenMetrics reporter","\u002Freference\u002Freporters\u002Fopenmetrics","4.reference\u002F4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":182,"path":183,"stem":184,"icon":185},"Supported formats","\u002Freference\u002Fsupported-formats","4.reference\u002F5.supported-formats","i-lucide-languages",{"title":187,"path":188,"stem":189,"icon":38},"GitHub Action","\u002Freference\u002Fgithub-action","4.reference\u002F6.github-action",{"title":191,"path":192,"stem":193,"icon":68},"Rust crates","\u002Freference\u002Frust-crates","4.reference\u002F7.rust-crates",{"title":195,"icon":6,"path":196,"stem":197,"children":198,"page":6},"Project","\u002Fproject","5.project",[199,204,209,214,239,244],{"title":200,"path":201,"stem":202,"icon":203},"Changelog","\u002Fproject\u002Fchangelog","5.project\u002F1.changelog","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"Migrating from v4 to v5","\u002Fproject\u002Fmigration","5.project\u002F2.migration","i-lucide-arrow-right-left",{"title":210,"path":211,"stem":212,"icon":213},"jscpd v4 (TypeScript)","\u002Fproject\u002Fv4","5.project\u002F3.v4","i-simple-icons-typescript",{"title":215,"icon":6,"path":216,"stem":217,"children":218},"Benchmarks","\u002Fproject\u002Fbenchmarks","5.project\u002F4.benchmarks\u002Findex",[219,221,226,230,235],{"title":215,"path":216,"stem":217,"icon":220},"i-lucide-gauge",{"title":222,"path":223,"stem":224,"icon":225},"Detection Speed","\u002Fproject\u002Fbenchmarks\u002Fdetection-speed","5.project\u002F4.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":227,"path":228,"stem":229,"icon":58},"Multi-Format Detection","\u002Fproject\u002Fbenchmarks\u002Fcross-format","5.project\u002F4.benchmarks\u002F3.cross-format",{"title":231,"path":232,"stem":233,"icon":234},"AI Token Efficiency","\u002Fproject\u002Fbenchmarks\u002Fai-token-efficiency","5.project\u002F4.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":236,"path":237,"stem":238,"icon":93},"Embedding Models","\u002Fproject\u002Fbenchmarks\u002Fembedding-models","5.project\u002F4.benchmarks\u002F5.embedding-models",{"title":240,"path":241,"stem":242,"icon":243},"Research","\u002Fproject\u002Fresearch","5.project\u002F5.research","i-lucide-graduation-cap",{"title":245,"path":246,"stem":247,"icon":248},"Articles","\u002Fproject\u002Farticles","5.project\u002F6.articles","i-lucide-newspaper",{"name":250,"url":251,"appearances":252,"latest":268},"sherlock-project\u002Fsherlock","https:\u002F\u002Fgithub.com\u002Fsherlock-project\u002Fsherlock",[253],{"date":254,"rank":255,"stars":256,"starsToday":257,"headSha":258,"sources":259,"lines":260,"clones":261,"duplicatedLines":262,"percentage":263,"codePercentage":264,"codeSources":265,"healthScore":266,"healthGrade":267},"2026-11-08",6,100967,1766,"c588d7c8b476df9f9c84912a05d1430fb8cdcdae",47,9968,8,90,0.9,null,9,76.9,"B",{"date":254,"generatedAt":269,"name":250,"url":251,"description":270,"language":271,"stars":256,"starsToday":257,"defaultBranch":272,"headSha":258,"durationMs":273,"total":274,"formats":278,"topClones":319,"code":422,"health":451,"complexity":479,"deadCode":521},"2026-11-08T05:21:26.124Z","Hunt down social media accounts by username across social networks","Python","master",1015,{"sources":259,"lines":260,"tokens":275,"clones":261,"duplicatedLines":262,"duplicatedTokens":276,"percentage":263,"percentageTokens":277},40953,607,1.48,[279,285,292,296,299,303,306,310,313,316],{"format":280,"sources":265,"lines":281,"clones":282,"duplicatedLines":283,"percentage":284},"yaml",541,5,53,9.8,{"format":286,"sources":287,"lines":288,"clones":289,"duplicatedLines":290,"percentage":291},"python",16,2168,3,37,1.71,{"format":293,"sources":282,"lines":294,"clones":295,"duplicatedLines":295,"percentage":295},"json",4588,0,{"format":297,"sources":255,"lines":298,"clones":295,"duplicatedLines":295,"percentage":295},"markdown",2397,{"format":300,"sources":301,"lines":302,"clones":295,"duplicatedLines":295,"percentage":295},"toml",1,68,{"format":304,"sources":289,"lines":305,"clones":295,"duplicatedLines":295,"percentage":295},"text",64,{"format":307,"sources":308,"lines":309,"clones":295,"duplicatedLines":295,"percentage":295},"docker",2,50,{"format":311,"sources":308,"lines":312,"clones":295,"duplicatedLines":295,"percentage":295},"ini",49,{"format":314,"sources":308,"lines":315,"clones":295,"duplicatedLines":295,"percentage":295},"bash",25,{"format":317,"sources":301,"lines":318,"clones":295,"duplicatedLines":295,"percentage":295},"editorconfig",18,[320,347,371,388,396,403,412],{"format":280,"lines":321,"tokens":322,"first":323,"others":327,"copies":289,"excerpt":334,"kind":346},11,80,{"name":324,"start":325,"end":326},".github\u002FISSUE_TEMPLATE\u002Ffalse-negative.yml",17,27,[328,331],{"name":329,"start":318,"end":330},".github\u002FISSUE_TEMPLATE\u002Ffalse-positive.yml",28,{"name":332,"start":315,"end":333},".github\u002FISSUE_TEMPLATE\u002Fsite-request.yml",35,{"lines":335,"total":321},[336,337,338,339,340,341,342,343,344,345],"      Reddit is returning false negatives because...","  validations:","    required: false","- type: checkboxes","  id: terms","  attributes:","    label: Code of Conduct","    description: By submitting this issue, you agree to follow our [Code of Conduct](https:\u002F\u002Fgithub.com\u002Fsherlock-project\u002Fsherlock\u002Fblob\u002Fmaster\u002Fdocs\u002FCODE_OF_COND…","    options:","      - label: I agree to follow this project's Code of Conduct","data",{"format":286,"lines":348,"tokens":349,"first":350,"others":354,"copies":308,"excerpt":358,"kind":370},12,107,{"name":351,"start":352,"end":353},"tests\u002Ftest_probes.py",62,73,[355],{"name":351,"start":356,"end":357},84,95,{"lines":359,"total":348},[360,361,362,363,364,365,366,367,368,369],"def test_likely_negatives_via_message(self, sites_info, site, random_len):","    num_attempts: int = 3","    attempted_usernames: list[str] = []","    status: QueryStatus = QueryStatus.CLAIMED","    for i in range(num_attempts):","        acceptable_types = string.ascii_letters + string.digits","        random_handle = ''.join(random.choice(acceptable_types) for _ in range (random_len))","        attempted_usernames.append(random_handle)","        status = simple_query(sites_info=sites_info, site=site, username=random_handle)","        if status is QueryStatus.AVAILABLE:","tests",{"format":280,"lines":348,"tokens":322,"first":372,"others":375,"copies":308,"excerpt":377,"kind":346},{"name":324,"start":373,"end":374},4,15,[376],{"name":329,"start":373,"end":374},{"lines":378,"total":348},[379,380,381,382,383,384,385,386,387,382],"labels: [\"false negative\"]","body:","  - type: markdown","    attributes:","      value: |","        Please include the site name in the title of your issue.","        Submit **one site per report** for faster resolution. If you have multiple sites in the same report, it often takes longer to fix.","  - type: textarea","    id: additional-info",{"format":280,"lines":321,"tokens":389,"first":390,"others":394,"copies":308,"kind":346},78,{"name":391,"start":392,"end":393},".github\u002FISSUE_TEMPLATE\u002Fbug-report.yml",61,71,[395],{"name":324,"start":325,"end":326},{"format":280,"lines":261,"tokens":397,"first":398,"others":399,"copies":308,"kind":346},72,{"name":391,"start":305,"end":393},[400],{"name":401,"start":325,"end":402},".github\u002FISSUE_TEMPLATE\u002Ffeature-request.yml",24,{"format":286,"lines":404,"tokens":405,"first":406,"others":409,"copies":308,"kind":370},10,56,{"name":407,"start":408,"end":259},"tests\u002Ftest_validate_targets.py",38,[410],{"name":407,"start":392,"end":411},70,{"format":286,"lines":374,"tokens":413,"first":414,"others":418,"copies":308,"kind":421},54,{"name":415,"start":416,"end":417},"sherlock_project\u002Fnotify.py",45,59,[419],{"name":415,"start":420,"end":357},81,"code",{"sources":265,"lines":423,"tokens":424,"clones":301,"duplicatedLines":374,"duplicatedTokens":413,"percentage":425,"percentageTokens":426,"formats":427,"topClones":433,"generated":449},1745,7342,0.86,0.74,[428,431],{"format":286,"sources":261,"lines":429,"clones":301,"duplicatedLines":374,"percentage":430},1731,0.87,{"format":314,"sources":301,"lines":432,"clones":295,"duplicatedLines":295,"percentage":295},14,[434],{"format":286,"lines":374,"tokens":413,"first":435,"others":436,"copies":308,"excerpt":438,"kind":421},{"name":415,"start":416,"end":417},[437],{"name":415,"start":420,"end":357},{"lines":439,"total":374},[440,441,442,443,444,445,446,447,442,448],"any queries are performed.  This method will typically be","overridden by higher level classes that will inherit from it.","","Keyword Arguments:","self                   -- This object.","message                -- Object that is used to give context to start","                          of query.","                          Default is None.","Return Value:",{"files":295,"minified":295,"sample":450},[],{"score":266,"grade":267,"size":452,"dimensions":456},{"lines":453,"files":454,"class":455},2232,19,"S",[457,466,473],{"id":458,"source":459,"value":460,"adjusted":461,"lines":290,"halfLife":462,"formats":463,"excluded":464,"weight":301,"score":465},"duplication","jscpd",1.7,2.5,8.5,[286,307,314],[304,346],81.4,{"id":467,"source":459,"value":295,"adjusted":468,"lines":295,"halfLife":469,"coverage":470,"weight":471,"score":472},"dead-code",1.5,7.5,97.5,0.975,87.2,{"id":474,"source":459,"value":475,"adjusted":476,"lines":477,"halfLife":309,"weight":301,"score":478},"complexity",41.8,31.9,934,64.2,{"total":480,"mean":481,"files":482},284,14.9,[483,487,492,496,499,502,507,510,514,517],{"path":484,"complexity":485,"lines":477,"bytes":486},"sherlock_project\u002Fsherlock.py",125,34664,{"path":488,"complexity":489,"lines":490,"bytes":491},"sherlock_project\u002Fsites.py",31,258,10151,{"path":415,"complexity":493,"lines":494,"bytes":495},23,282,9141,{"path":407,"complexity":318,"lines":497,"bytes":498},99,4558,{"path":500,"complexity":325,"lines":397,"bytes":501},"devel\u002Fsummarize_site_validation.py",2637,{"path":503,"complexity":504,"lines":505,"bytes":506},"tests\u002Fconftest.py",13,51,2015,{"path":351,"complexity":504,"lines":508,"bytes":509},104,4654,{"path":511,"complexity":321,"lines":512,"bytes":513},"tests\u002Ftest_ux.py",43,1809,{"path":515,"complexity":261,"lines":408,"bytes":516},"tests\u002Fsherlock_interactives.py",1423,{"path":518,"complexity":373,"lines":519,"bytes":520},"sherlock_project\u002Fresult.py",88,3169,{"percentage":295,"findings":295,"files":325,"byCategory":522,"largest":523},[],[],{"\u002Ftrending\u002Fsherlock-project\u002Fsherlock":525},{"views":295,"visits":295},1794135048688]