@mitre/hdf-converters 2.12.6 → 2.13.0

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 (370) hide show
  1. package/README.md +25 -24
  2. package/lib/data/converters/csv2json.d.ts +1 -0
  3. package/lib/data/converters/csv2json.d.ts.map +1 -0
  4. package/lib/data/converters/csv2json.js +1 -1
  5. package/lib/data/converters/csv2json.js.map +1 -1
  6. package/lib/data/converters/xml2json.d.ts +1 -0
  7. package/lib/data/converters/xml2json.d.ts.map +1 -0
  8. package/lib/data/converters/xml2json.js +6 -25
  9. package/lib/data/converters/xml2json.js.map +1 -1
  10. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts +2 -0
  11. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts.map +1 -0
  12. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js +13 -0
  13. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js.map +1 -0
  14. package/lib/index.d.ts +6 -0
  15. package/lib/index.d.ts.map +1 -0
  16. package/lib/index.js +23 -8
  17. package/lib/index.js.map +1 -1
  18. package/lib/package.json +19 -40
  19. package/lib/src/anchore-grype-mapper.d.ts +1 -0
  20. package/lib/src/anchore-grype-mapper.d.ts.map +1 -0
  21. package/lib/src/anchore-grype-mapper.js +7 -1
  22. package/lib/src/anchore-grype-mapper.js.map +1 -1
  23. package/lib/src/asff-mapper/asff-mapper.d.ts +1 -0
  24. package/lib/src/asff-mapper/asff-mapper.d.ts.map +1 -0
  25. package/lib/src/asff-mapper/asff-mapper.js +274 -237
  26. package/lib/src/asff-mapper/asff-mapper.js.map +1 -1
  27. package/lib/src/asff-mapper/case-cms-inspec.d.ts +1 -0
  28. package/lib/src/asff-mapper/case-cms-inspec.d.ts.map +1 -0
  29. package/lib/src/asff-mapper/case-cms-inspec.js +18 -9
  30. package/lib/src/asff-mapper/case-cms-inspec.js.map +1 -1
  31. package/lib/src/asff-mapper/case-firewall-manager.d.ts +1 -0
  32. package/lib/src/asff-mapper/case-firewall-manager.d.ts.map +1 -0
  33. package/lib/src/asff-mapper/case-firewall-manager.js +18 -9
  34. package/lib/src/asff-mapper/case-firewall-manager.js.map +1 -1
  35. package/lib/src/asff-mapper/case-guardduty.d.ts +1 -0
  36. package/lib/src/asff-mapper/case-guardduty.d.ts.map +1 -0
  37. package/lib/src/asff-mapper/case-guardduty.js +18 -9
  38. package/lib/src/asff-mapper/case-guardduty.js.map +1 -1
  39. package/lib/src/asff-mapper/case-inspector.d.ts +1 -0
  40. package/lib/src/asff-mapper/case-inspector.d.ts.map +1 -0
  41. package/lib/src/asff-mapper/case-inspector.js +18 -9
  42. package/lib/src/asff-mapper/case-inspector.js.map +1 -1
  43. package/lib/src/asff-mapper/case-previously-hdf.d.ts +1 -0
  44. package/lib/src/asff-mapper/case-previously-hdf.d.ts.map +1 -0
  45. package/lib/src/asff-mapper/case-previously-hdf.js +21 -10
  46. package/lib/src/asff-mapper/case-previously-hdf.js.map +1 -1
  47. package/lib/src/asff-mapper/case-prowler.d.ts +1 -0
  48. package/lib/src/asff-mapper/case-prowler.d.ts.map +1 -0
  49. package/lib/src/asff-mapper/case-prowler.js +19 -9
  50. package/lib/src/asff-mapper/case-prowler.js.map +1 -1
  51. package/lib/src/asff-mapper/case-security-hub.d.ts +1 -0
  52. package/lib/src/asff-mapper/case-security-hub.d.ts.map +1 -0
  53. package/lib/src/asff-mapper/case-security-hub.js +24 -9
  54. package/lib/src/asff-mapper/case-security-hub.js.map +1 -1
  55. package/lib/src/asff-mapper/case-trivy.d.ts +1 -0
  56. package/lib/src/asff-mapper/case-trivy.d.ts.map +1 -0
  57. package/lib/src/asff-mapper/case-trivy.js +18 -9
  58. package/lib/src/asff-mapper/case-trivy.js.map +1 -1
  59. package/lib/src/aws-config-mapper.d.ts +1 -0
  60. package/lib/src/aws-config-mapper.d.ts.map +1 -0
  61. package/lib/src/aws-config-mapper.js +29 -7
  62. package/lib/src/aws-config-mapper.js.map +1 -1
  63. package/lib/src/base-converter.d.ts +2 -1
  64. package/lib/src/base-converter.d.ts.map +1 -0
  65. package/lib/src/base-converter.js +46 -26
  66. package/lib/src/base-converter.js.map +1 -1
  67. package/lib/src/burpsuite-mapper.d.ts +7 -0
  68. package/lib/src/burpsuite-mapper.d.ts.map +1 -0
  69. package/lib/src/burpsuite-mapper.js +115 -88
  70. package/lib/src/burpsuite-mapper.js.map +1 -1
  71. package/lib/src/checkov-mapper.d.ts +67 -0
  72. package/lib/src/checkov-mapper.d.ts.map +1 -0
  73. package/lib/src/checkov-mapper.js +240 -0
  74. package/lib/src/checkov-mapper.js.map +1 -0
  75. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts +17 -0
  76. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts.map +1 -0
  77. package/lib/src/ckl-mapper/checklist-jsonix-converter.js +38 -4
  78. package/lib/src/ckl-mapper/checklist-jsonix-converter.js.map +1 -1
  79. package/lib/src/ckl-mapper/checklist-mapper.d.ts +35 -0
  80. package/lib/src/ckl-mapper/checklist-mapper.d.ts.map +1 -0
  81. package/lib/src/ckl-mapper/checklist-mapper.js +262 -151
  82. package/lib/src/ckl-mapper/checklist-mapper.js.map +1 -1
  83. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts +1 -0
  84. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts.map +1 -0
  85. package/lib/src/ckl-mapper/checklist-metadata-utils.js +32 -15
  86. package/lib/src/ckl-mapper/checklist-metadata-utils.js.map +1 -1
  87. package/lib/src/ckl-mapper/checklistJsonix.d.ts +6 -0
  88. package/lib/src/ckl-mapper/checklistJsonix.d.ts.map +1 -0
  89. package/lib/src/ckl-mapper/checklistJsonix.js +8 -8
  90. package/lib/src/ckl-mapper/checklistJsonix.js.map +1 -1
  91. package/lib/src/ckl-mapper/jsonixMapping.d.ts +5 -0
  92. package/lib/src/ckl-mapper/jsonixMapping.d.ts.map +1 -0
  93. package/lib/src/ckl-mapper/jsonixMapping.js +4 -0
  94. package/lib/src/ckl-mapper/jsonixMapping.js.map +1 -1
  95. package/lib/src/converters-from-hdf/asff/asff-types.d.ts +1 -0
  96. package/lib/src/converters-from-hdf/asff/asff-types.d.ts.map +1 -0
  97. package/lib/src/converters-from-hdf/asff/asff-types.js +1 -0
  98. package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -1
  99. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +1 -0
  100. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts.map +1 -0
  101. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +110 -84
  102. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -1
  103. package/lib/src/converters-from-hdf/asff/transformers.d.ts +1 -0
  104. package/lib/src/converters-from-hdf/asff/transformers.d.ts.map +1 -0
  105. package/lib/src/converters-from-hdf/asff/transformers.js +68 -38
  106. package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -1
  107. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts +1 -0
  108. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts.map +1 -0
  109. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js +54 -28
  110. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js.map +1 -1
  111. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts +4 -0
  112. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts.map +1 -0
  113. package/lib/src/converters-from-hdf/html/embedded-assets.js +8 -0
  114. package/lib/src/converters-from-hdf/html/embedded-assets.js.map +1 -0
  115. package/lib/src/converters-from-hdf/html/html-types.d.ts +1 -0
  116. package/lib/src/converters-from-hdf/html/html-types.d.ts.map +1 -0
  117. package/lib/src/converters-from-hdf/html/html-types.js +1 -0
  118. package/lib/src/converters-from-hdf/html/html-types.js.map +1 -1
  119. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts +3 -2
  120. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts.map +1 -0
  121. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js +151 -107
  122. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js.map +1 -1
  123. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts +1 -0
  124. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts.map +1 -0
  125. package/lib/src/converters-from-hdf/reverse-any-base-converter.js +3 -0
  126. package/lib/src/converters-from-hdf/reverse-any-base-converter.js.map +1 -1
  127. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +1 -0
  128. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts.map +1 -0
  129. package/lib/src/converters-from-hdf/reverse-base-converter.js +29 -9
  130. package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -1
  131. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts +1 -0
  132. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts.map +1 -0
  133. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js +39 -14
  134. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js.map +1 -1
  135. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts +1 -0
  136. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts.map +1 -0
  137. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js +32 -10
  138. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js.map +1 -1
  139. package/lib/src/conveyor-mapper.d.ts +1 -0
  140. package/lib/src/conveyor-mapper.d.ts.map +1 -0
  141. package/lib/src/conveyor-mapper.js +85 -40
  142. package/lib/src/conveyor-mapper.js.map +1 -1
  143. package/lib/src/cyclonedx-sbom-mapper.d.ts +1 -0
  144. package/lib/src/cyclonedx-sbom-mapper.d.ts.map +1 -0
  145. package/lib/src/cyclonedx-sbom-mapper.js +368 -294
  146. package/lib/src/cyclonedx-sbom-mapper.js.map +1 -1
  147. package/lib/src/dbprotect-mapper.d.ts +1 -0
  148. package/lib/src/dbprotect-mapper.d.ts.map +1 -0
  149. package/lib/src/dbprotect-mapper.js +74 -63
  150. package/lib/src/dbprotect-mapper.js.map +1 -1
  151. package/lib/src/dependency-track-mapper.d.ts +1 -0
  152. package/lib/src/dependency-track-mapper.d.ts.map +1 -0
  153. package/lib/src/dependency-track-mapper.js +144 -130
  154. package/lib/src/dependency-track-mapper.js.map +1 -1
  155. package/lib/src/fortify-mapper.d.ts +7 -0
  156. package/lib/src/fortify-mapper.d.ts.map +1 -0
  157. package/lib/src/fortify-mapper.js +118 -92
  158. package/lib/src/fortify-mapper.js.map +1 -1
  159. package/lib/src/gosec-mapper.d.ts +1 -0
  160. package/lib/src/gosec-mapper.d.ts.map +1 -0
  161. package/lib/src/gosec-mapper.js +90 -72
  162. package/lib/src/gosec-mapper.js.map +1 -1
  163. package/lib/src/ionchannel-mapper.d.ts +1 -0
  164. package/lib/src/ionchannel-mapper.d.ts.map +1 -0
  165. package/lib/src/ionchannel-mapper.js +130 -110
  166. package/lib/src/ionchannel-mapper.js.map +1 -1
  167. package/lib/src/jfrog-xray-mapper.d.ts +1 -0
  168. package/lib/src/jfrog-xray-mapper.d.ts.map +1 -0
  169. package/lib/src/jfrog-xray-mapper.js +92 -78
  170. package/lib/src/jfrog-xray-mapper.js.map +1 -1
  171. package/lib/src/jsonix-converter.d.ts +1 -0
  172. package/lib/src/jsonix-converter.d.ts.map +1 -0
  173. package/lib/src/jsonix-converter.js +1 -0
  174. package/lib/src/jsonix-converter.js.map +1 -1
  175. package/lib/src/jsonix-intermediate-converter.d.ts +1 -0
  176. package/lib/src/jsonix-intermediate-converter.d.ts.map +1 -0
  177. package/lib/src/jsonix-intermediate-converter.js.map +1 -1
  178. package/lib/src/mappings/AwsConfigMapping.d.ts +1 -0
  179. package/lib/src/mappings/AwsConfigMapping.d.ts.map +1 -0
  180. package/lib/src/mappings/AwsConfigMapping.js +19 -9
  181. package/lib/src/mappings/AwsConfigMapping.js.map +1 -1
  182. package/lib/src/mappings/AwsConfigMappingData.d.ts +1 -0
  183. package/lib/src/mappings/AwsConfigMappingData.d.ts.map +1 -0
  184. package/lib/src/mappings/AwsConfigMappingData.js.map +1 -1
  185. package/lib/src/mappings/CciNistMapping.d.ts +1 -0
  186. package/lib/src/mappings/CciNistMapping.d.ts.map +1 -0
  187. package/lib/src/mappings/CciNistMapping.js +4 -0
  188. package/lib/src/mappings/CciNistMapping.js.map +1 -1
  189. package/lib/src/mappings/CciNistMappingData.d.ts +1 -0
  190. package/lib/src/mappings/CciNistMappingData.d.ts.map +1 -0
  191. package/lib/src/mappings/CciNistMappingData.js.map +1 -1
  192. package/lib/src/mappings/CciNistMappingItem.d.ts +1 -0
  193. package/lib/src/mappings/CciNistMappingItem.d.ts.map +1 -0
  194. package/lib/src/mappings/CciNistMappingItem.js +2 -0
  195. package/lib/src/mappings/CciNistMappingItem.js.map +1 -1
  196. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts +5 -0
  197. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts.map +1 -0
  198. package/lib/src/mappings/CheckovToCciAndNistMappingData.js +2695 -0
  199. package/lib/src/mappings/CheckovToCciAndNistMappingData.js.map +1 -0
  200. package/lib/src/mappings/CweNistMapping.d.ts +1 -0
  201. package/lib/src/mappings/CweNistMapping.d.ts.map +1 -0
  202. package/lib/src/mappings/CweNistMapping.js +1 -0
  203. package/lib/src/mappings/CweNistMapping.js.map +1 -1
  204. package/lib/src/mappings/CweNistMappingData.d.ts +1 -0
  205. package/lib/src/mappings/CweNistMappingData.d.ts.map +1 -0
  206. package/lib/src/mappings/CweNistMappingData.js.map +1 -1
  207. package/lib/src/mappings/CweNistMappingItem.d.ts +1 -0
  208. package/lib/src/mappings/CweNistMappingItem.d.ts.map +1 -0
  209. package/lib/src/mappings/CweNistMappingItem.js +5 -0
  210. package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
  211. package/lib/src/mappings/NessusPluginNistMappingData.d.ts +1 -0
  212. package/lib/src/mappings/NessusPluginNistMappingData.d.ts.map +1 -0
  213. package/lib/src/mappings/NessusPluginNistMappingData.js.map +1 -1
  214. package/lib/src/mappings/NessusPluginsNistMapping.d.ts +1 -0
  215. package/lib/src/mappings/NessusPluginsNistMapping.d.ts.map +1 -0
  216. package/lib/src/mappings/NessusPluginsNistMapping.js +1 -0
  217. package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
  218. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +1 -0
  219. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts.map +1 -0
  220. package/lib/src/mappings/NessusPluginsNistMappingItem.js +4 -0
  221. package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
  222. package/lib/src/mappings/NiktoNistMapping.d.ts +1 -0
  223. package/lib/src/mappings/NiktoNistMapping.d.ts.map +1 -0
  224. package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
  225. package/lib/src/mappings/NiktoNistMappingData.d.ts +1 -0
  226. package/lib/src/mappings/NiktoNistMappingData.d.ts.map +1 -0
  227. package/lib/src/mappings/NiktoNistMappingData.js.map +1 -1
  228. package/lib/src/mappings/NiktoNistMappingItem.d.ts +1 -0
  229. package/lib/src/mappings/NiktoNistMappingItem.d.ts.map +1 -0
  230. package/lib/src/mappings/NiktoNistMappingItem.js +4 -0
  231. package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
  232. package/lib/src/mappings/NistCciMappingData.d.ts +1 -0
  233. package/lib/src/mappings/NistCciMappingData.d.ts.map +1 -0
  234. package/lib/src/mappings/NistCciMappingData.js.map +1 -1
  235. package/lib/src/mappings/OwaspNistMapping.d.ts +1 -0
  236. package/lib/src/mappings/OwaspNistMapping.d.ts.map +1 -0
  237. package/lib/src/mappings/OwaspNistMapping.js +18 -7
  238. package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
  239. package/lib/src/mappings/OwaspNistMappingData.d.ts +1 -0
  240. package/lib/src/mappings/OwaspNistMappingData.d.ts.map +1 -0
  241. package/lib/src/mappings/OwaspNistMappingData.js.map +1 -1
  242. package/lib/src/mappings/OwaspNistMappingItem.d.ts +1 -0
  243. package/lib/src/mappings/OwaspNistMappingItem.d.ts.map +1 -0
  244. package/lib/src/mappings/OwaspNistMappingItem.js +5 -0
  245. package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
  246. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +1 -0
  247. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts.map +1 -0
  248. package/lib/src/mappings/ScoutsuiteNistMapping.js +1 -0
  249. package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
  250. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts +1 -0
  251. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts.map +1 -0
  252. package/lib/src/mappings/ScoutsuiteNistMappingData.js.map +1 -1
  253. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +1 -0
  254. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts.map +1 -0
  255. package/lib/src/mappings/ScoutsuiteNistMappingItem.js +2 -0
  256. package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
  257. package/lib/src/msft-secure-score-mapper.d.ts +1 -0
  258. package/lib/src/msft-secure-score-mapper.d.ts.map +1 -0
  259. package/lib/src/msft-secure-score-mapper.js +202 -185
  260. package/lib/src/msft-secure-score-mapper.js.map +1 -1
  261. package/lib/src/nessus-mapper.d.ts +2 -1
  262. package/lib/src/nessus-mapper.d.ts.map +1 -0
  263. package/lib/src/nessus-mapper.js +122 -105
  264. package/lib/src/nessus-mapper.js.map +1 -1
  265. package/lib/src/netsparker-mapper.d.ts +7 -0
  266. package/lib/src/netsparker-mapper.d.ts.map +1 -0
  267. package/lib/src/netsparker-mapper.js +34 -9
  268. package/lib/src/netsparker-mapper.js.map +1 -1
  269. package/lib/src/neuvector-mapper.d.ts +1 -0
  270. package/lib/src/neuvector-mapper.d.ts.map +1 -0
  271. package/lib/src/neuvector-mapper.js +120 -117
  272. package/lib/src/neuvector-mapper.js.map +1 -1
  273. package/lib/src/nikto-mapper.d.ts +1 -0
  274. package/lib/src/nikto-mapper.d.ts.map +1 -0
  275. package/lib/src/nikto-mapper.js +85 -74
  276. package/lib/src/nikto-mapper.js.map +1 -1
  277. package/lib/src/prisma-mapper.d.ts +1 -0
  278. package/lib/src/prisma-mapper.d.ts.map +1 -0
  279. package/lib/src/prisma-mapper.js +138 -128
  280. package/lib/src/prisma-mapper.js.map +1 -1
  281. package/lib/src/sarif-mapper.d.ts +1 -0
  282. package/lib/src/sarif-mapper.d.ts.map +1 -0
  283. package/lib/src/sarif-mapper.js +116 -105
  284. package/lib/src/sarif-mapper.js.map +1 -1
  285. package/lib/src/scoutsuite-mapper.d.ts +1 -0
  286. package/lib/src/scoutsuite-mapper.d.ts.map +1 -0
  287. package/lib/src/scoutsuite-mapper.js +174 -163
  288. package/lib/src/scoutsuite-mapper.js.map +1 -1
  289. package/lib/src/snyk-mapper.d.ts +1 -0
  290. package/lib/src/snyk-mapper.d.ts.map +1 -0
  291. package/lib/src/snyk-mapper.js +112 -100
  292. package/lib/src/snyk-mapper.js.map +1 -1
  293. package/lib/src/sonarqube-mapper.d.ts +18 -5
  294. package/lib/src/sonarqube-mapper.d.ts.map +1 -0
  295. package/lib/src/sonarqube-mapper.js +525 -271
  296. package/lib/src/sonarqube-mapper.js.map +1 -1
  297. package/lib/src/splunk-mapper.d.ts +3 -2
  298. package/lib/src/splunk-mapper.d.ts.map +1 -0
  299. package/lib/src/splunk-mapper.js +69 -12
  300. package/lib/src/splunk-mapper.js.map +1 -1
  301. package/lib/src/trufflehog-mapper.d.ts +1 -0
  302. package/lib/src/trufflehog-mapper.d.ts.map +1 -0
  303. package/lib/src/trufflehog-mapper.js +72 -69
  304. package/lib/src/trufflehog-mapper.js.map +1 -1
  305. package/lib/src/twistlock-mapper.d.ts +1 -0
  306. package/lib/src/twistlock-mapper.d.ts.map +1 -0
  307. package/lib/src/twistlock-mapper.js +140 -126
  308. package/lib/src/twistlock-mapper.js.map +1 -1
  309. package/lib/src/utils/CCI_List.d.ts +1 -0
  310. package/lib/src/utils/CCI_List.d.ts.map +1 -0
  311. package/lib/src/utils/CCI_List.js.map +1 -1
  312. package/lib/src/utils/attestations.d.ts +1 -0
  313. package/lib/src/utils/attestations.d.ts.map +1 -0
  314. package/lib/src/utils/attestations.js +28 -13
  315. package/lib/src/utils/attestations.js.map +1 -1
  316. package/lib/src/utils/compliance.d.ts +1 -0
  317. package/lib/src/utils/compliance.d.ts.map +1 -0
  318. package/lib/src/utils/compliance.js +11 -3
  319. package/lib/src/utils/compliance.js.map +1 -1
  320. package/lib/src/utils/fingerprinting.d.ts +2 -0
  321. package/lib/src/utils/fingerprinting.d.ts.map +1 -0
  322. package/lib/src/utils/fingerprinting.js +28 -11
  323. package/lib/src/utils/fingerprinting.js.map +1 -1
  324. package/lib/src/utils/global.d.ts +3 -1
  325. package/lib/src/utils/global.d.ts.map +1 -0
  326. package/lib/src/utils/global.js +34 -15
  327. package/lib/src/utils/global.js.map +1 -1
  328. package/lib/src/utils/parseJson.d.ts +1 -0
  329. package/lib/src/utils/parseJson.d.ts.map +1 -0
  330. package/lib/src/utils/parseJson.js +7 -3
  331. package/lib/src/utils/parseJson.js.map +1 -1
  332. package/lib/src/utils/result.d.ts +1 -0
  333. package/lib/src/utils/result.d.ts.map +1 -0
  334. package/lib/src/utils/result.js.map +1 -1
  335. package/lib/src/utils/splunk-tools.d.ts +2 -1
  336. package/lib/src/utils/splunk-tools.d.ts.map +1 -0
  337. package/lib/src/utils/splunk-tools.js +52 -31
  338. package/lib/src/utils/splunk-tools.js.map +1 -1
  339. package/lib/src/veracode-mapper.d.ts +1 -0
  340. package/lib/src/veracode-mapper.d.ts.map +1 -0
  341. package/lib/src/veracode-mapper.js +50 -7
  342. package/lib/src/veracode-mapper.js.map +1 -1
  343. package/lib/src/xccdf-results-mapper.d.ts +7 -0
  344. package/lib/src/xccdf-results-mapper.d.ts.map +1 -0
  345. package/lib/src/xccdf-results-mapper.js +336 -301
  346. package/lib/src/xccdf-results-mapper.js.map +1 -1
  347. package/lib/src/zap-mapper.d.ts +8 -0
  348. package/lib/src/zap-mapper.d.ts.map +1 -0
  349. package/lib/src/zap-mapper.js +119 -90
  350. package/lib/src/zap-mapper.js.map +1 -1
  351. package/lib/tsconfig.build.tsbuildinfo +1 -0
  352. package/lib/types/neuvector-types.d.ts +1 -0
  353. package/lib/types/neuvector-types.d.ts.map +1 -0
  354. package/lib/types/neuvector-types.js +80 -0
  355. package/lib/types/neuvector-types.js.map +1 -1
  356. package/lib/types/splunk-config-types.d.ts +1 -0
  357. package/lib/types/splunk-config-types.d.ts.map +1 -0
  358. package/lib/types/splunk-config-types.js.map +1 -1
  359. package/lib/types/splunk-control-types.d.ts +1 -0
  360. package/lib/types/splunk-control-types.d.ts.map +1 -0
  361. package/lib/types/splunk-control-types.js.map +1 -1
  362. package/lib/types/splunk-profile-types.d.ts +1 -0
  363. package/lib/types/splunk-profile-types.d.ts.map +1 -0
  364. package/lib/types/splunk-profile-types.js.map +1 -1
  365. package/lib/types/splunk-report-types.d.ts +1 -0
  366. package/lib/types/splunk-report-types.d.ts.map +1 -0
  367. package/lib/types/splunk-report-types.js.map +1 -1
  368. package/package.json +19 -40
  369. package/lib/data/converters/csv2json.ts +0 -36
  370. package/lib/data/converters/xml2json.ts +0 -57
