[{"data":1,"prerenderedAt":459},["ShallowReactive",2],{"navigation_docs":3,"-reporters-sarif":87,"-reporters-sarif-surround":454},[4,40,66],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25,30,35],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration","i-lucide-settings",{"title":26,"path":27,"stem":28,"icon":29},"Supported Formats","\u002Fgetting-started\u002Fsupported-formats","1.getting-started\u002F5.supported-formats","i-lucide-file-code",{"title":31,"path":32,"stem":33,"icon":34},"Agent Skill","\u002Fgetting-started\u002Fagent-skill","1.getting-started\u002F6.agent-skill","i-lucide-cpu",{"title":36,"path":37,"stem":38,"icon":39},"Changelog","\u002Fgetting-started\u002Fchangelog","1.getting-started\u002F7.changelog","i-lucide-scroll-text",{"title":41,"path":42,"stem":43,"children":44,"icon":46},"Reporters","\u002Freporters","2.reporters\u002F1.index",[45,47,51,56,61],{"title":41,"path":42,"stem":43,"icon":46},"i-lucide-file-chart-column",{"title":48,"path":49,"stem":50,"icon":29},"HTML Reporter","\u002Freporters\u002Fhtml","2.reporters\u002F2.html",{"title":52,"path":53,"stem":54,"icon":55},"JSON Reporter","\u002Freporters\u002Fjson","2.reporters\u002F3.json","i-lucide-braces",{"title":57,"path":58,"stem":59,"icon":60},"Badge Reporter","\u002Freporters\u002Fbadge","2.reporters\u002F4.badge","i-lucide-award",{"title":62,"path":63,"stem":64,"icon":65},"SARIF Reporter","\u002Freporters\u002Fsarif","2.reporters\u002F5.sarif","i-lucide-shield-check",{"title":67,"path":68,"stem":69,"children":70,"icon":72},"API","\u002Fapi","3.api\u002F1.index",[71,73,78,83],{"title":67,"path":68,"stem":69,"icon":72},"i-lucide-code",{"title":74,"path":75,"stem":76,"icon":77},"Core Package","\u002Fapi\u002Fcore","3.api\u002F2.core","i-lucide-box",{"title":79,"path":80,"stem":81,"icon":82},"Server API","\u002Fapi\u002Fserver","3.api\u002F3.server","i-lucide-server",{"title":84,"path":85,"stem":86,"icon":77},"MCP Server","\u002Fapi\u002Fmcp-server","3.api\u002F4.mcp-server",{"id":88,"title":62,"body":89,"description":446,"extension":447,"links":448,"meta":449,"navigation":450,"path":63,"seo":451,"stem":64,"__hash__":453},"docs\u002F2.reporters\u002F5.sarif.md",{"type":90,"value":91,"toc":439},"minimark",[92,96,122,126,145,152,156,159,337,345,348,412,416,435],[93,94,16],"h2",{"id":95},"installation",[97,98,103],"pre",{"className":99,"code":100,"language":101,"meta":102,"style":102},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @jscpd\u002Fsarif-reporter\n","bash","",[104,105,106],"code",{"__ignoreMap":102},[107,108,111,115,119],"span",{"class":109,"line":110},"line",1,[107,112,114],{"class":113},"sBMFI","npm",[107,116,118],{"class":117},"sfazB"," install",[107,120,121],{"class":117}," @jscpd\u002Fsarif-reporter\n",[93,123,125],{"id":124},"usage","Usage",[97,127,129],{"className":99,"code":128,"language":101,"meta":102,"style":102},"jscpd --reporters sarif .\u002Fsrc\n",[104,130,131],{"__ignoreMap":102},[107,132,133,136,139,142],{"class":109,"line":110},[107,134,135],{"class":113},"jscpd",[107,137,138],{"class":117}," --reporters",[107,140,141],{"class":117}," sarif",[107,143,144],{"class":117}," .\u002Fsrc\n",[146,147,148,149],"p",{},"Output file: ",[104,150,151],{},".\u002Freport\u002Fjscpd-sarif.json",[93,153,155],{"id":154},"github-code-scanning-integration","GitHub Code Scanning Integration",[146,157,158],{},"Upload the SARIF output to GitHub to surface duplication findings inline in pull requests:",[97,160,165],{"className":161,"code":162,"filename":163,"language":164,"meta":102,"style":102},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","name: Code duplication check\non: [push, pull_request]\n\njobs:\n  jscpd:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      - name: Run jscpd\n        run: npx jscpd --reporters sarif --output .\u002Freports .\n\n      - name: Upload SARIF to GitHub Code Scanning\n        uses: github\u002Fcodeql-action\u002Fupload-sarif@v3\n        with:\n          sarif_file: .\u002Freports\u002Fjscpd-sarif.json\n",".github\u002Fworkflows\u002Fjscpd.yml","yaml",[104,166,167,180,204,211,220,228,239,247,261,266,279,290,295,307,318,326],{"__ignoreMap":102},[107,168,169,173,177],{"class":109,"line":110},[107,170,172],{"class":171},"swJcz","name",[107,174,176],{"class":175},"sMK4o",":",[107,178,179],{"class":117}," Code duplication check\n",[107,181,183,187,189,192,195,198,201],{"class":109,"line":182},2,[107,184,186],{"class":185},"sfNiH","on",[107,188,176],{"class":175},[107,190,191],{"class":175}," [",[107,193,194],{"class":117},"push",[107,196,197],{"class":175},",",[107,199,200],{"class":117}," pull_request",[107,202,203],{"class":175},"]\n",[107,205,207],{"class":109,"line":206},3,[107,208,210],{"emptyLinePlaceholder":209},true,"\n",[107,212,214,217],{"class":109,"line":213},4,[107,215,216],{"class":171},"jobs",[107,218,219],{"class":175},":\n",[107,221,223,226],{"class":109,"line":222},5,[107,224,225],{"class":171},"  jscpd",[107,227,219],{"class":175},[107,229,231,234,236],{"class":109,"line":230},6,[107,232,233],{"class":171},"    runs-on",[107,235,176],{"class":175},[107,237,238],{"class":117}," ubuntu-latest\n",[107,240,242,245],{"class":109,"line":241},7,[107,243,244],{"class":171},"    steps",[107,246,219],{"class":175},[107,248,250,253,256,258],{"class":109,"line":249},8,[107,251,252],{"class":175},"      -",[107,254,255],{"class":171}," uses",[107,257,176],{"class":175},[107,259,260],{"class":117}," actions\u002Fcheckout@v4\n",[107,262,264],{"class":109,"line":263},9,[107,265,210],{"emptyLinePlaceholder":209},[107,267,269,271,274,276],{"class":109,"line":268},10,[107,270,252],{"class":175},[107,272,273],{"class":171}," name",[107,275,176],{"class":175},[107,277,278],{"class":117}," Run jscpd\n",[107,280,282,285,287],{"class":109,"line":281},11,[107,283,284],{"class":171},"        run",[107,286,176],{"class":175},[107,288,289],{"class":117}," npx jscpd --reporters sarif --output .\u002Freports .\n",[107,291,293],{"class":109,"line":292},12,[107,294,210],{"emptyLinePlaceholder":209},[107,296,298,300,302,304],{"class":109,"line":297},13,[107,299,252],{"class":175},[107,301,273],{"class":171},[107,303,176],{"class":175},[107,305,306],{"class":117}," Upload SARIF to GitHub Code Scanning\n",[107,308,310,313,315],{"class":109,"line":309},14,[107,311,312],{"class":171},"        uses",[107,314,176],{"class":175},[107,316,317],{"class":117}," github\u002Fcodeql-action\u002Fupload-sarif@v3\n",[107,319,321,324],{"class":109,"line":320},15,[107,322,323],{"class":171},"        with",[107,325,219],{"class":175},[107,327,329,332,334],{"class":109,"line":328},16,[107,330,331],{"class":171},"          sarif_file",[107,333,176],{"class":175},[107,335,336],{"class":117}," .\u002Freports\u002Fjscpd-sarif.json\n",[146,338,339,340,344],{},"Results appear in the ",[341,342,343],"strong",{},"Security → Code Scanning"," tab of your repository and as inline annotations on pull request diffs.",[93,346,21],{"id":347},"configuration",[97,349,354],{"className":350,"code":351,"filename":352,"language":353,"meta":102,"style":102},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"reporters\": [\"sarif\"],\n  \"output\": \".\u002Freports\u002Fjscpd\"\n}\n",".jscpd.json","json",[104,355,356,361,387,407],{"__ignoreMap":102},[107,357,358],{"class":109,"line":110},[107,359,360],{"class":175},"{\n",[107,362,363,366,370,373,375,377,379,382,384],{"class":109,"line":182},[107,364,365],{"class":175},"  \"",[107,367,369],{"class":368},"spNyl","reporters",[107,371,372],{"class":175},"\"",[107,374,176],{"class":175},[107,376,191],{"class":175},[107,378,372],{"class":175},[107,380,381],{"class":117},"sarif",[107,383,372],{"class":175},[107,385,386],{"class":175},"],\n",[107,388,389,391,394,396,398,401,404],{"class":109,"line":206},[107,390,365],{"class":175},[107,392,393],{"class":368},"output",[107,395,372],{"class":175},[107,397,176],{"class":175},[107,399,400],{"class":175}," \"",[107,402,403],{"class":117},".\u002Freports\u002Fjscpd",[107,405,406],{"class":175},"\"\n",[107,408,409],{"class":109,"line":213},[107,410,411],{"class":175},"}\n",[93,413,415],{"id":414},"how-it-works","How It Works",[146,417,418,419,422,423,426,427,430,431,434],{},"Each detected clone is reported as a ",[104,420,421],{},"warning","-level SARIF result with precise file locations (line and column). If the overall duplication percentage exceeds the configured ",[104,424,425],{},"--threshold",", an additional ",[104,428,429],{},"error","-level result is emitted under the ",[104,432,433],{},"duplications-threshold"," rule.",[436,437,438],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":102,"searchDepth":182,"depth":182,"links":440},[441,442,443,444,445],{"id":95,"depth":182,"text":16},{"id":124,"depth":182,"text":125},{"id":154,"depth":182,"text":155},{"id":347,"depth":182,"text":21},{"id":414,"depth":182,"text":415},"Generate SARIF reports for GitHub Code Scanning integration.","md",null,{},{"icon":65},{"title":62,"description":452},"Generate SARIF duplication reports compatible with GitHub Code Scanning.","PsZnbO14ei2Kubgbq8MpqoBnVE9gzqtYGRHgFagF-BU",[455,457],{"title":57,"path":58,"stem":59,"description":456,"icon":60,"children":-1},"Generate SVG badges for your README.",{"title":67,"path":68,"stem":69,"description":458,"icon":72,"children":-1},"Use jscpd programmatically in your applications.",1779030426417]