{"_id":"@genese/complexity","_rev":"40-c1fae6a54b67c3cb5485ea53f9f34536","name":"@genese/complexity","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@genese/complexity","version":"1.0.0","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of @genese framework.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/genese-complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0"},"gitHead":"0cdb00844f45856721f8f720f37fe58d24dbe8a7","_id":"@genese/complexity@1.0.0","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-teJoGxPQ5pCR1z7RZwP8jpN++7748w+IfMBH/dac2tLtQPmMaoRHkUJTOGpWKEpyKAvhmRBks1TaPZMRaSg+JA==","shasum":"d7b7ad2ffaf8ca79317700494c737e14ad726bb0","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.0.0.tgz","fileCount":1527,"unpackedSize":2689128,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbW6DCRA9TVsSAnZWagAA6EIP/1mISNHXpnbwO8aqULq6\nkJWSUxYSIigRuZaoaStUdSB/Qh60djUA3tHcyi5XNOc1y38R3OcTP/A3xIo1\n1MCnPZoj9TWpjBpHU7rEyzCVSHGRTECqZ6pkgL1TOTHZMRRMRaZCKsCc4yN6\nVVb4wbRE2KD4Fq4jbFmzHMsGBvBLI9wNasFd7C71OiktyKdhtyJ0rm8VdFUy\nj3Fp0rfR5x2V3dyayN1QD4DlcIAPorIOQIKjjMpvpB4SPJG08kjcUlhupMj6\nOQEhwZyxuWHEjoEGSgvbcceOA5TILtm1PxcdQBB6HrC0MMawnsy6sZqRAHgO\ngIvYK9S7I2oh4Dw6KNbvIzN/lS9MI612aaeUrgo3YFyTkHUiCX3H6OKvtVRc\nTSJ85O74vvqQ1+jhpLFiWpST0PRDpchoZJ7mCwWA9hzEimPSQvh4g3l/lHDi\nPLm0rjD6OYaAUN5kUA1da2398DVsDO88KJvigPNVucswKTz/mRdCgo58k+Ik\nnYiPMnuHrg/fv1gog6AoOBXDzOg4hRdK7p3G7PrIJ1V6Smwd1MXqd1jANJJe\ndC88z9n9tQp6vvVp1zEifWzgQi/EbBDgV1zhymB+689/+x3XvtoTOe0RTGg/\nxiSe5XprckFWlKtDzYWiakgVGhX70s8kCF00WMuwZQfsctlUb46t1PsTMIny\nblrt\r\n=8LTO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEvFXC1Zt8UwzIoblWhdmIl57VWAMRt3oPDmIcoRXpk8AiEAiHft0i7ZGa2cow7I3cY0zRE3LxoPstgmFFY/D8hFE8U="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.0.0_1617784451121_0.2940466579611387"},"_hasShrinkwrap":false},"1.0.1":{"name":"@genese/complexity","version":"1.0.1","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of @genese framework.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/genese-complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0"},"gitHead":"0cf1eda2a7eb8f2856e135013a1ccd1d0cf9b78d","_id":"@genese/complexity@1.0.1","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-Rj3XSuB+FQ44NfXhzZyrhfQ82OINXh304UslqdPoeG0XkXlGfztBPTCZZlEJOZRTIex27XZ5ztWweKQdknIEnA==","shasum":"a816a8b2ddef3511670dc55766819d53af0ef77e","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.0.1.tgz","fileCount":1527,"unpackedSize":2689645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbXnZCRA9TVsSAnZWagAAWNQP/0UuM1d9M5OGL3aK0h9b\n3BFe88Xbv0/1hvdAse8l1r8gQ2dXkd4QRcit67Z1aaUcs3Ft+vEoTOU3JdtM\n9Djz6Nf4nAUufUTknatN7+Hp6ybgnuET8nHYPBjt0kp2lZPXZ1qZM4eYOSiC\nXukAd6pLoyIrgJOFNb+D2kj7t4kVzne+f5tRtlswNLMlbv3tud59Vzk7x19t\n1IuZe4xPN2sUl5meXZwRzPam5/S7ffFuQA8sGzLP8PgJ+dIkQDOiLOoxDCL0\nwCrQjDmgjejypNUKh6vXFBbH2ooGO7iIh3QTgE6p9s702ioa2/wwQ+1GTc0s\n+oHMVexbrvTRqtDZRy53Spewr4hPlq6YFksmmZt8iBh05DuN1DsES42KEg7m\nRgzkKdBK5NxI+aovUsHJuUnRxVDRVGQuTt4Q1WL0IdoMOmj5zew+X1WntGDu\nyUn94W7gf0H/RAJl+5DJ38geaZ2ECy/I0Pu9+tVF4ns2+l7Sy1/rYqvJfUMA\niMzDtgVFqfbcUHFeFD5SIQjQ3c6eIbmYY7GoaQkypr5q+0/tXvyzzAiFmgNP\ni8r5S6bv+1p8+7rfFacVITFCQGuRYLSSgkHGCU/DMU2Yx7XhFkRmgjQAp8ow\nfm0htLZCgIVCTeHQ1I7UEix8yZFWfod7nGfd+wK/fHiT939eZuKcLF4pBv5Q\nswCo\r\n=tz/h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2/Esq89MaxxJ8GIrMzr/U0PC99js6yG3KKEvdjtxniwIhAIMRAAWS3GbkOBcfkyxciywpGU2xHaNzzxIUjJliR1Ul"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.0.1_1617787352853_0.6927514824740046"},"_hasShrinkwrap":false},"1.0.2":{"name":"@genese/complexity","version":"1.0.2","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of @genese framework.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0"},"gitHead":"be47ade651a31e40e0dba4c7150d88a40c8f6335","_id":"@genese/complexity@1.0.2","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-9JdUeMhhd5MIGbOc85cl7WCLxzD015vOj9mPpm1iUg1lR5/FuLlNcA2sdduyu3hO7sengovsriIQWtx84v/n2g==","shasum":"4dc153f66fa209cf71e47dc6a0532d9ad94f39c6","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.0.2.tgz","fileCount":1546,"unpackedSize":3175124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbYJUCRA9TVsSAnZWagAAsRUP/R4b8AfrrwOpS3gn+M8e\nOX242Nwr9a8WpcgJQHIQaE7U5wTiTI0ZqMFSvheZ+0hQZ/A9e5ZlE/fNy9Iq\no27Zs+hDnkGTGUWgq466me77t50Yso1/tASdjlgGOppnpOhgaVqMfw7O6Imh\n3q3sHWpAjUdGMhhaU0oZ8ZMH5rweQZlVB5/r6eWxnkQEHT9nIlaeyNg+N6F9\nveGrwdcfNyH+7vbbzVN58JHIDdZGYhIVoI0GCChjkVG7R7qgicqqLlvxFLiS\nFzdH1HN2tqJpsrEek2B19+4FOruoYtJUd0CFQUR4vl/bIKs3rlE7Qn+wrdbJ\ny1Z/Bf8l6/PVOKHtHBsNjndKn3SUp3J0v4ehE6Kz/Qs2YDLY599N8U85SqyL\n4J8iL7lfHIzbI41lR7+n2g9YYbBjmNTnd7fQ3Z7mDUAPs/OfrQtM9vP5a/c9\n4MhRXlwgBRKRrnVLsJNjTzy/WlwXuZzznUo1M8487Al174gZ/QfRHEFsQbwC\ndTaCMrdlpNIjq3q1Vp+Fx0TaWHUiF2gw4gBcEdnE/66atkX0o8uQauWMEPtn\nBIOXgQgaT8pOcCiwoojmDg5Z9UOfOtSwFqVVCmf1hTx4azISaOW+ZrKbcQ9a\nxFX4k9Wlbr6Xt8wGehMDfi1LL4rQT2PGZ9sEV3lzvd1Di3KZSuH4pz/Qkn5f\ntFWv\r\n=y6r6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+K7DQhRpht2H5AC4tyhpOhp81yEuSvavm3vSyYi1FyQIhAK6yW6snymQKKnF5AF0Wi5jMO9LEhzEKoMLZ9BO7enwv"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.0.2_1617789523520_0.14143279812231424"},"_hasShrinkwrap":false},"1.1.1":{"name":"@genese/complexity","version":"1.1.1","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"16468564b51e8f0f61d209378bfb65d58167880a","_id":"@genese/complexity@1.1.1","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-+cuCzcec/6IYa5iG9VkXPrIdMCsI0TJhz/CmQFKo5g7QrormBmiNdMnGgjvgB/fUNc8Xp3NyfyhXWlevp2p3mQ==","shasum":"38e7a1eecf0bfd6b0695a99b7d94599ffef945d8","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.1.tgz","fileCount":1594,"unpackedSize":3274508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiXuXCRA9TVsSAnZWagAAiCsP/14YfsU0QmA89SUk5Ze1\nMXhCrqovj5ZcgIu02e4atcrSNeYjYidHEt+d9mnNsIM/R1+3rwJVbBiGeAfS\nOzp3J/sXMG7qRHo8Wb9rXbtD+k7jFobnKYCaDVlnWdaPREyQdKKCrCw0nhvO\njVf+xBTdv3kHgcXv4kbIFzoZw7JVHMcM2MTsmSSDbzxJanzdAy+cms3pIw9B\n6SSBjmhCFZP7HeXmYMC0/0Ksauol5hhngXxw+fNVn83sk3kC5scqFo8uoyN+\n+hnB1ScjDzt/fScBhEFxmbxwCLzQnr+naXV4o+QvDAVH59ALAl4ZMU0+428q\n9fZrof8qdgjIQlOsZ/eo/3tBOtHKaBvYnyuWmqn9Gf3bvvUVzRrilks4jEv9\nAeJFU+Bp272HVcyYmDVD7U18hzJYcziJ89G6MSnLsuTOvUkGsxyIwNEDD3MV\njYNCAjo/yw9mC4GtxGy89pQqvZunGcLPEO1MCd4MLQWEjs/QaDvhy/N17Bpw\nOk9sJS5RLi7IZBZkaWAYvQPmPmMOxfCkCWW2JxcBEsA6+R1F1s+83Qjx6A7j\ne728EQun5pOG0GoIDM2QS9dtFRz1BhzrzBn7Vvc12czLdOStWvUtukXY1l3g\nb5rbHDSqaWr7fUBdhDfx18v7eTST1scQkYwzdaq/2UL+nP6KJUA8GrQB16Mw\nGsvs\r\n=Mfow\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5Ooc/P30w68LHiaZOpaJ/mwHnMsbRq7K42+gs52Jz/gIhALMIIsk0DiSFNNGcJg0GLxr1B8a/8T77ZxcA5w54kUsU"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.1_1619622806653_0.5594703357712045"},"_hasShrinkwrap":false},"1.1.2":{"name":"@genese/complexity","version":"1.1.2","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"18f738f57251341bac84d4561fa3a26c914bc6d6","_id":"@genese/complexity@1.1.2","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-8rqOhszDNNuAxxAVoUAIlei/inH+peLemcEdQOxvwVPMOElj4yxA1dh6DdunSvcPeg6+ygvnj3WKEFNwZaAiRA==","shasum":"8e11479e6c1b7792762d94a28576d97056eab7b3","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.2.tgz","fileCount":1594,"unpackedSize":3274226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiYORCRA9TVsSAnZWagAAgsEP/3vh9PaAfWFlMuD3HLKb\nhNTCkZuA5ijk6zUqae0pkPty/z+EoIb5W1Ye7u4xPM10OZvrDe3bKIrRSLD9\n1Pkyh78NzZI+sacQumwsUt00vMCzApvEucSnvaYp05r0vyQRts83xfoZvHIz\nJiiOvQzioNuQ3RucHKQkrMu0UAvm36NuQMupdkYsDxxgDs1W/OUDNFv4itl2\n9fdTEKEG2dVivTLh48Arg1LyD3tSTPya7Iy3n6xrhmoXYcDcp+LN4PjinSYJ\n8Z9g7wwi0ZJWFWL54WcRa+KahH8vBTWPNBwkawgRZrew7u606w8WMulasToP\n+QAxyQvOrGwuyP9dTVWOf4jhZfLj3u9MLwI0jhiMRDyLfIJEs9asaF8GQzjz\nAarocqzs4j5hq1VAS2mCQYisEdRsxtlO7hb8CTuuRlvmeAgpy5wLQrDi1vt7\n2jyhw+2eSiMwEsAEkxE3dqW6GiI6obqbVxjoZzTuwqxUKMtTLlcHf6Jx4Uzd\nZHXrVTW/b3TjY5oPsBMcf76Cv+OYOjg+AKvL/QQl4vc/0eBm4szVBHE0GSv2\nKleLUtLOb7OChjXuxT+Ip4Kywdj/ikZOXMYt3lnUhObcNruiJmQzSWwYtCmR\nSD8ABibdVl2wxLkNBjTLIFsACfxgJluhG9W7/vKe/o9UIujecdr5mEZjKjd4\nLs8x\r\n=otrM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyjBqJ0X0nY2vYA22E8SxiG1WaBHOgw7YwyLHbcT3xUAIgO/A9fv98TNumBaOSZi2jZkEFwqMAp8oNgvh2BVQpPv0="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.2_1619624848844_0.5609920863203259"},"_hasShrinkwrap":false},"1.1.4":{"name":"@genese/complexity","version":"1.1.4","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"4e92ceb80ca2f424e03cacacaeaa7c391d2df8aa","_id":"@genese/complexity@1.1.4","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-RxkBgAgh16HmCNLtvahK5Sz76wiVZdRLd4rjBOm4I1w7EmBkWOz0tv74P0Bm5MyadhPKmUhJZcooGPQQk1P0rA==","shasum":"22c438a88b1afd9c1250ba9cb2490e109476da79","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.4.tgz","fileCount":1592,"unpackedSize":3263180,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiYjXCRA9TVsSAnZWagAAfcYP/0xoFzOQCD7ik8O5mKXp\ntzap8Mq3CU8GsKC87I6qnNs5xTQLSuKEQeaReNIMA7i32khTDNbL1Z9D0Upp\nzy9rYEP27xybaKhTgQOJ2Tha8hxqe2HI7vX8wYfVQ0/Xqrt6hZcLlqRpBgW6\nYBvtpR3Dwon8vTBGw45+y2lc6T8RjWKuTffnjhqeKxBTmY2NFpkL3p2dvhYl\n1fJs8O7sLwoo412gUWOTronTWHTZxxOiT6hpFMMCaga4C/K7JssYOPPmfR10\nn37jFd9OhiQp7sB0qPsBvrPAnMOkh5ZmshEk5Wi8X0AErKPNBTjkWqTJauoI\nz3/BBQ6zEm04i0o94Fxpt3zpdFO4pxuxgaUC5pwCra6697/656IiU7NM3+ku\n40ih+ql6tgZHNgXltNce+XSVHlp1TYuJwZ1NQ2tnKuFbe0llksRvpj3gafTl\nUINxe1t3dIFQ05qNac4qtW/FIq1YAwm4oU8XyiGlKFkUPbNvhzhUHGyvJn0h\nGLJjIOBGL9KePh3wGTabmk07IxuZZ28nhQ11JAAskefNETiVxdEmr0tTLwh0\n0/NHxucR1nFMCqdW8WyoAB6I685CyJQ6tg3BjUWSxcWEwh+p5RsfypoUopCj\n9FJg1zfwY4FxvqJE380z7HSfV+cZWOKGhWlcqB2JdW3extNmHDaudhXiyqI/\n7s3G\r\n=LF8b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfNNUleaqwC9kzMy5KMIPZajdkYEgjrf5cEOxgqMf8CwIgVPHIkBF1M1HaUUfx6wuRGJrUEaOt511/i2LsWEZoEhs="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.4_1619626198879_0.31222057250509727"},"_hasShrinkwrap":false},"1.1.5":{"name":"@genese/complexity","version":"1.1.5","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"7650d67de54030dd68c869befad78d307ebfb73d","_id":"@genese/complexity@1.1.5","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-Hu+ASMeyT9IKMnj2HeMcNf5+K1FA5rFrePvb5+Y0hM0JzOtQUOAaly6xtkXuFZZ8VdMjDq4htYWm/GId3MqIUQ==","shasum":"31c37c6670edba76a35ec3309006d62869cdb752","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.5.tgz","fileCount":1158,"unpackedSize":2743353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiZmhCRA9TVsSAnZWagAAC3EP/i6ebKL6JIEiY5HqRBbU\nDmqHB5TjDo0Ui7NqDXVrejZHW/uINR0Nb9Nabs4+tNfY8KIhz1XhpR6bhSAt\n2g0KDNLKuhP7GOS6WpAHQlDJyYuosyB5Vt5M8N5/viO29pseFj00THEZkeVQ\nLoBwsQ/R1LoraRYcypNbnhSmGAeMJoHTcK/zNgD+g26T8ltvW62bsW4EbDYb\nA55bXy3bZYJ+M7ykFS94kO5FuqNfVIxHmtUth92BRlB1ipDh9TDcJUPSgEwf\n0J7myRHazSmkRveVPlu+9mAe48pSc50jum/fQkvDg/x68GanOg/eha1usFS8\npKXF4ysl5XtzITO6w+PwWtKaYpCrv/oik69mmf0hwlsqgE4A+QRLcH5ahBY0\nKJ8hMfohq7XluMGXpylE2qptsRnYnmJHGWX7LLI6Ye8y2XJyPctsoriDdovN\nqHRj20az7Y7gcMqLaREfht5RmrEd8sB8K28+y6cxxnpFeBWesl2cYRglJxac\nDId4W+u+0Pd+KsvXS0ElfBVwz5KJYqFDrsXXAmpQB5YiA6QKNl+lM68JmcTE\nnZYFK5lj3F+ePtoY6t7DfoPM15LSSHWDn4aHwFYr1a/R2JJ63xs1Enyx2+zj\namj8dFuUMkAxSGX3jQaTEtzPTaQVPAwq2YKIIB4F36mUlikl/fP2lkILrdWr\nxp7L\r\n=P5jW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdHd4c/uXi9rYtOpNDKr6R36VgwCasYlSmkelUVezTbAIgCQjDnZ/rqDBpnWBOFnDQtkor7C5zKGSYiYRnyp+hwV8="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.5_1619630496992_0.5824065972627943"},"_hasShrinkwrap":false},"1.1.7":{"name":"@genese/complexity","version":"1.1.7","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"7650d67de54030dd68c869befad78d307ebfb73d","_id":"@genese/complexity@1.1.7","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-HOJl9eKTVi4EF9tKufiXhQDHst78zWTev7KLxsLgvMuyoa00lR3GzALLaB91I8Cxh0TLqP+JJx1kGN365h5jrQ==","shasum":"86cb8c4064e70cfcbd44dc1f879ab097345fb9fb","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.7.tgz","fileCount":1158,"unpackedSize":2743217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiZzmCRA9TVsSAnZWagAArkQP/iBlTD0foC1HXtLgsI9D\nFLg2KL9fAdRIJTzTTxQD2rBObTZJIk7LS903StU+Ov2H0XiCguOcKzF2/1Fk\n+oQ+MEvhKs6ZcW/mrYmUDQNlgmH4khsdGYDgqjcIV1D3MsFha8RWMzEBZeD7\nmnjrqmKT7ax3NO773pFwiM5esEszxJA4kkfMUTtHfhlQ4o5jdhYk47MAfQNY\nxHwecAt82oitqlECyyMI24DfyjyrmG43c/Rc1cSNTp5R+WeQ2z2cMTDrhg6/\nblrM3GZC9nToUbSFWfHPkmrwiLHsayIMATcVT7sbeYJSfOOEykRuTSJOX1Z+\n81kVtlVulbPrc/xpYSGKWIHClFtkLuwbEVFC3Y2FF3QS7T2k/sQdtiNdjX0I\n0NvFzvUNlVPCW0E5NHWuWmTYdn846QtplyDqdkNJObP+ePTGofhJeFUgdkyw\nJW8iRb/ChIlLQUMUNUNU+KWpXkdow2yRNuvQl4wgnASHXNgnhWDVdOGKdIWj\n/iyeAi6Stu4p7N1v+/jZQMBxUKoiIdgsyqZTcMyp7Ds7/E5eyYEuNPch9vYb\nnTl5DqaP6sW9cg50rrrJKS1CzA0OuOHVjDYeBzJeDMprvuBEMMyvcTQcccAj\nfvQGqJrygZzdnnW3JDP4SnTjk49egazbNLNK4Eg6YpPbKwJnIBLA99+1pSD2\nXo2T\r\n=jeFF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSz5j3WePZ4S4KwpopzszM5e2JIo9lGQ5SaPSuw5S4DAiEA612AR1czDxgKAMwbvbqr8RcUilCFvi3RR7BAXGmfakk="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.7_1619631333663_0.7321033705737805"},"_hasShrinkwrap":false},"1.1.8":{"name":"@genese/complexity","version":"1.1.8","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"ecb7e1f825a391bee595148ceaefec13dca1ceb3","_id":"@genese/complexity@1.1.8","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-m0stQaLYJ8OOjzJGp9hw85GSobPQp1aW8bXZrBg10YMJGkZwwfT0JDLVHv1t+lH7tw053UIX7S0ktj/hAj4faQ==","shasum":"068fc5c6b17966997f3c6cf610b5aebf1afc7f97","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.8.tgz","fileCount":1159,"unpackedSize":2743551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgj74HCRA9TVsSAnZWagAAqNgP/0zKCBfyNFUz2xl8pTGH\ngvGdYu95apElqnszZ+54ggsRJUsDfykz88Om4AaxW1wmHvzQT0rwROHC4qHG\nQ3KJAJCqCo9Oee9fOFgp3/zROC7mj9NFUM1rMYB4VlqIruSgaBtVnk79d5Lq\nL7YdM0t0k4q9Ltv9FDOxCAh+nhBAqwA4QOgS06Kxo6U391me/YCPYewvN7Ug\nSkab882BbMYI1KP+UYNTGxbkFsCcLVYBvdRt2twtYG20+MFNXezias0+aQyr\nziwUT60yb5G9L76mUcNEChcIubnOBqtEXjCzvPAz2Hi6yrLfHNdrMuC13Qju\nBwRXjSJkAso9azIGKOO0SQRyodSK6vceRIH4ouhXb8YIP+Wlgfuv1bCol9MY\nd1/Zz8+V2ef9uc/ykdqQCMeinDTlxzeqEB7mJdySMwE/DvE0Ge33DTJ1Lhhh\n/H32GMVZf8MsiElDiJ5l9MJG+ZIPvMNefbM0IX8JAozAwHKbSbm9rRYzBijm\nDsc0Z8vSOUV3Bhbpzd0+xyZ0/ovGFGcLvuAGMAYuu66O+JtiKCWj7bXKrEsu\nwhytp4nWChxg3Bd95p3388ofM6yAHwZkU8ZGRFY6XRb1maYjjRSCRUrpWSi2\nP3ECy+AS+H6aS9LQtJzek65zOFE+9pKt427unUtKJhPbFm5SWM39Vv7qOG+D\nX1gY\r\n=z6WW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXQAznuqEWx5686kUnzDjC8avXJMjG2dMsELQltBokqgIhANLRELqLoxD+YTwbYvDKQ7BtJPneCaxy1YM78ZeHhfRm"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.8_1620033030725_0.8696634173310915"},"_hasShrinkwrap":false},"1.1.9":{"name":"@genese/complexity","version":"1.1.9","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"ecb7e1f825a391bee595148ceaefec13dca1ceb3","_id":"@genese/complexity@1.1.9","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-Rtr2CbyFzYkZBXluczLsWQBXXc253pxtIRBlEyAg4j63ACNQANrkweXJWNf8OcReCwHjjYaH94uhi9pr+0hh0w==","shasum":"886cf0d42e74075b205fdf20b9a2a3f9edb2c302","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.9.tgz","fileCount":1159,"unpackedSize":2744085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgj8NACRA9TVsSAnZWagAAjlIP/AiJu58maMm6NspRXXc3\nZYhhzBWniRliXtXYo45E+dptV9bPEi+1X85V8o5TzON3LRxD7lICi0fmRFcr\nsJ+Drsqpy+ig/c1Gl9+th87tj6EkWRrQTk6zke09DPbz0h3UeoHh6+YDEp45\nOk175Uyl9QAJqJ/bbh2D8ZSRz4Mdt7IAP4WeW243b3YV10aT6+6p1lAvaw+i\ndIfmvdHF7nDZbTiVj7N9RnmaBeMm+d1kwsgyHTSQt49Ozdc52FtkRC+3PVUO\nrJbx+MnuN7YrGHhl9iGFtero/RnLzNQ79CG63zY7AX2E+FlWDPvHF+VAdWo5\nGNvYLaGSAgoNZ2d7DK1HBCn3YfyQ3pv4KvN46FRh0vhzwmupahkhsdj7QdDP\nuYMmuIPFh6CqBXZeoI2WxI3dpL4buUL3wHIr1ATKAUWWvWE6uIrdRdrEN2H4\n3N6u6AFmaRCAA8sijlJcC85Wxdiw6/yAWTInd44R060cyldMJIrafvvxmxew\nCdqOivloqS9U0bryVKb5/WawsmOuSjmV2f9KDBmL0duypStta6WE52btvfVS\nsPzeuG51811UjURM4Ev3XiXFy+A+0VXzBZgxyWhvqPry81SlaGdXFQOFziwA\n37W/45uJS/ITkdO2EfnxuK0bZxou0CbzMhHHk2TyT3Odo5K2F4ihKR7SdLum\nEwMI\r\n=ii7i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDR+f+UAkNtPWLL2rbsvm5Podkku0e/5WjZa/ka+UkhhAIhAPcDsEUWms/820eEyX7J61sHBuUnwcs5+D6XRS/yt3z1"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.9_1620034367656_0.4947927508675849"},"_hasShrinkwrap":false},"1.1.10":{"name":"@genese/complexity","version":"1.1.10","description":"Analyzes cyclomatic and cognitive complexity of source code. Part of the @genese tool suite and of @TheComplexityProject.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","genese-mapper":"^1.0.6","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"dd1d35caa55adf20f294d0fda537bc3cd5507808","_id":"@genese/complexity@1.1.10","_nodeVersion":"15.11.0","_npmVersion":"7.6.0","dist":{"integrity":"sha512-2Ztx4s3vXLyQKLMicSud9R4hlnfNkc+cgf4cWXy6017myTRy+TAE68E82J1bCZWCTt4LctAZ6WlSLQoVDqltAg==","shasum":"4d667a8384c6f6755b8fb2a6dfadd9562914652f","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.10.tgz","fileCount":1160,"unpackedSize":2971838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkPyCCRA9TVsSAnZWagAAJzoP/AoDNjryw8f4oGfu7MOk\nSU1MPvCQM3jChmj20EVayFA3mL0BBN0V2/tii7MU7TjDVgBlGs+J/pTfnR1i\nfSoiv0D/qfUacR/BEOAfxyjbqj/TB3HSYlwjSTKLD3WSXEtLioufvTsQHyhA\nx1UB6djVdJiIt7G593n8yHE1QpMyUKppfcspYq3XfaAjX2KTluJU+D6+fzWl\nM9i2V+IYa+H1ht8hajt2fFKN/pWAk3gRwmEa5lgAr9J6kWNpZBNtB0MZ1aln\n4ZNNUwtAgwS411jA6+Vl2JCROqchlywW1Ix/5kyoMEKBYjYTEXrSukZNcf4y\nWU16f9DkAKc+mcZa+GB8IEVzWgOvxNGfGdvEXfpV0SZ/LMunizYqHMYBsSbU\nv2WBX14g8ECoh6hNicpDLL7pVHzpBqvZreoBLe6GAW6WLz/JKIbB5xHpFY0z\nxM+9tX80u/zvzlRMTGQuN8jACEEyMlcOu4D/M0p1RhJpxAzeUw9alKywILtW\n0na2X4rsfCz7G8EPOR4E+XevXSI+EcfQ+VtNveAbOLTbNicYCopYIcLtv2X/\nr09DTLZQwDQMz0gprdWZzY9gCFIjDIK5/QLwYqSz998l3er2N+zRdF7mi0p/\nUvN74pNxYxas+SqjGQ9h4SAnlWPyTsa/globCRvIUMyg+XQVWtXuzqnAhH72\nmAJr\r\n=dSNO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDXXpOcyfOCT/01B9Du8X44k79CVxgmY0cLRLowug5nbAiBGc9WlstJUbz1pP6Rm1qGeGnTu0dUrvn7v85DMRbEIZQ=="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.10_1620114562232_0.058940872507026176"},"_hasShrinkwrap":false},"1.1.11":{"name":"@genese/complexity","version":"1.1.11","description":"Analyzes cognitive complexity of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"f2e5a8275dcdd411be56bf0ee077bf9b183b6f67","_id":"@genese/complexity@1.1.11","_nodeVersion":"15.11.0","_npmVersion":"7.12.0","dist":{"integrity":"sha512-V4pJxdsjrML9UIF868utE6BA80x5GTsUPVA0qwu1Jw+H9ZKzbm604vl9ILQMDg57mutKDb1hzo1KeQTo+z1ZbA==","shasum":"63562e089e3fd06996fe4600138b0ae07e79c433","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.11.tgz","fileCount":1160,"unpackedSize":2971309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzMB7CRA9TVsSAnZWagAAa9gP/jeTKjxHowyaNFAUQk/L\nJuz0wZDdwoSV2syktXAwAA3opcspvfUZqtdPueSB/EG0bwataL6o1BmOw/gC\nX9zjlqSoUtbjid/2pCXzjSLD92soax9pK5M6ZnBVti2a6kffRz0taLtui5gX\nSwodoPmtk9nWrfgEYk4x4rwnU/akoNyzAjGGyq0X+pNbI71rEW4FAkHm6o0T\n569SU2bc+2bj3T7vIKodeezIvVDWcUM3Q7+j79/1g0Jjui8yNgGBtcBP+3kE\nq80MOHvd8sUVh93KEYstt3dJzhbHfIzTjBSn/SBoOlnPYRzOBmG5Lm+iGC3A\n0PsBXh268FHMAE3zRJ/i0mKak+K9Wb0D7ey8r9pZ4v6ZygSHmfCpuPRxQ5iB\n5EkVMGIUSDChikKWDqci52YSI07lyoaa+qzSLEjuQ7wuz++gXYvcy1285A9Y\niG/7KQuInkdYteV/Gw2h+vMAGq/h7lNTEdm1lp2sPIiIdkQDoU4HiIPZ0igB\ne9yJqyxEK3w2VtTSdScJaSgTfQjtFJZSODQ2ySkTpK17igpFFf7ZMFCKHNLM\nafa+QBxSSl/Ss3i6xx1oB+b5/N5D69vPviS8IurTX8dl/PkD/U8s7gRbWu/y\n0T3TVwCPDF1aggPmEM/F8XCNN0OMwlMLRY1hmqBQIrDmh14PVmzuOqgy11n2\nwcsZ\r\n=7k+9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPOJ20V4+YxtsU4zLXnhV53ZYFj7sOcWubqDQ1qCd0AQIhAOEZG1v2FfEnR/aBxnPCz+m+DCs9KK6fDH8kvfNyMDOj"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.11_1624031354853_0.9271161442333791"},"_hasShrinkwrap":false},"1.1.12":{"name":"@genese/complexity","version":"1.1.12","description":"Analyzes cognitive complexity of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"11782c55a8ce305472d1874db869cf81d895b9a9","_id":"@genese/complexity@1.1.12","_nodeVersion":"15.11.0","_npmVersion":"7.12.0","dist":{"integrity":"sha512-4/RQUppuZRU/dpTHFcpCjMyrDklLVA+ALTRAAxNB6bjeJfdAp/OhTzUjbmrEHurnHR7QLvY9sLzrrr2HMLIMdg==","shasum":"e450ccbfeebc86809f3d1ea1d1e06be2de42eb52","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.12.tgz","fileCount":1160,"unpackedSize":2972459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzMLSCRA9TVsSAnZWagAA5IQP/ArNuGbf6aiBKTsQir1L\nFkQ7npkY/a02bUdiGCuSKIxqgLPcCCkX2gPS5nzRQXNfb4ju/K5M6C+5aQrb\nvWuBxuOh3H98vVZqmab8UsbjA9cikJsk0wHrAm5sGu4IzSAv97v/QcF6zo1B\nHWAnrcC0MM2EQRGUSJTLKFhsjWOe+Dui1kl9t6MwaSQg4XMjjWs4Bq9+5RMd\nWWulp2LgoTBYaDpNX7acqNOM/RHabD4bXjA+Lj1Hose/WjJngXdBuO0QPwk+\nz4l+5sCTqEDIPFPTePSiYa68ofeW6xPE1wnkwtF0aLD4LwFYlEzG9hETyiWd\nDeQw698gcwTLZJ1AEBaEJ7SaGKF99QhiDiuIO2vu2RGdE2xYFMCEDVu/Prjx\nBTqRCQ98lNPEKREya9MjpEx1OZOnRa0xo0NyaKDNL39i/4PML8McjIduYEDA\nzBnokeyrHeZeMS4W+y58LV+tPva3syJiUrOlRciRyxMcVcNDaJY80WPK8/1D\n0z1Lv9im7tHyDETCLhvOa+i014yaGLfk6gwRr+BPpPJUi5AmDRHcoJg3r+Ue\nDGHGcivPcpWC5H7HDYHJMnwr0EgFzv6zmwMgSaFRJWbMC1WuQ1JfTVdnNenh\nPAB9NmwVfdmfRuW8E2nDMydKj55ewKYj6GEuzlFZoFrv+AONhuqKgIizkMu8\n4NcI\r\n=vBoM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjqXY3U2kL4IsaSQEwFbPvXf7lvgI6OJiG4k3VvuhTgAiEA7IaIieL5XPnZ7GyFZD+xjIEJoHmefBIuU1oU5pXsKvU="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.12_1624031953576_0.220246316243488"},"_hasShrinkwrap":false},"1.1.13":{"name":"@genese/complexity","version":"1.1.13","description":"Analyzes cognitive complexity of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"8e4201cf942a59455b2d1eb9dafbb4550dfb380d","_id":"@genese/complexity@1.1.13","_nodeVersion":"15.11.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-QTrhw9PgS4zFan/PKOzcEPCyqfMogatUD1BqFzEnsqxDuKZDSleTIgPlS/bhDgoaoThQBg2PIeEAfGf6KpuF3g==","shasum":"ac6dc62e2b6095589dbef480444f43b638e05ea1","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.13.tgz","fileCount":1151,"unpackedSize":2951009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhET54CRA9TVsSAnZWagAAdgcP/0VZvd4a2ZCG5Yt08UJ4\n7kde1NitlWNCvG5JHFXC01z7BD0gWXD9D0blWXWc/BkiO98HNvPyS3phCL2j\nqvukBcaQWF7Fl51lTWyMH+ptJHwUlRzOFk9AMbb2CkcGamY+dkte97er8+u7\nb2NyjgbLZb/87+At+YqHKL+QvKUy29+ssDrzWQLhHDevmOi7ZJnigGTT52UT\nHiYD2hNWETiuK5pQrr5sOcZJpmIiRz8249P5VCAcvGqGjFKaUq+k8oVVRW6K\n7+iFreNmSw7aRrQp0XKDs7Gl3PZS9wPZch2nFtH58F5bUX6to9SClXAo1B9L\nXjnZr2rf6fNyFq9Q4s53oZvDRXRdFXPJkBSGqlLVJGX4Jlp+o3MrUUORUom5\nh3mjMWQzi1kkC9fkaOR+/GxaD9FNacc4Ou//579KFmKT1dJjg4QNovC6M9Zu\nm4Uy2mbtaoKH9t2pcTE/yA2J77+iLeANaw981pCBLSBu37Su07ihwCLIzasT\n4oHaKi7n1bJ02lDX90Kxm5HQTcZkWnFJJbmf7LtgpkaESkDq/WiRTHZHI6AM\n2gvuOfbwi9oAbyNhq3LRjmLaWnisYpGuCf+SF+fFOfvf6D705jRke2k4q8i0\nT8RXFLCsWZVWuy7hEO5o2AZ+wUUedAhyQ5JLRlNY2PNQPcv40L2+K8+V7QVW\n93U5\r\n=y+Li\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3SRlyqLxnlBoVGLdJrAdKybsF9XDjSZrtw9E0mcgUvwIgLOhYdwjm6e/Rsg2OtVD7tGfUp0l+wPKeD+7xT7cYlyE="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.13_1628520056093_0.303015697482391"},"_hasShrinkwrap":false},"1.1.14":{"name":"@genese/complexity","version":"1.1.14","description":"Analyzes cognitive complexity of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/automatic-refactoring/templates dist/src/automatic-refactoring/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"8e4201cf942a59455b2d1eb9dafbb4550dfb380d","_id":"@genese/complexity@1.1.14","_nodeVersion":"15.11.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-GGP1UIIAteb3sWIuqvmal5VCY4u4IXtqejY9TzqUgbDubXQ2f0240aK4m76eNbOjbYJ78w1sLxefFgXiF5y1aA==","shasum":"3891238b5fa50b27941bba0b41073b0a408fc506","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.14.tgz","fileCount":1151,"unpackedSize":2949851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEUClCRA9TVsSAnZWagAA5bcP/0gFuqvqSu94bFBEmDRo\nUrQ/X5uYlSOfLg2qACfzpS5lbSZeY5y4tUza1wNKPMcAsSTHiWmRs0ZvlafQ\neP3uceWOf9FQkbPfKgXoBiKTJAHPe+xC+35BfWidzr59m9s4owpxBcNTDtY0\nvqSzi/7uTQYq8Og5S9k7X3Gb93avccMXs3xSlFgSvvSUhG7wK2gDZAnjQonD\n7MGr0PWJgagr8nxyeM+Vca9EWY2nFp7BfChkEbYG9xXxSwsYihAHPCZ03ksw\n/wlaQ4l44GhQc46W9Te8pqwahXRBMFTxzqacPrHFDPaXE8M3ys860BdKwXZj\n80rM7TSaCRDwneKiB/ubQhySxDyRcbW4wCsokR/1B158FqBIl5OQVZtA4sLR\ngzTMVFz2OliMVTh1q9i2p18e/UR9M5Qk3zq0ORKAbpP0Uo17H40dPbne/qKo\nGfYfBPBBs5w4P21fvh+jFOeO0iwwQr4iQn/9Y5bs8c/2ZRyRtAbzE+acEJ2G\nDx0l5AJa5l8x/WuAEWagKmyvc4xvopDrhGemiPOaYMQ0dV4PzuwmMEroBp00\n0Ka3TY9YoY3wSJG61TvUdrmMJOvrNTJNesnjGlZ9SdTmwCSu5WW4CoAe68E8\nhTC3L1YCORzWNz3pxw+Gfp2NcNEjp7k+X2YBUz2mzTxBj+ieu0CrxKLPa2vj\nETZU\r\n=xdpV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQSRvV++mG5dUEfrR+JimayOCv9YuL4fzhY5fISqtMCAiEAr5yV4sUETMqH+SbBMnde89CsbaWQqRAvejT73DrIVPY="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.14_1628520612831_0.7251874920516117"},"_hasShrinkwrap":false},"1.1.15":{"name":"@genese/complexity","version":"1.1.15","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"ca2c1f9c473109900a2acad9e157618c09b21490","_id":"@genese/complexity@1.1.15","_nodeVersion":"15.11.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-WjAzk6ZMuP84XHKFIWSACzXstWu/nj9JVg/L/zXFhaVtXRXqzWn8EYvfhpwsDRhJM9tshZbaOxkgnePTp4BS5w==","shasum":"84f9d5f054642533da5ed4156f39be6f7ccf385f","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.15.tgz","fileCount":1146,"unpackedSize":3002094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJ2ByCRA9TVsSAnZWagAAd6AP/26OGKFmsjTDXT+hV3in\nTz0RjnEJcbff3YubKJxfQqr8myO0Ts/yfMGOQn9vmGG4fAiMDHSBnsBHZKJc\ndhVReN4+wlmvK1h+Y9qbx2BQ89i7edQIDBEjjkKbJy9SuHH9HZTcad3TZj4q\nM62nuLew3zu38+o30/Qqo2kMLz6nmvq3Iq5IeLU+FUJ6GJe5IVb1Ril+6DIJ\np7r0YdBcM7XM1GHjXYIqimwR1/LQXFXl9b33QNoGuPkMpu2ipM4lYQIpxzLB\neWrpFM9QvKi7FQsRNZ+/Zz13W7LX8VACNeBXyPR4cfmT+hcPrRuY4UfY4jaZ\nYYqpEJXBTUD37dnoDRg/PusF30Eutm7rT4XFGS+KXGLMjY9p9q7Y2zUdY4VY\ncmNcur+b1HN8V1YMhgz9mCaTsan/ExIqk+i9k3wPbQPO6Nzaaa8p53EaaTH6\n1/BTUdaho39qAXrmJRPyO6Vf7GSONJoxp6A3wXlp+axYcBwVodISBsiQydSJ\nQqYAT0S2Ml9+qhMxONOCvhYgz53ApZ2pAcfU4Z7pSR9I/fwDXZ5uxb+sPdFU\nBZ3rMKNAn/pzp+wjYqGPU2OJash113hJ8M5tngg5xVhvrPB/K/OXNcOg8K0R\npoL1e4mnjzRvxdyIuJJK1mlu+ZPLVOwvfsL4uCZGTX7aILDMXWHp/xSygfwm\nlr64\r\n=fBTM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE5KDDIkw1UdeUU9uFGJ+YxTSNQhGWMsfd85CFqbVEJMAiEAvukCfVLdGjZDimlI5NNYddsf6At8+MNQL1tdGE9T2fw="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.15_1629970546616_0.20841565601974943"},"_hasShrinkwrap":false},"1.1.16":{"name":"@genese/complexity","version":"1.1.16","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"bb7a57dc4185f8f4d5bf54bb22e8d2bac63c81d0","_id":"@genese/complexity@1.1.16","_nodeVersion":"15.11.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-mDxYk91wFW42LnunIZrCQpD7EvfgpFU43n4Y9SiT5Rz3vfcZYJ3ltL/YKfppjFzVI5NFalGAOAcCu896sXdOMQ==","shasum":"35d6b46507ed07cb86f9c24d14ff407dcbe02f11","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.16.tgz","fileCount":1146,"unpackedSize":3002102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhL39sCRA9TVsSAnZWagAANzMP/jTPHx/VoboSSqGJlRaO\nzfGcMK4gmAceMx8z34kGTUPA9fneGLP9mp+WGKFF8QNFTxW3E7rVAJbvgfZT\n0YaSN7GP5cVJreLPHf+vCs2GznL8+rzQut2jxqJhl8sC/F9n0MVPgsrzWVR5\nmt/Fzq/LfTRIeD4lt0Txl2+5r3Ob3TWNd2hAjHUg+LNAzDya2xHaFFm/5rVC\nDfNCeypEEF7mPBJlxV6uUPGA3LC31ht6tkzLFDfO0yPdNn1lz6kB85kjyMmO\n3pPuA16DHH7mKHnJAMAaI674rsuUanhplxmUeXcLgnX1+HHC51QKQ/+kxPZl\ns0N4SEmXVtnR2xi6cZ9TsHTOi6zLK/1z2jPfR2469fQWLBjeJ4gTPEOFwDzK\nyLlLK4Xjc+0zElyNxmJrq+YRdrRkN1w2ZPum+FO9GRGUzsMINA+np5WVtNTP\nMtfPIpXE7NJWEQ3441zMwkethqdK4yBFB4hTVAIwdBT7/+xgGpvvwSMq5+oJ\nrGH0OLCVtKVPVK4SOpjUbA1PA8lr3nSJTXy/y6ZOTcAMwph37gdCv9r9lHFz\n46tMHs8xSUIHoWRR1SnqhyGSDDI9peD0n4PejC+LE3KCme29E/2Pxwhh+94X\nZNNpRGmwGTizhuoWyzmmggG8sszQv+2SbCGohpcs0PQ7u1HSgfDqZ5RWG0d6\nHUIb\r\n=dDRZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEB5ybn9fN0GFztAALI5TdiZg2/oWxE5V8h/trR5qWDQIhAMw2IA6y4JF1vlRSYrLUe08nMn45O3YK73JcbllNTkxa"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.16_1630502764677_0.41932174071308537"},"_hasShrinkwrap":false},"1.1.17":{"name":"@genese/complexity","version":"1.1.17","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"dc5ea3f9dde9913bb631a81e045d09f11fbea44d","_id":"@genese/complexity@1.1.17","_nodeVersion":"15.11.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-fuB4fYJfdCf01N55/j6cRBXkiHTuNzMF/tWIrpAwz0i4l3fu5ubLKWYecZbdrQ3YHaOYRbWliQyBbtqSEVnhnw==","shasum":"9b5820679c84d2805525381d7fb6beaf311ae1f0","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.17.tgz","fileCount":1146,"unpackedSize":3002104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhL6kTCRA9TVsSAnZWagAAc5AP/00UtdaR0kRSZbj1Blov\njVSLxljUhD2vzrTo8++GZUoo0h/SUjA72DNdsN3iXxvLeIDD4i1fw/ZzFwtL\nRUR9mh/AEwKVDdr+P8lKu4GPe7rw0trgagXHkkE6sgv7omnwgqd6tdHrkpV4\ntzoiiGzsTLQsUdVt+qKyTLKt+7YZG5tSKlzay6JCVSD+rlU0RkxbJ88KxvJ0\nJek1YELDka2fbb+mVbzzKTL0rEM7J4ds36Kn2kHc478vtTbngbrgLSXPlLTz\nx/Xa2yILdnzPTngAksIDlwLDVxHMZKYf4izv8/l2Otk/i5snHjvdz+H4/zq+\nefha+/5C/hzk8iMrfu3fNKW8uzksZQGu4vUTzd1nYJ/+iHuUb+3403DwoMHs\n18iE6eQ+N7qrUx7BfksAr3sPLyZQofJR4MaTJAb6E95KdnVl5o6g8K1zczGm\nTrBGU/Bq6pJwXjJAwchiCJ3B3BtJddwK9qmRvBaeURuoUrMmTce7OlptGl9r\nH/zttGRLEqnJj3fZButGDSIAMreJNlwAIBJrC+QxS117hq/mihiAh1/HLaVY\nmpc2RX1iukB+Qz9lwwQJy69HD36CqWcQLBC3+uJDWRVHnhf1aM6ePNXN9nw7\ngyF2gV1Q4JkU77RGLSgMLqkBboaNy/9dptBRYY0Lk8mIGSLzuG4mH/GuaLOY\nh7j1\r\n=8jBl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHimMXqZwQN212fkgxNOOcF3QciR5IspH3rkTQ/i4CEkAiEAz3fhvsNOXMJl6ieYOWTUDcOI7w4vl2jCSmlmAPNFzK8="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.17_1630513427057_0.7328996051825658"},"_hasShrinkwrap":false},"1.1.18":{"name":"@genese/complexity","version":"1.1.18","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"dc5ea3f9dde9913bb631a81e045d09f11fbea44d","_id":"@genese/complexity@1.1.18","_nodeVersion":"15.11.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-k8wgXtcdZmhD6h3w8AvupzGZEZ7FelnnI9HFNEZRRVy6vJbDurXciQkHp8ZWEZmyP7oQ8/cKqAwdJJdqKxldqg==","shasum":"7740940136c387ec63dc8700c39e366af806ce4b","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.18.tgz","fileCount":1146,"unpackedSize":3002168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhL6nECRA9TVsSAnZWagAAQ8MP/3k5VwqXJby3e0LQFt0c\n8wBjotPzvXwaDCFL8bD4AwbXcdOipInGXKAGhHPpcEuSMsC+dMMgdfX/Hgcn\nOwPaJSBwr2hDERcEfJYFePFCqzCMd7PF65/EVO8xn7emKL4IXcfB8PfELL6F\n46BkiN1yjj79XOfjp8bgFgL0/XgS/9VQmzBHm4i8vkSipDunRUUKkJnKF2sQ\n+G9Kuxn/qjmPhxKhKms1jbZiFVz1QqGv4Mm4VgsBl1YyqEfTVz/klBhkp8er\nfnq2pVPiWaRDaD/sXfez2eluoHeqqvt1C1Cpw6N5ZVGdA3lqF5EWkGnFAmEv\n3gS09HRKkWVfBZ/SlV7EG87BDVBi3ghjtxAmfSgieA3rpAD7S9d1vmu6X20E\nm38ZDTEytpqpzBFbYPQaooUFk5pyPqG2WPIbFupy2Ga3keoPkPju1CBFHk5C\n4789GvpFgMJWVfOWgdZIMgC6v0h0r7O6UG+nJGWVIpUxqA4zfpJLb3WOZcor\nDR2r2FMbUlPgioakrKTZUo9wOHmUZZDV/KYHN7R3Bh2wQ8jviod4X162fBPH\nvoKjv3EBXO/TORTc0uusLCqPZ3OGHhXTwZH0mF2dL4yjwbcqkUZMLc4dH80a\n+PBrUEpVV2ZE/yizd5NozDuGVS6pStSYs+kPF8A1M6ORtOdOsALFU56VXCrJ\n+lgL\r\n=fJe8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRE6PPJIgPIHohOdFCGFpZKiQyDG7pZg5yj1+W3Q6WgAIhAMIV4+ASCT/MADY19ZSMbE3LAWYjxw6zjtTDLpptylAX"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.18_1630513604059_0.44869021661876207"},"_hasShrinkwrap":false},"1.1.19":{"name":"@genese/complexity","version":"1.1.19","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"ade664329edea82bad6ab7ab547666d40fda46af","_id":"@genese/complexity@1.1.19","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-YkWZfNmCXzYA77DDYHNBlCCBd4VJxocsZ5sCyrRGRyIzy9OqroEOVyzPtsnaVQYcgLODibWMJkZyKLlHaJzwCA==","shasum":"8bf8021b53998313ef3a106c234c5c59e700ec1b","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.19.tgz","fileCount":1146,"unpackedSize":3002692,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh/5sVCRA9TVsSAnZWagAAsvQP/2djGx5jGzhwd/of1voI\ni8JHlI+Ee2q7XFE4vCIsKUli5NdsY1j+7SdwjxYgVitzwVRbiSabXextDxsB\n7NhwRfDYbB1EcnMeAlm2Eomk9XfcaO/smJ3AWHjRMHmLuEZHLXYR1yX82vAm\nHVAWJ1j1MyGk8Zm8YJeAGEOcxP0jv9lqR1wbK43dzT6IgrucK8zNWktbMLfm\niUk7lriRl4GUEkDN9DuMAAY8dlF8nMbKLedVnClUHhevECzgbmJa7IVDUSk4\neLpwy3C0Vr0rj7pWWnSMpF/BARqI3XwNpGJ8kHHMyS9PYsXkL7gJPsuRhCPj\nhEbiXE/vaFYKLQgmTSyEFwXSR2DLZbPV9Dp5D01GyNoFvb0WH5lrfLLH8OMI\nQysbI86M4ynb3xf2ebln1kYt6ieKb9gVsZoJGr6G1KBf9TNYItrNLsou4R9Y\nV4eLW3Bs/5H1g1mANwVtmpaJI7FzlZpgLxxeIPXEYP2LMDOmtnTvl08yvquO\ngpepIj6ph9Yc+SQ4XRcspCH3j78R+lFEPPRVFkSR1ECqrZQS+/N7ehq7RoxQ\n1A+XAJAL+kfLzpophwtV0Dv4bz75ExIK4/5g9JHGmeqsV+9Q15Tqc6rLEmHL\nljERD7/ksAHUq4UMvisy9jqOgt8zjjJ9JLKM+F6x8omZaXS3GVUaZ/pcqAde\nUpnG\r\n=N9Tj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFlOy+1x3stGcAkViohrEHkZNSi/8wMlF8KWKX1+7YG6AiA26Yycos1s3UqOwWHUoRoDkR6T+mIQMhnnOA0IrscCHQ=="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.19_1644141333064_0.08360126303115933"},"_hasShrinkwrap":false},"1.1.20":{"name":"@genese/complexity","version":"1.1.20","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"072e9b8b90470c3d049d4d8bc4b72e2f95f415ff","_id":"@genese/complexity@1.1.20","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-PgzVb+TrE01NkCU5+D6WNgLg8O8gG9kVVCOOqDanEBEZhZk85GGmmJPKB7wzZsBX7XM8PEsZ+ao7sRmAR9uy8w==","shasum":"de0ae17631a5c645b810770a3d850cd682dbac3f","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.20.tgz","fileCount":1146,"unpackedSize":3002668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAMWUCRA9TVsSAnZWagAAQUQQAJJrggFJnDqeohIuAz2j\njeqaVbJysVa89J9V3HGO7gudKhfPKk5wD3SOQPCmN/1D7EClP5VxT6n0OHBS\nM+xWFwBURhALJZDUQ68RY/MXYs7VktXmdaHf25D0fuS504vbJRRB9HVfB/HX\nyLiX0rTIvNinUQoRByIi5/F78E4ZGAG4BeZ4DP20ZNV0hxHVoKNUIwAv+//I\nmOnbVNGwaRakuNaa9eOWcVA17ELJ3pTcDVb57SmpObphHCiJbUDQkAd3sB2z\nFgO2KHcKSbg8766HvQ5GvdlT41V8WzHxFE1Z8cXJqMWc6xgFufJu8iAywktw\n8UZdWGNO83SbuR0tTASfSOpvtLVQ/6oGoiErMcG/neA4oYygt7k7RPmHaZAG\n5ZnukuFRXKcxYIEcwnzo4JvzO/nG+QmAXOU/+YLDK+QXs1j4GqWbDUD+dZ/L\nliRplc4S47JCIXxVwAuwKrlimNghWCLUD20OrTjtVQuCG+WQApDRRS517x22\n4jy424rY7fHshsv8/swo252NZVLADPOI0pP8XR6X/MxElH/cPn5T2vlh/5d0\nfBz+2z6lBOT7kLkUNvEHe81WL/2ru2mpruV6OelZMDCheykJC/GvZeQYo4ZP\nZzvcy3/iHIULYK1Gj+IwPf9BglnRIuJM29H9dR1vUOUCLYO5BrEcF6AmDgn0\n1v7z\r\n=wBsN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDu6MP97Gon9v9WcDakGRjp3CMIZ5HWNz3eY86xEmJ/4gIhALKZN3ZzxzQQxZr64DMAOyIwhoUMAf0rUhoUTDP7EAjA"}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.20_1644217748384_0.10237229867133446"},"_hasShrinkwrap":false},"1.1.21":{"name":"@genese/complexity","version":"1.1.21","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"50d047bef8215f86db57e9467ec90297a7641ea5","_id":"@genese/complexity@1.1.21","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-WuTMPLp3I9uuaSfVPmzoV7KThu4ioQQhroDeEYRlJNY3VEHgJYoHDEiJH/5dqxOv2+JpIIYT6gbgn/HfXWA04Q==","shasum":"59489700a9841c79b53368b2572ad9f09fbb8ba1","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.21.tgz","fileCount":1147,"unpackedSize":3003548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiB3sECRA9TVsSAnZWagAAY9sP/1T66quZ0gDWsS3bsbP/\nEEa1qXbqFrtH9gGvu2jFJ+xIh0lLSy5f9hrWl99pb/ITXlLhgm75dM5nf8vg\nr7il/JwZid8UnXhhtS95frZ05pSEe6XyN8TWLWhJ3d0moMBjoz24MJhzfuV3\n/3Y3OcmEhdknS3p/qW66ysahjYVMLYrN7+lIVoeys62xBAdmCL9GKmpQDWnY\nX3egqAkuhcckJjn/DUSKPqe/fHzf0GVPm1g9zGXTv8Gl0wAJXZibximLk4oA\ncL0soTUfL4WV7soWETK+SaC9nETfKeF4f2q1W+8yURSbPIrqHeyRVEFPQaVQ\nFIsZLcsEq8t5RDTftYeGz3nPHi4ZZAkf+cwb6g1DQzT7C7zCLYPOeoFxFe7R\n5R4wSE7ZlTblzUkF4zaCE/wNJJXAyCapm5MAug/BzShhiXsNNWO6dwM7CQM3\nWubtYZEYByHq1Zk5uG5uNEKLTpI+HAIFFhglDQIz3t608cnWhztH2xdcBU5X\np5X3b1mosvPROc6N0fdYNszLKuoS63GLkEWr0GAIPaD7h2MDCSApcoSoDeaH\nW1SHbSVNq1hsQDMdAMTTablFeaIgpdoT2Aj5YoS5oasdjdSgpjPJzlBvYWaV\n5V582nN74vjCKVA4zyiJLmGXDxFeCv0kLZF9MKOP9s5pvIz112+q1b1wwIsI\nH6ao\r\n=4L5h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbiqE5kMxArrFEJe5eevpZghRSXWiKlqJRJcyxQaSuOAIgIYDi4bs6sedfEGUhsOZZ2jyKEQHnHQUBo//nsE3atZ8="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.21_1644657412322_0.9440055015296884"},"_hasShrinkwrap":false},"1.1.22":{"name":"@genese/complexity","version":"1.1.22","description":"Analyzes the difficulty of comprehension of source code. Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"0fbf4ced575ac427f3d6ae33a701ecc712e73c68","_id":"@genese/complexity@1.1.22","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-Ychl9kb9lNjvnhATq/JhHtW6Mu7usOcAmikWynzVaqhGnDWBueDrxiUx51htWg/4AH0mZ2Ntp7rpH1OatekjGw==","shasum":"d88d8bf21dc63222abcc7bf288705d28f26ab820","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.22.tgz","fileCount":1148,"unpackedSize":3003783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiCnuSCRA9TVsSAnZWagAAo18P+wf16UhsSpzX2Mawswb6\n7BBugBRR3Zpry3pnMFvTtzcYwYHCB/ZSNvG2YDeJXFGAIBc8rnqkwraCPzCc\nKje68HOe4YW+jAqM34DC7xJmxn47eisDzQpzElJx5t9cY+6uSpi7wpOEOq6/\n+yhXo2j7vaDjKsLBncE44qbSEGv5uBEAtRd/swgLP7uePCYiQmD/u1/m27Hp\nFKhtYY72jQULBNiKZmjJQ8X5iN+11f0ryzVyclesbtPPRSlsTGpnJNXnfRW8\nvCHVSgdNM9gMJfPOt0/VHw4a7BSjlhneG9Dtqf+DtjlQiHnso0LCmbj8vbdl\nVO1dqiQd03qOjdpQBtTqN7z0LXCuZD3hq2ETowJxNkplR9w9KYpzpp8IMcor\nweLhAMtvg2EEe9AiJhK6Koi1FHrWAxyVbOVyhl/r/9I+xLTYlmCfdeHwk9wJ\nMzBkpxB+UEFkS0Dcb0yX/R7P0Cp9cqbpRU8R3arjEYNVcGD4LwGohkZ5Hbj7\n3/GWr3nKK+SCiBla6FqyCF4DLlLOxkWy8OEC8/KYpptLhc7CJfxrvbGFmXW9\nOC0VIQ78vRfaL+q8p6f15e3WDZ8yAquVAogYSopR+l4aXd2U1oORMVqdulQr\nFhH4fQjLv1E8C3IVaQm+A4CQXAW2GzLiFaJ4/lL0+6imPPcUe/3a06vcgEM2\nLwK/\r\n=m2ox\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk00/9xHmcLo/ZVhDo3sF9d62pjZalGbAGBEBluydrLAIgeloqbUg4z06SxfJFfNN3X8RV6ERNoiPUWSw4PkcQ3mE="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.22_1644854161856_0.38154706257995197"},"_hasShrinkwrap":false},"1.1.23":{"name":"@genese/complexity","version":"1.1.23","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"1debf9b177eb71942f65c6286514f72e77d1076f","_id":"@genese/complexity@1.1.23","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-asp75p47N2G4q0m6tIr+7RkID/GuJvgPhouPFA605ksNV4TfBiu719EzMKjpQp7NMvldqtIgAutaDkb7xzAq4w==","shasum":"2eaede059e7b14b58e69a3e2c14d2edd2d889417","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.23.tgz","fileCount":1148,"unpackedSize":3003735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC17rCRA9TVsSAnZWagAALZkP/jkP55eNvhOvQ+K6LVme\ngqwtiUESp6eV0W3c0umevMF6As+mos0xFjc+lrvoZgXkqckgQQcXcTKbCCiH\nj7KPaYCtinkEAyhL9aHqiVtIdcp7DiMPe8BWKE8HxsMfaLrAzhSimvRbWQnD\nXJLaD7W1m8WocMwnZVxnYusG3LopvWaGlZoPC4Kvo0K8m9pMtRrwL2HUR4DU\nj27AcUGa1WoinCk4+NfDD4RMbHJwJUgCQza/mi22LvL2ETPfdiUBbbTtdONW\nw9Fr7kucJOM+VN/c6oO6fCoXEO4hd+/PYNV1t/Mhk++5h1+xlxVSGtWUrc90\nqK5m8nXbIUXzCCvtJMnagBr6t4Cl4QgmV3YJ+b/zKkouufh+SzR0R8xKykr8\ntyA66gDvY/VM0QWu60N1SCPibj2VaVHROtIP4WpsPfmWEVqtacrCd5qBB1We\nPMGSqK5LZnS/suWw9rmHDgkGFEM4tNLqg9n8U6Go8tmysq/2Zyt3pIV5XzhO\n+v2iC1LkQzCf5Zpl1ldmDZQpJ67gHXVhw0TvolVVQeHAvG49GszbkPLxaena\ndBSWInR0BsH1DmDqTzGC7LglTPwVxkNSiOO+MwALZqMMqgL7s02jW6deGuiN\nYNEW2oG43ubtqJZzgwKpXX8jqQwWyha7ep1r0hcryiI/7r81dNNGgNeFyEA6\nglpd\r\n=Y73l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICYANn6jAn/J58ntqd3G+hjIv5cSd6D5LaN++Al8T/j6AiEA96QiZdNi9f0b2BZnQOy52CjwlPkYFKabbK87X296VWw="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.23_1644912363788_0.6822557739299862"},"_hasShrinkwrap":false},"1.1.25":{"name":"@genese/complexity","version":"1.1.25","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"1debf9b177eb71942f65c6286514f72e77d1076f","_id":"@genese/complexity@1.1.25","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-8cNaOhq39J926ddegw0mCOnAGVdfpONKjpktxUPsJkanF/r8NsXEF8X6do4sNf1JV9WlEQ+fVUd0erOgrySstg==","shasum":"b126f5d87792b3c9f60d721b6bd2d533d211da94","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.25.tgz","fileCount":1148,"unpackedSize":3003676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiC2FtCRA9TVsSAnZWagAAU3AQAJxnENvzpCcUaFqJIXjU\nMNaiXf/UFKKImJjwvZ+I/4svj+lVWYIusk20nRqONVMbvnkpoHyxZoP/g95E\nzZtxUv8VccVqd1o9kypiS6A/f/v0tirXOT+dj/QHBNsDzcstf+Qe359YeEXf\nrtZpm/lCgxL1w4SU/4xw38qHjKfc4DxqitwfxzuhUOFn1JD3Ux4OzDynvWMF\nVAgMIB+/QDiWgt5QqaGiL8eCcu+bBg+bMJNW21rCrBE1ro2mtMGV/JH0zo5V\neHRTNQtO0PU5ti0OMzHJuvslgWi9JeeAn2bRJtUJs83AlmRnCvIG44lv4SOw\ng1BcBYdR86EoGS9/rjLWfpFAn3sN9rp5SohDKxPTiz3jDwB6WVAw7nvHuU1w\ntXRfZ9P5l+RfUPpmol5tYMAdJcBGjirud1vxzX8+5wskLx5V9vmwNko+++yP\nxfr09Y5PyUXN1ELX3Jkn0mh2KQYHreC+iEejQj2A/JDFoUPBp2qF+lsgOgWq\nDJDyDfBrUGja9s+SSr8/SjJkIQi9X+gHKTptO8lbluUMpFwqEyfoXPpvIuji\n4FPWlWEEGcv/NV9PTCGMSGLNn9R+RtTHrNOvLT9m3PNssccYn5eYR1WiEJzn\nllWyv0Xq5bgly506pRrS3f2L50+vAS9eyKfhD44b3xVDx+1rxRvhCzDEe5at\nf6ci\r\n=RkV2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFddkKY7b3a1X06ZJej2J1PprfGu/jI6kXP+0fhcDHKaAiA7fgL0kNa6gohWuGrMFCIm1+2+YM6LNB/kIkVyisbGqg=="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.25_1644913005478_0.625767987783374"},"_hasShrinkwrap":false},"1.1.26":{"name":"@genese/complexity","version":"1.1.26","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"96179dcbcfc460c39088193ffccd634471a7224f","_id":"@genese/complexity@1.1.26","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-M2F1DiHLBS9JflPVG4ZB4zIN3a7eGudP5OEzc8EYb8Kl5/8v92A3I7DPyUh3UbRw0zBAxwo8GXDk+F4xk39Rew==","shasum":"f6c6b9271a99c3d019e2392bcd3bce2cb6c38b88","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.26.tgz","fileCount":1148,"unpackedSize":3004897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD8fzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBlA/+MPyPILkX1bMdfHgGhFc0W1cD6xWDbxr1bcM77e1hkMh8XqjU\r\nSNPY6XLdMGOW4mKz+Kz7MopKoLTRS40V+ONiy2u/jrQ+VjCAUfKhbUt8KjWT\r\nFPQhwr9lDfYj2kQ+1+DZQqQQ+Bfwz2IeOr1ZTZHvQ+1cMtYtiBYsHmxubebZ\r\nwH96WIvy0IUCPOoKKoYZN4Tr+4Oyl8tfxY5iAJVKX3osTwuK10oL0dPaUDSD\r\nlXAEHjzk8xLRNnt8IDTcjNnVm4uGYEOB9h+zM143vChffFuCEFo8lCVVKDVx\r\n4dmAwpQcU0Wf1mHqhwggLAkrAtNFKARczpj2RPhQh5tDNwftU+XI0yW+h8EI\r\n9MNFQ2RACSA1xsijhyQcAGjhhJtiCoPWn6bwlQRi4AFugg4mDghQDj6rwa1p\r\nXop0U7rU64/1+QaWezprfh9d3kXqVnoEYItN0sRfbnrecCv0RvDwNjx9t9SB\r\n0HM3/BkQR8oCqUIKKl9JcDd6rWdG+ODGqgIEsJ98Ppvkc1+LcoXUYCTDvlsu\r\nwYOnx6UWkLhukFWUqGVNVq58mfLIlMkx52xPcZT7uaFZaDwwM8Z5Pr5fybGt\r\nKJRG5um8uBhT6RHHkGS0jAbCyd6SAj1Z1RPEzi89ZKn7sbhw2+6Aujm6GKH8\r\nZoXL75uknLX3xoWBfOZR6h7sFAILbwPkZYs=\r\n=M7/0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA6rIfIDdRBBYPytTSsL5ibPBb5mDRKXi0zgR7xXcbvVAiA75NSBkde9VIOx/oJUja4o94NZk4AmpbQGfccDsM398g=="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.26_1645201395633_0.9236088673393723"},"_hasShrinkwrap":false},"1.1.27":{"name":"@genese/complexity","version":"1.1.27","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"d22e24399591e1508d14ddaec91337c01e803a39","_id":"@genese/complexity@1.1.27","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-w07wnz24wFZjI/hHBBfBg38lhbSFb0tNljTC/zDptYgtCu4e8+4LYB/eTzUjP4o/Ueth6XNN4k9ZbazB21VW7g==","shasum":"608d671649b5ee610ef7c87c6587c0051f4cd881","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.27.tgz","fileCount":1148,"unpackedSize":3005745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiD9RHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbfQ/+Jqj7IECJqcNV6huYYuZwvj73chqZzO7TN64JjGdstl8N8khT\r\n9RY566mwypdDV8SSTmG64ugNisPZKWvEWDpstL2O7rwu0oDhd1DO7xFAFyVn\r\nFVbB5RCxZaxyXjA1NA2Rx9upTXeECNDL778tvS96/DaFzcD/d/j7IOU02x57\r\n6ZVwPwUsNTlj7LRJ4z1XOkSy/2ublWxRlkBN1rWK1dhAq/0Trn1aVyJTh0g8\r\nSoU02n9gBKqsTRw2Vh4CZK4WW7Qlo4EDItaDRsH6RnPjHnS/lBvASamJvkOs\r\nJ0nXqOtMT14RafibDoP5Ya0eYkP6JJ0YtszU7y47ap5BQoz2b/GpJtHtDkQ9\r\nDRJR3n1VE0UUwX9rVH8Ss9zdBEB33CPy/UhhsZLDI+IfvTwAZmZAVuynqLeX\r\nxFYHOiYDuTLVnYYE7/sokYipVUVlaXF9O5uIoGo7A8GxCrQ6xgMmHkd54VfF\r\nusCto7fM8BYkY3+WngcY5LKQOT7N9bQcx7p4fllVQut5kbwni91RozdGCmYg\r\naYz/nOwU+rOEO5utT5I5JjEgURTcIB6Ck6yvUumHQnCE30nWPw3WfCaMfAPM\r\nGkLeo8YdTucbgqeDC1IGoxNixa2kmbhjYyBW/MDtZGVyhKMHGqYOrPsZi9jL\r\n4Kwu4/F/9IQ55UxyTO6HfouvffJ0pUSYtMM=\r\n=/aJe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/LV/+RqR52hIF0K8AdiF2VyxwTmQF57X56IFtHtr7jAiBIVn0ZZuw3QZlAfgwNgqfRyXHRf9W2yVNVjcv/DQ3oaw=="}]},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.27_1645204551258_0.02425831222241137"},"_hasShrinkwrap":false},"1.1.28":{"name":"@genese/complexity","version":"1.1.28","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@genese/core":"^1.0.0-alpha.1","@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"24070219ecf1ef0a78da903c5e37d5459c77d15d","_id":"@genese/complexity@1.1.28","_nodeVersion":"16.13.1","_npmVersion":"8.3.0","dist":{"integrity":"sha512-b8gtDyxhmf7YE7P1JHU71dmG/5s+DyVN/ZxPfPt/wN2M5LAs6qIJEG15dZ+ie+pYLvTyfhiaafygPE4bsaXkww==","shasum":"c0389b113873967e2b91e493cd2e85dbf95f4a2b","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.28.tgz","fileCount":1152,"unpackedSize":3027683,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6fDu73dvus4a+3mPJ/f81PS0NW30L7QEvY0r4GNyQlAIhAODY9ei1gt5LDoCkm1DCvvJJ5lw5ElsCK9DHCONPlAxY"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWEf0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqNwBAAheAV/A9Ckgp4TOgxyskM/fcUzVEobGpeuzZay+KTFXhRj17s\r\n/59BVXow1hCXDxGe6sFdwxtvV/kqUI8g0oVNVKhM+IlguSofn/Jd1GvccFkL\r\npMy9EN3hCcmgkhlCQ9ujTRybxBlri88ykBvrUJxF+0RO5y2Udq5PSie/CIMl\r\nFTn/+Wr9Z+9n0C36C9rTgZv+u0R65EbWACK5wGN6drIaSDz0uxa/EMBnsPko\r\nFwahyntQnjCey+bii/BwfE9kCCPWTkqO/AT0co8ovmKLUpHcCMK1QTu6/OFW\r\ngBKO/cZbz8KdJWVsr1tiElk8XpE2HuWDOy3dNLWtxB2rP+Gi23Rx31BrCzXm\r\nsjA0pE3uq3Gw7IqNO9Btu/aheFZhyjIoT4po5xSlnOFdPSgZVbmwoYq4fjU6\r\nQSTQAHSzPkwMFnBvzdAMO1RpC9X7esMkjUo0PtY9eCkgzKMCqrsjQpaNp4eS\r\nry4hh/Wd2Bym5lIpDQib+Un4jyAt6RJhmaFS5XNHqU+aH6ugxt200sUlnNoq\r\nmGF3DIbcF6ob5Gu/IYhw2uPJ3TxA25J9jH1BIG9b0xowPgkEddzbjfblNGFE\r\nk0g72QwrnCJzKLjSEtcKgRVo8FKoYHWv1An0c46ZBWZAxOkkocFvsXo5W8cY\r\nzjaf8QTNe0gMsfVlYDa/mQmoTEjHsD3EUtk=\r\n=aAEn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.28_1649952756681_0.37914185575258963"},"_hasShrinkwrap":false},"1.1.29":{"name":"@genese/complexity","version":"1.1.29","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"0.6.0","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"9a188be85bacacf6ad660497224e91b9c38f9794","_id":"@genese/complexity@1.1.29","_nodeVersion":"16.13.1","_npmVersion":"8.3.0","dist":{"integrity":"sha512-glFHB/+xw2HW9KgRJwytddytJWmdHeywOzJRLIve6UlQD//5rk0TY4h+EOnecuLeptTBOQX/goASdNPuERKIpw==","shasum":"3e7be372332630f428661662b8f1710047b39e09","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.29.tgz","fileCount":1148,"unpackedSize":3007427,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAcc6iA9TRdT88jKXKrNt1GsrHG8t1+im6Hg1DgKzKbiAiEAqt/A9DTiQ14yTrprAn2QtjgKWqiCRM6MMp7LMFUX1lg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikza1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTxA/9EVhVLzZ1VFfw02K+izDn3e4iP+iS8cBfiDPaXV8Hhl0HWeBQ\r\nb4iIC3UF6PbNO0FZjNmvrq6pvgFMn1gb53TNGdn3DgMvXb94iPpju+XyxBbz\r\n2dpJF5Hi5yxInJtDyAyD9b7WwXcTZjpvex+fYFknleOShJediDLTGcuUxxSP\r\n2XyLikJ9S3YTzT38ii5rUtcmnyDyqD3MeleFqIAbQjRTEX3xRieguZzrws5x\r\ncQhrSwNlyHSYWCpnNmfgcJUCMw7ckGq0PTvKGbiCisuYrEl3iHC6GLLrX6Hp\r\nsa1skLeICvWsLU2RiPSJmwws28uXd+l05jCaMbnF5GOSdqdylX+tGlRwYiop\r\n8Axyi5+c+/7tl9oqVsXHYLQDRQxQSbI6D5xdlSuIWhCcWUSUX+Q6jO4GtgNj\r\n90IlZeYVVSX7muGhjXHlA0unk7uJ94hIKr5D44e1pnvk/AClHWPin8OSOWzs\r\n/YybeMkweFX7l9H28h2KnjaugmMwR9GD+UnUMvqq8SKQ0t7gK7X3HCeDxfmC\r\nj+/OswKasvo5voOLrmXJLOBboofErBavYdjEKkYgHCYfMyUBCj4dzA7ZLTlW\r\nSCTRU7kfcLH5LOZFgJ2NSCfDMLtyTIu4oCCbcOsRdUbHXBSP9l8kx1T3A3Qr\r\n8P/WMwzucdJM01VBB/EVchMmX4QfIt7j5aY=\r\n=57pg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.29_1653814965383_0.39018450370092683"},"_hasShrinkwrap":false},"1.1.30":{"name":"@genese/complexity","version":"1.1.30","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"^2.0.2","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"e7484e5fbbda1db11b1e14aac467fb212447ba87","_id":"@genese/complexity@1.1.30","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-JrUjThXQNipEcz0JR92v+1SzQzEeCALlk/EoAj4AUGRAwQglEcnbidieBOTZP11a7qS0Ag7NXCJws2u5M0qGuQ==","shasum":"02a2276b258508000367c21ff548c2ed6e38eaf4","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.1.30.tgz","fileCount":1131,"unpackedSize":2981268,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQGA8EIn5zw9qBOBeDwVPrLJ9sBlklAAxLOf/urHFM3AiEAhmbSGX5wna/h0aGyQQ6N/liM5o5HhBdPoOwZ3S5c5VY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiz/irACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqlAw//SKA7Ow0zRI9C25bSj7QwjPhH61W8JUG1jjenCFVU12Rzb07r\r\nHeN/EYh6YjcFzHeu0FtUWiaX4O53r7lS3wO7qcBsm6bcSYGJYHBLtxhowSzb\r\nhwUe9ZGISRxvVMovi0jhCYnL/VbF3bO/etg3jAxu/FdFlhKqDdYCcsAjO9Pv\r\nS+mCyfPv/f0x4jWtBYWdevLP6FAkFO+27TRtsukvY4kIAJdBeVt7/h3Gz198\r\nSulYQcf4ePBTtkQkW5s97MoYF+qibZxXnwh1Tn6NfMs6pbgPI8E1xIOYZ3vM\r\nyM6jtoiuW/zY43oz4Ywn7ayAQ1ARab2WUn/nZ6rRJ5sE/BD7svleUZK+RH+u\r\nNNjb5mWPPuAzeDQ04Z9bJDBfyLgmrTnIaOFejjIbS0B6m7rpXTwZgI6SwWFu\r\nmaW937+qEd5m/o8JmRZD/KOHcgVeW/mt2+F5TfGCF/Lchl6rF0Yu2tt3lo9U\r\nJ774O1CoSYqt8qrZrGvAj/vwGxRiQf7Wjp96glrieSklByZnOHSBuWSiPRiE\r\nBWXj/N57hRGwQYSgo9MaQzICKEI/3RwWg1fTTPCq0ONyQz1Uq8ixxo0m2y3P\r\ndTYs/E5A6zSJdujbpNHLpJzI4/RIed0932cHqheSyG+mKcYXgmmCqIJe3fbK\r\n6hzqpV/9/J7UmblKvHrCmO5Hp5lf676Qvf8=\r\n=20ST\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.1.30_1657796779640_0.5592510990085551"},"_hasShrinkwrap":false},"1.2.0":{"name":"@genese/complexity","version":"1.2.0","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && rm -rf dist/src/json-ast-to-reports/templates && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"^2.0.2","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"28061c8a4cf83705137f720e2ddcf4f4003918a1","_id":"@genese/complexity@1.2.0","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-VMgZHHiWW8K9DZ8LwzGrQIc/gHwbN2usuBaG2sU8JBhwmquRBu9hhbhB0p8R2bnINWlpi784w+LfUnQR4cGEpw==","shasum":"737922f389b58dfe871304a9fad143ec655691ad","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.2.0.tgz","fileCount":1114,"unpackedSize":2927150,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCZgI42GRmo3r2GUAo3ZD6frIeCrhl5WxkucOdDVkZAwIhAKAnaO4zuOlfz6IvPlCM6c4hOz2uWD4bwdNzUdUYcIjy"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi09vOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmotBA/9ERWD55HHTd7YiOyxkKzL7/zJbPgeWgm+qS84XUHPLkt8ESLR\r\noV++qdI/U9k2N5G4CpB9OanLImggwIlRzVgeMMZMtbdnrc4sQxtMgXGZJn66\r\nsNOP3paD40yyLJpnM3XvPYkDILoOw4jQdOl7v4QQZI4USvBxnVb5is92t22u\r\nQ6O8lXJvjEmAcC+TexIvO5AZshCrbO9lM/m1Ln1kabZltdrHCjHYLjN/0v3G\r\nuM3HPQ0faPhGjUUc9lqYOPGFD20qPnd61KW7BS0jLUkAmNkbuIAzL2GgsATo\r\n3K5+c2YM6FwdCMM1UC1W7GfdRlOc1nuyrdU0fMYngVO8dRVL5OoO94S3sMVP\r\nanupeyr2ZhF8UOLVBJ6MXwQFbJHz9ns2DrUxP9GflbldsnxOV1hpk0Kf0pXS\r\npdlaqwl1okWX9mN552uMrBC50yoLqY5iTq2QGWEx4wxZ9jqao8s21ewD5AbY\r\nJ0LfeVEl9HAEz/vXrKfL7N0N8aum7G/7lia8Oz2FApAkvedyVG3agZbsrBIn\r\n8DuH0hzl94Uvi40zQ1GUG6rCzlhzJSLUKktqbeLD8osychYOW/zN+4grRio3\r\nddgpJrNpAm4gy+UJ1FTnIlyjOYabkT5B/gorCuciCC1BfWIXBvOIy4RfnkoE\r\n/65lcmC2E0RJ/ks593DK6s5wGBNR5/L/FII=\r\n=7rAP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.2.0_1658051533808_0.7529759866632868"},"_hasShrinkwrap":false},"1.2.1":{"name":"@genese/complexity","version":"1.2.1","description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","scripts":{"build":"tsc && rm -rf dist/src/json-ast-to-reports/templates && cp -r src/json-ast-to-reports/templates dist/src/json-ast-to-reports/templates && cp -r src/core/chartjs dist/src/core/chartjs","start":"npm run build && node dist/src/index.js","publish_package":"npm run build && npm publish","republish_package":"npm run build && npm unpublish -f && npm publish"},"bin":{"complexity":"dist/src/index.js"},"repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"license":"MIT","bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"homepage":"https://github.com/geneseframework/complexity#readme","dependencies":{"@types/node":"^14.14.8","chalk":"^4.1.0","csv-writer":"^1.6.0","eol":"^0.9.1","fs-extra":"^9.0.1","handlebars":"^4.7.6","java-parser":"^2.0.2","ora":"^5.1.0","terminal-link":"^2.1.1","ts-morph":"^8.2.0","ts-node":"^9.1.1"},"gitHead":"fa0f6b00e91789fd9061d70173f29e44f736b529","_id":"@genese/complexity@1.2.1","_nodeVersion":"16.3.0","_npmVersion":"8.1.4","dist":{"integrity":"sha512-0/cM4JkAqUZ3JdhaZQK7CLD6Q/AkkHAMfs4u7ih7KaCDq2MdoJDxO+TdmIyJgyryrQ6/IIahrt+HTAJJCXYuFw==","shasum":"0be4a0c14a34cdfecfff425456183ec80ac62334","tarball":"https://registry.npmjs.org/@genese/complexity/-/complexity-1.2.1.tgz","fileCount":1114,"unpackedSize":2929097,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDpgVq3wUhuylYNudl/oGGDRUqzVEdT33+D7QZBgl4k9AiEAgIRphm0aDA4Z/JBKDYEIt4AxOlaG+JeScOwlvkwrfcs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1Ao/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOyQ//RfokSm6z3r9kEg5wEYzEueKg+/SHiDW+pWFGfm8Q1C8uzhkL\r\n4K1fT0+BR00sAclR4GSn5EVca9JxYLgPe4smTmClYp1OTfQYHxqS16CkwYCo\r\nbElGIKH731Rspp+2hCaj3ld1OOWGO21+lSg0/kQK6wp4uaYZIB0bdvVZzXMq\r\n3I01wcBzzc7yt4KLLTtVMUXxIRXSrOS3a4B94Dn9F+SFEvEHuhxeYsKnuO1Y\r\nfb4Z7XCWVdiYn8rgnQtPfU11VsOrV0z8qWWdDfZWVqoN+QrATmy4tRPIIe3Y\r\nHm/W4S35Zrg90Nb1dCEX695SlVnAdDLCO5TmjV+4mLdIciiSY8xcGnj1ygnx\r\nGdhX9iR4y65PMoOZ18XxqgCK/Ip5v+3WeQtqEvLVszFSfLoJvsAiKm9urdnZ\r\nDsv21AI/F5mttQd1a0kiKUuHf6i1TW2k98V7A5SeA8VRZZEeyM0Saj8vtl1v\r\nCbbJo9XLa4DVsn+5x6AJ9big5EezhzviQZf/3R8wvdRXujuObQTRLpSWZsd8\r\n/VFXtblZfNidBTeZ2nAn4rqumJWnhnL69tl26ae0iZGH8nig2EC3km0USIId\r\nZGVyzbbWEFRoBRznKOrQpvTAEJi7QCeJBSFFaxj6bl3Kz646zIL9asPiom8z\r\nUA12+LJWco0MWOQNqkJq96VVuvR+O+UhX1U=\r\n=Q3kC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"gillesfabre","email":"gillesfabre34@gmail.com"},"directories":{},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/complexity_1.2.1_1658063422701_0.7630071455750518"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-07T08:34:10.879Z","1.0.0":"2021-04-07T08:34:11.363Z","modified":"2022-07-17T13:10:23.137Z","1.0.1":"2021-04-07T09:22:33.417Z","1.0.2":"2021-04-07T09:58:43.755Z","1.1.0":"2021-04-28T14:51:33.038Z","1.1.1":"2021-04-28T15:13:26.866Z","1.1.2":"2021-04-28T15:47:29.146Z","1.1.3":"2021-04-28T15:49:48.072Z","1.1.4":"2021-04-28T16:09:59.016Z","1.1.5":"2021-04-28T17:21:37.233Z","1.1.6":"2021-04-28T17:25:35.193Z","1.1.7":"2021-04-28T17:35:33.853Z","1.1.8":"2021-05-03T09:10:30.938Z","1.1.9":"2021-05-03T09:32:47.893Z","1.1.10":"2021-05-04T07:49:22.436Z","1.1.11":"2021-06-18T15:49:15.090Z","1.1.12":"2021-06-18T15:59:14.051Z","1.1.13":"2021-08-09T14:40:56.322Z","1.1.14":"2021-08-09T14:50:13.087Z","1.1.15":"2021-08-26T09:35:46.822Z","1.1.16":"2021-09-01T13:26:04.924Z","1.1.17":"2021-09-01T16:23:47.298Z","1.1.18":"2021-09-01T16:26:44.244Z","1.1.19":"2022-02-06T09:55:33.308Z","1.1.20":"2022-02-07T07:09:08.705Z","1.1.21":"2022-02-12T09:16:52.592Z","1.1.22":"2022-02-14T15:56:02.102Z","1.1.23":"2022-02-15T08:06:03.963Z","1.1.24":"2022-02-15T08:09:28.971Z","1.1.25":"2022-02-15T08:16:45.854Z","1.1.26":"2022-02-18T16:23:15.907Z","1.1.27":"2022-02-18T17:15:51.491Z","1.1.28":"2022-04-14T16:12:36.874Z","1.1.29":"2022-05-29T09:02:45.623Z","1.1.30":"2022-07-14T11:06:19.902Z","1.2.0":"2022-07-17T09:52:14.075Z","1.2.1":"2022-07-17T13:10:23.033Z"},"maintainers":[{"name":"gillesfabre","email":"gillesfabre34@gmail.com"}],"description":"Analyzes the difficulty of comprehension of source code (its cognitive complexity). Part of the @genese tool suite.","homepage":"https://github.com/geneseframework/complexity#readme","repository":{"type":"git","url":"git+https://github.com/geneseframework/complexity.git"},"author":{"name":"Gilles Fabre","url":"http://gillesfabre.com/"},"bugs":{"url":"https://github.com/geneseframework/complexity/issues"},"license":"MIT","readme":"# Genese Cpx (@genese/complexity) [![npm version](https://badge.fury.io/js/%40genese%2Fcomplexity.svg)](https://badge.fury.io/js/%40genese%2Fcomplexity)\n\nGenese Cpx analyzes the source code of your project and estimates the cognitive complexity of each code snippet. It creates an HTML report displaying an overview of the complexities index for each folder, file or method of your project. Moreover, you will find for each method the elements increasing the cognitive complexity, which will help you to refactor your code.\n\nThis module is a part of the [@genese]('https://github.com/geneseframework/genese') tool suite which is an opensource project whose aim is to provide tools helping developers to code faster and with a better code quality.\n\n\n![Dashboard Genese Cpx](./readme-dashboard.png?raw=true \"Dashboard\")\n![Methods analysis Genese Cpx](./readme-loc.png?raw=true \"Methods analysis\")\n\n## Table of Contents\n* [Why use Genese Cpx ?](#1-why-use-genese-cpx-)\n* [Installation](#2-installation)\n* [Usage](#3-usage)\n* [Interpretation of results](#4-interpretation-of-results)\n    * [Folder reports](#41-folder-reports)\n    * [File reports](#42-file-reports)\n* [Configuration](#5-configuration)\n    * [Thresholds](#51-thresholds)\n    * [Folders to ignore](#52-folders-to-ignore)\n    * [Path of folder to analyze](#53-path-of-folder-to-analyse)\n    * [Reports path](#54-reports-path)\n    * [Frameworks](#55-frameworks)\n    * [Rules customization](#56-rules-customization)\n* [Cyclomatic complexity](#6-cyclomatic-complexity)\n    * [Definition](#61-definition)\n* [Cognitive complexity](#7-cognitive-complexity)\n    * [Definition](#71-definition)\n    * [Measure unit](#72-measure-unit)\n    * [Complexity Index](#73-complexity-index)\n    * [Complexity Factors](#74-complexity-factors)\n    * [Factor categories](#741-factor-categories)\n    * [Table of weights](#742-table-of-weights-v100)\n* [How to contribute ?](#8-how-to-contribute-)\n    * [Contribution ways](#81-contribution-ways)\n    * [Add new languages](#82-add-new-languages)\n* [Specifications](#9-specifications)\n    * [Kinds of nodes](#91-kinds-of-nodes)\n    * [JsonAst specifications](#92-jsonast-specifications)\n    * [Structure of the AST nodes](#93-structure-of-the-ast-nodes)\n    * [Exhaustive list of the kinds of node](#94-exhaustive-list-of-the-kinds-of-node)\n\n\n## 1. Why use Genese Cpx ?\n\nGenese Cpx is an audit tool which allows you to identify quickly the bad practices concerning cognitive or cyclomatic complexity.\nWith this module, you will be able to find quickly the methods with too high complexity index and which should be examined carefully.\nGenese Cpx is available for JS, TS, JSX, TSX and JAVA.\n\n[Top](#table-of-contents)\n## 2. Installation\n\nGenese Cpx is used through the [@genese/cli](https://www.npmjs.com/package/@genese/cli). You need to install it first:\n\n```sh\nnpm i -g @genese/cli\n```\n\nThen, you can install the Genese Cpx module:\n\n```sh\nnpm i -g @genese/complexity\n```\n\n[Top](#table-of-contents)\n## 3. Usage\n\nGenese Cpx is launched with the Genese CLI module. The main command-line is\n\n```sh\ngenese cpx [pathDir]\n```\n\nThe \"pathDir\" param is the folder of the project to audit. It can be relative or absolute.\n\n***Example:***\n```sh\ngenese cpx ./src\n```\n\nBy default, Genese Cpx is launched for TS files.\nYou can modify this with the `-l` option\n\n***Example:***\n```sh\ngenese cpx -l java ./src\n```\nAvailable options are: `ts`, `js`, `tsx`, `jsx` and `java`.\n\nThis command line will generate a report in the folder `genese/complexity/reports` (it can be customized) named `folder-report.html`. You just need to open it in a browser to display the results.\n\n[Top](#table-of-contents)\n## 4. Interpretation of results\n\n### 4.1 Folder reports\n\nThe dashboard's header presents the global statistics of the analyzed project. These scores will give you an overview of its global complexity.\n\nThe main part of the page consist in two pairs of charts : the left one is about cognitive complexity and the other one about cyclomatic complexity. The \"doughnut chart\" is an overview of the distribution of the project's methods statuses (correct, warning and error). The statistics near this chart are reminding warning and error thresholds (which can be customized), and display the number of methods by status.\n\nThe bar charts display the number of methods by complexity score.\n\nBelow these charts, the first array displays the detailed information of each subfolder. The second presents information of the files inside the current folder (but not inside its subfolders), and the third array displays the complexity indexes of each method of each file located in the current folder or its subfolders, sorted by decreasing cognitive complexity index.\n\n### 4.2 File reports\n\nAs folder reports, the file reports display complexity statistics of files methods. In addition, you will find detailed information of each of these methods, with explanations of the calculation mode of their cognitive complexity.\n\n[Top](#table-of-contents)\n## 5. Configuration\n\nSome parameters are configurable by creating a file `geneseconfig.json` located on the folder where you enter the command-line. This file must have this format :\n\n ```json\n{\n    \"complexity\": {\n        \"option\": \"value\"\n    }\n}\n```\n\n### 5.1 Thresholds\n\nYou can customize the \"medium\" and \"high\" thresholds of each kind of complexity like this :\n\n ```json\n{\n    \"complexity\": {\n        \"cognitiveCpx\": {\n            \"errorThreshold\": 15,\n            \"warningThreshold\": 10\n        },\n        \"cyclomaticCpx\": {\n            \"errorThreshold\": 15,\n            \"warningThreshold\": 10\n        }\n    }\n}\n```\n\nThe values by default are :\n\n ```json\n{\n    \"complexity\": {\n        \"cognitiveCpx\": {\n            \"errorThreshold\": 10,\n            \"warningThreshold\": 5\n        },\n        \"cyclomaticCpx\": {\n            \"errorThreshold\": 10,\n            \"warningThreshold\": 5\n        },\n    }\n}\n```\n\n### 5.2 Folders to ignore\n\nYou can ignore some folders like this :\n\n```json\n{\n    \"complexity\": {\n        \"ignore\": [\n            \".git\",\n            \".idea\",\n            \"api\",\n            \"/node_modules\",\n            \"./genese\"\n        ]\n    }\n}\n```\n\nThe folders ignored by default are `/node_modules` and `./genese`.\n\n### 5.3 Path of folder to analyse\n\nBy default, the folder to analyse is the folder where you enter the command-line. You can change it like this :\n\n```json\n{\n    \"complexity\": {\n        \"pathFolderToAnalyze\": \"./src/\"\n    }\n}\n```\n\nThe last character must be a slash.\n\n### 5.4 Reports path\n\nBy default, the genese complexity report will be located here : `current_folder/genese/`. You can change it like this:\n\n```json\n{\n    \"complexity\": {\n        \"pathReports\": \"./my-report-folder\"\n    }\n}\n```\n\n### 5.5 Frameworks\n\nSome frameworks may need specific calculations to be able to display a report relevant with their specificities.\n\n* **React**\n\nThe React functional components are arrow functions containing some logic and Jsx code. Without specific configuration, Genese Cpx displays the complexity index of the logic of the functional component (excluding JSX). This is relevant if you respect the React best practices by extracting most of the logic from the component into custom hooks or extracted functions. A good article about React best practices is available [here](https://javascript.plainenglish.io/road-of-react-best-practices-software-design-and-architecture-83245c090cbf).\n\nHowever, you may prefer to keep the logic and the subcomponents inside the parent component. In this case, Genese Cpx will display the complexity scores of all the parent component, including its own logic, hooks and subcomponents. These scores are probably the most relevant because they represent the real complexity of the component, but you may prefer to display separately the results for each nested function of the component (hooks, subcomponents, ...).\n\nIn this case, you may use the option `-f react`, which will extract the nested functions and display their complexity scores separately.\n\n**Example**\n\n```\ngenese cpx ./src -f react\n```\n\n### 5.6 Rules customization\n\n#### 5.6.1 Typing\n\nUsually, you should type everything in your code. However, in some specific cases, the types may decrease its readability. It may be true for React hooks, for example.\n\nBy default, the lack of typing increases the score given by Genese Cpx. If you prefer to ignore the typing complexity, you must add a specific rule in the `geneseconfig.json` file.\n\n```json\n{\n    \"complexity\": {\n        \"rules\": {\n            \"typing\": false\n        }\n    }\n}\n```\n\n#### 5.6.2 JSX\n\nIt is a good practice to analyze the complexity of the entire file, including the JSX elements. However, you may ignore the complexity of these elements by changing the default value of the rule `ignoreJsx`.\n\n```json\n{\n    \"complexity\": {\n        \"rules\": {\n            \"ignoreJsx\": true\n        }\n    }\n}\n```\n\n[Top](#table-of-contents)\n## 6. Cyclomatic complexity\n\n### 6.1 Definition\n\nThe cyclomatic complexity is defined as below :\n\n>#### Cyclomatic Complexity\n> The cyclomatic complexity is a quantitative measure of the number of linearly independent paths through a program’s source code\n\nThis notion is a good way to calculate the number of unit tests that we must do to validate the behavior of a method for every possible case. The cyclomatic complexity is highly correlated to the time required to cover all the source code by unit tests.\n\nThe force of the cyclomatic complexity is its simplicity: approximately, all breakflows (for, if, switch, ...) increase the complexity score of 1. However, this score is weakly correlated to the maintainability of the source code, which is much more important: even if your code coverage is excellent, a source code which is too complex to understand will be unmaintainable.\n\nIf you are a developer, you will read your code differently than a machine would do it. So if you want to know if your code is really maintainable, you must look at its cognitive complexity.\n\n[Top](#table-of-contents)\n## 7. Cognitive complexity\n\nA project is maintainable if each method of each file is easy to understand. That is the goal of the cognitive complexity, which should probably be seen as the most important indicator of the code maintainability.\n\n### 7.1 Definition\n\nThe cognitive complexity could be defined as below :\n\n>#### Cognitive Complexity\n> The Cognitive Complexity of a code snippet is the time required by a human being to understand it.\n\nThe definition above needs to be clarified: who is this human being ? What means exactly \"understand\" ? And how could we measure this time in the real world ? All of these questions are important, and will be detailed in a future article.\n\nFor now, let's use this approximative definition, and let's try to clarify another question : what is difficult to understand and what is not ? Is an `if - else` more complex than a `for`, a `while` or a `switch` ? How many times a recursive method is more complex than a \"normal\" one ? Optional chaining or nullish coalescing clearly decrease the complexity of a method, but in which proportion ? There are no indisputable responses.\n\nIn the future, when we will agree with some experimental protocol, we will be able to do some measures in the real world. At this moment, we will be able to check if, for example, a `if` nested in another `if` is more difficult to understand than a `if` alone, and if yes, how many times more complex it is.\n\nToday, we only can weight each code structure according to our experience and our intuition. To be able to do that, we need to define the measure unit of the cognitive complexity.\n\n### 7.2 Measure unit\n\nThe cognitive complexity is *the time required by a human being to understand some code snippet*. That means that when we want to measure the cognitive complexity, we need to measure a duration. That's why the measure unit of the cognitive complexity is the same than the measure unit of time, *i.e.* the second.\n\n>#### Measure unit\n> The measure unit of the Cognitive Complexity is the second.\n\n>#### The Cognitive Complexity function\n> We call *c* the function *c: **S** -> **R**<sup>+</sup>* where **S** is the set of all code snippets and **R**<sup>+</sup> the set of real positive numbers which assign to a given code snippet its cognitive complexity.\n>\n> In other terms, if *s* is a given code snippet, *c(s) = cognitiveComplexity(s)*.\n\n### 7.3 Complexity Index\n\nEven if the natural measure unit of the cognitive complexity is the second, it is clear that it is not very convenient to write it directly in this unit. For example, the cognitive complexity for a simple `if` is probably around some milliseconds, and it will not be handy to write something like `c(\"if()\") = 0.001023 s`. That's why we will define a score called the *complexity index* which represents the ratio between the cognitive complexity (in seconds) of a given code snippet, and the cognitive complexity (in seconds) of a code snippet *\"reference\"* that we will now define.\n\nThis complexity index must be relative to a piece of code \"reference\", something which can be defined accurately :\n\n>#### Complexity Index\n> The Complexity Index is the ratio between the cognitive complexity (in seconds) of a given code snippet, and the cognitive complexity (in seconds) of the code snippet *\"reference\"* equal to the keyword `if`.\n\nIn other words, the cognitive complexity of the keyword `if` is equal to the time required for a human being to understand that there is a conditional expression.\n\n>#### The Complexity Index function\n> We call *i* the function *i: **S** -> **R**<sup>+</sup>* where **S** is the set of all code snippets and **R**<sup>+</sup> the set of real positive numbers which assign to a given code snippet its complexity index.\n> In other terms, if *s* is a given code snippet, *i(s) = complexityIndex(s)*.\n\n>#### Consequence\n> The Complexity Index of the keyword `if` is equal to 1.\n> This affirmation is equivalent to the equation : `i('if') = 1`.\n\nLet us try to be more explicit: Let's call *s* the code snippet below :\n```ts\nif (a) {\n    console.log(a);\n}\n```\n\nWe can affirm that *i(s) > 1* because *s* strictly includes the keyword `if`. The difficulty to understand a `console.log` is low, but not null.\n\nThat's the same with the code snippet *t* below :\n```ts\nif (a) {\n\n}\n```\n\nWe can affirm that *i(t) > 1* because *t* strictly includes the keyword `if`. The identifier `a` is not \"nothing\" and me bust be understood too.\n\n>#### Conjecture\n> The cognitive complexity of the code snippet \"reference\" `if` is equal to the lower limit of the cognitive complexities corresponding to the code snippets of type `if(...)`.\n\n* Example\n\nAssume that a `if` nested in another `if` is 1.5 times more long to understand than a `if` alone. In this case, we can write *i(\"nested keyword `if`\") = 1.5*.\n\nGenerally speaking, if a code snippet *s* is two times longer to understand than a code snippet *t*, we can write *i(s) = 2i(t)* (and also *c(s) = 2c(s)*).\n\nThe following chapters provide an overview of the different ways to evaluate the Complexity Index.\n\n### 7.4 Complexity Factors\n\nThe Complexity Index depends on multiple factors of different weights which can be grouped in several categories. These factors, weights and categories are for now only based on intuition and feedbacks: *they SHOULD NOT be interpreted as immutable and definitive values*. These elements are only the best way as things stand to measure the Complexity Index. With the help of the community and the increase of knowledge, the weights will be revalued, other factors will appear and other categories will be discovered.\n\nEvery time someone will demonstrate that a factor should be weighted differently or that another category should be taken into account, this page will be updated with a new version number.\n\n#### 7.4.1 Factor categories\n\n- ***Atomic***\n\nEach unbreakable piece of code have a Complexity Index which is weak, but not null. The name of a variable or a method, a keyword like `this`, `import`, `class`, `if`, ... are trivial, but they need to be red, taken in account and memorized by the human brain. A long method, even without particular problems, is more difficult to understand than a short function having the same \"density of complexity\".\n\nEach of these trivial nodes have a non-null Complexity Index due to their existence. Genese Cpx uses an \"atomic weight\" equal to 0.1.\n\n- Example\n\n```ts\nif (a) {  // ------------------------- + 0.2 (0.1 for the \"if\" and 0.1 for the \"a\")\n    console.log(a);  // -------------- + 0.3 (0.1 for the \"console\", 0.1 for the \"log\" and 0.1 for the \"a\")\n}\n```\n=> Total of atomic complexity : 0.5\n\n- ***Structural***\n\nSome code structures present an intrinsic difficulty which implies that the human brain needs a significant time to take in account their logic implications. The cognitive complexity relative to the intrinsic difficulty of these code structures is called the ***structural complexity***.\n\nThe structural category contains different factors: the loops (`for`, `while`, ...), the logic doors (`&&`, `||`), the conditions (`if`, `else`, `switch`, ...), the recursions, the callbacks, the regular expressions, etc. All the methods (language methods like `slice`, `map`, `push`, ... and methods of the project and its imported libraries) are increasing structural complexity too. You will find the exhaustive list of the structural factors [in the table below](#632-table-of-weights-v100).\n\n- ***Nesting***\n\nIndependently of their intrinsic complexity, some elements add specific difficulty due to the nesting of other elements inside them.\n\n- Example\n\n  The complexity of the code below is only due to the addition of the complexities of the two `if` : there is no nesting complexity.\n\n```ts\nif (a) { // ------------------------------ + x\n    // ----\n}\nif (b) { // ------------------------------ + y\n    // ----\n}\n```\n=> Complexity Index : `x + y`\n\nIf the first condition has a Complexity Index equals to `x` and the second equals to `y`, the total Complexity Index will be equal to `x + y`.\n\nNow, if the same conditions are nested, an additional difficulty is due to the obligation in the second `if` to remember that the condition `a` must be true to be here. This additional complexity is called `nesting complexity` and increases the Complexity Index of the source code, which will be strictly higher than `x + y`.\n\n- Example\n ```ts\nif (a) { // ---------------------------------- + x\n    if (b) { // ------------------------------ + y + n (the nesting complexity due to the imbrication in the first \"if\")\n        // ----\n    }\n}\n```\n=> Complexity Index : `x + y + n`\n\nGenese Cpx adds nesting complexity for the loops (`for`, `while`, ...), the conditions (`if`, `else`, `switch`, ...), the ternaries (`a = b ? 0 : 1`), the arrays (`a[b[c]]`) and the functions (`a = b.f(e => e + 1))`).\n\n- ***Aggregation***\n\nAggregation complexity is almost the same that nesting complexity, but is relative to consecutive elements and not to nested elements. The idea is simple : an array is simple to understand, but an array of arrays is clearly less trivial. This additional complexity is due to the aggregation of the different elements.\n\n- Example\n```ts\nconst arr = a[b][c];  // ------------------------ + 1 aggregation cpx\n```\n\nWe find this problematic with array of arrays, but also in other cases, like regular expressions : they have at first a structural complexity (a regex is difficult for itself), but they have too a specific difficulty in relation with their length, that is, the aggregation of their characters. increases considerably their difficulty. Of course, other factors affect the complexity of the regular expressions, but we use for now their length as a first approximation.\n\n- Example\n```ts\nconst regex = /[^.[\\]]+/;  // ------------------------ + 0.8 aggregation cpx (0.1 by character)\n```\n\nAnother use case of the aggregation complexity is logic doors, which are simple to understand when they are similar and complicated when they are different and without brackets.\n\n- Example\n```ts\nif (a && b && c) { // ---------------------- Easy to understand (same logic doors)\n    // ---\n}\nif (a && (b || c)) { // -------------------- Easy to understand (thanks to brackets)\n    // ---\n}\nif (a && b || c) { // ----------------- Difficult to understand (due to the lack of brackets) => + 1 aggregation cpx\n    // ---\n}\n```\nThe third example is more difficult to understand than the first and the second one because of the aggregation of different logic doors without brackets.\n\n- ***Recursion***\n\nRecursivity is easy for machines, but not for humans. A developer will always need to take care about the implications of a recursion and its side effects.\n\nThe category \"recursion\" includes `recursive methods` and `callbacks`.\n\n- Examples\n\n```ts\nfunction f(a) {\n    return f(a + 1);\n}\n```\n\n```ts\nfunction f(a) {\n    return a(1);\n}\n```\n\n- ***Use***\n\nThe other categories were relative to the complexity relative with the structure of the code (loops, conditions, recursivity, etc.). There is another kind of cognitive complexity which is induced by the difficulty to understand the role and the use of a Node. It's typically important when the Node is a method : we need to understand what is its role and how to use it correctly.\n\n- Examples\n\n```ts\nfunction f(a: string) {\n    return a.toString();        // The method 'toString()' is easy to understand, no 'use complexity' to add\n}\n```\n\n```ts\nfunction f(a) {\n    return a.map(...).reduce(...);      // The method 'reduce()' is difficult to understand and to use : we must add some 'use complexity'\n}\n```\n\n\n#### 7.4.2 Table of weights (v1.0.0)\n\nThis table of weights should never be seen as the exact way to calculate the Complexity Index. It's only the best approximation on the basis of the current knowledge.\n\n| Category | Factor | Weight | Example | Comments |\n| ---      | ---    | :---:  | ---     | --- |\n| Aggregation | Arrays | 1 | ```a[b][c] // ---- Aggregation cpx = 1```| |\n| Aggregation | Regex | 0.1 by char | ```/[^.[\\]]+/ // ---- Aggregation cpx = 0.8``` | |\n| Aggregation | Different logic doors | 1 | ```if (a && b \\|\\| c) // - Aggregation cpx = 1``` | The brackets cancel the aggregation complexity |\n| Atomic | Atomic | 0.1 | ```console.log(3) // ---- Atomic cpx = 0.3 (3 atoms)``` | Applies to each identifier, parameter, keyword, literal, etc. |\n| Nesting | Arrays | 1.5 | ```a[b[c]]``` | |\n| Nesting | Conditions | 0.5 | ```if (a) { ```<br/>  ``` if (b) { // ---- Nesting cpx = 0.5```<br/>    ``` if (c) { // ---- Nesting cpx = 1 ```<br/>    ``` } ```<br/>  ``` }```<br/>```}``` | Applies to `if`, `else`, `else if`, `switch` |\n| Nesting | Loops | 0.5 | ```for (const a of arr) { ```<br/>  ```for (const b of otherArr) { // ---- Nesting cpx = 0.5 ```<br/>  ```    } ```<br/>``` }``` | Applies to `for`, `forEach`, `do ... while` |\n| Nesting | Ternaries | 1 | ```a = b ? c ? : 0 : 1;``` | |\n| Recursion | Recursive methods | 3 | ```f(a) { ```<br/>  ``` return f(a + 1); ```<br/>``` }``` | |\n| Recursion | Callbacks | 2 | ```f(a) { ```<br/>  ```return a(2); ```<br/>``` }``` | |\n| Structural | Conditions | 1 | ```if (a) { ... }``` |  Applies to `if`, `else`, `else if`, `switch` |\n| Structural | Functions | 1 | ```a.filter(elt => { ... })``` |  |\n| Structural | Jumps | 1 | ```for (const a of arr) { ```<br/>  ```if (b) { ```<br/>    ```continue;```<br/>  ```}```<br/>```}``` |  Applies to elements breaking loops |\n| Structural | Logic door | 1 | `&&` or <code>&#124;&#124;</code> | |\n| Structural | Bit door | 1 | `<<` or `>>` or `>>>` or `&` or <code>&#124;</code> or `^` | |\n| Structural | Loops | 1 | ```for (const a of arr) { ... }``` |  Applies to `for`, `forEach`, `do ... while` |\n| Structural | Methods | 1 | ```a.slice(1)``` | Applies to each method, defined in the current language or in the project itself |\n| Structural | Regex | 1 | ```/[^.[\\]]+/ // ---- Structural cpx = 1``` | |\n| Structural | Ternary | 1 | ```const a = b ? 0 : 1;``` | |\n\n\n\n[Top](#table-of-contents)\n## 8. How to contribute ?\n\n### 8.1 Contribution ways\n\nGenese Cpx is an open-source project whose aim is to provide a better knowledge on software complexity. You can contribute to this project in many ways.\n\nThe measure of the cognitive complexity will always be a simple approximation. The time required for a human to understand a source code depends on thousands of factors which must be studied severely. Our goal is only to give the better approximation of the measure of the Cognitive Complexity, that is, the Complexity Index.\n\nYou can help us by confirming, refuting or specifying the actual mode of computation of the Cognitive Complexity. This page is the receptacle of the different propositions coming from the community. Of course, we accept results coming from research labs or statistic studies, but simple feedbacks coming from developers themselves are welcome ! Each element or idea which is able to improve our algorithm is welcome. If you think that something is wrong in our approach, your opinion is welcome. If you think about a new complexity factor or a new way to estimate some kind of complexity, your idea is welcome too !\n\nEach time the algorithm will be updated, the version indicated at the top of the Table of Weights will be updated too.\n\n### 8.2 Add new languages\n\nGenese Cpx is available for JS, TS, JSX, TSX and JAVA, but you can \"plug\" any language into this module.\nWhat does it mean ? To be simple, Genese Cpx parses a Json file with a specific format : [JsonAst](#92-jsonast-specifications).\nThis format corresponds to a simplified AST (Abstract Syntax Tree) of the source code.\nSo if you want to be able to \"plug\" your language into Genese Cpx, you \"just\" need to convert the specific AST structure of your language into JsonAst format.\nIn other words, your AST nodes must \"match\" with the nodes of the JsonAst format.\nIf your plugin is correct, we will add it to Genese Cpx module.\n\nThere are hundreds kinds of TypeScript AST nodes, so it can be fastidious to \"bind\" all of them to the AST nodes of your language. Fortunately, JsonAst only needs few kinds of nodes; you will find them [below](#91-kinds-of-nodes).\n\n\n[Top](#table-of-contents)\n## 9. Specifications\n\n### 9.1 Kinds of nodes\n\nYou will find below the list of all the different kinds of AST nodes. If you want to understand exactly what they mean, you may refer to the TypeScript documentation : for example, the node's kind `IfStatement` refers to the TypeScript AST node `ts.SyntaxKind.IfStatement`. The exhaustive list of TypeScript SyntaxKinds are accessible [here](https://github.com/microsoft/TypeScript/blob/master/lib/typescript.d.ts) (from line 77 to 447).\n\n| Node Kind | Example | Comments |\n| ------------ | ------- | -------- |\n| AmpersandAmpersandToken | `&&` | The AND logic door. |\n| ArrayType | `a: string[];` | The declaration of a type which is an array type |\n| ArrowFunction | `() => { ... }`  | An arrowed function or method |\n| BarBarToken | `\\|\\|` | The OR logic door. |\n| BinaryExpression | `a > 0`<br/> `a === b`  | Comparison between two elements. |\n| Block | `{ .... }`  | Abstract node containing some children nodes, like `IfStatement`. This node doesn't increase complexity (empty category). |\n| CallExpression |  `a.filter(e => e + 1)` | Abstract node containing a call to a function. In this example, the CallExpression contains a first child which is a PropertyExpression (`a.filter`) and a second one which is an ArrowFunction (`e => e + 1`). |\n| CatchClause | `try { ... }` <br/>`catch(error) { ... }` | This node is considered as a conditional node and increases the nesting complexity in the same way. |\n| ClassDeclaration | `class MyClass { ... }` | Abstract node designating a declaration of a class. This node is the root node of a class. It doesn't increase complexity (empty category). |\n| ConditionalExpression | `a = b ? 0 : 1;` | This node is a conditional node and increases the nesting complexity. In this example, the ConditionalExpression node have 5 children : Identifier `b`, QuestionToken `?`, NumericLiteral `0`, ColonToken `:` and NumericLiteral `1`. |\n| DoStatement | `do { ... }` | Do instruction. Increases the nesting complexity. |\n| ElementAccessExpression | `a[b]` | Considered as an array by`Genese Cpx. In this example, the ElementAccessExpression is a node with two children : an Identifier `a` and another Identifier `b`. |\n| EndOfFileToken | `... }` | The last element of the source code. |\n| ExpressionStatement | `a = b ? 0 : 1;`<br/> `a.filter(e => e + 1)` | Abstract node containing an expression, like a BinaryExpression or a CallExpression. This node doesn't increase complexity (empty category). |\n| FirstAssignment | `let a = b === 1` | Abstract node corresponding to the `EqualsToken` in a binary expression. It doesn't increase complexity (empty category). |\n| FirstStatement | `let a = 3;` | Abstract node declaring a variable (alias of VariableStatement). This node doesn't increase complexity (empty category). |\n| ForStatement | `for (let i = 0; i < 2; i++) { ... }`  | For loop. Increases the nesting complexity. <br/>Caution : `a.forEach(...)` is considered by TypeScript as a PropertyAccessExpression and not as a ForStatement, but`Genese Cpx consider it as a classic `for` loop. |\n| ForInStatement | `for (let a of arr) { ... }` | For loop with `in` statement. Increases the nesting complexity. |\n| ForOfStatement | `for (let a of arr) { ... }` | For loop with `of` statement. Increases the nesting complexity. |\n| FunctionDeclaration | `function f() { ... }` | Abstract node designating a declaration of a function. This node doesn't increase complexity (empty category). |\n| FunctionExpression | `f(function(b) { ... }` | Abstract node designating a function expression. Increases the nesting complexity. |\n| Identifier | `f(a) { ... }` | The node corresponding to the identifier of a variable, a function, etc. In this example, there are two identifiers : `f` and `a`. An identifier is considered by`Genese Cpx as an atomic node which increases the atomic complexity. |\n| IfStatement | `if(a) { ... }` | The IF condition. Increases the nesting complexity. |\n| Keyword | `return` | Alias for any language keyword (`let`, `const`, `var`, `export`, `return`, ...). Increases atomic complexity. |\n| Literal | `2` <br/> `'a'` | Alias for any kind of literal assignment (`StringLiteral`, `NumericLiteral`, ...). Increases atomic complexity. |\n| MethodDeclaration | `myMethod() { ... }` | Abstract node designating a declaration of a method. This node is the root node of the method. It doesn't increase complexity (empty category). |\n| Parameter | `myMethod(a) { ... }` | Abstract node designating a parameter. <br/>Caution : the Parameter `a` is different than the Identifier `a`, which is a child of the AST node \"Parameter\". This node doesn't increase complexity (empty category). |\n| PropertyAccessExpression | `a.b = 3;` | Abstract node designating the access to a given property. The first child (`a`) is the expression and the second (`b`) is the property. This node doesn't increase complexity (empty category). |\n| RegularExpressionLiteral | `/a-z/g` | Regular expression. |\n| SwitchStatement | `switch(a) { ... }` | Switch statement. Increases the nesting complexity. |\n| ThisKeyword | `this.a = 3` | This keyword (returning context). Increases the atomic complexity |\n| Union Type | `a: string \\| number` | Union of two types. Increases the atomic complexity |\n| VariableDeclarationList | `for (const elt of arr) { ... }` | Abstract node declaring a list of variables. In this example, the VariableDeclarationList is `const elt`. This node doesn't increase complexity (empty category). |\n| WhileStatement | `while (a < 10) { ... }` | While loop. Increases the nesting complexity. |\n\n\nGenese Cpx will consider all the other kinds of nodes as atomic nodes. This means that every node in the JsonAst which is not in the previous list file will add a cognitive complexity corresponding to atomic nodes, as `StringLiteral`, `TrueKeyword`, etc. If you don't want to increase complexity for a given kind of node, you will be able to set a property \"empty\" to true in the corresponding field of the JsonAst file.\n\n\n### 9.2 JsonAst specifications\n\n\n#### ***JsonAst***\n\nThis is the root document (the .json file itself)\n\n- Fixed fields\n\n| Field name | Type | Required | Description |\n| ---------- | ---- | -------- | ----------- |\n| astFolder  | AstFolder | yes | The object containing all the information about the folder to analyze |\n\n\n\n#### ***astFolder***\n\nCorresponds to a folder to analyze.\n\n- Fixed fields\n\n| Field name | Type | Required | Description |\n| ---------- | ---- | -------- | ----------- |\n| astFiles  | AstFile[] | no | The array of AstFile corresponding to the files inside the folder (but not inside its subfolders) |\n| children | AstFolder[] | no | The array of AstFolder corresponding to the subfolders of this AstFolder |\n| path | String | yes | The absolute path of the folder |\n\n\n#### ***astFile***\n\nCorresponds to a file to analyze.\n\n- Fixed fields\n\n| Field name | Type | Required | Description |\n| ---------- | ---- | -------- | ----------- |\n| astNode  | AstNode | yes | The AstNode corresponding to the sourceFile itself (in Typescript, it is `ts.SourceFile`) |\n| name | String | yes | The name of the file |\n| text | String | yes | The source code of the file, including break lines |\n\n\n#### ***astNode***\n\nCorresponds to an AST node of the source code of a file.\n\n- Fixed fields\n\n| Field name | Type | Required | Description |\n| ---------- | ---- | -------- | ----------- |\n| children | AstNode[] | no | The array of AstNode corresponding to the children of the AST node |\n| empty | Boolean | no | If true, the corresponding AstNode will not add any complexity |\n| end  | Integer | yes | The position of the last character of the AST node in the source code of the file |\n| kind | SyntaxKind | yes | The kind of the AST node |\n| name | String | yes/no | The name of the AST node. This field MUST be present in the following cases: `ClassDeclaration`, `MethodDeclaration`, `FunctionDeclaration`, `Parameter`, `Identifier` |\n| pos  | Integer | yes | The position of the first character of the AST node in the source code of the file |\n\n\n### 9.3 Structure of the AST nodes\n\nYou must respect some conventions to be able to create JsonAst files correctly interpreted by Genese Cpx.\n\n-  ***IfStatement***\n\n   Supposing to be in this case :\n\n```ts\nif (a) {\n    // ---\n} else if (b) {\n    // ---\n} else {\n    // ---\n}\n```\n\nYour JsonAst MUST be structured like this :\n\n```json\n{\n    \"kind\": \"IfStatement\",\n    \"children\": [\n        {\n            \"kind\": \"Identifier\",\n            \"name\": \"a\"\n        },\n        {\n            \"kind\": \"Block\"\n        },\n        {\n            \"kind\": \"IfStatement\",\n            \"children\": [\n                {\n                    \"kind\": \"Identifier\",\n                    \"name\": \"b\"\n                },\n                {\n                    \"kind\": \"Block\"\n                },\n                {\n                    \"kind\": \"Block\"\n                }\n            ]\n        }\n    ]\n}\n```\n\nThe AstNode \"IfStatement\" always have a first son which is what is inside the `if` brackets and a second son which is what is inside the `if` condition (the curly brackets). This AstNode MAY has a third son which is the AstNode corresponding to the `ElseStatement`, like in the example above.\n\n### 9.4 Exhaustive list of the kinds of node\n\nThis list corresponds to the [ts.SyntaxKind enum](https://github.com/microsoft/TypeScript/blob/master/lib/typescript.d.ts) (from line 77 to 447)\n```\n    AbstractKeyword\n    AmpersandAmpersandToken\n    AmpersandEqualsToken\n    AmpersandToken\n    AnyKeyword\n    ArrayBindingPattern\n    ArrayLiteralExpression\n    ArrayType\n    ArrowFunction\n    AsExpression\n    AsKeyword\n    AssertsKeyword\n    AsteriskAsteriskEqualsToken\n    AsteriskAsteriskToken\n    AsteriskEqualsToken\n    AsteriskToken\n    AsyncKeyword\n    AtToken\n    AwaitExpression\n    AwaitKeyword\n    BacktickToken\n    BarBarToken\n    BarEqualsToken\n    BarToken\n    BigIntKeyword\n    BigIntLiteral\n    BinaryExpression\n    BindingElement\n    Block\n    BooleanKeyword\n    BreakKeyword\n    BreakStatement\n    Bundle\n    CallExpression\n    CallSignature\n    CaretEqualsToken\n    CaretToken\n    CaseBlock\n    CaseClause\n    CaseKeyword\n    CatchClause\n    CatchKeyword\n    ClassDeclaration\n    ClassExpression\n    ClassKeyword\n    CloseBraceToken\n    CloseBracketToken\n    CloseParenToken\n    ColonToken\n    CommaListExpression\n    CommaToken\n    ComputedPropertyName\n    ConditionalExpression\n    ConditionalType\n    ConflictMarkerTrivia\n    ConstKeyword\n    Constructor\n    ConstructorKeyword\n    ConstructorType\n    ConstructSignature\n    ContinueKeyword\n    ContinueStatement\n    Count\n    DebuggerKeyword\n    DebuggerStatement\n    DeclareKeyword\n    Decorator\n    DefaultClause\n    DefaultKeyword\n    DeleteExpression\n    DeleteKeyword\n    DoKeyword\n    DoStatement\n    DotDotDotToken\n    DotToken\n    ElementAccessExpression\n    ElseKeyword\n    EmptyStatement\n    EndOfDeclarationMarker\n    EndOfFileToken\n    EnumDeclaration\n    EnumKeyword\n    EnumMember\n    EqualsEqualsEqualsToken\n    EqualsEqualsToken\n    EqualsGreaterThanToken\n    EqualsToken\n    ExclamationEqualsEqualsToken\n    ExclamationEqualsToken\n    ExclamationToken\n    ExportAssignment\n    ExportDeclaration\n    ExportKeyword\n    ExportSpecifier\n    ExpressionStatement\n    ExpressionWithTypeArguments\n    ExtendsKeyword\n    ExternalModuleReference\n    FalseKeyword\n    FinallyKeyword\n    FirstAssignment\n    FirstBinaryOperator\n    FirstCompoundAssignment\n    FirstFutureReservedWord\n    FirstJSDocNode\n    FirstJSDocTagNode\n    FirstKeyword\n    FirstLiteralToken\n    FirstNode\n    FirstPunctuation\n    FirstReservedWord\n    FirstStatement\n    FirstTemplateToken\n    FirstToken\n    FirstTriviaToken\n    FirstTypeNode\n    ForInStatement\n    ForKeyword\n    ForOfStatement\n    ForStatement\n    FromKeyword\n    FunctionDeclaration\n    FunctionExpression\n    FunctionKeyword\n    FunctionType\n    GetAccessor\n    GetKeyword\n    GlobalKeyword\n    GreaterThanEqualsToken\n    GreaterThanGreaterThanEqualsToken\n    GreaterThanGreaterThanGreaterThanEqualsToken\n    GreaterThanGreaterThanGreaterThanToken\n    GreaterThanGreaterThanToken\n    GreaterThanToken\n    HeritageClause\n    Identifier\n    IfKeyword\n    IfStatement\n    ImplementsKeyword\n    ImportClause\n    ImportDeclaration\n    ImportEqualsDeclaration\n    ImportKeyword\n    ImportSpecifier\n    ImportType\n    IndexedAccessType\n    IndexSignature\n    InferKeyword\n    InferType\n    InKeyword\n    InputFiles\n    InstanceOfKeyword\n    InterfaceDeclaration\n    InterfaceKeyword\n    IntersectionType\n    IsKeyword\n    JSDocAllType\n    JSDocAugmentsTag\n    JSDocAuthorTag\n    JSDocCallbackTag\n    JSDocClassTag\n    JSDocComment\n    JSDocEnumTag\n    JSDocFunctionType\n    JSDocImplementsTag\n    JSDocNamepathType\n    JSDocNonNullableType\n    JSDocNullableType\n    JSDocOptionalType\n    JSDocParameterTag\n    JSDocPrivateTag\n    JSDocPropertyTag\n    JSDocProtectedTag\n    JSDocPublicTag\n    JSDocReadonlyTag\n    JSDocReturnTag\n    JSDocSignature\n    JSDocTag\n    JSDocTemplateTag\n    JSDocThisTag\n    JSDocTypedefTag\n    JSDocTypeExpression\n    JSDocTypeLiteral\n    JSDocTypeTag\n    JSDocUnknownType\n    JSDocVariadicType\n    JsxAttribute\n    JsxAttributes\n    JsxClosingElement\n    JsxClosingFragment\n    JsxElement\n    JsxExpression\n    JsxFragment\n    JsxOpeningElement\n    JsxOpeningFragment\n    JsxSelfClosingElement\n    JsxSpreadAttribute\n    JsxText\n    JsxTextAllWhiteSpaces\n    KeyOfKeyword\n    LabeledStatement\n    LastAssignment\n    LastBinaryOperator\n    LastCompoundAssignment\n    LastFutureReservedWord\n    LastJSDocNode\n    LastJSDocTagNode\n    LastKeyword\n    LastLiteralToken\n    LastPunctuation\n    LastReservedWord\n    LastStatement\n    LastTemplateToken\n    LastToken\n    LastTriviaToken\n    LastTypeNode\n    LessThanEqualsToken\n    LessThanLessThanEqualsToken\n    LessThanLessThanToken\n    LessThanSlashToken\n    LessThanToken\n    LetKeyword\n    LiteralType\n    MappedType\n    MergeDeclarationMarker\n    MetaProperty\n    MethodDeclaration\n    MethodSignature\n    MinusEqualsToken\n    MinusMinusToken\n    MinusToken\n    MissingDeclaration\n    ModuleBlock\n    ModuleDeclaration\n    ModuleKeyword\n    MultiLineCommentTrivia\n    NamedExports\n    NamedImports\n    NamespaceExport\n    NamespaceExportDeclaration\n    NamespaceImport\n    NamespaceKeyword\n    NeverKeyword\n    NewExpression\n    NewKeyword\n    NewLineTrivia\n    NonNullExpression\n    NoSubstitutionTemplateLiteral\n    NotEmittedStatement\n    NullKeyword\n    NumberKeyword\n    NumericLiteral\n    ObjectBindingPattern\n    ObjectKeyword\n    ObjectLiteralExpression\n    OfKeyword\n    OmittedExpression\n    OpenBraceToken\n    OpenBracketToken\n    OpenParenToken\n    OptionalType\n    PackageKeyword\n    Parameter\n    ParenthesizedExpression\n    ParenthesizedType\n    PartiallyEmittedExpression\n    PercentEqualsToken\n    PercentToken\n    PlusEqualsToken\n    PlusPlusToken\n    PlusToken\n    PostfixUnaryExpression\n    PrefixUnaryExpression\n    PrivateIdentifier\n    PrivateKeyword\n    PropertyAccessExpression\n    PropertyAssignment\n    PropertyDeclaration\n    PropertySignature\n    ProtectedKeyword\n    PublicKeyword\n    QualifiedName\n    QuestionDotToken\n    QuestionQuestionToken\n    QuestionToken\n    ReadonlyKeyword\n    RegularExpressionLiteral\n    RequireKeyword\n    RestType\n    ReturnKeyword\n    ReturnStatement\n    SemicolonClassElement\n    SemicolonToken\n    SetAccessor\n    SetKeyword\n    ShebangTrivia\n    ShorthandPropertyAssignment\n    SingleLineCommentTrivia\n    SlashEqualsToken\n    SlashToken\n    SourceFile\n    SpreadAssignment\n    SpreadElement\n    StaticKeyword\n    StringKeyword\n    StringLiteral\n    SuperKeyword\n    SwitchKeyword\n    SwitchStatement\n    SymbolKeyword\n    SyntaxList\n    SyntheticExpression\n    SyntheticReferenceExpression\n    TaggedTemplateExpression\n    TemplateExpression\n    TemplateHead\n    TemplateMiddle\n    TemplateSpan\n    TemplateTail\n    ThisKeyword\n    ThisType\n    ThrowKeyword\n    ThrowStatement\n    TildeToken\n    TrueKeyword\n    TryKeyword\n    TryStatement\n    TupleType\n    TypeAliasDeclaration\n    TypeAssertionExpression\n    TypeKeyword\n    TypeLiteral\n    TypeOfExpression\n    TypeOfKeyword\n    TypeOperator\n    TypeParameter\n    TypePredicate\n    TypeQuery\n    TypeReference\n    UndefinedKeyword\n    UnionType\n    UniqueKeyword\n    Unknown\n    UnknownKeyword\n    UnparsedInternalText\n    UnparsedPrepend\n    UnparsedPrologue\n    UnparsedSource\n    UnparsedSyntheticReference\n    UnparsedText\n    VariableDeclaration\n    VariableDeclarationList\n    VariableStatement\n    VarKeyword\n    VoidExpression\n    VoidKeyword\n    WhileKeyword\n    WhileStatement\n    WhitespaceTrivia\n    WithKeyword\n    WithStatement\n    YieldExpression\n    YieldKeyword\n\n```\n","readmeFilename":"README.md"}