Duplication Overall
- 16% duplication:
- 28,337 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 4,619 duplicated lines
- 762 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 72 | x 2 | src/client/pagessrc/client/pages | 42:117 (35%)49:124 (32%) | view | |
| 53 | x 2 | src/okta/staticsrc/okta/static | 1:62 (96%)1:62 (96%) | view | |
| 24 | x 2 | src/client/pagessrc/client/pages | 10:36 (38%)15:41 (45%) | view | |
| 22 | x 2 | src/client/pagessrc/client/pages | 21:44 (40%)27:50 (26%) | view | |
| 20 | x 2 | src/client/pagessrc/client/pages | 24:45 (25%)29:50 (24%) | view | |
| 20 | x 2 | src/client/pagessrc/client/pages | 23:44 (36%)24:45 (25%) | view | |
| 20 | x 2 | src/server/controllerssrc/server/routes | 802:821 (4%)306:325 (7%) | view | |
| 19 | x 2 | src/server/controllerssrc/server/controllers | 399:419 (4%)632:652 (4%) | view | |
| 19 | x 2 | src/server/controllerssrc/server/lib/okta | 399:419 (4%)358:378 (6%) | view | |
| 19 | x 2 | src/server/controllerssrc/server/lib/okta | 632:652 (4%)358:378 (6%) | view | |
| 17 | x 2 | src/client/pagessrc/client/pages | 70:88 (6%)66:84 (4%) | view | |
| 16 | x 2 | ROOTROOT | 622:637 (2%)702:717 (2%) | view | |
| 16 | x 2 | ROOTROOT | 669:684 (2%)735:750 (2%) | view | |
| 16 | x 2 | ROOTROOT | 669:684 (2%)801:816 (2%) | view | |
| 16 | x 2 | ROOTROOT | 735:750 (2%)801:816 (2%) | view | |
| 15 | x 2 | src/client/pagessrc/client/pages | 165:180 (5%)257:272 (5%) | view | |
| 15 | x 2 | src/server/controllerssrc/server/controllers | 504:522 (3%)586:604 (3%) | view | |
| 15 | x 2 | src/server/lib/oktasrc/server/lib/okta | 84:99 (4%)180:195 (4%) | view | |
| 15 | x 2 | src/server/lib/oktasrc/server/lib/okta | 117:135 (4%)213:231 (4%) | view | |
| 15 | x 2 | src/client/pagessrc/client/pages | 220:234 (7%)171:185 (9%) | view | |
| 15 | x 2 | src/server/lib/middlewaresrc/server/routes | 69:90 (23%)67:85 (7%) | view | |
| 14 | x 2 | cdk/libcdk/lib | 468:481 (2%)514:527 (2%) | view | |
| 14 | x 2 | cdk/libcdk/lib | 491:504 (2%)538:551 (2%) | view | |
| 14 | x 2 | src/client/pagessrc/client/pages | 69:83 (5%)165:179 (5%) | view | |
| 14 | x 2 | src/client/pagessrc/client/pages | 69:83 (5%)257:271 (5%) | view | |
| 14 | x 2 | src/server/routessrc/server/routes | 124:138 (7%)169:182 (7%) | view | |
| 14 | x 2 | src/client/pagessrc/client/pages | 92:111 (7%)107:126 (8%) | view | |
| 14 | x 2 | src/server/controllerssrc/server/controllers | 77:97 (11%)480:502 (2%) | view | |
| 14 | x 2 | src/client/pagessrc/client/pages | 8:27 (33%)9:28 (34%) | view | |
| 14 | x 2 | src/server/controllerssrc/server/routes | 686:707 (2%)180:202 (5%) | view | |
| 13 | x 2 | ROOTROOT | 453:465 (1%)494:506 (1%) | view | |
| 13 | x 2 | src/server/controllerssrc/server/controllers | 473:486 (2%)555:568 (2%) | view | |
| 13 | x 2 | src/client/pagessrc/client/pages | 166:179 (4%)66:79 (3%) | view | |
| 13 | x 2 | src/client/pagessrc/client/pages | 258:271 (4%)66:79 (3%) | view | |
| 13 | x 2 | src/email/componentssrc/email/components | 11:24 (68%)10:23 (56%) | view | |
| 13 | x 2 | src/server/controllerssrc/server/routes | 572:595 (2%)485:507 (2%) | view | |
| 13 | x 2 | src/server/controllerssrc/server/controllers | 192:204 (11%)507:519 (2%) | view | |
| 13 | x 2 | src/server/controllerssrc/server/controllers | 192:204 (11%)589:601 (2%) | view | |
| 12 | x 2 | src/server/lib/okta/apisrc/server/lib/okta/api | 167:178 (5%)264:275 (5%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 65:77 (2%)168:180 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 65:77 (2%)275:287 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 65:77 (2%)382:394 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 168:180 (2%)275:287 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 168:180 (2%)382:394 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 275:287 (2%)382:394 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 56:68 (4%)52:64 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 90:102 (4%)86:98 (2%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 195:206 (5%)178:189 (5%) | view | |
| 12 | x 2 | src/client/pagessrc/client/pages | 32:43 (17%)22:33 (22%) | view | |
| 12 | x 2 | src/email/componentssrc/email/templates/EmailChallengePasscode | 15:27 (32%)10:22 (42%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 18 | src/email/componentssrc/email/templates/AccidentalEmailsrc/email/componentssrc/email/componentssrc/email/templates/EmailChallengePasscodesrc/email/componentssrc/email/templates/CompleteRegistrationsrc/email/templates/RegistrationPasscodesrc/email/templates/CreatePasswordsrc/email/templates/AccountExists... | 14:19 (31%)13:18 (30%)18:23 (16%)13:18 (26%)13:18 (21%)13:18 (30%)13:18 (30%)13:18 (21%)13:18 (30%)13:18 (30%)... | view | |
| 6 | x 17 | src/email/componentssrc/email/templates/AccidentalEmailsrc/email/componentssrc/email/componentssrc/email/templates/EmailChallengePasscodesrc/email/componentssrc/email/templates/CompleteRegistrationsrc/email/templates/RegistrationPasscodesrc/email/templates/CreatePasswordsrc/email/templates/AccountExists... | 15:21 (31%)14:20 (30%)19:25 (16%)14:20 (26%)14:20 (21%)14:20 (30%)14:20 (30%)14:20 (21%)14:20 (30%)14:20 (30%)... | view | |
| 6 | x 17 | src/email/componentssrc/email/templates/AccidentalEmailsrc/email/componentssrc/email/componentssrc/email/templates/EmailChallengePasscodesrc/email/componentssrc/email/templates/CompleteRegistrationsrc/email/templates/RegistrationPasscodesrc/email/templates/CreatePasswordsrc/email/templates/AccountExists... | 13:18 (31%)12:17 (30%)17:22 (16%)12:17 (26%)12:17 (21%)12:17 (30%)12:17 (30%)12:17 (21%)12:17 (30%)12:17 (30%)... | view | |
| 6 | x 17 | src/email/componentssrc/email/templates/AccidentalEmailsrc/email/componentssrc/email/componentssrc/email/templates/EmailChallengePasscodesrc/email/componentssrc/email/templates/CompleteRegistrationsrc/email/templates/RegistrationPasscodesrc/email/templates/CreatePasswordsrc/email/templates/AccountExists... | 16:22 (31%)15:21 (30%)20:26 (16%)15:21 (26%)15:21 (21%)15:21 (30%)15:21 (30%)15:21 (21%)15:21 (30%)15:21 (30%)... | view | |
| 6 | x 17 | src/email/componentssrc/email/templates/AccidentalEmailsrc/email/componentssrc/email/componentssrc/email/templates/RegistrationPasscodesrc/email/templates/EmailChallengePasscodesrc/email/componentssrc/email/templates/CompleteRegistrationsrc/email/templates/CreatePasswordsrc/email/templates/AccountExists... | 11:16 (31%)10:15 (30%)15:20 (16%)10:15 (26%)10:15 (21%)10:15 (21%)10:15 (30%)10:15 (30%)10:15 (30%)10:15 (30%)... | view | |
| 6 | x 17 | src/email/componentssrc/email/templates/AccidentalEmailsrc/email/componentssrc/email/componentssrc/email/templates/EmailChallengePasscodesrc/email/componentssrc/email/templates/CompleteRegistrationsrc/email/templates/RegistrationPasscodesrc/email/templates/CreatePasswordsrc/email/templates/AccountExists... | 12:17 (31%)11:16 (30%)16:21 (16%)11:16 (26%)11:16 (21%)11:16 (30%)11:16 (30%)11:16 (21%)11:16 (30%)11:16 (30%)... | view | |
| 6 | x 11 | src/email/templates/CompleteRegistrationsrc/email/templates/RegistrationPasscodesrc/email/templates/CreatePasswordsrc/email/componentssrc/email/templates/AccidentalEmailsrc/email/templates/AccountWithoutPasswordExistssrc/email/templates/EmailChallengePasscodesrc/email/templates/NoAccountsrc/email/templates/ResetPasswordsrc/email/templates/AccountExists... | 16:22 (30%)16:22 (21%)16:22 (30%)21:27 (16%)16:22 (30%)16:22 (30%)16:22 (21%)16:22 (30%)16:22 (30%)16:22 (30%)... | view | |
| 6 | x 10 | src/server/routessrc/server/routessrc/server/routessrc/server/routessrc/server/routessrc/server/routessrc/server/routessrc/server/routessrc/server/routessrc/server/routes | 23:28 (6%)130:135 (1%)41:46 (2%)224:230 (1%)336:342 (1%)358:363 (1%)393:398 (1%)246:251 (2%)326:331 (2%)403:408 (2%) | view | |
| 6 | x 9 | src/server/lib/oktasrc/server/libsrc/server/controllerssrc/server/lib/oktasrc/server/lib/oktasrc/server/lib/oktasrc/server/controllerssrc/server/controllerssrc/server/controllers | 90:95 (1%)43:48 (16%)408:413 (1%)186:191 (1%)367:372 (1%)466:471 (1%)479:484 (1%)561:566 (1%)641:646 (1%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 8:13 (20%)8:13 (21%)8:13 (18%)10:15 (18%)8:13 (16%)9:14 (18%)7:12 (21%)7:12 (19%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 65:70 (1%)85:90 (1%)168:173 (1%)189:194 (1%)275:280 (1%)296:301 (1%)382:387 (1%)403:408 (1%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 37:42 (10%)48:53 (5%)38:43 (7%)43:48 (7%)78:83 (2%)85:90 (2%)101:106 (2%)108:113 (2%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 33:38 (10%)44:49 (5%)34:39 (7%)39:44 (7%)74:79 (2%)81:86 (2%)97:102 (2%)104:109 (2%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 35:40 (10%)46:51 (5%)36:41 (7%)41:46 (7%)76:81 (2%)83:88 (2%)99:104 (2%)106:111 (2%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 32:37 (10%)43:48 (5%)33:38 (7%)38:43 (7%)73:78 (2%)80:85 (2%)96:101 (2%)103:108 (2%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 34:39 (10%)45:50 (5%)35:40 (7%)40:45 (7%)75:80 (2%)82:87 (2%)98:103 (2%)105:110 (2%) | view | |
| 6 | x 8 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 36:41 (10%)47:52 (5%)37:42 (7%)42:47 (7%)77:82 (2%)84:89 (2%)100:105 (2%)107:112 (2%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 10:16 (20%)10:16 (21%)10:16 (18%)12:18 (18%)10:16 (16%)11:17 (18%)9:14 (21%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 74:80 (2%)70:76 (1%)173:179 (1%)280:286 (1%)387:393 (1%)170:176 (2%)262:268 (2%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 9:14 (20%)9:14 (21%)9:14 (18%)11:16 (18%)9:14 (16%)10:15 (18%)8:13 (21%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 75:81 (2%)71:77 (1%)174:180 (1%)281:287 (1%)388:394 (1%)171:177 (2%)263:269 (2%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 72:78 (2%)68:74 (1%)171:177 (1%)278:284 (1%)385:391 (1%)168:174 (2%)260:266 (2%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 70:75 (2%)66:71 (1%)169:174 (1%)276:281 (1%)383:388 (1%)166:171 (2%)258:263 (2%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 90:95 (2%)86:91 (1%)190:195 (1%)297:302 (1%)404:409 (1%)186:191 (2%)278:283 (2%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 71:76 (2%)67:72 (1%)170:175 (1%)277:282 (1%)384:389 (1%)167:172 (2%)259:264 (2%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 13:18 (18%)10:15 (9%)8:13 (17%)9:14 (18%)8:13 (15%)15:20 (11%)26:31 (8%) | view | |
| 6 | x 7 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 73:79 (2%)69:75 (1%)172:178 (1%)279:285 (1%)386:392 (1%)169:175 (2%)261:267 (2%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 631:636 (<1%)678:683 (<1%)711:716 (<1%)744:749 (<1%)777:782 (<1%)810:815 (<1%) | view | |
| 6 | x 6 | src/email/componentssrc/email/componentssrc/email/componentssrc/email/componentssrc/email/componentssrc/email/components | 16:22 (30%)17:23 (31%)16:22 (18%)16:22 (30%)16:22 (26%)16:22 (30%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 629:634 (<1%)676:681 (<1%)709:714 (<1%)742:747 (<1%)775:780 (<1%)808:813 (<1%) | view | |
| 6 | x 6 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 38:44 (10%)49:55 (5%)39:45 (7%)44:50 (7%)109:115 (2%)102:108 (2%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 630:635 (<1%)677:682 (<1%)710:715 (<1%)743:748 (<1%)776:781 (<1%)809:814 (<1%) | view | |
| 6 | x 6 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 15:20 (18%)12:17 (9%)10:15 (17%)11:16 (18%)10:15 (15%)17:22 (11%) | view | |
| 6 | x 6 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 69:74 (2%)89:94 (2%)165:170 (2%)185:190 (2%)257:262 (2%)277:282 (2%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 628:633 (<1%)675:680 (<1%)708:713 (<1%)741:746 (<1%)774:779 (<1%)807:812 (<1%) | view | |
| 6 | x 6 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 14:19 (18%)11:16 (9%)9:14 (17%)10:15 (18%)9:14 (15%)16:21 (11%) | view | |
| 6 | x 6 | ROOTROOTROOTROOTROOTROOT | 632:637 (<1%)679:684 (<1%)712:717 (<1%)745:750 (<1%)778:783 (<1%)811:816 (<1%) | view | |
| 6 | x 5 | cdk/libcdk/libcdk/libcdk/libcdk/lib | 453:458 (1%)476:481 (1%)499:504 (1%)522:527 (1%)546:551 (1%) | view | |
| 6 | x 5 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 38:43 (1%)51:56 (1%)154:159 (1%)261:266 (1%)368:373 (1%) | view | |
| 6 | x 5 | src/server/routessrc/server/routessrc/server/routessrc/server/routessrc/server/routes | 129:136 (2%)94:100 (1%)37:44 (8%)106:113 (1%)141:148 (2%) | view | |
| 6 | x 5 | src/client/componentssrc/client/pagessrc/client/componentssrc/client/pagessrc/client/pages | 201:207 (1%)25:31 (15%)68:74 (7%)19:25 (19%)30:36 (15%) | view | |
| 6 | x 5 | playwright/helpers/apiplaywright/helpers/apiplaywright/helpers/apiplaywright/helpers/apiplaywright/helpers/api | 19:25 (30%)25:31 (2%)71:77 (2%)117:123 (2%)161:167 (2%) | view | |
| 6 | x 5 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 19:24 (6%)30:35 (19%)36:41 (6%)78:83 (6%)96:101 (6%) | view | |
| 6 | x 5 | src/client/componentssrc/client/componentssrc/client/componentssrc/client/componentssrc/client/components | 36:41 (5%)48:53 (5%)73:78 (5%)87:92 (5%)103:108 (5%) | view | |
| 6 | x 5 | cdk/libcdk/libcdk/libcdk/libcdk/lib | 451:456 (1%)474:479 (1%)497:502 (1%)520:525 (1%)544:549 (1%) | view | |
| 6 | x 5 | src/server/controllerssrc/server/lib/oktasrc/server/controllerssrc/server/lib/oktasrc/server/controllers | 198:203 (5%)126:131 (1%)513:518 (1%)222:227 (1%)595:600 (1%) | view | |
| 6 | x 5 | src/server/controllerssrc/server/lib/oktasrc/server/controllerssrc/server/lib/oktasrc/server/controllers | 199:204 (5%)127:132 (1%)514:519 (1%)223:228 (1%)596:601 (1%) | view | |
| 6 | x 5 | src/client/componentssrc/client/pagessrc/client/componentssrc/client/pagessrc/client/pages | 204:209 (1%)28:33 (15%)71:76 (7%)22:27 (19%)33:38 (15%) | view | |
| 6 | x 5 | cdk/libcdk/libcdk/libcdk/libcdk/lib | 452:457 (1%)475:480 (1%)498:503 (1%)521:526 (1%)545:550 (1%) | view | |
| 6 | x 5 | src/client/pagessrc/client/pagessrc/client/pagessrc/client/pagessrc/client/pages | 31:36 (10%)32:37 (7%)37:42 (7%)72:77 (2%)79:84 (2%) | view |
Duplicated Units
The list of top 2 duplicated units.
About This Analysis
- For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
- Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
- You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
- To learn more about duplications and techniques for eliminating duplication, Sokrates recommends the following resources:
- Avoid Repetition, MartinFlower.com (IEEE Software article)
- Refactoring duplicated code, sourcemaking.com
- Beck Design Rules, MartinFowler.com
- DRY (Don't Repeat Yourself) Principle, Wikipedia
- The Cut-and-Paste Programming Software Development Anti-Pattern, sourcemaking.com
- Code Smells / Duplicated Code, Jeff Atwood, codinghorror.com:
- "Duplicated code is the bane of software development. Stamp out duplication whenever possible. You should always be on the lookout for more subtle cases of near-duplication, too. Don't Repeat Yourself!"
- Reducing Coupling, MartinFlower.com (IEEE Software article):
- "There are several ways to describe coupling, but it boils down to this: If changing one module in a program requires changing another module, then coupling exists. ... Duplication always implies coupling, because changing one piece of duplicate code implies changing the other."