[{"data":1,"prerenderedAt":477},["ShallowReactive",2],{"navigation_docs":3,"trending-repo-Open-Dev-Society\u002FOpenStock":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":226},"Open-Dev-Society\u002FOpenStock","https:\u002F\u002Fgithub.com\u002FOpen-Dev-Society\u002FOpenStock",[192,205,209,217],{"date":193,"rank":194,"stars":195,"starsToday":196,"headSha":197,"sources":198,"lines":199,"clones":200,"duplicatedLines":201,"percentage":202,"healthScore":203,"healthGrade":204},"2026-09-20",4,16225,472,"53553ec7189da1e1904815ee17cd56669aaf6ee5",117,12165,8,125,1.03,58.6,"C",{"date":206,"rank":200,"stars":207,"starsToday":208,"headSha":197,"sources":198,"lines":199,"clones":200,"duplicatedLines":201,"percentage":202,"healthScore":203,"healthGrade":204},"2026-09-21",16997,755,{"date":210,"rank":211,"stars":212,"starsToday":213,"headSha":214,"sources":198,"lines":215,"clones":200,"duplicatedLines":201,"percentage":202,"healthScore":216,"healthGrade":204},"2026-09-22",2,17964,844,"9677edd2097b80023a0a6883e2d05f2814a181fc",12181,58.1,{"date":218,"rank":219,"stars":220,"starsToday":221,"headSha":222,"sources":198,"lines":223,"clones":200,"duplicatedLines":201,"percentage":224,"healthScore":225,"healthGrade":204},"2026-09-24",5,18937,344,"7570db299aa9846094c90d8ca72db77f56e6a0e0",11453,1.09,58,{"date":218,"generatedAt":227,"name":189,"url":190,"description":228,"language":229,"stars":220,"starsToday":221,"defaultBranch":230,"headSha":222,"durationMs":231,"total":232,"formats":236,"topClones":281,"health":355,"complexity":384,"deadCode":432},"2026-09-24T05:29:51.800Z","OpenStock is an open-source alternative to expensive market platforms. Track real-time prices, set personalized alerts, and explore detailed company insights — built openly, for everyone, forever free.","TypeScript","main",662,{"sources":198,"lines":223,"tokens":233,"clones":200,"duplicatedLines":201,"duplicatedTokens":234,"percentage":224,"percentageTokens":235},62552,560,0.9,[237,244,250,255,260,264,268,272,275,278],{"format":238,"sources":239,"lines":240,"clones":241,"duplicatedLines":242,"percentage":243},"tsx",49,4511,3,46,1.02,{"format":245,"sources":246,"lines":247,"clones":241,"duplicatedLines":248,"percentage":249},"typescript",30,3715,37,1,{"format":251,"sources":249,"lines":252,"clones":249,"duplicatedLines":253,"percentage":254},"text",91,24,26.37,{"format":256,"sources":211,"lines":257,"clones":249,"duplicatedLines":258,"percentage":259},"yaml",52,18,34.62,{"format":261,"sources":241,"lines":262,"clones":263,"duplicatedLines":263,"percentage":263},"markdown",763,0,{"format":265,"sources":266,"lines":267,"clones":263,"duplicatedLines":263,"percentage":263},"bash",10,713,{"format":269,"sources":270,"lines":271,"clones":263,"duplicatedLines":263,"percentage":263},"javascript",12,651,{"format":273,"sources":249,"lines":274,"clones":263,"duplicatedLines":263,"percentage":263},"css",489,{"format":276,"sources":194,"lines":277,"clones":263,"duplicatedLines":263,"percentage":263},"markup",181,{"format":279,"sources":249,"lines":280,"clones":263,"duplicatedLines":263,"percentage":263},"perl",168,[282,292,303,314,322,330,338,346],{"format":251,"lines":283,"tokens":284,"firstFile":285,"secondFile":289},31,146,{"name":286,"start":287,"end":288},"README.md:text",259,289,{"name":286,"start":290,"end":291},300,330,{"format":238,"lines":293,"tokens":294,"firstFile":295,"secondFile":299},13,71,{"name":296,"start":297,"end":298},"app\u002F(auth)\u002Fsign-in\u002Fpage.tsx",87,99,{"name":300,"start":301,"end":302},"app\u002F(auth)\u002Fsign-up\u002Fpage.tsx",142,154,{"format":256,"lines":304,"tokens":305,"firstFile":306,"secondFile":310},19,68,{"name":307,"start":308,"end":309},"README.md:yaml",226,244,{"name":311,"start":312,"end":313},"docker-compose.yml",15,33,{"format":238,"lines":315,"tokens":225,"firstFile":316,"secondFile":319},14,{"name":317,"start":257,"end":318},"app\u002F(auth)\u002Fforgot-password\u002Fpage.tsx",65,{"name":296,"start":320,"end":321},48,61,{"format":238,"lines":304,"tokens":323,"firstFile":324,"secondFile":327},57,{"name":296,"start":325,"end":326},51,69,{"name":300,"start":328,"end":329},72,90,{"format":245,"lines":312,"tokens":323,"firstFile":331,"secondFile":335},{"name":332,"start":333,"end":334},"lib\u002Fconstants.ts",195,209,{"name":332,"start":336,"end":337},221,235,{"format":245,"lines":266,"tokens":339,"firstFile":340,"secondFile":343},53,{"name":341,"start":342,"end":325},"lib\u002Fkit.ts",42,{"name":341,"start":344,"end":345},109,118,{"format":245,"lines":270,"tokens":347,"firstFile":348,"secondFile":352},50,{"name":349,"start":350,"end":351},"__tests__\u002Fai-provider.test.ts",102,113,{"name":349,"start":353,"end":354},256,267,{"score":225,"grade":204,"size":356,"dimensions":360},{"lines":357,"files":358,"class":359},9739,101,"S",[361,371,378],{"id":362,"source":363,"value":235,"adjusted":364,"lines":365,"halfLife":366,"formats":367,"excluded":368,"weight":249,"score":370},"duplication","jscpd",1.3,83,8.5,[238,245,265,269,279],[276,251,369],"data",89.9,{"id":372,"source":363,"value":373,"adjusted":374,"lines":375,"halfLife":376,"weight":249,"score":377},"dead-code",17,14.8,1742,7.5,25.6,{"id":379,"source":363,"value":380,"adjusted":381,"lines":382,"halfLife":347,"weight":249,"score":383},"complexity",9.9,11.8,967,84.9,{"total":385,"mean":386,"files":387},1029,10.2,[388,393,398,402,405,410,415,420,424,427],{"path":389,"complexity":390,"lines":391,"bytes":392},"lib\u002Factions\u002Ffinnhub.actions.ts",63,268,10230,{"path":394,"complexity":395,"lines":396,"bytes":397},"lib\u002Futils.ts",56,233,8345,{"path":399,"complexity":325,"lines":400,"bytes":401},"lib\u002Finngest\u002Ffunctions.ts",466,24667,{"path":349,"complexity":239,"lines":403,"bytes":404},368,11360,{"path":406,"complexity":407,"lines":408,"bytes":409},"__tests__\u002Futils.test.ts",47,204,6784,{"path":411,"complexity":412,"lines":413,"bytes":414},"lib\u002Factions\u002Fadanos.helpers.ts",36,162,4951,{"path":416,"complexity":417,"lines":418,"bytes":419},"lib\u002Fai-provider.ts",29,186,5210,{"path":421,"complexity":422,"lines":280,"bytes":423},"components\u002Fwatchlist\u002FWatchlistTable.tsx",28,9435,{"path":425,"complexity":253,"lines":198,"bytes":426},"components\u002FSearchCommand.tsx",4768,{"path":428,"complexity":429,"lines":430,"bytes":431},"components\u002FWatchlistButton.tsx",23,120,4616,{"percentage":433,"findings":328,"files":434,"byCategory":435,"largest":445},17.03,95,[436,438,440,442],{"category":437,"count":266},"unused-file",{"category":439,"count":422},"unused-export",{"category":441,"count":211},"unused-symbol",{"category":443,"count":444},"unused-import",32,[446,451,455,459,461,465,468,470,472,474],{"category":439,"path":447,"name":448,"line":449,"lines":450},"lib\u002Fnodemailer\u002Ftemplates.ts","VOLUME_ALERT_EMAIL_TEMPLATE",724,219,{"category":439,"path":447,"name":452,"line":453,"lines":454},"STOCK_ALERT_LOWER_EMAIL_TEMPLATE",515,208,{"category":439,"path":447,"name":456,"line":457,"lines":458},"STOCK_ALERT_UPPER_EMAIL_TEMPLATE",307,207,{"category":437,"path":421,"name":460,"line":249,"lines":280},"",{"category":439,"path":447,"name":462,"line":463,"lines":464},"INACTIVE_USER_REMINDER_EMAIL_TEMPLATE",944,166,{"category":437,"path":466,"name":460,"line":249,"lines":467},"scripts\u002Fmigrate-users-to-kit.mjs",127,{"category":437,"path":469,"name":460,"line":249,"lines":225},"scripts\u002Fresolve_srv.js",{"category":437,"path":471,"name":460,"line":249,"lines":395},"scripts\u002Fseed-inactive-user.mjs",{"category":437,"path":473,"name":460,"line":249,"lines":339},"scripts\u002Fverify-watchlist.mjs",{"category":437,"path":475,"name":460,"line":249,"lines":476},"scripts\u002Ftest-kit.mjs",44,1790314227214]