[{"data":1,"prerenderedAt":362},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-vercel-labs\u002Fportless":188},[4,50,82,99,135,157,173,178,183],{"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,40,45],{"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,"icon":44},"Migrating from v4 to v5","\u002Fgetting-started\u002Fmigration","1.getting-started\u002F8.migration","i-lucide-arrow-right-left",{"title":46,"path":47,"stem":48,"icon":49},"jscpd v4 (TypeScript)","\u002Fgetting-started\u002Fv4","1.getting-started\u002F9.v4","i-simple-icons-typescript",{"title":51,"path":52,"stem":53,"children":54,"icon":6},"Guides","\u002Fguides","2.guides\u002F1.index",[55,57,62,67,72,77],{"title":51,"path":52,"stem":53,"icon":56},"i-lucide-book-open",{"title":58,"path":59,"stem":60,"icon":61},"Types of Code Clones","\u002Fguides\u002Fclone-types","2.guides\u002F2.clone-types","i-lucide-copy",{"title":63,"path":64,"stem":65,"icon":66},"How Detection Works","\u002Fguides\u002Fhow-detection-works","2.guides\u002F3.how-detection-works","i-lucide-scan-search",{"title":68,"path":69,"stem":70,"icon":71},"Duplication Trend over Git History","\u002Fguides\u002Fhistory","2.guides\u002F4.history","i-lucide-chart-no-axes-combined",{"title":73,"path":74,"stem":75,"icon":76},"Project Dashboard","\u002Fguides\u002Fdashboard","2.guides\u002F5.dashboard","i-lucide-layout-dashboard",{"title":78,"path":79,"stem":80,"icon":81},"Project Health Score","\u002Fguides\u002Fhealth","2.guides\u002F6.health","i-lucide-heart-pulse",{"title":83,"path":84,"stem":85,"children":86,"icon":6},"CI & Hooks","\u002Fci-and-hooks","3.ci-and-hooks\u002F1.index",[87,89,94],{"title":83,"path":84,"stem":85,"icon":88},"i-lucide-git-pull-request",{"title":90,"path":91,"stem":92,"icon":93},"Use jscpd in CI","\u002Fci-and-hooks\u002Fci","3.ci-and-hooks\u002F2.ci","i-lucide-github",{"title":95,"path":96,"stem":97,"icon":98},"Use jscpd in Pre-Commit Hook","\u002Fci-and-hooks\u002Fpre-commit","3.ci-and-hooks\u002F3.pre-commit","i-lucide-git-commit",{"title":100,"path":101,"stem":102,"children":103,"icon":105},"Reporters","\u002Freporters","4.reporters\u002F1.index",[104,106,110,115,120,125,130],{"title":100,"path":101,"stem":102,"icon":105},"i-lucide-file-chart-column",{"title":107,"path":108,"stem":109,"icon":29},"HTML Reporter","\u002Freporters\u002Fhtml","4.reporters\u002F2.html",{"title":111,"path":112,"stem":113,"icon":114},"JSON Reporter","\u002Freporters\u002Fjson","4.reporters\u002F3.json","i-lucide-braces",{"title":116,"path":117,"stem":118,"icon":119},"Badge Reporter","\u002Freporters\u002Fbadge","4.reporters\u002F4.badge","i-lucide-award",{"title":121,"path":122,"stem":123,"icon":124},"SARIF Reporter","\u002Freporters\u002Fsarif","4.reporters\u002F5.sarif","i-lucide-shield-check",{"title":126,"path":127,"stem":128,"icon":129},"CodeClimate \u002F GitLab Reporter","\u002Freporters\u002Fcodeclimate","4.reporters\u002F6.codeclimate","i-lucide-flag-triangle-right",{"title":131,"path":132,"stem":133,"icon":134},"OpenMetrics Reporter","\u002Freporters\u002Fopenmetrics","4.reporters\u002F7.openmetrics","i-lucide-activity",{"title":136,"path":137,"stem":138,"children":139,"icon":6},"Benchmarks","\u002Fbenchmarks","5.benchmarks\u002F1.index",[140,142,147,152],{"title":136,"path":137,"stem":138,"icon":141},"i-lucide-gauge",{"title":143,"path":144,"stem":145,"icon":146},"Detection Speed","\u002Fbenchmarks\u002Fdetection-speed","5.benchmarks\u002F2.detection-speed","i-lucide-zap",{"title":148,"path":149,"stem":150,"icon":151},"Multi-Format Detection","\u002Fbenchmarks\u002Fcross-format","5.benchmarks\u002F3.cross-format","i-lucide-layers",{"title":153,"path":154,"stem":155,"icon":156},"AI Token Efficiency","\u002Fbenchmarks\u002Fai-token-efficiency","5.benchmarks\u002F4.ai-token-efficiency","i-lucide-sparkles",{"title":158,"path":159,"stem":160,"children":161,"icon":163},"API","\u002Fapi","6.api\u002F1.index",[162,164,169],{"title":158,"path":159,"stem":160,"icon":163},"i-lucide-code",{"title":165,"path":166,"stem":167,"icon":168},"Rust Crates (v5)","\u002Fapi\u002Fcore","6.api\u002F2.core","i-lucide-box",{"title":170,"path":171,"stem":172,"icon":168},"MCP Server","\u002Fapi\u002Fmcp-server","6.api\u002F4.mcp-server",{"title":174,"path":175,"stem":176,"icon":177},"Trending","\u002Ftrending","7.trending","i-lucide-trending-up",{"title":179,"path":180,"stem":181,"icon":182},"Research","\u002Fresearch","8.research","i-lucide-graduation-cap",{"title":184,"path":185,"stem":186,"icon":187},"Articles","\u002Farticles","9.articles","i-lucide-newspaper",{"name":189,"url":190,"appearances":191,"latest":204},"vercel-labs\u002Fportless","https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fportless",[192],{"date":193,"rank":194,"stars":195,"starsToday":196,"headSha":197,"sources":198,"lines":199,"clones":200,"duplicatedLines":201,"percentage":202,"healthScore":203,"healthGrade":203},"2026-09-03",11,11880,73,"1ad573bb95810daf6cd50c1718707015450f3f09",158,37632,189,2156,5.73,null,{"date":193,"generatedAt":205,"name":189,"url":190,"description":206,"language":207,"stars":195,"starsToday":196,"defaultBranch":208,"headSha":197,"durationMs":209,"total":210,"formats":214,"topClones":272},"2026-09-03T05:50:15.985Z","Replace port numbers with stable, named local URLs. For humans and agents.","TypeScript","main",600,{"sources":198,"lines":199,"tokens":211,"clones":200,"duplicatedLines":201,"duplicatedTokens":212,"percentage":202,"percentageTokens":213},210581,14620,6.94,[215,222,229,236,243,249,254,260,265,269],{"format":216,"sources":217,"lines":218,"clones":219,"duplicatedLines":220,"percentage":221},"typescript",77,28479,176,2010,7.06,{"format":223,"sources":224,"lines":225,"clones":226,"duplicatedLines":227,"percentage":228},"markdown",6,1973,5,55,2.79,{"format":230,"sources":231,"lines":232,"clones":233,"duplicatedLines":234,"percentage":235},"tsx",22,2285,3,33,1.44,{"format":237,"sources":238,"lines":239,"clones":240,"duplicatedLines":241,"percentage":242},"bash",18,2363,1,10,0.42,{"format":244,"sources":245,"lines":246,"clones":240,"duplicatedLines":247,"percentage":248},"json",16,980,24,2.45,{"format":250,"sources":251,"lines":252,"clones":240,"duplicatedLines":224,"percentage":253},"css",2,347,1.73,{"format":255,"sources":256,"lines":257,"clones":240,"duplicatedLines":258,"percentage":259},"yaml",4,280,13,4.64,{"format":261,"sources":262,"lines":263,"clones":240,"duplicatedLines":226,"percentage":264},"javascript",8,253,1.98,{"format":266,"sources":240,"lines":267,"clones":268,"duplicatedLines":268,"percentage":268},"text",461,0,{"format":270,"sources":240,"lines":271,"clones":268,"duplicatedLines":268,"percentage":268},"perl",168,[273,283,292,301,310,319,329,337,345,353],{"format":216,"lines":274,"tokens":275,"firstFile":276,"secondFile":280},48,308,{"name":277,"start":278,"end":279},"packages\u002Fportless\u002Fsrc\u002Fproxy.test.ts",819,866,{"name":277,"start":281,"end":282},1981,2031,{"format":216,"lines":284,"tokens":285,"firstFile":286,"secondFile":290},53,304,{"name":287,"start":288,"end":289},"tests\u002Fe2e\u002Fsrc\u002Fparallel.test.ts",12,64,{"name":291,"start":288,"end":289},"tests\u002Fe2e\u002Fsrc\u002Fzombie.test.ts",{"format":216,"lines":293,"tokens":294,"firstFile":295,"secondFile":298},50,294,{"name":296,"start":231,"end":297},"tests\u002Fe2e\u002Fsrc\u002Fharness.ts",71,{"name":287,"start":299,"end":300},14,62,{"format":216,"lines":234,"tokens":302,"firstFile":303,"secondFile":307},196,{"name":304,"start":305,"end":306},"packages\u002Fportless\u002Fsrc\u002Fservice.test.ts",444,476,{"name":304,"start":308,"end":309},534,566,{"format":216,"lines":311,"tokens":312,"firstFile":313,"secondFile":316},19,150,{"name":277,"start":314,"end":315},1559,1577,{"name":277,"start":317,"end":318},1580,1601,{"format":216,"lines":320,"tokens":321,"firstFile":322,"secondFile":326},27,139,{"name":323,"start":324,"end":325},"packages\u002Fportless\u002Fsrc\u002Fproxy.ts",335,361,{"name":323,"start":327,"end":328},448,473,{"format":216,"lines":330,"tokens":331,"firstFile":332,"secondFile":334},26,134,{"name":304,"start":333,"end":306},451,{"name":304,"start":335,"end":336},586,610,{"format":216,"lines":338,"tokens":339,"firstFile":340,"secondFile":342},20,125,{"name":277,"start":278,"end":341},838,{"name":277,"start":343,"end":344},1607,1626,{"format":216,"lines":245,"tokens":346,"firstFile":347,"secondFile":350},123,{"name":277,"start":348,"end":349},146,161,{"name":277,"start":351,"end":352},532,547,{"format":216,"lines":354,"tokens":355,"firstFile":356,"secondFile":359},21,121,{"name":277,"start":357,"end":358},825,845,{"name":277,"start":360,"end":361},1224,1242,1790314228361]