@dxworks/insider 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/.github/workflows/build.yml +19 -0
  2. package/.github/workflows/release-docs.yml +15 -0
  3. package/.github/workflows/release-voyager.yml +57 -0
  4. package/.github/workflows/release.yml +102 -0
  5. package/Dockerfile +8 -0
  6. package/README.md +89 -0
  7. package/TODO.txt +7 -0
  8. package/bin/insider.bat +1 -0
  9. package/bin/insider.sh +1 -0
  10. package/build.gradle +55 -0
  11. package/config/.ignore +4 -0
  12. package/config/comments.json +71 -0
  13. package/config/fingerprints/_anomalies-full.json +116 -0
  14. package/config/fingerprints/_extLibs.json +2555 -0
  15. package/config/fingerprints/code_smells.json +94 -0
  16. package/config/fingerprints/generated_code.json +17 -0
  17. package/config/fingerprints/libraries.json +4667 -0
  18. package/config/ignoredImports.txt +0 -0
  19. package/config/insider-conf.properties +3 -0
  20. package/config/rules/cloud_services/ad_networks.json +50 -0
  21. package/config/rules/cloud_services/bigdata.json +21 -0
  22. package/config/rules/cloud_services/cloud_hosting.json +398 -0
  23. package/config/rules/cloud_services/data_storage.json +291 -0
  24. package/config/rules/cloud_services/ecommerce.json +45 -0
  25. package/config/rules/cloud_services/socialmedia.json +82 -0
  26. package/config/rules/cloud_services/web_analytics.json +108 -0
  27. package/config/rules/components/active_content.json +157 -0
  28. package/config/rules/components/load_dll.json +66 -0
  29. package/config/rules/cryptography/algorithm_implementation.json +62 -0
  30. package/config/rules/cryptography/certificate.json +199 -0
  31. package/config/rules/cryptography/ciphers.json +174 -0
  32. package/config/rules/cryptography/crypto_currency.json +32 -0
  33. package/config/rules/cryptography/encoding.json +20 -0
  34. package/config/rules/cryptography/extended.json +220 -0
  35. package/config/rules/cryptography/external_libraries.json +141 -0
  36. package/config/rules/cryptography/hash_algorithm.json +98 -0
  37. package/config/rules/cryptography/key_derivation.json +65 -0
  38. package/config/rules/cryptography/protocol.json +156 -0
  39. package/config/rules/cryptography/random.json +97 -0
  40. package/config/rules/cryptography/weakssl.json +206 -0
  41. package/config/rules/data_handling/compressed_files.json +18 -0
  42. package/config/rules/data_handling/database.json +361 -0
  43. package/config/rules/data_handling/deserialization.json +296 -0
  44. package/config/rules/data_handling/json_parsing.json +49 -0
  45. package/config/rules/data_handling/media_parsing.json +33 -0
  46. package/config/rules/data_handling/pastebin.json +18 -0
  47. package/config/rules/data_handling/xml_parsing.json +168 -0
  48. package/config/rules/data_types/financial.json +106 -0
  49. package/config/rules/data_types/media.json +48 -0
  50. package/config/rules/data_types/secrets.json +91 -0
  51. package/config/rules/data_types/sensitive.json +176 -0
  52. package/config/rules/device_permissions/IOSPermissions.json +240 -0
  53. package/config/rules/device_permissions/UWP.json +221 -0
  54. package/config/rules/device_permissions/android_intents.json +599 -0
  55. package/config/rules/frameworks/PHP.json +172 -0
  56. package/config/rules/frameworks/build.json +189 -0
  57. package/config/rules/frameworks/c.json +45 -0
  58. package/config/rules/frameworks/csharp-nonMS.json +19 -0
  59. package/config/rules/frameworks/java.json +291 -0
  60. package/config/rules/frameworks/javascript.json +318 -0
  61. package/config/rules/frameworks/logging.json +103 -0
  62. package/config/rules/frameworks/microsoft.json +257 -0
  63. package/config/rules/frameworks/python.json +274 -0
  64. package/config/rules/frameworks/ruby.json +53 -0
  65. package/config/rules/frameworks/rust.json +77 -0
  66. package/config/rules/general/OSS_license.json +146 -0
  67. package/config/rules/general/code_metrics.json +132 -0
  68. package/config/rules/general/dependencies.json +199 -0
  69. package/config/rules/general/hygiene.json +47 -0
  70. package/config/rules/general/platforms.json +283 -0
  71. package/config/rules/general/solutioninfo.json +378 -0
  72. package/config/rules/infrastructure/hashicorp_packers_tmpl.json +18 -0
  73. package/config/rules/infrastructure/hashicorp_terraform_tmpl.json +19 -0
  74. package/config/rules/infrastructure/microsoft_arm_tmpl.json +198 -0
  75. package/config/rules/networkcomms/outbound_network.json +429 -0
  76. package/config/rules/os/acl.json +250 -0
  77. package/config/rules/os/dynamic_execution.json +359 -0
  78. package/config/rules/os/file_io.json +468 -0
  79. package/config/rules/os/process.json +179 -0
  80. package/config/rules/os/setenv.json +270 -0
  81. package/config/rules/os/system_registry.json +237 -0
  82. package/config/rules/os/user_accts.json +34 -0
  83. package/config/rules/security_feature/authentication.json +387 -0
  84. package/config/rules/security_feature/authorization.json +148 -0
  85. package/config/rules/test_frameworks/cpp_testing.json +194 -0
  86. package/config/rules/test_frameworks/go_testing.json +18 -0
  87. package/config/rules/test_frameworks/java_testing.json +720 -0
  88. package/config/rules/test_frameworks/javascript_testing.json +724 -0
  89. package/config/rules/test_frameworks/objectiveC_testing.json +146 -0
  90. package/config/rules/test_frameworks/php_testing.json +156 -0
  91. package/config/rules/test_frameworks/powershell_testing.json +17 -0
  92. package/config/rules/test_frameworks/python_testing.json +108 -0
  93. package/config/rules/test_frameworks/ruby_testing.json +114 -0
  94. package/config/rules/tools/pipeline.json +195 -0
  95. package/config/rules/webapp/comms.json +89 -0
  96. package/config/rules/webapp/headers.json +178 -0
  97. package/config/rules/webapp/media.json +56 -0
  98. package/config/rules/webapp/sessions.json +228 -0
  99. package/config/rules/webapp/storage.json +215 -0
  100. package/dist/config/.ignore +4 -0
  101. package/dist/config/comments.json +71 -0
  102. package/dist/config/fingerprints/_anomalies-full.json +116 -0
  103. package/dist/config/fingerprints/_extLibs.json +2555 -0
  104. package/dist/config/fingerprints/code_smells.json +94 -0
  105. package/dist/config/fingerprints/generated_code.json +17 -0
  106. package/dist/config/fingerprints/libraries.json +4667 -0
  107. package/dist/config/ignoredImports.txt +0 -0
  108. package/dist/config/insider-conf.properties +3 -0
  109. package/dist/config/rules/cloud_services/ad_networks.json +50 -0
  110. package/dist/config/rules/cloud_services/bigdata.json +21 -0
  111. package/dist/config/rules/cloud_services/cloud_hosting.json +398 -0
  112. package/dist/config/rules/cloud_services/data_storage.json +291 -0
  113. package/dist/config/rules/cloud_services/ecommerce.json +45 -0
  114. package/dist/config/rules/cloud_services/socialmedia.json +82 -0
  115. package/dist/config/rules/cloud_services/web_analytics.json +108 -0
  116. package/dist/config/rules/components/active_content.json +157 -0
  117. package/dist/config/rules/components/load_dll.json +66 -0
  118. package/dist/config/rules/cryptography/algorithm_implementation.json +62 -0
  119. package/dist/config/rules/cryptography/certificate.json +199 -0
  120. package/dist/config/rules/cryptography/ciphers.json +174 -0
  121. package/dist/config/rules/cryptography/crypto_currency.json +32 -0
  122. package/dist/config/rules/cryptography/encoding.json +20 -0
  123. package/dist/config/rules/cryptography/extended.json +220 -0
  124. package/dist/config/rules/cryptography/external_libraries.json +141 -0
  125. package/dist/config/rules/cryptography/hash_algorithm.json +98 -0
  126. package/dist/config/rules/cryptography/key_derivation.json +65 -0
  127. package/dist/config/rules/cryptography/protocol.json +156 -0
  128. package/dist/config/rules/cryptography/random.json +97 -0
  129. package/dist/config/rules/cryptography/weakssl.json +206 -0
  130. package/dist/config/rules/data_handling/compressed_files.json +18 -0
  131. package/dist/config/rules/data_handling/database.json +361 -0
  132. package/dist/config/rules/data_handling/deserialization.json +296 -0
  133. package/dist/config/rules/data_handling/json_parsing.json +49 -0
  134. package/dist/config/rules/data_handling/media_parsing.json +33 -0
  135. package/dist/config/rules/data_handling/pastebin.json +18 -0
  136. package/dist/config/rules/data_handling/xml_parsing.json +168 -0
  137. package/dist/config/rules/data_types/financial.json +106 -0
  138. package/dist/config/rules/data_types/media.json +48 -0
  139. package/dist/config/rules/data_types/secrets.json +91 -0
  140. package/dist/config/rules/data_types/sensitive.json +176 -0
  141. package/dist/config/rules/device_permissions/IOSPermissions.json +240 -0
  142. package/dist/config/rules/device_permissions/UWP.json +221 -0
  143. package/dist/config/rules/device_permissions/android_intents.json +599 -0
  144. package/dist/config/rules/frameworks/PHP.json +172 -0
  145. package/dist/config/rules/frameworks/build.json +189 -0
  146. package/dist/config/rules/frameworks/c.json +45 -0
  147. package/dist/config/rules/frameworks/csharp-nonMS.json +19 -0
  148. package/dist/config/rules/frameworks/java.json +291 -0
  149. package/dist/config/rules/frameworks/javascript.json +318 -0
  150. package/dist/config/rules/frameworks/logging.json +103 -0
  151. package/dist/config/rules/frameworks/microsoft.json +257 -0
  152. package/dist/config/rules/frameworks/python.json +274 -0
  153. package/dist/config/rules/frameworks/ruby.json +53 -0
  154. package/dist/config/rules/frameworks/rust.json +77 -0
  155. package/dist/config/rules/general/OSS_license.json +146 -0
  156. package/dist/config/rules/general/code_metrics.json +132 -0
  157. package/dist/config/rules/general/dependencies.json +199 -0
  158. package/dist/config/rules/general/hygiene.json +47 -0
  159. package/dist/config/rules/general/platforms.json +283 -0
  160. package/dist/config/rules/general/solutioninfo.json +378 -0
  161. package/dist/config/rules/infrastructure/hashicorp_packers_tmpl.json +18 -0
  162. package/dist/config/rules/infrastructure/hashicorp_terraform_tmpl.json +19 -0
  163. package/dist/config/rules/infrastructure/microsoft_arm_tmpl.json +198 -0
  164. package/dist/config/rules/networkcomms/outbound_network.json +429 -0
  165. package/dist/config/rules/os/acl.json +250 -0
  166. package/dist/config/rules/os/dynamic_execution.json +359 -0
  167. package/dist/config/rules/os/file_io.json +468 -0
  168. package/dist/config/rules/os/process.json +179 -0
  169. package/dist/config/rules/os/setenv.json +270 -0
  170. package/dist/config/rules/os/system_registry.json +237 -0
  171. package/dist/config/rules/os/user_accts.json +34 -0
  172. package/dist/config/rules/security_feature/authentication.json +387 -0
  173. package/dist/config/rules/security_feature/authorization.json +148 -0
  174. package/dist/config/rules/test_frameworks/cpp_testing.json +194 -0
  175. package/dist/config/rules/test_frameworks/go_testing.json +18 -0
  176. package/dist/config/rules/test_frameworks/java_testing.json +720 -0
  177. package/dist/config/rules/test_frameworks/javascript_testing.json +724 -0
  178. package/dist/config/rules/test_frameworks/objectiveC_testing.json +146 -0
  179. package/dist/config/rules/test_frameworks/php_testing.json +156 -0
  180. package/dist/config/rules/test_frameworks/powershell_testing.json +17 -0
  181. package/dist/config/rules/test_frameworks/python_testing.json +108 -0
  182. package/dist/config/rules/test_frameworks/ruby_testing.json +114 -0
  183. package/dist/config/rules/tools/pipeline.json +195 -0
  184. package/dist/config/rules/webapp/comms.json +89 -0
  185. package/dist/config/rules/webapp/headers.json +178 -0
  186. package/dist/config/rules/webapp/media.json +56 -0
  187. package/dist/config/rules/webapp/sessions.json +228 -0
  188. package/dist/config/rules/webapp/storage.json +215 -0
  189. package/dist/index.js +13 -0
  190. package/dist/insider.jar +0 -0
  191. package/dist/insider.js +7 -0
  192. package/dist/lib.js +21 -0
  193. package/docs/config/config.md +3 -0
  194. package/docs/config/ignore.md +3 -0
  195. package/docs/config/languages.md +3 -0
  196. package/docs/index.md +58 -0
  197. package/dxworks-site.json +13 -0
  198. package/gradle.properties +0 -0
  199. package/gradlew +240 -0
  200. package/gradlew.bat +91 -0
  201. package/insider/README.md +89 -0
  202. package/insider/config/.ignore +4 -0
  203. package/insider/config/comments.json +71 -0
  204. package/insider/config/fingerprints/_anomalies-full.json +116 -0
  205. package/insider/config/fingerprints/_extLibs.json +2555 -0
  206. package/insider/config/fingerprints/code_smells.json +94 -0
  207. package/insider/config/fingerprints/generated_code.json +17 -0
  208. package/insider/config/fingerprints/libraries.json +4667 -0
  209. package/insider/config/ignoredImports.txt +0 -0
  210. package/insider/config/insider-conf.properties +3 -0
  211. package/insider/config/rules/cloud_services/ad_networks.json +50 -0
  212. package/insider/config/rules/cloud_services/bigdata.json +21 -0
  213. package/insider/config/rules/cloud_services/cloud_hosting.json +398 -0
  214. package/insider/config/rules/cloud_services/data_storage.json +291 -0
  215. package/insider/config/rules/cloud_services/ecommerce.json +45 -0
  216. package/insider/config/rules/cloud_services/socialmedia.json +82 -0
  217. package/insider/config/rules/cloud_services/web_analytics.json +108 -0
  218. package/insider/config/rules/components/active_content.json +157 -0
  219. package/insider/config/rules/components/load_dll.json +66 -0
  220. package/insider/config/rules/cryptography/algorithm_implementation.json +62 -0
  221. package/insider/config/rules/cryptography/certificate.json +199 -0
  222. package/insider/config/rules/cryptography/ciphers.json +174 -0
  223. package/insider/config/rules/cryptography/crypto_currency.json +32 -0
  224. package/insider/config/rules/cryptography/encoding.json +20 -0
  225. package/insider/config/rules/cryptography/extended.json +220 -0
  226. package/insider/config/rules/cryptography/external_libraries.json +141 -0
  227. package/insider/config/rules/cryptography/hash_algorithm.json +98 -0
  228. package/insider/config/rules/cryptography/key_derivation.json +65 -0
  229. package/insider/config/rules/cryptography/protocol.json +156 -0
  230. package/insider/config/rules/cryptography/random.json +97 -0
  231. package/insider/config/rules/cryptography/weakssl.json +206 -0
  232. package/insider/config/rules/data_handling/compressed_files.json +18 -0
  233. package/insider/config/rules/data_handling/database.json +361 -0
  234. package/insider/config/rules/data_handling/deserialization.json +296 -0
  235. package/insider/config/rules/data_handling/json_parsing.json +49 -0
  236. package/insider/config/rules/data_handling/media_parsing.json +33 -0
  237. package/insider/config/rules/data_handling/pastebin.json +18 -0
  238. package/insider/config/rules/data_handling/xml_parsing.json +168 -0
  239. package/insider/config/rules/data_types/financial.json +106 -0
  240. package/insider/config/rules/data_types/media.json +48 -0
  241. package/insider/config/rules/data_types/secrets.json +91 -0
  242. package/insider/config/rules/data_types/sensitive.json +176 -0
  243. package/insider/config/rules/device_permissions/IOSPermissions.json +240 -0
  244. package/insider/config/rules/device_permissions/UWP.json +221 -0
  245. package/insider/config/rules/device_permissions/android_intents.json +599 -0
  246. package/insider/config/rules/frameworks/PHP.json +172 -0
  247. package/insider/config/rules/frameworks/build.json +189 -0
  248. package/insider/config/rules/frameworks/c.json +45 -0
  249. package/insider/config/rules/frameworks/csharp-nonMS.json +19 -0
  250. package/insider/config/rules/frameworks/java.json +291 -0
  251. package/insider/config/rules/frameworks/javascript.json +318 -0
  252. package/insider/config/rules/frameworks/logging.json +103 -0
  253. package/insider/config/rules/frameworks/microsoft.json +257 -0
  254. package/insider/config/rules/frameworks/python.json +274 -0
  255. package/insider/config/rules/frameworks/ruby.json +53 -0
  256. package/insider/config/rules/frameworks/rust.json +77 -0
  257. package/insider/config/rules/general/OSS_license.json +146 -0
  258. package/insider/config/rules/general/code_metrics.json +132 -0
  259. package/insider/config/rules/general/dependencies.json +199 -0
  260. package/insider/config/rules/general/hygiene.json +47 -0
  261. package/insider/config/rules/general/platforms.json +283 -0
  262. package/insider/config/rules/general/solutioninfo.json +378 -0
  263. package/insider/config/rules/infrastructure/hashicorp_packers_tmpl.json +18 -0
  264. package/insider/config/rules/infrastructure/hashicorp_terraform_tmpl.json +19 -0
  265. package/insider/config/rules/infrastructure/microsoft_arm_tmpl.json +198 -0
  266. package/insider/config/rules/networkcomms/outbound_network.json +429 -0
  267. package/insider/config/rules/os/acl.json +250 -0
  268. package/insider/config/rules/os/dynamic_execution.json +359 -0
  269. package/insider/config/rules/os/file_io.json +468 -0
  270. package/insider/config/rules/os/process.json +179 -0
  271. package/insider/config/rules/os/setenv.json +270 -0
  272. package/insider/config/rules/os/system_registry.json +237 -0
  273. package/insider/config/rules/os/user_accts.json +34 -0
  274. package/insider/config/rules/security_feature/authentication.json +387 -0
  275. package/insider/config/rules/security_feature/authorization.json +148 -0
  276. package/insider/config/rules/test_frameworks/cpp_testing.json +194 -0
  277. package/insider/config/rules/test_frameworks/go_testing.json +18 -0
  278. package/insider/config/rules/test_frameworks/java_testing.json +720 -0
  279. package/insider/config/rules/test_frameworks/javascript_testing.json +724 -0
  280. package/insider/config/rules/test_frameworks/objectiveC_testing.json +146 -0
  281. package/insider/config/rules/test_frameworks/php_testing.json +156 -0
  282. package/insider/config/rules/test_frameworks/powershell_testing.json +17 -0
  283. package/insider/config/rules/test_frameworks/python_testing.json +108 -0
  284. package/insider/config/rules/test_frameworks/ruby_testing.json +114 -0
  285. package/insider/config/rules/tools/pipeline.json +195 -0
  286. package/insider/config/rules/webapp/comms.json +89 -0
  287. package/insider/config/rules/webapp/headers.json +178 -0
  288. package/insider/config/rules/webapp/media.json +56 -0
  289. package/insider/config/rules/webapp/sessions.json +228 -0
  290. package/insider/config/rules/webapp/storage.json +215 -0
  291. package/insider/insider.bat +1 -0
  292. package/insider/insider.jar +0 -0
  293. package/insider/insider.sh +1 -0
  294. package/insider/languages.yml +3988 -0
  295. package/instrument.yml +37 -0
  296. package/languages.yml +3988 -0
  297. package/lib/index.js +13 -0
  298. package/lib/insider.js +7 -0
  299. package/lib/lib.js +21 -0
  300. package/lombok.config +2 -0
  301. package/mkdocs.yml +18 -0
  302. package/package.json +51 -0
  303. package/releaseNotes/v2.6.0.md +1 -0
  304. package/releaseNotes/v2.7.1.md +1 -0
  305. package/settings.gradle +2 -0
  306. package/src/main/java/org/dxworks/insider/ChronosTag.java +14 -0
  307. package/src/main/java/org/dxworks/insider/Insider.java +214 -0
  308. package/src/main/java/org/dxworks/insider/InsiderAnalysis.java +7 -0
  309. package/src/main/java/org/dxworks/insider/InsiderFile.java +125 -0
  310. package/src/main/java/org/dxworks/insider/InsiderOptions.java +78 -0
  311. package/src/main/java/org/dxworks/insider/InsiderResult.java +15 -0
  312. package/src/main/java/org/dxworks/insider/application/inspector/CodeRuleExtractor.java +14 -0
  313. package/src/main/java/org/dxworks/insider/application/inspector/CommentRuleExtractor.java +14 -0
  314. package/src/main/java/org/dxworks/insider/application/inspector/FileRuleExtractor.java +14 -0
  315. package/src/main/java/org/dxworks/insider/application/inspector/RuleExtractor.java +11 -0
  316. package/src/main/java/org/dxworks/insider/application/inspector/dtos/Comment.java +18 -0
  317. package/src/main/java/org/dxworks/insider/application/inspector/dtos/CommentPattern.java +44 -0
  318. package/src/main/java/org/dxworks/insider/application/inspector/dtos/Condition.java +15 -0
  319. package/src/main/java/org/dxworks/insider/application/inspector/dtos/InsiderPattern.java +149 -0
  320. package/src/main/java/org/dxworks/insider/application/inspector/dtos/PatternMatch.java +23 -0
  321. package/src/main/java/org/dxworks/insider/application/inspector/dtos/Rule.java +61 -0
  322. package/src/main/java/org/dxworks/insider/application/inspector/services/CommentService.java +165 -0
  323. package/src/main/java/org/dxworks/insider/application/inspector/services/RuleService.java +54 -0
  324. package/src/main/java/org/dxworks/insider/commands/AddCommand.java +125 -0
  325. package/src/main/java/org/dxworks/insider/commands/AllFilesCommand.java +4 -0
  326. package/src/main/java/org/dxworks/insider/commands/ConvertCommand.java +55 -0
  327. package/src/main/java/org/dxworks/insider/commands/DetectCommand.java +42 -0
  328. package/src/main/java/org/dxworks/insider/commands/DiagnoseCommand.java +74 -0
  329. package/src/main/java/org/dxworks/insider/commands/ExtractCommand.java +35 -0
  330. package/src/main/java/org/dxworks/insider/commands/FindCommand.java +102 -0
  331. package/src/main/java/org/dxworks/insider/commands/HelpCommand.java +56 -0
  332. package/src/main/java/org/dxworks/insider/commands/IndentationCount.java +69 -0
  333. package/src/main/java/org/dxworks/insider/commands/InsiderCommand.java +71 -0
  334. package/src/main/java/org/dxworks/insider/commands/InspectCommand.java +98 -0
  335. package/src/main/java/org/dxworks/insider/commands/MeasureCommand.java +47 -0
  336. package/src/main/java/org/dxworks/insider/commands/NoFilesCommand.java +4 -0
  337. package/src/main/java/org/dxworks/insider/commands/VersionCommand.java +34 -0
  338. package/src/main/java/org/dxworks/insider/configuration/InsiderConfiguration.java +123 -0
  339. package/src/main/java/org/dxworks/insider/constants/InsiderConstants.java +19 -0
  340. package/src/main/java/org/dxworks/insider/depext/AbstractImportsProcessor.java +57 -0
  341. package/src/main/java/org/dxworks/insider/depext/CPPImportsProcessor.java +55 -0
  342. package/src/main/java/org/dxworks/insider/depext/CSharpImportsProcessor.java +53 -0
  343. package/src/main/java/org/dxworks/insider/depext/DependencyExtractor.java +105 -0
  344. package/src/main/java/org/dxworks/insider/depext/ImportItem.java +19 -0
  345. package/src/main/java/org/dxworks/insider/depext/ImportResult.java +32 -0
  346. package/src/main/java/org/dxworks/insider/depext/JavastackImportsProcessor.java +88 -0
  347. package/src/main/java/org/dxworks/insider/depext/VBImportsProcessor.java +41 -0
  348. package/src/main/java/org/dxworks/insider/exceptions/InsiderException.java +7 -0
  349. package/src/main/java/org/dxworks/insider/library/detector/C_ImportsContainer.java +73 -0
  350. package/src/main/java/org/dxworks/insider/library/detector/ImportsContainer.java +122 -0
  351. package/src/main/java/org/dxworks/insider/library/detector/JavaImportsContainer.java +63 -0
  352. package/src/main/java/org/dxworks/insider/library/detector/LibraryDetector.java +150 -0
  353. package/src/main/java/org/dxworks/insider/library/detector/LibraryDetectorLanguage.java +6 -0
  354. package/src/main/java/org/dxworks/insider/library/detector/model/PackagingUnit.java +26 -0
  355. package/src/main/java/org/dxworks/insider/technology/finder/LinguistService.java +79 -0
  356. package/src/main/java/org/dxworks/insider/technology/finder/converters/XmlToJsonConverter.java +41 -0
  357. package/src/main/java/org/dxworks/insider/technology/finder/exceptions/FingerprintParseException.java +7 -0
  358. package/src/main/java/org/dxworks/insider/technology/finder/model/Technology.java +73 -0
  359. package/src/main/java/org/dxworks/insider/technology/finder/model/json/JsonConfigurationDTO.java +14 -0
  360. package/src/main/java/org/dxworks/insider/technology/finder/model/json/TechnologyJsonDTO.java +66 -0
  361. package/src/main/java/org/dxworks/insider/technology/finder/model/xml/old/CategoryXmlDTO.java +21 -0
  362. package/src/main/java/org/dxworks/insider/technology/finder/model/xml/old/ConfigurationDataXmlDTO.java +17 -0
  363. package/src/main/java/org/dxworks/insider/technology/finder/model/xml/old/FingerprintXmlDTO.java +17 -0
  364. package/src/main/java/org/dxworks/insider/technology/finder/model/xml/old/LanguageXmlDTO.java +20 -0
  365. package/src/main/java/org/dxworks/insider/technology/finder/model/xml/old/LanguagesXmlDTO.java +18 -0
  366. package/src/main/java/org/dxworks/insider/technology/finder/model/xml/old/TechnologyXmlDTO.java +19 -0
  367. package/src/main/java/org/dxworks/insider/technology/finder/model/xml/old/XmlConfigurationDTO.java +17 -0
  368. package/src/main/java/org/dxworks/insider/technology/finder/parsers/FingerprintsParser.java +14 -0
  369. package/src/main/java/org/dxworks/insider/technology/finder/parsers/FingerprintsXmlParser.java +57 -0
  370. package/src/main/java/org/dxworks/insider/technology/finder/parsers/JavaLibrariesCsvParser.java +71 -0
  371. package/src/main/java/org/dxworks/insider/technology/finder/parsers/JsonFingerprintParser.java +58 -0
  372. package/src/main/java/org/dxworks/insider/utils/FileUtils.java +45 -0
  373. package/src/main/java/org/dxworks/insider/utils/ImportUtils.java +21 -0
  374. package/src/main/java/org/dxworks/insider/utils/LibraryImport.java +17 -0
  375. package/src/main/java/org/dxworks/insider/utils/LibraryImportInOtherTechnology.java +30 -0
  376. package/src/main/java/org/dxworks/insider/utils/MapUtils.java +19 -0
  377. package/src/main/resources/insider-version +1 -0
  378. package/src/test/java/org/dxworks/insider/application/inspector/services/CommentServiceTest.java +40 -0
  379. package/src/test/java/org/dxworks/insider/technology/finder/parsers/FingerprintsXmlParserTest.java +15 -0
  380. package/src/test/java/org/dxworks/insider/utils/FileUtilsTest.java +31 -0
  381. package/src/test/java/org/dxworks/insider/utils/ImportUtilsTest.java +24 -0
  382. package/src/test/java/org/dxworks/insider/utils/transformers/JsonToCsvTransformerTest.java +18 -0
  383. package/src/test/resources/Test1.java +21 -0
  384. package/src/test/resources/Test2.java +21 -0
  385. package/src/test/resources/cobol/CM201M.CBL +88 -0
