@mitre/hdf-converters 2.12.2 → 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 +28 -45
  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 +276 -242
  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 +28 -15
  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 +38 -22
  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 +51 -33
  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 +59 -25
  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 +264 -155
  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 +38 -16
  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 +82 -55
  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 +65 -38
  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 +40 -16
  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 +33 -12
  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 +377 -309
  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 +6 -2
  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 +19 -8
  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 +123 -124
  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 +526 -278
  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 +72 -16
  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 +35 -17
  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 -32
  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 +29 -46
  369. package/lib/data/converters/csv2json.ts +0 -36
  370. package/lib/data/converters/xml2json.ts +0 -57
@@ -15,15 +15,25 @@ 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.XCCDFResultsMapper = void 0;
36
+ exports.XCCDFResultsMapper = exports.XCCDFResultsResults = void 0;
27
37
  const inspecjs_1 = require("inspecjs");
28
38
  const _ = __importStar(require("lodash"));
29
39
  const package_json_1 = require("../package.json");
@@ -37,6 +47,7 @@ const IMPACT_MAPPING = new Map([
37
47
  ['low', 0.3]
38
48
  ]);
39
49
  const CCI_NIST_MAPPING = new CciNistMapping_1.CciNistMapping();
50
+ let parseHtml;
40
51
  function asArray(arg) {
41
52
  if (Array.isArray(arg)) {
42
53
  return arg;
@@ -130,6 +141,13 @@ function nistTag(input) {
130
141
  .filter(inspecjs_1.is_control)
131
142
  .map((x) => x.canonize())));
132
143
  }