@@ -15,15 +15,26 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.PrismaMapper = exports.PrismaControlMapper = exports.nistTag = void 0;
36
+ exports.PrismaMapper = exports.PrismaControlMapper = void 0;
37
+ exports.nistTag = nistTag;
27
38
  const inspecjs_1 = require("inspecjs");
28
39
  const _ = __importStar(require("lodash"));
29
40
  const package_json_1 = require("../package.json");
@@ -44,139 +55,139 @@ function nistTag(cveTag) {
44
55
  return global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS;
45
56
  }
46
57
  }
47
- exports.nistTag = nistTag;
48
58
  class PrismaControlMapper extends base_converter_1.BaseConverter {
49
- constructor(prismaControls) {
50
- super({ records: prismaControls });
51
- this.mappings = {
52
- platform: {
53
- name: 'Heimdall Tools',
54
- release: package_json_1.version,
55
- target_id: 'Prisma Cloud Scan Report'
56
- },
57
- version: package_json_1.version,
58
- statistics: {
59
- duration: null
60
- },
61
- profiles: [
62
- {
63
- name: 'Palo Alto Prisma Cloud Tool',
64
- version: '',
65
- title: 'Prisma Cloud Scan Report',
66
- maintainer: null,
67
- summary: '',
68
- license: null,
69
- copyright: null,
70
- copyright_email: null,
71
- supports: [],
72
- attributes: [],
73
- depends: [],
74
- groups: [],
75
- status: 'loaded',
76
- controls: [
77
- {
78
- path: 'records',
79
- key: 'id',
80
- desc: { path: 'Description' },
81
- tags: {
82
- cci: {
83
- path: 'CVE ID',
84
- transformer: (cve) => (0, global_1.getCCIsForNISTTags)(nistTag(cve))
85
- },
86
- nist: {
87
- path: 'CVE ID',
88
- transformer: nistTag
89
- },
90
- cve: { path: 'CVE ID' },
91
- cvss: { path: 'cssv' }
59
+ mappings = {
60
+ platform: {
61
+ name: 'Heimdall Tools',
62
+ release: package_json_1.version,
63
+ target_id: 'Prisma Cloud Scan Report'
64
+ },
65
+ version: package_json_1.version,
66
+ statistics: {
67
+ duration: null
68
+ },
69
+ profiles: [
70
+ {
71
+ name: 'Palo Alto Prisma Cloud Tool',
72
+ version: '',
73
+ title: 'Prisma Cloud Scan Report',
74
+ maintainer: null,
75
+ summary: '',
76
+ license: null,
77
+ copyright: null,
78
+ copyright_email: null,
79
+ supports: [],
80
+ attributes: [],
81
+ depends: [],
82
+ groups: [],
83
+ status: 'loaded',
84
+ controls: [
85
+ {
86
+ path: 'records',
87
+ key: 'id',
88
+ desc: { path: 'Description' },
89
+ tags: {
90
+ cci: {
91
+ path: 'CVE ID',
92
+ transformer: (cve) => (0, global_1.getCCIsForNISTTags)(nistTag(cve))
92
93
  },
93
- descriptions: [],
94
- refs: [{ url: { path: 'Vulnerability Link' } }],
95
- source_location: { path: 'Hostname' },
96
- id: {
97
- transformer: (item) => {
98
- if (item['CVE ID']) {
99
- return `${item['Compliance ID']}-${item['CVE ID']}`;
100
- }
101
- else {
102
- return `${item['Compliance ID']}-${item.Distro}-${item.Severity}`;
103
- }
104
- }
105
- },
106
- title: {
107
- transformer: (item) => `${item.Hostname}-${item.Distro}-${item.Type}`
94
+ nist: {
95
+ path: 'CVE ID',
96
+ transformer: nistTag
108
97
  },
109
- impact: {
110
- path: 'Severity',
111
- transformer: (severity) => {
112
- if (severity) {
113
- return SEVERITY_LOOKUP[severity];
114
- }
115
- else {
116
- return 0.5;
117
- }
98
+ cve: { path: 'CVE ID' },
99
+ cvss: { path: 'cssv' }
100
+ },
101
+ descriptions: [],
102
+ refs: [{ url: { path: 'Vulnerability Link' } }],
103
+ source_location: { path: 'Hostname' },
104
+ id: {
105
+ transformer: (item) => {
106
+ if (item['CVE ID']) {
107
+ return `${item['Compliance ID']}-${item['CVE ID']}`;
118
108
  }
119
- },
120
- code: {
121
- transformer: (obj) => JSON.stringify(obj, null, 2)
122
- },
123
- results: [
124
- {
125
- status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
126
- code_desc: {
127
- transformer: (obj) => {
128
- let result = '';
129
- if (obj.Type === 'image') {
130
- if (obj['Packages'] !== '') {
131
- result += `Version check of package: ${obj['Packages']}`;
132
- }
133
- }
134
- else if (obj.Type === 'linux') {
135
- if (obj.Distro !== '') {
136
- result += `Configuration check for ${obj.Distro}`;
137
- }
138
- else {
139
- result += ``;
140
- }
141
- }
142
- else {
143
- result += `${obj.Type} check for ${obj.Hostname}`;
109
+ else {
110
+ return `${item['Compliance ID']}-${item.Distro}-${item.Severity}`;
111
+ }
112
+ }
113
+ },
114
+ title: {
115
+ transformer: (item) => `${item.Hostname}-${item.Distro}-${item.Type}`
116
+ },
117
+ impact: {
118
+ path: 'Severity',
119
+ transformer: (severity) => {
120
+ if (severity) {
121
+ return SEVERITY_LOOKUP[severity];
122
+ }
123
+ else {
124
+ return 0.5;
125
+ }
126
+ }
127
+ },
128
+ code: {
129
+ transformer: (obj) => JSON.stringify(obj, null, 2)
130
+ },
131
+ results: [
132
+ {
133
+ status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
134
+ code_desc: {
135
+ transformer: (obj) => {
136
+ let result = '';
137
+ if (obj.Type === 'image') {
138
+ if (obj['Packages'] !== '') {
139
+ result += `Version check of package: ${obj['Packages']}`;
144
140
  }
145
- result += `\n\n${obj.Description}`;
146
- return result;
147
141
  }
148
- },
149
- message: {
150
- transformer: (obj) => {
151
- let result = '';
152
- if (obj['Fix Status'] !== '' && obj.Cause !== '') {
153
- result += `Fix Status: ${obj['Fix Status']}\n\n${obj.Cause}`;
154
- }
155
- else if (obj['Fix Status'] !== '') {
156
- result += `Fix Status: ${obj['Fix Status']}`;
157
- }
158
- else if (obj.Cause !== '') {
159
- result += `Cause: ${obj.Cause}`;
142
+ else if (obj.Type === 'linux') {
143
+ if (obj.Distro !== '') {
144
+ result += `Configuration check for ${obj.Distro}`;
160
145
  }
161
146
  else {
162
- result += 'Unknown';
147
+ result += ``;
163
148
  }
164
- return result;
165
149
  }
166
- },
167
- start_time: { path: 'Published' }
168
- }
169
- ]
170
- }
171
- ],
172
- sha256: ''
173
- }
174
- ]
175
- };
150
+ else {
151
+ result += `${obj.Type} check for ${obj.Hostname}`;
152
+ }
153
+ result += `\n\n${obj.Description}`;
154
+ return result;
155
+ }
156
+ },
157
+ message: {
158
+ transformer: (obj) => {
159
+ let result = '';
160
+ if (obj['Fix Status'] !== '' && obj.Cause !== '') {
161
+ result += `Fix Status: ${obj['Fix Status']}\n\n${obj.Cause}`;
162
+ }
163
+ else if (obj['Fix Status'] !== '') {
164
+ result += `Fix Status: ${obj['Fix Status']}`;
165
+ }
166
+ else if (obj.Cause !== '') {
167
+ result += `Cause: ${obj.Cause}`;
168
+ }
169
+ else {
170
+ result += 'Unknown';
171
+ }
172
+ return result;
173
+ }
174
+ },
175
+ start_time: { path: 'Published' }
176
+ }
177
+ ]
178
+ }
179
+ ],
180
+ sha256: ''
181
+ }
182
+ ]
183
+ };
184
+ constructor(prismaControls) {
185
+ super({ records: prismaControls });
176
186
  }
177
187
  }
178
188
  exports.PrismaControlMapper = PrismaControlMapper;
179
189
  class PrismaMapper {
190
+ data = [];
180
191
  toHdf() {
181
192
  const executions = [];
182
193
  const hostnameToControls = {};
@@ -193,7 +204,6 @@ class PrismaMapper {
193
204
  return executions;
194
205
  }
195
206
  constructor(prismaCsv) {
196
- this.data = [];
197
207
  this.data = (0, base_converter_1.parseCsv)(prismaCsv);
198
208
  }
199
209
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-mapper.js","sourceRoot":"","sources":["../../src/prisma-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-mapper.js","sourceRoot":"","sources":["../../src/prisma-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {version as HeimdallToolsVersion} from '../package.json';\nimport {\n BaseConverter,\n ILookupPath,\n MappedTransform,\n parseCsv\n} from './base-converter';\nimport {\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS,\n DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,\n getCCIsForNISTTags\n} from './utils/global';\n\nexport type PrismaControl = {\n Packages: string;\n Description: string;\n Distro: string;\n Type: string;\n Hostname: string;\n 'Compliance ID': string;\n 'Fix Status'?: string;\n 'CVE ID': string;\n Severity: string;\n Cause?: string;\n};\n\nconst SEVERITY_LOOKUP: Record<string, number> = {\n low: 0.3,\n moderate: 0.5,\n high: 0.7,\n important: 0.9,\n critical: 1\n};\n\nexport function nistTag(cveTag: string | undefined) {\n if (!cveTag) {\n return DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS;\n } else {\n return DEFAULT_UPDATE_REMEDIATION_NIST_TAGS;\n }\n}\n\nexport class PrismaControlMapper extends BaseConverter {\n mappings: MappedTransform<ExecJSON.Execution, ILookupPath> = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion,\n target_id: 'Prisma Cloud Scan Report'\n },\n version: HeimdallToolsVersion,\n statistics: {\n duration: null\n },\n profiles: [\n {\n name: 'Palo Alto Prisma Cloud Tool',\n version: '',\n title: 'Prisma Cloud Scan Report',\n maintainer: null,\n summary: '',\n license: null,\n copyright: null,\n copyright_email: null,\n supports: [],\n attributes: [],\n depends: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n path: 'records',\n key: 'id',\n desc: {path: 'Description'},\n tags: {\n cci: {\n path: 'CVE ID',\n transformer: (cve: string) => getCCIsForNISTTags(nistTag(cve))\n },\n nist: {\n path: 'CVE ID',\n transformer: nistTag\n },\n cve: {path: 'CVE ID'},\n cvss: {path: 'cssv'}\n },\n descriptions: [],\n refs: [{url: {path: 'Vulnerability Link'}}],\n source_location: {path: 'Hostname'},\n id: {\n transformer: (item: PrismaControl) => {\n if (item['CVE ID']) {\n return `${item['Compliance ID']}-${item['CVE ID']}`;\n } else {\n return `${item['Compliance ID']}-${item.Distro}-${item.Severity}`;\n }\n }\n },\n title: {\n transformer: (item: PrismaControl) =>\n `${item.Hostname}-${item.Distro}-${item.Type}`\n },\n impact: {\n path: 'Severity',\n transformer: (severity: string) => {\n if (severity) {\n return SEVERITY_LOOKUP[severity];\n } else {\n return 0.5;\n }\n }\n },\n code: {\n transformer: (obj: PrismaControl) => JSON.stringify(obj, null, 2)\n },\n results: [\n {\n status: ExecJSON.ControlResultStatus.Failed,\n code_desc: {\n transformer: (obj: PrismaControl) => {\n let result = '';\n if (obj.Type === 'image') {\n if (obj['Packages'] !== '') {\n result += `Version check of package: ${obj['Packages']}`;\n }\n } else if (obj.Type === 'linux') {\n if (obj.Distro !== '') {\n result += `Configuration check for ${obj.Distro}`;\n } else {\n result += ``;\n }\n } else {\n result += `${obj.Type} check for ${obj.Hostname}`;\n }\n result += `\\n\\n${obj.Description}`;\n return result;\n }\n },\n message: {\n transformer: (obj: PrismaControl) => {\n let result = '';\n if (obj['Fix Status'] !== '' && obj.Cause !== '') {\n result += `Fix Status: ${obj['Fix Status']}\\n\\n${obj.Cause}`;\n } else if (obj['Fix Status'] !== '') {\n result += `Fix Status: ${obj['Fix Status']}`;\n } else if (obj.Cause !== '') {\n result += `Cause: ${obj.Cause}`;\n } else {\n result += 'Unknown';\n }\n return result;\n }\n },\n start_time: {path: 'Published'}\n }\n ]\n }\n ],\n sha256: ''\n }\n ]\n };\n\n constructor(prismaControls: PrismaControl[]) {\n super({records: prismaControls});\n }\n}\n\nexport class PrismaMapper {\n data: PrismaControl[] = [];\n\n toHdf(): ExecJSON.Execution[] {\n const executions: ExecJSON.Execution[] = [];\n const hostnameToControls: Record<string, PrismaControl[]> = {};\n this.data.forEach((record: PrismaControl) => {\n hostnameToControls[record['Hostname']] =\n hostnameToControls[record['Hostname']] || [];\n hostnameToControls[record['Hostname']].push(record);\n });\n Object.entries(hostnameToControls).forEach(([hostname, controls]) => {\n const converted = new PrismaControlMapper(controls).toHdf();\n _.set(converted, 'platform.target_id', hostname);\n executions.push(converted);\n });\n return executions;\n }\n\n constructor(prismaCsv: string) {\n this.data = parseCsv(prismaCsv) as PrismaControl[];\n }\n}\n"]}
@@ -7,3 +7,4 @@ export declare class SarifMapper extends BaseConverter {
7
7
  }, ILookupPath>;
8
8
  constructor(sarifJson: string, withRaw?: boolean);
9
9
  }
10
+ //# sourceMappingURL=sarif-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sarif-mapper.d.ts","sourceRoot":"","sources":["../../src/sarif-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AA6C7E,qBAAa,WAAY,SAAQ,aAAa;IAC5C,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,eAAe,CACvB,QAAQ,CAAC,SAAS,GAAG;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,EAC3C,WAAW,CACZ,CAmHC;gBACU,SAAS,EAAE,MAAM,EAAE,OAAO,UAAQ;CAI/C"}
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.SarifMapper = void 0;
27
37
  const inspecjs_1 = require("inspecjs");
@@ -65,113 +75,114 @@ function nistTag(text) {
65
75
  return CWE_NIST_MAPPING.nistFilter(identifiers, global_1.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS);
66
76
  }
67
77
  class SarifMapper extends base_converter_1.BaseConverter {
68
- constructor(sarifJson, withRaw = false) {
69
- super(JSON.parse(sarifJson));
70
- this.mappings = {
71
- platform: {
72
- name: 'Heimdall Tools',
73
- release: package_json_1.version,
74
- target_id: 'Static Analysis Results Interchange Format'
75
- },
76
- version: package_json_1.version,
77
- statistics: {},
78
- profiles: [
79
- {
80
- path: 'runs',
81
- name: 'SARIF',
82
- version: { path: '$.version' },
83
- title: 'Static Analysis Results Interchange Format',
84
- supports: [],
85
- attributes: [],
86
- groups: [],
87
- status: 'loaded',
88
- controls: [
89
- {
90
- path: 'results',
91
- key: 'id',
92
- tags: {
93
- cci: {
94
- path: 'vulnerabilityClassifications',
95
- transformer: (data) => (0, global_1.getCCIsForNISTTags)(nistTag(data))
96
- },
97
- nist: { path: MESSAGE_TEXT, transformer: nistTag },
98
- cwe: {
99
- path: MESSAGE_TEXT,
100
- transformer: extractCwe
101
- }
102
- },
103
- refs: [],
104
- source_location: {
105
- transformer: (control) => {
106
- return _.omitBy({
107
- ref: _.get(control, 'locations[0].physicalLocation.artifactLocation.uri'),
108
- line: _.get(control, 'locations[0].physicalLocation.region.startLine')
109
- }, (value) => value === '');
110
- }
78
+ withRaw;
79
+ mappings = {
80
+ platform: {
81
+ name: 'Heimdall Tools',
82
+ release: package_json_1.version,
83
+ target_id: 'Static Analysis Results Interchange Format'
84
+ },
85
+ version: package_json_1.version,
86
+ statistics: {},
87
+ profiles: [
88
+ {
89
+ path: 'runs',
90
+ name: 'SARIF',
91
+ version: { path: '$.version' },
92
+ title: 'Static Analysis Results Interchange Format',
93
+ supports: [],
94
+ attributes: [],
95
+ groups: [],
96
+ status: 'loaded',
97
+ controls: [
98
+ {
99
+ path: 'results',
100
+ key: 'id',
101
+ tags: {
102
+ cci: {
103
+ path: 'vulnerabilityClassifications',
104
+ transformer: (data) => (0, global_1.getCCIsForNISTTags)(nistTag(data))
111
105
  },
112
- title: {
106
+ nist: { path: MESSAGE_TEXT, transformer: nistTag },
107
+ cwe: {
113
108
  path: MESSAGE_TEXT,
114
- transformer: (text) => {
115
- if (typeof text === 'string') {
116
- return text.split(': ')[0];
117
- }
118
- else {
119
- return '';
120
- }
109
+ transformer: extractCwe
110
+ }
111
+ },
112
+ refs: [],
113
+ source_location: {
114
+ transformer: (control) => {
115
+ return _.omitBy({
116
+ ref: _.get(control, 'locations[0].physicalLocation.artifactLocation.uri'),
117
+ line: _.get(control, 'locations[0].physicalLocation.region.startLine')
118
+ }, (value) => value === '');
119
+ }
120
+ },
121
+ title: {
122
+ path: MESSAGE_TEXT,
123
+ transformer: (text) => {
124
+ if (typeof text === 'string') {
125
+ return text.split(': ')[0];
121
126
  }
122
- },
123
- id: { path: 'ruleId' },
124
- desc: {
125
- path: MESSAGE_TEXT,
126
- transformer: (text) => {
127
- if (typeof text === 'string') {
128
- return text.split(': ')[1];
129
- }
130
- else {
131
- return '';
132
- }
127
+ else {
128
+ return '';
133
129
  }
134
- },
135
- impact: { path: 'level', transformer: impactMapping },
136
- code: {
137
- transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
138
- },
139
- results: [
140
- {
141
- status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
142
- code_desc: {
143
- path: 'locations[0].physicalLocation',
144
- transformer: formatCodeDesc
145
- },
146
- start_time: ''
130
+ }
131
+ },
132
+ id: { path: 'ruleId' },
133
+ desc: {
134
+ path: MESSAGE_TEXT,
135
+ transformer: (text) => {
136
+ if (typeof text === 'string') {
137
+ return text.split(': ')[1];
147
138
  }
148
- ]
149
- }
150
- ],
151
- sha256: ''
152
- }
153
- ],
154
- passthrough: {
155
- transformer: (data) => {
156
- let runsData = _.get(data, 'runs');
157
- if (Array.isArray(runsData)) {
158
- runsData = runsData.map((run) => _.omit(run, ['results']));
159
- }
160
- return {
161
- auxiliary_data: [
162
- {
163
- name: 'SARIF',
164
- data: {
165
- $schema: _.get(data, '$schema'),
166
- runs: runsData
139
+ else {
140
+ return '';
167
141
  }
168
142
  }
169
- ],
170
- ...(this.withRaw && { raw: data })
171
- };
143
+ },
144
+ impact: { path: 'level', transformer: impactMapping },
145
+ code: {
146
+ transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
147
+ },
148
+ results: [
149
+ {
150
+ status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
151
+ code_desc: {
152
+ path: 'locations[0].physicalLocation',
153
+ transformer: formatCodeDesc
154
+ },
155
+ start_time: ''
156
+ }
157
+ ]
158
+ }
159
+ ],
160
+ sha256: ''
161
+ }
162
+ ],
163
+ passthrough: {
164
+ transformer: (data) => {
165
+ let runsData = _.get(data, 'runs');
166
+ if (Array.isArray(runsData)) {
167
+ runsData = runsData.map((run) => _.omit(run, ['results']));
172
168
  }
169
+ return {
170
+ auxiliary_data: [
171
+ {
172
+ name: 'SARIF',
173
+ data: {
174
+ $schema: _.get(data, '$schema'),
175
+ runs: runsData
176
+ }
177
+ }
178
+ ],
179
+ ...(this.withRaw && { raw: data })
180
+ };
173
181
  }
174
- };
182
+ }
183
+ };
184
+ constructor(sarifJson, withRaw = false) {
185
+ super(JSON.parse(sarifJson));
175
186
  this.withRaw = withRaw;
176
187
  }
177
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sarif-mapper.js","sourceRoot":"","sources":["../../src/sarif-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sarif-mapper.js","sourceRoot":"","sources":["../../src/sarif-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {version as HeimdallToolsVersion} from '../package.json';\nimport {BaseConverter, ILookupPath, MappedTransform} from './base-converter';\nimport {CweNistMapping} from './mappings/CweNistMapping';\nimport {\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS,\n getCCIsForNISTTags\n} from './utils/global';\n\nconst IMPACT_MAPPING: Map<string, number> = new Map([\n ['error', 0.7],\n ['warning', 0.5],\n ['note', 0.3]\n]);\nconst MESSAGE_TEXT = 'message.text';\nconst CWE_NIST_MAPPING = new CweNistMapping();\n\nfunction extractCwe(text: string): string[] {\n let output = text.split('(').slice(-1)[0].slice(0, -2).split(', ');\n if (output.length === 1) {\n output = text.split('(').slice(-1)[0].slice(0, -2).split('!/');\n }\n return output;\n}\nfunction impactMapping(severity: unknown): number {\n if (typeof severity === 'string' || typeof severity === 'number') {\n return IMPACT_MAPPING.get(severity.toString().toLowerCase()) || 0.1;\n } else {\n return 0.1;\n }\n}\nfunction formatCodeDesc(input: unknown): string {\n const output = [];\n output.push(`URL : ${_.get(input, 'artifactLocation.uri')}`);\n output.push(`LINE : ${_.get(input, 'region.startLine')}`);\n output.push(`COLUMN : ${_.get(input, 'region.startColumn')}`);\n return output.join(' ');\n}\nfunction nistTag(text: string): string[] {\n let identifiers = extractCwe(text);\n identifiers = identifiers.map((element) => element.split('-')[1]);\n return CWE_NIST_MAPPING.nistFilter(\n identifiers,\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS\n );\n}\n\nexport class SarifMapper extends BaseConverter {\n withRaw: boolean;\n\n mappings: MappedTransform<\n ExecJSON.Execution & {passthrough: unknown},\n ILookupPath\n > = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion,\n target_id: 'Static Analysis Results Interchange Format'\n },\n version: HeimdallToolsVersion,\n statistics: {},\n profiles: [\n {\n path: 'runs',\n name: 'SARIF',\n version: {path: '$.version'},\n title: 'Static Analysis Results Interchange Format',\n supports: [],\n attributes: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n path: 'results',\n key: 'id',\n tags: {\n cci: {\n path: 'vulnerabilityClassifications',\n transformer: (data: string) => getCCIsForNISTTags(nistTag(data))\n },\n nist: {path: MESSAGE_TEXT, transformer: nistTag},\n cwe: {\n path: MESSAGE_TEXT,\n transformer: extractCwe\n }\n },\n refs: [],\n source_location: {\n transformer: (control: unknown) => {\n return _.omitBy(\n {\n ref: _.get(\n control,\n 'locations[0].physicalLocation.artifactLocation.uri'\n ),\n line: _.get(\n control,\n 'locations[0].physicalLocation.region.startLine'\n )\n },\n (value) => value === ''\n );\n }\n },\n title: {\n path: MESSAGE_TEXT,\n transformer: (text: unknown): string => {\n if (typeof text === 'string') {\n return text.split(': ')[0];\n } else {\n return '';\n }\n }\n },\n id: {path: 'ruleId'},\n desc: {\n path: MESSAGE_TEXT,\n transformer: (text: unknown): string => {\n if (typeof text === 'string') {\n return text.split(': ')[1];\n } else {\n return '';\n }\n }\n },\n impact: {path: 'level', transformer: impactMapping},\n code: {\n transformer: (vulnerability: Record<string, unknown>): string =>\n JSON.stringify(vulnerability, null, 2)\n },\n results: [\n {\n status: ExecJSON.ControlResultStatus.Failed,\n code_desc: {\n path: 'locations[0].physicalLocation',\n transformer: formatCodeDesc\n },\n\n start_time: ''\n }\n ]\n }\n ],\n sha256: ''\n }\n ],\n passthrough: {\n transformer: (data: Record<string, unknown>): Record<string, unknown> => {\n let runsData = _.get(data, 'runs');\n if (Array.isArray(runsData)) {\n runsData = runsData.map((run: Record<string, unknown>) =>\n _.omit(run, ['results'])\n );\n }\n return {\n auxiliary_data: [\n {\n name: 'SARIF',\n data: {\n $schema: _.get(data, '$schema'),\n runs: runsData\n }\n }\n ],\n ...(this.withRaw && {raw: data})\n };\n }\n }\n };\n constructor(sarifJson: string, withRaw = false) {\n super(JSON.parse(sarifJson));\n this.withRaw = withRaw;\n }\n}\n"]}