@@ -0,0 +1,19 @@
1
+ name: Build
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+
7
+ jobs:
8
+ build:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+
13
+ - name: Set up Java for publishing to GitHub Packages
14
+ uses: actions/setup-java@v3
15
+ with:
16
+ java-version: 11
17
+
18
+ - name: Gradle Build
19
+ run: gradle clean build
@@ -0,0 +1,15 @@
1
+ name: Release Docs
2
+ on:
3
+ push:
4
+ branches:
5
+ - docs
6
+ jobs:
7
+ deploy:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@v4
11
+ - uses: actions/setup-python@v2
12
+ with:
13
+ python-version: 3.x
14
+ - run: pip install mkdocs-material
15
+ - run: mkdocs gh-deploy --force
@@ -0,0 +1,57 @@
1
+ on:
2
+ push:
3
+ tags:
4
+ - 'v*-voyager'
5
+
6
+ name: Create Release
7
+
8
+ jobs:
9
+ release:
10
+ name: Release
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v4
15
+ - name: Tag Name
16
+ id: tag_name
17
+ run: |
18
+ echo ::set-output name=TAG_NAME::${GITHUB_REF#refs/tags/}
19
+
20
+ - name: Set Version
21
+ run: echo ${TAG_NAME} > src/main/resources/insider-version
22
+ - name: Build
23
+ run: gradle clean build
24
+ - name: Prepare Assets
25
+ run: |
26
+ mkdir insider
27
+ mkdir insider/results
28
+ cp README.md insider/README.md
29
+ cp build/libs/insider*.jar insider/insider.jar
30
+ cp bin/insider.sh insider/insider.sh
31
+ chmod +x insider/insider.sh
32
+ cp bin/insider.bat insider/insider.bat
33
+ cp instrument.yml insider/instrument.yml
34
+ cp languages.yml insider/languages.yml
35
+ cp -R config insider/config
36
+ - name: Create Archive
37
+ run: zip -r insider.zip insider
38
+ - name: Create Release
39
+ id: create_release
40
+ uses: actions/create-release@v1
41
+ env:
42
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43
+ with:
44
+ tag_name: ${{ github.ref }}
45
+ release_name: Insider ${{ github.ref }}
46
+ draft: false
47
+ prerelease: false
48
+ - name: Upload Release Asset
49
+ id: upload-release-asset
50
+ uses: actions/upload-release-asset@v1
51
+ env:
52
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
53
+ with:
54
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
55
+ asset_path: ./insider.zip
56
+ asset_name: insider-voyager.zip
57
+ asset_content_type: application/zip
@@ -0,0 +1,102 @@
1
+ on:
2
+ push:
3
+ tags:
4
+ - 'v*'
5
+ - '!**-voyager'
6
+
7
+ name: Create Release
8
+
9
+ jobs:
10
+ release:
11
+ name: Release
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: write
15
+ packages: write
16
+
17
+ steps:
18
+ - name: Checkout code
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Extract Semver
22
+ id: semver_parser
23
+ run: |
24
+ semver=${TAG#"refs/tags/v"}
25
+ semver=${semver%"-voyager"}
26
+
27
+ echo ::set-output name=semver::$semver
28
+ env:
29
+ TAG: ${{ github.ref }}
30
+
31
+ - name: Set Version
32
+ run: echo ${{ steps.semver_parser.outputs.semver }} > src/main/resources/insider-version
33
+ - name: Build
34
+ run: gradle clean build
35
+ - name: Prepare Assets
36
+ run: |
37
+ mkdir insider
38
+ mkdir insider/results
39
+ cp README.md insider/README.md
40
+ cp build/libs/insider*.jar insider/insider.jar
41
+ cp bin/insider.sh insider/insider.sh
42
+ cp bin/insider.bat insider/insider.bat
43
+ chmod +x insider/insider.sh
44
+ cp languages.yml insider/languages.yml
45
+ cp -R config insider/config
46
+
47
+ - name: Create Archive
48
+ run: zip -r insider.zip insider
49
+
50
+ - name: Setup Node
51
+ uses: actions/setup-node@v3
52
+ with:
53
+ node-version: '18.x'
54
+ cache: 'npm'
55
+ registry-url: 'https://npm.pkg.github.com'
56
+ scope: '@dxworks'
57
+
58
+ - name: Prepare Node App
59
+ run: |
60
+ npm ci
61
+ npm run build
62
+
63
+
64
+ - name: Setup Version
65
+ run: |
66
+ ls -al node_modules/.bin
67
+ node_modules/.bin/json -I -f package.json -e "this.version='$VERSION'"
68
+ env:
69
+ VERSION: ${{ steps.semver_parser.outputs.semver }}
70
+
71
+ - name: Publish NPM
72
+ run: npm publish
73
+ env:
74
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
75
+
76
+ - name: Setup Node with NPM Package Registry
77
+ uses: actions/setup-node@v3
78
+ with:
79
+ node-version: '18.x'
80
+ cache: 'npm'
81
+ registry-url: 'https://registry.npmjs.org'
82
+ scope: '@dxworks'
83
+
84
+ - name: Publish on NPM
85
+ run: npm publish --access public
86
+ env:
87
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
88
+
89
+ - name: Prepare Release Notes
90
+ run: touch ${{ github.workspace }}/releaseNotes/v${{ steps.semver_parser.outputs.semver }}.md
91
+
92
+ - name: Create Release
93
+ id: create_release
94
+ uses: softprops/action-gh-release@v1
95
+ with:
96
+ name: Insider ${{ steps.semver_parser.outputs.semver }}
97
+ body_path: ${{ github.workspace }}/releaseNotes/v${{ steps.semver_parser.outputs.semver }}.md
98
+ body: ""
99
+ prerelease: false
100
+ draft: false
101
+ fail_on_unmatched_files: true
102
+ files: insider.zip
package/Dockerfile ADDED
@@ -0,0 +1,8 @@
1
+ FROM openjdk:11
2
+ WORKDIR /app
3
+ ENV JAVA_TOOL_OPTIONS -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
4
+ COPY ./build/libs/insider-*.jar /app/insider.jar
5
+ COPY config/ /app/config/
6
+
7
+ COPY bin/insider.sh /app/insider.sh
8
+ RUN chmod +x /app/insider.sh
package/README.md ADDED
@@ -0,0 +1,89 @@
1
+ # Insider
2
+
3
+ Insider is a belt of tools built on the idea of searching regular expressions in code. Insider is able to detect code
4
+ smells, the usage of external libraries and the topics that a software project approaches by only using Regex. This
5
+ means that Insider does not use any type of parsing and is therefore language independent.
6
+
7
+ ## Installation
8
+
9
+ ### From Github
10
+
11
+ To install Insider from Github, please download from the [latest release](https://github.com/dxworks/insider/releases)
12
+ from Github, the `insider.zip` archive and unzip it to a specific location. The contents of this archive are:
13
+
14
+ * `insider-*.jar` - the executable jar file
15
+ * `insider.bat` - a batch script for executing Insider on Windows
16
+ * `insider.sh` - a shell script for executing insider on Windows
17
+ * `config` - a folder for configuration files, described more in the [Configuration Section](#Configuration)
18
+ * `results` - a folder where Insider will output the results.
19
+
20
+ ### From Docker
21
+
22
+ ...
23
+
24
+ ### From Code
25
+
26
+ Clone the repository from [here](https://github.com/dxworks/insider).
27
+
28
+ Run `gradle clean build` to obtain an executable jar.
29
+
30
+ ## Configuration
31
+
32
+ Edit the configuration file (*config/insider-conf.properties*), to **specify the root folder** of the project's sources.
33
+
34
+ ## Commands
35
+
36
+ ### Find Command
37
+
38
+ * In order to find the occurrences of the libraries in the analyzed project. Use the following command (run Insider
39
+ using the **insider.bat** or **insider.sh** script):
40
+
41
+ ```
42
+ insider.sh find config/libraries.json
43
+ ```
44
+
45
+ * Detect Simple Code Smells. Use the following command (run Insider using the **insider.bat** or **insider.sh** script):
46
+
47
+ ```
48
+ insider.sh find config/code_smells.json
49
+ ```
50
+
51
+ * You can also run the *find* command with both files at once:
52
+
53
+ ```
54
+ insider.sh find config/libraries.json config/code_smells.json
55
+ ```
56
+
57
+ The commands will generate two *.json* files (**_PROJECT_ID-libraries.json_** and **_PROJECT_ID-code_smells.json_**) in
58
+ the **results** folder.
59
+
60
+ ## Voyager Integration
61
+
62
+ Insider is also a Voyager Instrument. To configure Insider from Voyager you can add the following fields in the `mission.yml` file:
63
+
64
+ ```yaml
65
+ # A map of instrument names to commands and parameters.
66
+ # When 'runsAll' is false the mission will run only the instruments
67
+ # with the commands declared here, in this order.
68
+ instruments:
69
+ insider:
70
+ # A map of parameter name to value
71
+ # Only add the parameters you want to override (the default values are written here)
72
+ parameters:
73
+ max-heap: 4g # will configure the maximum heap space the jvm process will get. For large process may be needed to be set to 16g or higher
74
+ findConfig: 'config/fingerprints/code_smells.json config/fingerprints/libraries.json' # a space separated list of insider fingerprints
75
+ inspectConfig: 'config/rules' # a space separated list of folders or Application Inspector specific rules, like the ones here: https://github.com/microsoft/ApplicationInspector/tree/main/AppInspector/rules/default
76
+
77
+ # A map of environment variables, name to value, for voyager missions
78
+ # overwrites the variables from global config, instrument and command
79
+ # Only set the environment variables you need.
80
+ environment:
81
+ INSIDER_LANGUAGES: 'java,c++,c#' # a comma separated list of the languages to analyse (just a sample example)
82
+ INSIDER_LINGUIST_FILE: "${instrument}/languages.yml" # a file containing languages to extension mappings according to [GitHub Linguist](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml)
83
+ INSIDER_DEPEXT_MAX_NAMESPACE_LENGTH: 200 # the maximum length of a namespace for DepExt analysis
84
+ ```
85
+
86
+ ## Acknowledgements
87
+
88
+ The `inspect` command is inspired by the [Application Inspector](https://github.com/microsoft/ApplicationInspector)
89
+ project created by Microsoft. Insider even uses the same input files as Application Inspector.
package/TODO.txt ADDED
@@ -0,0 +1,7 @@
1
+ vezi sa nu existe un slash la inceputul fqn-urilor fisierelor
2
+
3
+ la techFinder sa spui pe ce fisier lucreaza (poate fa-le in paralel)
4
+
5
+ loguie ce comanda face tot timpul
6
+
7
+ loguie la final ce output gaseste si unde.
@@ -0,0 +1 @@
1
+ java -Xmx4g -jar insider.jar %*
package/bin/insider.sh ADDED
@@ -0,0 +1 @@
1
+ java -jar -Xmx4g insider.jar $@
package/build.gradle ADDED
@@ -0,0 +1,55 @@
1
+ plugins {
2
+ id 'java'
3
+ id 'io.freefair.lombok' version '6.6'
4
+ }
5
+
6
+ group 'org.dxworks'
7
+ version '2.6.0-SNAPSHOT'
8
+
9
+ sourceCompatibility = 11
10
+
11
+ repositories {
12
+ mavenCentral()
13
+ mavenLocal()
14
+ maven {
15
+ name 'ossrh'
16
+ url 'https://s01.oss.sonatype.org/content/repositories/snapshots'
17
+ }
18
+ }
19
+
20
+ dependencies {
21
+
22
+ //command line runner
23
+ implementation group: 'info.picocli', name: 'picocli', version: '4.0.0-alpha-2'
24
+
25
+ implementation group: 'me.tongfei', name: 'progressbar', version: '0.7.2'
26
+
27
+ //data format parsers
28
+ implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.11.0.rc1'
29
+ implementation 'com.opencsv:opencsv:4.1'
30
+ implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4'
31
+
32
+
33
+ implementation group: 'commons-io', name: 'commons-io', version: '2.6'
34
+ implementation 'commons-lang:commons-lang:2.6'
35
+ implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
36
+ implementation 'org.apache.commons:commons-collections4:4.4'
37
+
38
+ implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
39
+
40
+ implementation 'org.dxworks:dx-ignore:1.1.0-SNAPSHOT'
41
+ implementation 'org.dxworks:argumenthor:1.1.0-SNAPSHOT'
42
+ implementation 'org.dxworks:dx-linguist:1.0.0-SNAPSHOT'
43
+ testImplementation group: 'junit', name: 'junit', version: '4.12'
44
+ }
45
+
46
+ jar {
47
+ duplicatesStrategy = DuplicatesStrategy.EXCLUDE
48
+ manifest {
49
+ attributes "Main-Class": "org.dxworks.insider.Insider"
50
+ }
51
+
52
+ from {
53
+ configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) }
54
+ }
55
+ }
package/config/.ignore ADDED
@@ -0,0 +1,4 @@
1
+ **/.idea/**
2
+ **/.git/**
3
+ **/*.iml
4
+ **/node_modules/**
@@ -0,0 +1,71 @@
1
+ [
2
+ {
3
+ "languages": [
4
+ "c",
5
+ "cpp",
6
+ "csharp",
7
+ "coffeescript",
8
+ "fsharp",
9
+ "go",
10
+ "groovy",
11
+ "jade",
12
+ "oc",
13
+ "rust",
14
+ "swift",
15
+ "javascript",
16
+ "java",
17
+ "typescript",
18
+ "php"
19
+ ],
20
+ "inline": "//",
21
+ "preffix": "/*",
22
+ "suffix": "*/"
23
+ },
24
+ {
25
+ "languages": [
26
+ "perl",
27
+ "perl6",
28
+ "r",
29
+ "shellscript",
30
+ "ruby",
31
+ "yaml",
32
+ "powershell",
33
+ "python"
34
+ ],
35
+ "inline": "#"
36
+ },
37
+ {
38
+ "languages": [
39
+ "lua",
40
+ "sql"
41
+ ],
42
+ "inline": "--"
43
+ },
44
+ {
45
+ "languages": [
46
+ "clojure"
47
+ ],
48
+ "inline": ";;"
49
+ },
50
+ {
51
+ "languages": [
52
+ "vb"
53
+ ],
54
+ "inline": "'"
55
+ },
56
+ {
57
+ "languages": [
58
+ "COBOL"
59
+ ],
60
+ "inlinePatterns": [
61
+ {
62
+ "pattern": "^.{6}[*/](.*)$",
63
+ "modifiers": ["g", "m"]
64
+ },
65
+ {
66
+ "pattern": "(\\*>)(.*)$",
67
+ "modifiers": ["g", "m"]
68
+ }
69
+ ]
70
+ }
71
+ ]
@@ -0,0 +1,116 @@
1
+ {
2
+ "useProjectPrefix": true,
3
+ "technologies": [
4
+ {
5
+ "category": "Excessive Complexity",
6
+ "name": "Autogenerated Javadoc",
7
+ "languages": [
8
+ "java"
9
+ ],
10
+ "extensions": [],
11
+ "fingerprints": [
12
+ "(?i)Auto-generated\\s+Javadoc"
13
+ ],
14
+ "wrapAsImports": false
15
+ },
16
+ {
17
+ "category": "Abnormal Hierarchy Relations",
18
+ "name": "Instanceof Abuser",
19
+ "languages": [
20
+ "java"
21
+ ],
22
+ "extensions": [],
23
+ "fingerprints": [
24
+ "instanceof"
25
+ ],
26
+ "wrapAsImports": false
27
+ },
28
+ {
29
+ "category": "Abnormal Hierarchy Relations",
30
+ "name": "Stub Implementer",
31
+ "languages": [
32
+ "java"
33
+ ],
34
+ "extensions": [],
35
+ "fingerprints": [
36
+ "(?i)Auto-generated method stub",
37
+ "\\{\\s*\\/\\/Overridden Notification Method\\s*\\}",
38
+ "\\{\\s*return null;\\s*\\}"
39
+ ],
40
+ "wrapAsImports": false
41
+ },
42
+ {
43
+ "category": "Traceability Issues",
44
+ "name": "Console Writing",
45
+ "languages": [
46
+ "java"
47
+ ],
48
+ "extensions": [],
49
+ "fingerprints": [
50
+ "System\\.out\\.print",
51
+ "System\\.err\\.print"
52
+ ],
53
+ "wrapAsImports": false
54
+ },
55
+ {
56
+ "category": "Traceability Issues",
57
+ "name": "Stacktrace Dump",
58
+ "languages": [
59
+ "java"
60
+ ],
61
+ "extensions": [],
62
+ "fingerprints": [
63
+ "printStackTrace\\("
64
+ ],
65
+ "wrapAsImports": false
66
+ },
67
+ {
68
+ "category": "Traceability Issues",
69
+ "name": "Catch Top-Level Exception",
70
+ "languages": [
71
+ "java"
72
+ ],
73
+ "extensions": [],
74
+ "fingerprints": [
75
+ "catch\\s*\\(\\s*Exception ",
76
+ "catch\\s*\\(\\s*Error ",
77
+ "catch\\s*\\(\\s*Throwable "
78
+ ],
79
+ "wrapAsImports": false
80
+ },
81
+ {
82
+ "category": "Unit Testing",
83
+ "name": "Unit Test Files",
84
+ "languages": [
85
+ "java"
86
+ ],
87
+ "extensions": [],
88
+ "fingerprints": [
89
+ "org.junit",
90
+ "junit.framework",
91
+ "org.hamcrest"
92
+ ],
93
+ "wrapAsImports": true
94
+ },
95
+ {
96
+ "category": "Hardly Portable Technologies",
97
+ "name": "Embedded SQL Queries",
98
+ "languages": [
99
+ "java"
100
+ ],
101
+ "extensions": [],
102
+ "fingerprints": [
103
+ "PreparedStatement",
104
+ "java.sql",
105
+ "javax.sql",
106
+ "oracle.jdbc",
107
+ "oracle.security.o3logon",
108
+ "oracle.sql",
109
+ "oracle.net",
110
+ "oracle.jpub",
111
+ "org.skife.jdbi"
112
+ ],
113
+ "wrapAsImports": true
114
+ }
115
+ ]
116
+ }