144
+ /**
145
+ * Given a group, returns all the rules within it (including rules in groups nested within the group).
146
+ *
147
+ * @param allRules a mutable list that will be populated with the rules.
148
+ * @param benchmark The benchmark being operated upon.
149
+ * @param group The group for which rules are to be retrieved.
150
+ */
133
151
  function getRulesInGroup(allRules, benchmark, group) {
134
152
  const subGroups = asArray(_.get(group, 'Group'));
135
153
  if (subGroups) {
@@ -141,14 +159,17 @@ function getRulesInGroup(allRules, benchmark, group) {
141
159
  if (rules) {
142
160
  for (const rule of rules) {
143
161
  allRules.push(_.merge({}, rule, {
144
- group: _.omit(group, ['Rule', 'Group']),
145
- ruleResult: getRuleResult(_.get(rule, 'id'), benchmark),
146
- profiles: getProfiles([_.get(rule, 'id'), _.get(group, 'id')], benchmark),
147
- values: getValues(rule, group, benchmark)
162
+ group: _.omit(group, ['Rule', 'Group']), // save the group as a new "group" property on the rule to allow the mapper to use the group
163
+ ruleResult: getRuleResult(_.get(rule, 'id'), benchmark), // save the ruleResult as a new "ruleResult" property on the rule to allow the mapper to use the ruleResult
164
+ profiles: getProfiles([_.get(rule, 'id'), _.get(group, 'id')], benchmark), // save the profiles as a new "profiles" property on the rule to allow the mapper to use the profiles
165
+ values: getValues(rule, group, benchmark) // save the values as a new "values" property on the rule to allow the mapper to use the values
148
166
  }));
149
167
  }
150
168
  }
151
169
  }
170
+ /**
171
+ * Given groups or a group, returns all the rules.
172
+ */
152
173
  function getRulesInBenchmark(input) {
153
174
  const benchmark = input;
154
175
  const groups = asArray(_.get(benchmark, 'Group'));
@@ -158,315 +179,329 @@ function getRulesInBenchmark(input) {
158
179
  }
159
180
  return allRules;
160
181
  }
161
- class XCCDFResultsMapper extends base_converter_1.BaseConverter {
182
+ class XCCDFResultsResults {
183
+ scapXml;
184
+ withRaw;
162
185
  constructor(scapXml, withRaw = false) {
163
- super((0, base_converter_1.parseXml)(scapXml, {
164
- stopNodes: [
165
- '*.fixtext',
166
- '*.fix',
167
- '*.rationale',
168
- '*.warning',
169
- '*.title',
170
- '*.description'
171
- ]
172
- }));
173
- this.mappings = {
174
- platform: {
175
- name: 'Heimdall Tools',
176
- release: package_json_1.version,
177
- target_id: {
178
- path: 'Benchmark.platform.idref'
179
- }
180
- },
181
- version: package_json_1.version,
182
- statistics: {},
183
- profiles: [
184
- {
185
- name: { path: 'Benchmark.id' },
186
- version: { path: 'Benchmark.style' },
187
- title: { path: ['Benchmark.title.text', 'Benchmark.title'] },
188
- maintainer: {
189
- path: 'Benchmark.reference.publisher'
190
- },
191
- summary: {
192
- path: ['Benchmark.description.text', 'Benchmark.description'],
193
- transformer: base_converter_1.parseHtml
194
- },
195
- description: {
196
- path: 'Benchmark',
197
- transformer: (input) => {
198
- const descriptionPaths = [
199
- ['description.text'],
200
- ['front-matter'],
201
- ['metadata'],
202
- ['model'],
203
- ['plain-text'],
204
- ['rear-matter'],
205
- ['reference'],
206
- ['status'],
207
- ['version'],
208
- ['xml:lang'],
209
- ['xmlns:cdf', 'xmlns'],
210
- ['xmlns:dc'],
211
- ['xmlns:dsi'],
212
- ['xsi:schemaLocation'],
213
- ['TestResult.benchmark'],
214
- ['TestResult.start-time'],
215
- ['TestResult.end-time'],
216
- ['TestResult.id'],
217
- ['TestResult.identity'],
218
- ['TestResult.organization'],
219
- ['TestResult.platform.idref'],
220
- ['TestResult.profile.idref'],
221
- ['TestResult.score'],
222
- ['TestResult.set-value'],
223
- ['TestResult.target'],
224
- ['TestResult.target-address'],
225
- ['TestResult.target-facts'],
226
- ['TestResult.target-id-ref'],
227
- ['TestResult.test-system'],
228
- ['TestResult.title'],
229
- ['TestResult.version']
230
- ];
231
- const fullDescription = {};
232
- for (const paths of descriptionPaths) {
233
- for (const path of paths) {
234
- const item = _.get(input, path);
235
- if (item !== undefined) {
236
- if (typeof item === 'string') {
237
- fullDescription[path] = (0, base_converter_1.parseHtml)(item);
238
- }
239
- else {
240
- fullDescription[path] = item;
241
- }
186
+ this.scapXml = scapXml;
187
+ this.withRaw = withRaw;
188
+ }
189
+ async toHdf() {
190
+ parseHtml = await (0, base_converter_1.buildParseHtmlFunc)();
191
+ return (new XCCDFResultsMapper(this.scapXml, this.withRaw)).toHdf();
192
+ }
193
+ }
194
+ exports.XCCDFResultsResults = XCCDFResultsResults;
195
+ class XCCDFResultsMapper extends base_converter_1.BaseConverter {
196
+ withRaw;
197
+ mappings = {
198
+ platform: {
199
+ name: 'Heimdall Tools',
200
+ release: package_json_1.version,
201
+ target_id: {
202
+ path: 'Benchmark.platform.idref'
203
+ }
204
+ },
205
+ version: package_json_1.version,
206
+ statistics: {},
207
+ profiles: [
208
+ {
209
+ name: { path: 'Benchmark.id' },
210
+ version: { path: 'Benchmark.style' },
211
+ title: { path: ['Benchmark.title.text', 'Benchmark.title'] },
212
+ maintainer: {
213
+ path: 'Benchmark.reference.publisher'
214
+ },
215
+ summary: {
216
+ path: ['Benchmark.description.text', 'Benchmark.description'],
217
+ transformer: parseHtml
218
+ },
219
+ description: {
220
+ path: 'Benchmark',
221
+ transformer: (input) => {
222
+ const descriptionPaths = [
223
+ ['description.text'],
224
+ ['front-matter'],
225
+ ['metadata'],
226
+ ['model'],
227
+ ['plain-text'],
228
+ ['rear-matter'],
229
+ ['reference'],
230
+ ['status'],
231
+ ['version'],
232
+ ['xml:lang'],
233
+ ['xmlns:cdf', 'xmlns'],
234
+ ['xmlns:dc'],
235
+ ['xmlns:dsi'],
236
+ ['xsi:schemaLocation'],
237
+ ['TestResult.benchmark'],
238
+ ['TestResult.start-time'],
239
+ ['TestResult.end-time'],
240
+ ['TestResult.id'],
241
+ ['TestResult.identity'],
242
+ ['TestResult.organization'],
243
+ ['TestResult.platform.idref'],
244
+ ['TestResult.profile.idref'],
245
+ ['TestResult.score'],
246
+ ['TestResult.set-value'],
247
+ ['TestResult.target'],
248
+ ['TestResult.target-address'],
249
+ ['TestResult.target-facts'],
250
+ ['TestResult.target-id-ref'],
251
+ ['TestResult.test-system'],
252
+ ['TestResult.title'],
253
+ ['TestResult.version']
254
+ ];
255
+ const fullDescription = {};
256
+ for (const paths of descriptionPaths) {
257
+ for (const path of paths) {
258
+ const item = _.get(input, path);
259
+ if (item !== undefined) {
260
+ if (typeof item === 'string') {
261
+ fullDescription[path] = parseHtml(item);
262
+ }
263
+ else {
264
+ fullDescription[path] = item;
242
265
  }
243
266
  }
244
267
  }
245
- return JSON.stringify(fullDescription, null, 2);
246
268
  }
247
- },
248
- license: { path: 'Benchmark.notice.id' },
249
- copyright: {
250
- path: 'Benchmark.metadata.creator'
251
- },
252
- copyright_email: 'disa.stig_spt@mail.mil',
253
- supports: [],
254
- attributes: [],
255
- groups: [],
256
- status: 'loaded',
257
- controls: [
258
- {
259
- path: 'Benchmark',
260
- pathTransform: getRulesInBenchmark,
261
- key: 'id',
262
- tags: {
263
- cci: {
264
- path: ['ident', 'reference'],
265
- transformer: extractCci
266
- },
267
- nist: {
268
- path: ['ident', 'reference'],
269
- transformer: nistTag
270
- },
271
- severity: { path: 'severity' },
272
- description: {
273
- path: ['description.text', 'description'],
274
- transformer: (description) => (0, base_converter_1.parseHtml)(_.get((0, base_converter_1.parseXml)(description), 'VulnDiscussion', description))
275
- },
276
- group_id: { path: 'group.id' },
277
- group_title: { path: ['group.title.text', 'group.title'] },
278
- group_description: {
279
- path: ['group.description.text', 'group.description'],
280
- transformer: (description) => (0, base_converter_1.parseHtml)(_.get((0, base_converter_1.parseXml)(description), 'GroupDescription', description))
281
- },
282
- rule_id: { path: 'id' },
283
- check: {
284
- path: 'check',
285
- transformer: (data) => JSON.stringify(data, null, 2)
286
- },
287
- fix_id: { path: 'fix.id' },
288
- fixtext_fixref: {
289
- path: ['fixtext.fixref.text', 'fixtext.fixref'],
290
- transformer: (text) => (0, base_converter_1.parseHtml)(text) || undefined
291
- },
292
- ident: {
293
- path: 'ident',
294
- transformer: (text) => text || undefined
295
- },
296
- reference: {
297
- path: 'reference',
298
- transformer: (data) => ({
299
- references: data
300
- })
301
- },
302
- selected: { path: 'selected' },
303
- weight: { path: 'weight' },
304
- profiles: [
305
- {
306
- path: ['profiles'],
307
- id: { path: ['id'] },
308
- description: {
309
- path: ['description.text', 'description'],
310
- transformer: (description) => (0, base_converter_1.parseHtml)(_.get((0, base_converter_1.parseXml)(description), 'ProfileDescription', description))
311
- },
312
- title: { path: ['title.text', 'title'] }
313
- }
314
- ],
315
- rule_result: {
316
- path: ['ruleResult']
317
- },
318
- value: {
319
- path: ['values'],
320
- transformer: (values) => asArray(values).map((value) => ({
321
- title: _.get(value, 'title.text') || _.get(value, 'title'),
322
- description: (0, base_converter_1.parseHtml)(_.get(value, 'description.text') ||
323
- _.get(value, 'description')),
324
- warning: (0, base_converter_1.parseHtml)(_.get(value, 'warning.text') || _.get(value, 'warning')),
325
- value: _.get(value, 'value'),
326
- Id: _.get(value, 'Id'),
327
- id: _.get(value, 'id'),
328
- type: _.get(value, 'type'),
329
- interactive: _.get(value, 'interactive')
330
- }))
331
- },
269
+ return JSON.stringify(fullDescription, null, 2);
270
+ }
271
+ },
272
+ license: { path: 'Benchmark.notice.id' },
273
+ copyright: {
274
+ path: 'Benchmark.metadata.creator'
275
+ },
276
+ copyright_email: 'disa.stig_spt@mail.mil', // this should only be specified if that email address is in Benchmark.description
277
+ supports: [],
278
+ attributes: [],
279
+ groups: [],
280
+ status: 'loaded',
281
+ controls: [
282
+ {
283
+ path: 'Benchmark',
284
+ pathTransform: getRulesInBenchmark,
285
+ key: 'id',
286
+ tags: {
287
+ cci: {
288
+ path: ['ident', 'reference'],
289
+ transformer: extractCci
290
+ },
291
+ nist: {
292
+ path: ['ident', 'reference'],
293
+ transformer: nistTag
294
+ },
295
+ severity: { path: 'severity' },
296
+ description: {
297
+ path: ['description.text', 'description'],
298
+ transformer: (description) => parseHtml(_.get((0, base_converter_1.parseXml)(description), 'VulnDiscussion', description))
299
+ },
300
+ group_id: { path: 'group.id' },
301
+ group_title: { path: ['group.title.text', 'group.title'] },
302
+ group_description: {
303
+ path: ['group.description.text', 'group.description'],
304
+ transformer: (description) => parseHtml(_.get((0, base_converter_1.parseXml)(description), 'GroupDescription', description))
305
+ },
306
+ rule_id: { path: 'id' },
307
+ check: {
308
+ path: 'check',
309
+ transformer: (data) => JSON.stringify(data, null, 2)
310
+ },
311
+ fix_id: { path: 'fix.id' },
312
+ fixtext_fixref: {
313
+ path: ['fixtext.fixref.text', 'fixtext.fixref'],
314
+ transformer: (text) => parseHtml(text) || undefined
315
+ },
316
+ ident: {
317
+ path: 'ident',
318
+ transformer: (text) => text || undefined
319
+ },
320
+ reference: {
321
+ path: 'reference',
332
322
  transformer: (data) => ({
333
- ...(0, global_1.conditionallyProvideAttribute)('version', _.get(data, 'version.text'), _.has(data, 'version.text'))
323
+ references: data
334
324
  })
335
325
  },
336
- refs: [
326
+ selected: { path: 'selected' },
327
+ weight: { path: 'weight' },
328
+ profiles: [
337
329
  {
338
- path: 'reference',
339
- transformer: (data) => ({
340
- ref: _.has(data, 'publisher') ||
341
- _.has(data, 'identifier') ||
342
- _.has(data, 'type')
343
- ? [
344
- {
345
- ...(0, global_1.conditionallyProvideAttribute)('text', _.get(data, 'text'), _.has(data, 'text')),
346
- ...(0, global_1.conditionallyProvideAttribute)('publisher', _.get(data, 'publisher'), _.has(data, 'publisher')),
347
- ...(0, global_1.conditionallyProvideAttribute)('identifier', _.get(data, 'identifier'), _.has(data, 'identifier')),
348
- ...(0, global_1.conditionallyProvideAttribute)('type', _.get(data, 'type'), _.has(data, 'type'))
349
- }
350
- ]
351
- : _.has(data, 'text')
352
- ? _.get(data, 'text')
353
- : undefined,
354
- ...(0, global_1.conditionallyProvideAttribute)('url', _.get(data, 'href'), _.has(data, 'href') && _.get(data, 'href') !== '')
355
- })
330
+ path: ['profiles'],
331
+ id: { path: ['id'] },
332
+ description: {
333
+ path: ['description.text', 'description'],
334
+ transformer: (description) => parseHtml(_.get((0, base_converter_1.parseXml)(description), 'ProfileDescription', description))
335
+ },
336
+ title: { path: ['title.text', 'title'] }
356
337
  }
357
338
  ],
358
- source_location: {},
359
- title: { path: ['title.text', 'title'] },
360
- id: { path: ['id'] },
361
- desc: {
362
- path: ['description.text', 'description'],
363
- transformer: (description) => (0, base_converter_1.parseHtml)(_.get((0, base_converter_1.parseXml)(description), 'ProfileDescription', description))
339
+ rule_result: {
340
+ path: ['ruleResult']
364
341
  },
365
- descriptions: [
366
- {
367
- path: ['check.check-content-ref.name'],
368
- transformer: (data) => ({
369
- data: asArray(data).join('\n'),
370
- label: 'check'
371
- })
372
- },
373
- {
374
- path: ['fixtext.text', 'fix.text'],
375
- transformer: (data) => ({
376
- data: asArray(data).map(base_converter_1.parseHtml).join('\n'),
377
- label: 'fix'
378
- })
379
- },
380
- {
381
- path: ['rationale.text'],
382
- transformer: (data) => ({
383
- data: asArray(data).map(base_converter_1.parseHtml).join('\n'),
384
- label: 'rationale'
385
- })
386
- },
387
- {
388
- path: ['warning.text'],
389
- transformer: (data) => ({
390
- data: asArray(data).map(base_converter_1.parseHtml).join('\n'),
391
- label: 'warning'
392
- })
393
- }
394
- ],
395
- impact: {
396
- transformer: (vulnerability) => {
397
- const ruleResult = _.get(vulnerability, 'ruleResult');
398
- if (ruleResult) {
399
- const result = _.get(ruleResult, 'result');
400
- if (result === 'notselected' ||
401
- result === 'notapplicable' ||
402
- result === 'informational') {
403
- return 0;
404
- }
405
- }
406
- return (0, base_converter_1.impactMapping)(IMPACT_MAPPING)(_.get(vulnerability, 'severity'));
407
- }
342
+ value: {
343
+ path: ['values'],
344
+ transformer: (values) => asArray(values).map((value) => ({
345
+ title: _.get(value, 'title.text') || _.get(value, 'title'),
346
+ description: parseHtml(_.get(value, 'description.text') ||
347
+ _.get(value, 'description')),
348
+ warning: parseHtml(_.get(value, 'warning.text') || _.get(value, 'warning')),
349
+ value: _.get(value, 'value'),
350
+ Id: _.get(value, 'Id'),
351
+ id: _.get(value, 'id'),
352
+ type: _.get(value, 'type'),
353
+ interactive: _.get(value, 'interactive')
354
+ }))
408
355
  },
409
- code: {
410
- transformer: (vulnerability) => JSON.stringify(_.omit(vulnerability, [
411
- 'group',
412
- 'ruleResult',
413
- 'profiles',
414
- 'values'
415
- ]), null, 2)
356
+ transformer: (data) => ({
357
+ ...(0, global_1.conditionallyProvideAttribute)('version', _.get(data, 'version.text'), _.has(data, 'version.text'))
358
+ })
359
+ },
360
+ refs: [
361
+ {
362
+ path: 'reference',
363
+ transformer: (data) => ({
364
+ ref: _.has(data, 'publisher') ||
365
+ _.has(data, 'identifier') ||
366
+ _.has(data, 'type')
367
+ ? [
368
+ {
369
+ ...(0, global_1.conditionallyProvideAttribute)('text', _.get(data, 'text'), _.has(data, 'text')),
370
+ ...(0, global_1.conditionallyProvideAttribute)('publisher', _.get(data, 'publisher'), _.has(data, 'publisher')),
371
+ ...(0, global_1.conditionallyProvideAttribute)('identifier', _.get(data, 'identifier'), _.has(data, 'identifier')),
372
+ ...(0, global_1.conditionallyProvideAttribute)('type', _.get(data, 'type'), _.has(data, 'type'))
373
+ }
374
+ ]
375
+ : _.has(data, 'text')
376
+ ? _.get(data, 'text')
377
+ : undefined,
378
+ ...(0, global_1.conditionallyProvideAttribute)('url', _.get(data, 'href'), _.has(data, 'href') && _.get(data, 'href') !== '')
379
+ })
380
+ }
381
+ ],
382
+ source_location: {},
383
+ title: { path: ['title.text', 'title'] },
384
+ id: { path: ['id'] },
385
+ desc: {
386
+ path: ['description.text', 'description'],
387
+ transformer: (description) => parseHtml(_.get((0, base_converter_1.parseXml)(description), 'ProfileDescription', description))
388
+ },
389
+ descriptions: [
390
+ {
391
+ path: ['check.check-content-ref.name'],
392
+ transformer: (data) => ({
393
+ data: asArray(data).join('\n'),
394
+ label: 'check'
395
+ })
416
396
  },
417
- results: [
418
- {
419
- status: {
420
- path: ['ruleResult.result'],
421
- transformer: getStatus
422
- },
423
- code_desc: {
424
- path: ['description.text', 'description'],
425
- transformer: (description) => (0, base_converter_1.parseHtml)(_.get((0, base_converter_1.parseXml)(description), 'VulnDiscussion', description))
426
- },
427
- start_time: {
428
- path: ['ruleResult.time']
397
+ {
398
+ path: ['fixtext.text', 'fix.text'],
399
+ transformer: (data) => ({
400
+ data: asArray(data).map(parseHtml).join('\n'),
401
+ label: 'fix'
402
+ })
403
+ },
404
+ {
405
+ path: ['rationale.text'],
406
+ transformer: (data) => ({
407
+ data: asArray(data).map(parseHtml).join('\n'),
408
+ label: 'rationale'
409
+ })
410
+ },
411
+ {
412
+ path: ['warning.text'],
413
+ transformer: (data) => ({
414
+ data: asArray(data).map(parseHtml).join('\n'),
415
+ label: 'warning'
416
+ })
417
+ }
418
+ ],
419
+ impact: {
420
+ transformer: (vulnerability) => {
421
+ const ruleResult = _.get(vulnerability, 'ruleResult');
422
+ if (ruleResult) {
423
+ const result = _.get(ruleResult, 'result');
424
+ if (result === 'notselected' ||
425
+ result === 'notapplicable' ||
426
+ result === 'informational') {
427
+ return 0;
429
428
  }
430
429
  }
431
- ]
432
- }
433
- ],
434
- sha256: ''
435
- }
436
- ],
437
- passthrough: {
438
- transformer: (data) => {
439
- let auxData = _.get(data, 'Benchmark');
440
- if (auxData) {
441
- auxData = _.omit(auxData, [
442
- 'id',
443
- 'xml:lang',
444
- 'style',
445
- 'title',
446
- 'description',
447
- 'notice',
448
- 'front-matter',
449
- 'reference',
450
- 'platform',
451
- 'version',
452
- 'model',
453
- 'Group',
454
- 'TestResult'
455
- ]);
456
- }
457
- auxData = { Benchmark: auxData };
458
- return {
459
- auxiliary_data: [
430
+ return (0, base_converter_1.impactMapping)(IMPACT_MAPPING)(_.get(vulnerability, 'severity'));
431
+ }
432
+ },
433
+ code: {
434
+ transformer: (vulnerability) => JSON.stringify(_.omit(vulnerability, [
435
+ 'group',
436
+ 'ruleResult',
437
+ 'profiles',
438
+ 'values'
439
+ ]), null, 2)
440
+ },
441
+ results: [
460
442
  {
461
- name: 'XCCDF',
462
- data: auxData
443
+ status: {
444
+ path: ['ruleResult.result'],
445
+ transformer: getStatus
446
+ },
447
+ code_desc: {
448
+ path: ['description.text', 'description'],
449
+ transformer: (description) => parseHtml(_.get((0, base_converter_1.parseXml)(description), 'VulnDiscussion', description))
450
+ },
451
+ start_time: {
452
+ path: ['ruleResult.time']
453
+ }
463
454
  }
464
- ],
465
- ...(this.withRaw && { raw: data })
466
- };
455
+ ]
456
+ }
457
+ ],
458
+ sha256: ''
459
+ }
460
+ ],
461
+ passthrough: {
462
+ transformer: (data) => {
463
+ let auxData = _.get(data, 'Benchmark');
464
+ if (auxData) {
465
+ auxData = _.omit(auxData, [
466
+ 'id',
467
+ 'xml:lang',
468
+ 'style',
469
+ 'title',
470
+ 'description',
471
+ 'notice',
472
+ 'front-matter',
473
+ 'reference',
474
+ 'platform',
475
+ 'version',
476
+ 'model',
477
+ 'Group',
478
+ 'TestResult'
479
+ ]);
467
480
  }
481
+ auxData = { Benchmark: auxData };
482
+ return {
483
+ auxiliary_data: [
484
+ {
485
+ name: 'XCCDF',
486
+ data: auxData
487
+ }
488
+ ],
489
+ ...(this.withRaw && { raw: data })
490
+ };
468
491
  }
469
- };
492
+ }
493
+ };
494
+ constructor(scapXml, withRaw = false) {
495
+ super((0, base_converter_1.parseXml)(scapXml, {
496
+ stopNodes: [
497
+ '*.fixtext',
498
+ '*.fix',
499
+ '*.rationale',
500
+ '*.warning',
501
+ '*.title',
502
+ '*.description'
503
+ ]
504
+ }));
470
505
  this.withRaw = withRaw;
471
506
  }
472
507
  }