aws / aws-encryption-sdk-javascript
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • 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...
Duplication Overall
  • 18% duplication:
    • 10,826 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,026 duplicated lines
  • 219 duplicates
system18% (2,026 lines)
Duplication per Extension
ts18% (1,940 lines)
yml35% (86 lines)
Duplication per Component (primary)
modules/example-browser62% (380 lines)
modules/material-management13% (274 lines)
modules/example-node52% (213 lines)
modules/kms-keyring16% (195 lines)
modules/integration-browser29% (162 lines)
modules/serialize11% (112 lines)
modules/integration-node48% (103 lines)
modules/kms-keyring-browser40% (63 lines)
codebuild69% (61 lines)
modules/material-management-browser10% (58 lines)
modules/raw-aes-keyring-node36% (57 lines)
modules/material-management-node13% (52 lines)
modules/raw-aes-keyring-browser27% (50 lines)
modules/encrypt-browser21% (34 lines)
modules/encrypt-node8% (31 lines)
modules/integration-vectors9% (27 lines)
modules/decrypt-browser14% (25 lines)
modules/decrypt-node3% (21 lines)
modules/raw-rsa-keyring-browser5% (19 lines)
modules/kms-keyring-node13% (15 lines)
modules/raw-rsa-keyring-node8% (13 lines)
ROOT13% (13 lines)
codebuild/release11% (12 lines)
modules/caching-materials-manager-node16% (9 lines)
modules/caching-materials-manager-browser15% (9 lines)
modules/raw-keyring2% (6 lines)
modules/client-browser35% (6 lines)
modules/client-node37% (6 lines)
modules/web-crypto-backend0% (0 lines)
modules/hkdf-node0% (0 lines)
modules/cache-material0% (0 lines)
compliance_exceptions0% (0 lines)
verdaccio0% (0 lines)

Duplication Between Components (50+ lines)

G modules/example-browser modules/example-browser modules/example-node modules/example-node modules/example-browser--modules/example-node 213 modules/integration-browser modules/integration-browser modules/integration-node modules/integration-node modules/integration-browser--modules/integration-node 206 modules/material-management-browser modules/material-management-browser modules/material-management-node modules/material-management-node modules/material-management-browser--modules/material-management-node 104 modules/raw-aes-keyring-browser modules/raw-aes-keyring-browser modules/raw-aes-keyring-node modules/raw-aes-keyring-node modules/raw-aes-keyring-browser--modules/raw-aes-keyring-node 100 modules/encrypt-browser modules/encrypt-browser modules/encrypt-node modules/encrypt-node modules/encrypt-browser--modules/encrypt-node 60

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 219 duplicates...
Size#FoldersFilesLinesCode
40 x 2 modules/example-browser/src
modules/example-browser/src
disable_commitment.ts
kms_simple.ts
47:150 (74%)
46:149 (74%)
view
32 x 2 modules/integration-browser/src
modules/integration-node/src
cli.ts
cli.ts
15:46 (27%)
13:44 (42%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
aes_simple.ts
multi_keyring.ts
59:121 (48%)
128:197 (29%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
aes_simple.ts
disable_commitment.ts
59:121 (48%)
88:150 (42%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
kms_simple.ts
multi_keyring.ts
87:149 (42%)
128:197 (29%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
disable_commitment.ts
rsa_simple.ts
88:150 (42%)
81:143 (35%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
multi_keyring.ts
rsa_simple.ts
128:197 (29%)
81:143 (35%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
kms_simple.ts
rsa_simple.ts
87:149 (42%)
81:143 (35%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
aes_simple.ts
rsa_simple.ts
59:121 (48%)
81:143 (35%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
aes_simple.ts
kms_simple.ts
59:121 (48%)
87:149 (42%)
view
23 x 2 modules/example-browser/src
modules/example-browser/src
disable_commitment.ts
multi_keyring.ts
88:150 (42%)
128:197 (29%)
view
23 x 2 modules/kms-keyring/src
modules/kms-keyring/src
kms_mrk_discovery_keyring.ts
kms_mrk_keyring.ts
226:273 (12%)
313:366 (12%)
view
22 x 2 modules/example-browser/src
modules/example-browser/src
aes_simple.ts
fallback.ts
37:81 (46%)
50:94 (37%)
view
21 x 2 modules/example-node/src
modules/example-node/src
disable_commitment.ts
kms_simple.ts
26:86 (72%)
25:84 (72%)
view
20 x 2 modules/kms-keyring/src
modules/kms-keyring/src
kms_keyring.ts
kms_mrk_keyring.ts
7:27 (8%)
6:26 (10%)
view
20 x 2 modules/integration-browser/src
modules/integration-node/src
cli.ts
cli.ts
60:80 (17%)
55:75 (26%)
view
19 x 2 modules/integration-browser/src
modules/integration-node/src
build_encrypt_fixtures.ts
get_encrypt_test_iterator.ts
100:126 (24%)
73:99 (27%)
view
18 x 2 modules/example-browser/src
modules/example-browser/src
caching_cmm.ts
disable_commitment.ts
48:94 (26%)
47:88 (33%)
view
18 x 2 modules/serialize/src
modules/serialize/src
deserialize_header_v1.ts
deserialize_header_v2.ts
31:49 (20%)
31:49 (15%)
view
18 x 2 modules/example-browser/src
modules/example-browser/src
caching_cmm.ts
kms_simple.ts
48:94 (26%)
46:87 (33%)
view
Duplicated Units
The list of top 6 duplicated units.
See data for all 6 unit duplicates...
Size#FoldersFilesLinesCode
23 x 2 modules/example-node/src
modules/example-node/src
disable_commitment.ts
kms_simple.ts
22:87 
21:85 
view
11 x 2 modules/integration-browser/src
modules/integration-node/src
build_encrypt_fixtures.ts
get_encrypt_test_iterator.ts
107:118 
80:91 
view
7 x 2 modules/material-management-browser/src
modules/material-management/src
material_helpers.ts
cryptographic_material.ts
518:541 
75:98 
view
7 x 2 modules/client-browser/src
modules/client-node/src
index.ts
index.ts
21:28 
20:27 
view
7 x 2 modules/raw-rsa-keyring-node/src
modules/raw-aes-keyring-node/src
raw_rsa_keyring_node.ts
raw_aes_keyring_node.ts
167:174 
223:230 
view
6 x 2 modules/kms-keyring-browser/src
modules/kms-keyring-browser/src
kms_mrk_discovery_keyring_browser.ts
kms_mrk_keyring_browser.ts
46:53 
48:55 
view