[{"data":1,"prerenderedAt":787},["ShallowReactive",2],{"navigation_docs":3,"-api":72,"-api-surround":782},[4,30,51],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"/getting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/getting-started/introduction","1.getting-started/2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/getting-started/installation","1.getting-started/3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Configuration","/getting-started/configuration","1.getting-started/4.configuration","i-lucide-settings",{"title":26,"path":27,"stem":28,"icon":29},"Supported Formats","/getting-started/supported-formats","1.getting-started/5.supported-formats","i-lucide-file-code",{"title":31,"path":32,"stem":33,"children":34,"icon":36},"Reporters","/reporters","2.reporters/1.index",[35,37,41,46],{"title":31,"path":32,"stem":33,"icon":36},"i-lucide-file-chart-column",{"title":38,"path":39,"stem":40,"icon":29},"HTML Reporter","/reporters/html","2.reporters/2.html",{"title":42,"path":43,"stem":44,"icon":45},"JSON Reporter","/reporters/json","2.reporters/3.json","i-lucide-braces",{"title":47,"path":48,"stem":49,"icon":50},"Badge Reporter","/reporters/badge","2.reporters/4.badge","i-lucide-award",{"title":52,"path":53,"stem":54,"children":55,"icon":57},"API","/api","3.api/1.index",[56,58,63,68],{"title":52,"path":53,"stem":54,"icon":57},"i-lucide-code",{"title":59,"path":60,"stem":61,"icon":62},"Core Package","/api/core","3.api/2.core","i-lucide-box",{"title":64,"path":65,"stem":66,"icon":67},"Server API","/api/server","3.api/3.server","i-lucide-server",{"title":69,"path":70,"stem":71,"icon":62},"MCP Server","/api/mcp-server","3.api/4.mcp-server",{"id":73,"title":52,"body":74,"description":773,"extension":774,"links":775,"meta":776,"navigation":777,"path":53,"seo":778,"stem":54,"__hash__":781},"docs/3.api/1.index.md",{"type":75,"value":76,"toc":764},"minimark",[77,82,86,90,95,217,221,383,387,390,577,581,584,760],[78,79,81],"h2",{"id":80},"overview","Overview",[83,84,85],"p",{},"jscpd provides a programming API for integrating copy/paste detection into your applications.",[78,87,89],{"id":88},"basic-usage","Basic Usage",[91,92,94],"h3",{"id":93},"promise-api","Promise API",[96,97,102],"pre",{"className":98,"code":99,"language":100,"meta":101,"style":101},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { IClone } from '@jscpd/core';\nimport { jscpd } from 'jscpd';\n\nconst clones: Promise\u003CIClone[]> = jscpd(process.argv);\n","typescript","",[103,104,105,141,164,171],"code",{"__ignoreMap":101},[106,107,110,114,118,122,125,128,131,135,138],"span",{"class":108,"line":109},"line",1,[106,111,113],{"class":112},"s7zQu","import",[106,115,117],{"class":116},"sMK4o"," {",[106,119,121],{"class":120},"sTEyZ"," IClone",[106,123,124],{"class":116}," }",[106,126,127],{"class":112}," from",[106,129,130],{"class":116}," '",[106,132,134],{"class":133},"sfazB","@jscpd/core",[106,136,137],{"class":116},"'",[106,139,140],{"class":116},";\n",[106,142,144,146,148,151,153,155,157,160,162],{"class":108,"line":143},2,[106,145,113],{"class":112},[106,147,117],{"class":116},[106,149,150],{"class":120}," jscpd",[106,152,124],{"class":116},[106,154,127],{"class":112},[106,156,130],{"class":116},[106,158,159],{"class":133},"jscpd",[106,161,137],{"class":116},[106,163,140],{"class":116},[106,165,167],{"class":108,"line":166},3,[106,168,170],{"emptyLinePlaceholder":169},true,"\n",[106,172,174,178,181,184,188,191,194,197,200,203,206,209,212,215],{"class":108,"line":173},4,[106,175,177],{"class":176},"spNyl","const",[106,179,180],{"class":120}," clones",[106,182,183],{"class":116},":",[106,185,187],{"class":186},"sBMFI"," Promise",[106,189,190],{"class":116},"\u003C",[106,192,193],{"class":186},"IClone",[106,195,196],{"class":120},"[]",[106,198,199],{"class":116},">",[106,201,202],{"class":116}," =",[106,204,150],{"class":205},"s2Zo4",[106,207,208],{"class":120},"(process",[106,210,211],{"class":116},".",[106,213,214],{"class":120},"argv)",[106,216,140],{"class":116},[91,218,220],{"id":219},"asyncawait-api","Async/Await API",[96,222,224],{"className":98,"code":223,"language":100,"meta":101,"style":101},"import { IClone } from '@jscpd/core';\nimport { jscpd } from 'jscpd';\n\n(async () => {\n  const clones: IClone[] = await jscpd(['', '', __dirname, '-r', 'json']);\n  console.log(clones);\n})();\n",[103,225,226,246,266,270,287,351,372],{"__ignoreMap":101},[106,227,228,230,232,234,236,238,240,242,244],{"class":108,"line":109},[106,229,113],{"class":112},[106,231,117],{"class":116},[106,233,121],{"class":120},[106,235,124],{"class":116},[106,237,127],{"class":112},[106,239,130],{"class":116},[106,241,134],{"class":133},[106,243,137],{"class":116},[106,245,140],{"class":116},[106,247,248,250,252,254,256,258,260,262,264],{"class":108,"line":143},[106,249,113],{"class":112},[106,251,117],{"class":116},[106,253,150],{"class":120},[106,255,124],{"class":116},[106,257,127],{"class":112},[106,259,130],{"class":116},[106,261,159],{"class":133},[106,263,137],{"class":116},[106,265,140],{"class":116},[106,267,268],{"class":108,"line":166},[106,269,170],{"emptyLinePlaceholder":169},[106,271,272,275,278,281,284],{"class":108,"line":173},[106,273,274],{"class":120},"(",[106,276,277],{"class":176},"async",[106,279,280],{"class":116}," ()",[106,282,283],{"class":176}," =>",[106,285,286],{"class":116}," {\n",[106,288,290,293,295,297,299,303,306,309,311,314,317,320,323,325,328,330,332,335,337,339,341,344,346,349],{"class":108,"line":289},5,[106,291,292],{"class":176},"  const",[106,294,180],{"class":120},[106,296,183],{"class":116},[106,298,121],{"class":186},[106,300,302],{"class":301},"swJcz","[] ",[106,304,305],{"class":116},"=",[106,307,308],{"class":112}," await",[106,310,150],{"class":205},[106,312,313],{"class":301},"([",[106,315,316],{"class":116},"''",[106,318,319],{"class":116},",",[106,321,322],{"class":116}," ''",[106,324,319],{"class":116},[106,326,327],{"class":120}," __dirname",[106,329,319],{"class":116},[106,331,130],{"class":116},[106,333,334],{"class":133},"-r",[106,336,137],{"class":116},[106,338,319],{"class":116},[106,340,130],{"class":116},[106,342,343],{"class":133},"json",[106,345,137],{"class":116},[106,347,348],{"class":301},"])",[106,350,140],{"class":116},[106,352,354,357,359,362,364,367,370],{"class":108,"line":353},6,[106,355,356],{"class":120},"  console",[106,358,211],{"class":116},[106,360,361],{"class":205},"log",[106,363,274],{"class":301},[106,365,366],{"class":120},"clones",[106,368,369],{"class":301},")",[106,371,140],{"class":116},[106,373,375,378,381],{"class":108,"line":374},7,[106,376,377],{"class":116},"}",[106,379,380],{"class":120},")()",[106,382,140],{"class":116},[78,384,386],{"id":385},"options","Options",[83,388,389],{},"Pass options programmatically:",[96,391,393],{"className":98,"code":392,"language":100,"meta":101,"style":101},"import { jscpd } from 'jscpd';\n\nconst options = [\n  '', // placeholder for node\n  '', // placeholder for script\n  './src',\n  '--min-lines', '5',\n  '--min-tokens', '50',\n  '--reporters', 'json',\n  '--output', './reports'\n];\n\nconst clones = await jscpd(options);\n",[103,394,395,415,419,431,442,451,464,484,505,525,545,553,558],{"__ignoreMap":101},[106,396,397,399,401,403,405,407,409,411,413],{"class":108,"line":109},[106,398,113],{"class":112},[106,400,117],{"class":116},[106,402,150],{"class":120},[106,404,124],{"class":116},[106,406,127],{"class":112},[106,408,130],{"class":116},[106,410,159],{"class":133},[106,412,137],{"class":116},[106,414,140],{"class":116},[106,416,417],{"class":108,"line":143},[106,418,170],{"emptyLinePlaceholder":169},[106,420,421,423,426,428],{"class":108,"line":166},[106,422,177],{"class":176},[106,424,425],{"class":120}," options ",[106,427,305],{"class":116},[106,429,430],{"class":120}," [\n",[106,432,433,436,438],{"class":108,"line":173},[106,434,435],{"class":116},"  ''",[106,437,319],{"class":116},[106,439,441],{"class":440},"sHwdD"," // placeholder for node\n",[106,443,444,446,448],{"class":108,"line":289},[106,445,435],{"class":116},[106,447,319],{"class":116},[106,449,450],{"class":440}," // placeholder for script\n",[106,452,453,456,459,461],{"class":108,"line":353},[106,454,455],{"class":116},"  '",[106,457,458],{"class":133},"./src",[106,460,137],{"class":116},[106,462,463],{"class":116},",\n",[106,465,466,468,471,473,475,477,480,482],{"class":108,"line":374},[106,467,455],{"class":116},[106,469,470],{"class":133},"--min-lines",[106,472,137],{"class":116},[106,474,319],{"class":116},[106,476,130],{"class":116},[106,478,479],{"class":133},"5",[106,481,137],{"class":116},[106,483,463],{"class":116},[106,485,487,489,492,494,496,498,501,503],{"class":108,"line":486},8,[106,488,455],{"class":116},[106,490,491],{"class":133},"--min-tokens",[106,493,137],{"class":116},[106,495,319],{"class":116},[106,497,130],{"class":116},[106,499,500],{"class":133},"50",[106,502,137],{"class":116},[106,504,463],{"class":116},[106,506,508,510,513,515,517,519,521,523],{"class":108,"line":507},9,[106,509,455],{"class":116},[106,511,512],{"class":133},"--reporters",[106,514,137],{"class":116},[106,516,319],{"class":116},[106,518,130],{"class":116},[106,520,343],{"class":133},[106,522,137],{"class":116},[106,524,463],{"class":116},[106,526,528,530,533,535,537,539,542],{"class":108,"line":527},10,[106,529,455],{"class":116},[106,531,532],{"class":133},"--output",[106,534,137],{"class":116},[106,536,319],{"class":116},[106,538,130],{"class":116},[106,540,541],{"class":133},"./reports",[106,543,544],{"class":116},"'\n",[106,546,548,551],{"class":108,"line":547},11,[106,549,550],{"class":120},"]",[106,552,140],{"class":116},[106,554,556],{"class":108,"line":555},12,[106,557,170],{"emptyLinePlaceholder":169},[106,559,561,563,566,568,570,572,575],{"class":108,"line":560},13,[106,562,177],{"class":176},[106,564,565],{"class":120}," clones ",[106,567,305],{"class":116},[106,569,308],{"class":112},[106,571,150],{"class":205},[106,573,574],{"class":120},"(options)",[106,576,140],{"class":116},[78,578,580],{"id":579},"clone-interface","Clone Interface",[83,582,583],{},"Each detected clone has the following structure:",[96,585,587],{"className":98,"code":586,"language":100,"meta":101,"style":101},"interface IClone {\n  format: string;\n  lines: number;\n  tokens: number;\n  firstFile: ISourceLocation;\n  secondFile: ISourceLocation;\n  duplicationA: ISourceLines;\n  duplicationB: ISourceLines;\n}\n\ninterface ISourceLocation {\n  name: string;\n  start: number;\n  end: number;\n  startLoc: ILocation;\n  endLoc: ILocation;\n}\n",[103,588,589,598,610,622,633,645,656,668,679,684,688,696,707,718,730,743,755],{"__ignoreMap":101},[106,590,591,594,596],{"class":108,"line":109},[106,592,593],{"class":176},"interface",[106,595,121],{"class":186},[106,597,286],{"class":116},[106,599,600,603,605,608],{"class":108,"line":143},[106,601,602],{"class":301},"  format",[106,604,183],{"class":116},[106,606,607],{"class":186}," string",[106,609,140],{"class":116},[106,611,612,615,617,620],{"class":108,"line":166},[106,613,614],{"class":301},"  lines",[106,616,183],{"class":116},[106,618,619],{"class":186}," number",[106,621,140],{"class":116},[106,623,624,627,629,631],{"class":108,"line":173},[106,625,626],{"class":301},"  tokens",[106,628,183],{"class":116},[106,630,619],{"class":186},[106,632,140],{"class":116},[106,634,635,638,640,643],{"class":108,"line":289},[106,636,637],{"class":301},"  firstFile",[106,639,183],{"class":116},[106,641,642],{"class":186}," ISourceLocation",[106,644,140],{"class":116},[106,646,647,650,652,654],{"class":108,"line":353},[106,648,649],{"class":301},"  secondFile",[106,651,183],{"class":116},[106,653,642],{"class":186},[106,655,140],{"class":116},[106,657,658,661,663,666],{"class":108,"line":374},[106,659,660],{"class":301},"  duplicationA",[106,662,183],{"class":116},[106,664,665],{"class":186}," ISourceLines",[106,667,140],{"class":116},[106,669,670,673,675,677],{"class":108,"line":486},[106,671,672],{"class":301},"  duplicationB",[106,674,183],{"class":116},[106,676,665],{"class":186},[106,678,140],{"class":116},[106,680,681],{"class":108,"line":507},[106,682,683],{"class":116},"}\n",[106,685,686],{"class":108,"line":527},[106,687,170],{"emptyLinePlaceholder":169},[106,689,690,692,694],{"class":108,"line":547},[106,691,593],{"class":176},[106,693,642],{"class":186},[106,695,286],{"class":116},[106,697,698,701,703,705],{"class":108,"line":555},[106,699,700],{"class":301},"  name",[106,702,183],{"class":116},[106,704,607],{"class":186},[106,706,140],{"class":116},[106,708,709,712,714,716],{"class":108,"line":560},[106,710,711],{"class":301},"  start",[106,713,183],{"class":116},[106,715,619],{"class":186},[106,717,140],{"class":116},[106,719,721,724,726,728],{"class":108,"line":720},14,[106,722,723],{"class":301},"  end",[106,725,183],{"class":116},[106,727,619],{"class":186},[106,729,140],{"class":116},[106,731,733,736,738,741],{"class":108,"line":732},15,[106,734,735],{"class":301},"  startLoc",[106,737,183],{"class":116},[106,739,740],{"class":186}," ILocation",[106,742,140],{"class":116},[106,744,746,749,751,753],{"class":108,"line":745},16,[106,747,748],{"class":301},"  endLoc",[106,750,183],{"class":116},[106,752,740],{"class":186},[106,754,140],{"class":116},[106,756,758],{"class":108,"line":757},17,[106,759,683],{"class":116},[761,762,763],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":101,"searchDepth":143,"depth":143,"links":765},[766,767,771,772],{"id":80,"depth":143,"text":81},{"id":88,"depth":143,"text":89,"children":768},[769,770],{"id":93,"depth":166,"text":94},{"id":219,"depth":166,"text":220},{"id":385,"depth":143,"text":386},{"id":579,"depth":143,"text":580},"Use jscpd programmatically in your applications.","md",null,{},{"icon":57},{"title":779,"description":780},"Programming API","Integrate jscpd duplication detection into your Node.js applications.","bkkFP0z97moo5TNGuRkQ7XLFJI5Th0Na9-xrXq0ishs",[783,785],{"title":47,"path":48,"stem":49,"description":784,"icon":50,"children":-1},"Generate SVG badges for your README.",{"title":59,"path":60,"stem":61,"description":786,"icon":62,"children":-1},"Use @jscpd/core for custom integrations.",1772457399361]