@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
@@ -72,3 +72,4 @@ export interface IOutputData {
72
72
  exportType: string;
73
73
  icons: IIcons;
74
74
  }
75
+ //# sourceMappingURL=html-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-types.d.ts","sourceRoot":"","sources":["../../../../src/converters-from-hdf/html/html-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,qBAAqB,EAAC,MAAM,UAAU,CAAC;AAG/C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,qBAAqB,GAAG;QAAC,OAAO,EAAE,OAAO,EAAE,CAAA;KAAC,GAAG;QACvD,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG;QAAC,YAAY,EAAE,aAAa,CAAA;KAAC,GAAG;QAAC,cAAc,EAAE,eAAe,CAAA;KAAC,GAAG;QACtE,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC,EAAE,CAAC;CACN;AAGD,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;IACxB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,3 +1,4 @@
1
1
  "use strict";
2
+ // Interface for HTML template data rendering
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  //# sourceMappingURL=html-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html-types.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/html/html-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"html-types.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/html/html-types.ts"],"names":[],"mappings":";AAAA,6CAA6C","sourcesContent":["// Interface for HTML template data rendering\n\nimport {ContextualizedControl} from 'inspecjs';\n\n// Basic info for exported files; lvl 1\nexport interface IFileInfo {\n filename: string;\n toolVersion: string;\n platform: string;\n duration: string;\n}\n\n// Info used for profile status reporting; lvl 1\nexport interface IStatistics {\n passed: number;\n failed: number;\n notApplicable: number;\n notReviewed: number;\n profileError: number;\n totalResults: number;\n passedTests: number;\n passingTestsFailedResult: number;\n failedTests: number;\n totalTests: number;\n}\n\n// Info used for profile result severity reporting; lvl 1\nexport interface ISeverity {\n none: number;\n low: number;\n medium: number;\n high: number;\n critical: number;\n}\n\n// Info used for profile compliance reporting; lvl 1\nexport interface ICompliance {\n level: string;\n color: string;\n}\n\n// Container for specific info on each result; lvl 2\nexport interface IDetail {\n name: string;\n value: string;\n class?: string;\n}\n\n// Status of a specific result; lvl 2\nexport interface IResultStatus {\n status: string;\n icon: string;\n}\n\n// Severity of a specific result; lvl 2\nexport interface IResultSeverity {\n severity: string;\n icon: string;\n}\n\n// Container for all results; lvl 1\nexport interface IResultSet {\n filename: string;\n fileID: string;\n results: (ContextualizedControl & {details: IDetail[]} & {\n resultID: string;\n } & {resultStatus: IResultStatus} & {resultSeverity: IResultSeverity} & {\n controlTags: string[];\n })[];\n}\n\n// All used icons; lvl 1\nexport interface IIcons {\n [key: string]: string;\n}\n\n// Top level interface; lvl 0\nexport interface IOutputData {\n tailwindStyles: string;\n tailwindElements: string;\n files: IFileInfo[];\n statistics: IStatistics;\n severity: ISeverity;\n compliance: ICompliance;\n resultSets: IResultSet[];\n showResultSets: boolean;\n showCode: boolean;\n exportType: string;\n icons: IIcons;\n}\n"]}
@@ -12,7 +12,7 @@ type ProcessedData = {
12
12
  fileID: string;
13
13
  filteredControls?: string[];
14
14
  };
15
- declare enum FileExportTypes {
15
+ export declare enum FileExportTypes {
16
16
  Executive = "Executive",
17
17
  Manager = "Manager",
18
18
  Administrator = "Administrator"
@@ -36,6 +36,7 @@ export declare class FromHDFToHTMLMapper {
36
36
  };
37
37
  iconDataToSVG(iconData: string, fill: string, widthPx?: number, heightPx?: number, description?: string): string;
38
38
  replaceIllegalCharacters(text: string): string;
39
- toHTML(path: string): Promise<string>;
39
+ toHTML(): Promise<string>;
40
40
  }
41
41
  export {};
42
+ //# sourceMappingURL=reverse-html-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-html-mapper.d.ts","sourceRoot":"","sources":["../../../../src/converters-from-hdf/html/reverse-html-mapper.ts"],"names":[],"mappings":"AASA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EAIzB,MAAM,UAAU,CAAC;AAMlB,OAAO,EACL,OAAO,EACP,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,cAAc,CAAC;AAEtB,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAGF,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,aAAa,kBAAkB;CAChC;AAOD,qBAAa,mBAAmB;IAI9B,OAAO,CAAC,aAAa,CAyBnB;IAGF,UAAU,EAAE,WAAW,CA2DrB;gBAEU,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,eAAe;IA4C3D,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe;IAwD5D,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,EAAE;IA6GlD,gBAAgB,CACd,MAAM,EAAE,qBAAqB,EAC7B,YAAY,EAAE,qBAAqB,EAAE,GACpC,qBAAqB,GAAG;QAAC,OAAO,EAAE,OAAO,EAAE,CAAA;KAAC,GAAG;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG;QACrE,YAAY,EAAE,aAAa,CAAC;KAC7B,GAAG;QAAC,cAAc,EAAE,eAAe,CAAA;KAAC,GAAG;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAC;IA6H/D,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,SAAK,EACZ,QAAQ,SAAK,EACb,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM;IAcT,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAWxC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;CAYhC"}
@@ -1,106 +1,120 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
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
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.FromHDFToHTMLMapper = void 0;
6
+ exports.FromHDFToHTMLMapper = exports.FileExportTypes = void 0;
30
7
  const js_1 = require("@mdi/js");
31
- const axios_1 = __importDefault(require("axios"));
32
8
  const inspecjs_1 = require("inspecjs");
33
- const _ = __importStar(require("lodash"));
9
+ const lodash_1 = __importDefault(require("lodash"));
34
10
  const mustache_1 = __importDefault(require("mustache"));
11
+ const sanitize_html_1 = __importDefault(require("sanitize-html"));
35
12
  const compliance_1 = require("../../utils/compliance");
13
+ const embedded_assets_1 = require("./embedded-assets");
14
+ // All selectable export types for an HTML export
36
15
  var FileExportTypes;
37
16
  (function (FileExportTypes) {
38
17
  FileExportTypes["Executive"] = "Executive";
39
18
  FileExportTypes["Manager"] = "Manager";
40
19
  FileExportTypes["Administrator"] = "Administrator";
41
- })(FileExportTypes || (FileExportTypes = {}));
20
+ })(FileExportTypes || (exports.FileExportTypes = FileExportTypes = {}));
21
+ // Illegal characters which are not accepted by HTML id attribute
22
+ // Generally includes everything that is not alphanumeric or characters [-,_]
23
+ // Expand as needed
42
24
  const ILLEGAL_CHARACTER_SET = [['\\.', '___PERIOD___']];
43
25
  class FromHDFToHTMLMapper {
26
+ // Generated injectable HTML for icons
27
+ // NOTE: Icons colors should align with Vue colors used in general dashboard from apps/frontend/src/store/color_hack.ts
28
+ // ARIA NOTE: Since icons are supplementary, descriptions are not required
29
+ iconHTMLStore = {
30
+ // Passed; green
31
+ circleCheck: this.iconDataToSVG(js_1.mdiCheckCircle, 'rgb(76, 176, 79)'),
32
+ // Failed; red
33
+ circleCross: this.iconDataToSVG(js_1.mdiCloseCircle, 'rgb(243, 67, 53)'),
34
+ // Not applicable; blue
35
+ circleMinus: this.iconDataToSVG(js_1.mdiMinusCircle, 'rgb(3, 169, 244)'),
36
+ // Not reviewed; yellow
37
+ circleAlert: this.iconDataToSVG(js_1.mdiAlertCircle, 'rgb(254, 153, 0)'),
38
+ // Profile error; purple
39
+ triangleAlert: this.iconDataToSVG(js_1.mdiAlert, 'rgb(121, 134, 203)'),
40
+ // Total count; black
41
+ squareEqual: this.iconDataToSVG(js_1.mdiEqualBox, 'black'),
42
+ // No severity; blue
43
+ circleNone: this.iconDataToSVG(js_1.mdiCircle, 'rgb(3, 169, 244)'),
44
+ // Low severity; yellow
45
+ circleLow: this.iconDataToSVG(js_1.mdiCircle, 'rgb(255, 235, 59)'),
46
+ // Medium severity; orange
47
+ circleMedium: this.iconDataToSVG(js_1.mdiCircle, 'rgb(255, 152, 0)'),
48
+ // High severity; deep orange
49
+ circleHigh: this.iconDataToSVG(js_1.mdiCircle, 'rgb(255, 87, 34)'),
50
+ // Critical severity; red
51
+ circleCritical: this.iconDataToSVG(js_1.mdiCircle, 'rgb(244, 67, 54)'),
52
+ // Generic circle
53
+ circleWhite: this.iconDataToSVG(js_1.mdiCircle, 'rgb(0, 0, 0)')
54
+ };
55
+ // Default attributes
56
+ outputData = {
57
+ tailwindStyles: '',
58
+ tailwindElements: '',
59
+ // Used for profile status reporting
60
+ statistics: {
61
+ passed: 0,
62
+ failed: 0,
63
+ notApplicable: 0,
64
+ notReviewed: 0,
65
+ profileError: 0,
66
+ totalResults: 0,
67
+ passedTests: 0,
68
+ passingTestsFailedResult: 0,
69
+ failedTests: 0,
70
+ totalTests: 0
71
+ },
72
+ // Used for profile severity reporting
73
+ severity: {
74
+ none: 0,
75
+ low: 0,
76
+ medium: 0,
77
+ high: 0,
78
+ critical: 0
79
+ },
80
+ // Used for profile compliance reporting
81
+ compliance: {
82
+ level: '',
83
+ color: ''
84
+ },
85
+ files: [],
86
+ resultSets: [],
87
+ showResultSets: false,
88
+ showCode: false,
89
+ exportType: '',
90
+ // Series of icons used for profile-related detail reports
91
+ icons: {
92
+ // Passed
93
+ circleCheck: this.iconHTMLStore.circleCheck,
94
+ // Failed
95
+ circleCross: this.iconHTMLStore.circleCross,
96
+ // Not applicable
97
+ circleMinus: this.iconHTMLStore.circleMinus,
98
+ // Not reviewed
99
+ circleAlert: this.iconHTMLStore.circleAlert,
100
+ // Profile error
101
+ triangleAlert: this.iconHTMLStore.triangleAlert,
102
+ // Total count
103
+ squareEqual: this.iconHTMLStore.squareEqual,
104
+ // No severity
105
+ circleNone: this.iconHTMLStore.circleNone,
106
+ // Low severity
107
+ circleLow: this.iconHTMLStore.circleLow,
108
+ // Medium severity
109
+ circleMedium: this.iconHTMLStore.circleMedium,
110
+ // High severity
111
+ circleHigh: this.iconHTMLStore.circleHigh,
112
+ // Critical severity
113
+ circleCritical: this.iconHTMLStore.circleCritical
114
+ }
115
+ };
44
116
  constructor(files, exportType) {
45
- this.iconHTMLStore = {
46
- circleCheck: this.iconDataToSVG(js_1.mdiCheckCircle, 'rgb(76, 176, 79)'),
47
- circleCross: this.iconDataToSVG(js_1.mdiCloseCircle, 'rgb(243, 67, 53)'),
48
- circleMinus: this.iconDataToSVG(js_1.mdiMinusCircle, 'rgb(3, 169, 244)'),
49
- circleAlert: this.iconDataToSVG(js_1.mdiAlertCircle, 'rgb(254, 153, 0)'),
50
- triangleAlert: this.iconDataToSVG(js_1.mdiAlert, 'rgb(121, 134, 203)'),
51
- squareEqual: this.iconDataToSVG(js_1.mdiEqualBox, 'black'),
52
- circleNone: this.iconDataToSVG(js_1.mdiCircle, 'rgb(3, 169, 244)'),
53
- circleLow: this.iconDataToSVG(js_1.mdiCircle, 'rgb(255, 235, 59)'),
54
- circleMedium: this.iconDataToSVG(js_1.mdiCircle, 'rgb(255, 152, 0)'),
55
- circleHigh: this.iconDataToSVG(js_1.mdiCircle, 'rgb(255, 87, 34)'),
56
- circleCritical: this.iconDataToSVG(js_1.mdiCircle, 'rgb(244, 67, 54)'),
57
- circleWhite: this.iconDataToSVG(js_1.mdiCircle, 'rgb(0, 0, 0)')
58
- };
59
- this.outputData = {
60
- tailwindStyles: '',
61
- tailwindElements: '',
62
- statistics: {
63
- passed: 0,
64
- failed: 0,
65
- notApplicable: 0,
66
- notReviewed: 0,
67
- profileError: 0,
68
- totalResults: 0,
69
- passedTests: 0,
70
- passingTestsFailedResult: 0,
71
- failedTests: 0,
72
- totalTests: 0
73
- },
74
- severity: {
75
- none: 0,
76
- low: 0,
77
- medium: 0,
78
- high: 0,
79
- critical: 0
80
- },
81
- compliance: {
82
- level: '',
83
- color: ''
84
- },
85
- files: [],
86
- resultSets: [],
87
- showResultSets: false,
88
- showCode: false,
89
- exportType: '',
90
- icons: {
91
- circleCheck: this.iconHTMLStore.circleCheck,
92
- circleCross: this.iconHTMLStore.circleCross,
93
- circleMinus: this.iconHTMLStore.circleMinus,
94
- circleAlert: this.iconHTMLStore.circleAlert,
95
- triangleAlert: this.iconHTMLStore.triangleAlert,
96
- squareEqual: this.iconHTMLStore.squareEqual,
97
- circleNone: this.iconHTMLStore.circleNone,
98
- circleLow: this.iconHTMLStore.circleLow,
99
- circleMedium: this.iconHTMLStore.circleMedium,
100
- circleHigh: this.iconHTMLStore.circleHigh,
101
- circleCritical: this.iconHTMLStore.circleCritical
102
- }
103
- };
117
+ // Set html element visibility based on export type
104
118
  switch (exportType) {
105
119
  case FileExportTypes.Executive:
106
120
  this.outputData.showResultSets = false;
@@ -114,10 +128,13 @@ class FromHDFToHTMLMapper {
114
128
  this.outputData.showResultSets = true;
115
129
  this.outputData.showCode = true;
116
130
  }
131
+ // Set default attribute values in preparation for value assignment
117
132
  this.outputData.files = [];
118
133
  this.outputData.resultSets = [];
134
+ // Fill out data template for html file using received hdf file(s)
119
135
  for (const file of files) {
120
- if (_.isString(file.data)) {
136
+ // Check if provided data is string typed
137
+ if (lodash_1.default.isString(file.data)) {
121
138
  const contextualizedFile = (0, inspecjs_1.convertFileContextual)(file.data);
122
139
  if (!(0, inspecjs_1.isContextualizedEvaluation)(contextualizedFile)) {
123
140
  throw new Error('Input string was not an HDF ExecJSON');
@@ -132,14 +149,19 @@ class FromHDFToHTMLMapper {
132
149
  }, exportType);
133
150
  }
134
151
  }
152
+ // Pulls and sets high level attributes of outputData object from file data
135
153
  addFiledata(file, exportType) {
154
+ // Set file profile data
136
155
  this.outputData.files.push({
137
156
  filename: file.fileName,
138
- toolVersion: _.get(file.data, 'data.version'),
139
- platform: _.get(file.data, 'data.platform.name'),
140
- duration: _.get(file.data, 'data.statistics.duration')
157
+ toolVersion: lodash_1.default.get(file.data, 'data.version'),
158
+ platform: lodash_1.default.get(file.data, 'data.platform.name'),
159
+ duration: lodash_1.default.get(file.data, 'data.statistics.duration')
141
160
  });
161
+ // Set export type
162
+ // Controls what components are shown in HTML
142
163
  this.outputData.exportType = exportType;
164
+ // Pull out results from file
143
165
  const allResultLevels = [];
144
166
  if (file.filteredControls === undefined) {
145
167
  file.data.contains.map((profile) => {
@@ -151,7 +173,7 @@ class FromHDFToHTMLMapper {
151
173
  else {
152
174
  file.data.contains.flatMap((profile) => {
153
175
  profile.contains.flatMap((result) => {
154
- for (const element of file.filteredControls) {
176
+ for (const element of (file.filteredControls ?? [])) {
155
177
  if (element === result.data.id) {
156
178
  allResultLevels.push(result);
157
179
  }
@@ -159,13 +181,17 @@ class FromHDFToHTMLMapper {
159
181
  });
160
182
  });
161
183
  }
184
+ // Begin filling out outpuData object to pass into HTML template
185
+ // Set high level generalized profile details
162
186
  this.addProfileDetails(allResultLevels);
187
+ // Set specific result details
163
188
  this.outputData.resultSets.push({
164
189
  filename: file.fileName,
165
190
  fileID: file.fileID,
166
191
  results: allResultLevels.map((result) => this.addResultDetails(result, allResultLevels.filter((searchingResult) => searchingResult.data.id === result.data.id)))
167
192
  });
168
193
  }
194
+ // Set attributes for high level generalized profile details
169
195
  addProfileDetails(results) {
170
196
  let passed = 0;
171
197
  let failed = 0;
@@ -180,6 +206,7 @@ class FromHDFToHTMLMapper {
180
206
  let passedTests = 0;
181
207
  let failedTests = 0;
182
208
  let passingTestsFailedResult = 0;
209
+ // Count out statuses and sub-statuses
183
210
  for (const result of results) {
184
211
  switch (result.root.hdf.status) {
185
212
  case 'Passed':
@@ -200,6 +227,7 @@ class FromHDFToHTMLMapper {
200
227
  case 'Profile Error':
201
228
  profileError++;
202
229
  }
230
+ // Count out severities
203
231
  switch (result.root.hdf.severity) {
204
232
  case 'none':
205
233
  none++;
@@ -217,6 +245,7 @@ class FromHDFToHTMLMapper {
217
245
  critical++;
218
246
  }
219
247
  }
248
+ // Set following attributes from existing file data
220
249
  this.outputData.statistics = {
221
250
  passed: this.outputData.statistics.passed + passed,
222
251
  failed: this.outputData.statistics.failed + failed,
@@ -239,20 +268,29 @@ class FromHDFToHTMLMapper {
239
268
  high: this.outputData.severity.high + high,
240
269
  critical: this.outputData.severity.critical + critical
241
270
  };
271
+ // Calculate & set compliance level and color from result statuses
272
+ // Set default compliance level and color
242
273
  this.outputData.compliance.level = '0.00%';
243
274
  this.outputData.compliance.color = 'low';
275
+ // If results exist, calculate compliance level
244
276
  if (this.outputData.statistics.totalResults > 0) {
277
+ // Formula: compliance = Passed/(Passed + Failed + Not Reviewed + Profile Error) * 100
245
278
  const complianceLevel = (0, compliance_1.formatCompliance)((this.outputData.statistics.passed /
246
279
  (this.outputData.statistics.totalResults -
247
280
  this.outputData.statistics.notApplicable)) *
248
281
  100);
282
+ // Set compliance level
249
283
  this.outputData.compliance.level = complianceLevel.includes('NaN')
250
284
  ? '0.00%'
251
285
  : complianceLevel;
286
+ // Determine color of compliance level
287
+ // High compliance is green, medium is yellow, low is red
252
288
  this.outputData.compliance.color = (0, compliance_1.translateCompliance)(complianceLevel);
253
289
  }
254
290
  }
291
+ // Sets attributes for each specific result
255
292
  addResultDetails(result, resultLevels) {
293
+ // Check status of individual result to assign corresponding icon
256
294
  let statusColor;
257
295
  switch (result.root.hdf.status) {
258
296
  case 'Passed':
@@ -273,7 +311,9 @@ class FromHDFToHTMLMapper {
273
311
  default:
274
312
  statusColor = this.iconHTMLStore.circleWhite;
275
313
  }
276
- const severity = _.capitalize(result.root.hdf.severity);
314
+ // Severity is recorded as all lowercase by default; for aesthetic purposes, uppercase the first letter
315
+ const severity = lodash_1.default.capitalize(result.root.hdf.severity);
316
+ // Check severity of individual result to assign corresponding icon
277
317
  let severityColor;
278
318
  switch (result.root.hdf.severity) {
279
319
  case 'none':
@@ -294,12 +334,15 @@ class FromHDFToHTMLMapper {
294
334
  default:
295
335
  severityColor = this.iconHTMLStore.circleWhite;
296
336
  }
297
- const allControls = _.filter([result.hdf.rawNistTags, result.hdf.wraps.tags.cci], Boolean).flat();
337
+ // Grab NIST & CCI controls
338
+ const allControls = [result.hdf.rawNistTags, result.hdf.wraps.tags.cci].filter(Boolean).flat();
339
+ // Remove `Rev_4` item and replace `unmapped` with proper `UM-1` naming
298
340
  const filteredControls = allControls
299
341
  .map((control) => (control === 'unmapped' ? 'UM-1' : control))
300
342
  .filter((control) => control !== 'Rev_4');
343
+ // Assign attributes
301
344
  return {
302
- ..._.set(result, 'hdf.segments', [].concat.apply([], resultLevels.map((resultLevel) => resultLevel.hdf.segments || []))),
345
+ ...lodash_1.default.set(result, 'hdf.segments', [].concat.apply([], resultLevels.map((resultLevel) => resultLevel.hdf.segments || []))),
303
346
  full_code: result.full_code,
304
347
  details: [
305
348
  {
@@ -346,7 +389,7 @@ class FromHDFToHTMLMapper {
346
389
  name: 'Fix Text',
347
390
  value: result.hdf.descriptions.fix || result.data.tags.fix
348
391
  }
349
- ].filter((v) => v.value),
392
+ ].filter((v) => v.value).map((s) => ({ ...s, value: (0, sanitize_html_1.default)(s.value, { disallowedTagsMode: "escape" }) })),
350
393
  resultID: this.replaceIllegalCharacters(result.hdf.wraps.id),
351
394
  resultStatus: {
352
395
  status: result.root.hdf.status,
@@ -359,34 +402,35 @@ class FromHDFToHTMLMapper {
359
402
  controlTags: filteredControls
360
403
  };
361
404
  }
405
+ // Generate SVG HTML for icons for injection into export template
362
406
  iconDataToSVG(iconData, fill, widthPx = 24, heightPx = 24, description) {
363
407
  let imgLabel;
408
+ // Check if description is included in function call
409
+ // If so, include description as title/aria-label
364
410
  if (description) {
365
411
  imgLabel = `title="${description}" aria-label="${description}"`;
412
+ // Else hide aria
366
413
  }
367
414
  else {
368
415
  imgLabel = `aria-hidden="true"`;
369
416
  }
370
417
  return `<svg style="width:${widthPx}px; height:${heightPx}px" viewBox="0 0 ${widthPx} ${heightPx}" role="img" ${imgLabel}><path fill="${fill}" d="${iconData}"/></svg>`;
371
418
  }
419
+ // Replace all found illegal characters in string with compliant string equivalent
372
420
  replaceIllegalCharacters(text) {
373
421
  for (const illegalCharacter of ILLEGAL_CHARACTER_SET) {
374
422
  text = text.replace(new RegExp(`${illegalCharacter[0]}`, 'g'), illegalCharacter[1]);
375
423
  }
376
424
  return text;
377
425
  }
378
- async toHTML(path) {
379
- const templateRequest = axios_1.default.get(`${path}template.html`);
380
- const tailwindStylesRequest = axios_1.default.get(`${path}style.css`);
381
- const tailwindElementsRequest = axios_1.default.get(`${path}tw-elements.min.js`);
382
- const responses = await axios_1.default.all([
383
- templateRequest,
384
- tailwindStylesRequest,
385
- tailwindElementsRequest
386
- ]);
387
- const template = responses[0].data;
388
- this.outputData.tailwindStyles = responses[1].data;
389
- this.outputData.tailwindElements = responses[2].data.replace('//# sourceMappingURL=tw-elements.umd.min.js.map', '');
426
+ // Prompt HTML generation from data pulled from file during constructor initialization
427
+ async toHTML() {
428
+ // Pull export template + styles and create outputData object containing data to fill template with
429
+ const template = embedded_assets_1.html;
430
+ this.outputData.tailwindStyles = embedded_assets_1.css;
431
+ // Remove source map reference in TW Elements library
432
+ this.outputData.tailwindElements = embedded_assets_1.js.replace('//# sourceMappingURL=tw-elements.umd.min.js.map', '');
433
+ // Render template and return generated HTML file
390
434
  return mustache_1.default.render(template, this.outputData);
391
435
  }
392
436
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reverse-html-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/html/reverse-html-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reverse-html-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/html/reverse-html-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n mdiAlert,\n mdiAlertCircle,\n mdiCheckCircle,\n mdiCircle,\n mdiCloseCircle,\n mdiEqualBox,\n mdiMinusCircle\n} from '@mdi/js';\nimport {\n ContextualizedControl,\n ContextualizedEvaluation,\n convertFileContextual,\n HDFControlSegment,\n isContextualizedEvaluation\n} from 'inspecjs';\nimport _ from 'lodash';\nimport Mustache from 'mustache';\nimport sanitize from 'sanitize-html';\nimport {formatCompliance, translateCompliance} from '../../utils/compliance';\nimport {html, js, css} from './embedded-assets';\nimport {\n IDetail,\n IOutputData,\n IResultSeverity,\n IResultStatus\n} from './html-types';\n\ntype InputData = {\n data: ContextualizedEvaluation | string;\n fileName: string;\n fileID: string;\n filteredControls?: string[];\n};\n\ntype ProcessedData = {\n data: ContextualizedEvaluation;\n fileName: string;\n fileID: string;\n filteredControls?: string[];\n};\n\n// All selectable export types for an HTML export\nexport enum FileExportTypes {\n Executive = 'Executive',\n Manager = 'Manager',\n Administrator = 'Administrator'\n}\n\n// Illegal characters which are not accepted by HTML id attribute\n// Generally includes everything that is not alphanumeric or characters [-,_]\n// Expand as needed\nconst ILLEGAL_CHARACTER_SET = [['\\\\.', '___PERIOD___']];\n\nexport class FromHDFToHTMLMapper {\n // Generated injectable HTML for icons\n // NOTE: Icons colors should align with Vue colors used in general dashboard from apps/frontend/src/store/color_hack.ts\n // ARIA NOTE: Since icons are supplementary, descriptions are not required\n private iconHTMLStore = {\n // Passed; green\n circleCheck: this.iconDataToSVG(mdiCheckCircle, 'rgb(76, 176, 79)'),\n // Failed; red\n circleCross: this.iconDataToSVG(mdiCloseCircle, 'rgb(243, 67, 53)'),\n // Not applicable; blue\n circleMinus: this.iconDataToSVG(mdiMinusCircle, 'rgb(3, 169, 244)'),\n // Not reviewed; yellow\n circleAlert: this.iconDataToSVG(mdiAlertCircle, 'rgb(254, 153, 0)'),\n // Profile error; purple\n triangleAlert: this.iconDataToSVG(mdiAlert, 'rgb(121, 134, 203)'),\n // Total count; black\n squareEqual: this.iconDataToSVG(mdiEqualBox, 'black'),\n // No severity; blue\n circleNone: this.iconDataToSVG(mdiCircle, 'rgb(3, 169, 244)'),\n // Low severity; yellow\n circleLow: this.iconDataToSVG(mdiCircle, 'rgb(255, 235, 59)'),\n // Medium severity; orange\n circleMedium: this.iconDataToSVG(mdiCircle, 'rgb(255, 152, 0)'),\n // High severity; deep orange\n circleHigh: this.iconDataToSVG(mdiCircle, 'rgb(255, 87, 34)'),\n // Critical severity; red\n circleCritical: this.iconDataToSVG(mdiCircle, 'rgb(244, 67, 54)'),\n // Generic circle\n circleWhite: this.iconDataToSVG(mdiCircle, 'rgb(0, 0, 0)')\n };\n\n // Default attributes\n outputData: IOutputData = {\n tailwindStyles: '',\n tailwindElements: '',\n // Used for profile status reporting\n statistics: {\n passed: 0,\n failed: 0,\n notApplicable: 0,\n notReviewed: 0,\n profileError: 0,\n totalResults: 0,\n passedTests: 0,\n passingTestsFailedResult: 0,\n failedTests: 0,\n totalTests: 0\n },\n // Used for profile severity reporting\n severity: {\n none: 0,\n low: 0,\n medium: 0,\n high: 0,\n critical: 0\n },\n // Used for profile compliance reporting\n compliance: {\n level: '',\n color: ''\n },\n files: [],\n resultSets: [],\n showResultSets: false,\n showCode: false,\n exportType: '',\n // Series of icons used for profile-related detail reports\n icons: {\n // Passed\n circleCheck: this.iconHTMLStore.circleCheck,\n // Failed\n circleCross: this.iconHTMLStore.circleCross,\n // Not applicable\n circleMinus: this.iconHTMLStore.circleMinus,\n // Not reviewed\n circleAlert: this.iconHTMLStore.circleAlert,\n // Profile error\n triangleAlert: this.iconHTMLStore.triangleAlert,\n // Total count\n squareEqual: this.iconHTMLStore.squareEqual,\n // No severity\n circleNone: this.iconHTMLStore.circleNone,\n // Low severity\n circleLow: this.iconHTMLStore.circleLow,\n // Medium severity\n circleMedium: this.iconHTMLStore.circleMedium,\n // High severity\n circleHigh: this.iconHTMLStore.circleHigh,\n // Critical severity\n circleCritical: this.iconHTMLStore.circleCritical\n }\n };\n\n constructor(files: InputData[], exportType: FileExportTypes) {\n // Set html element visibility based on export type\n switch (exportType) {\n case FileExportTypes.Executive:\n this.outputData.showResultSets = false;\n this.outputData.showCode = false;\n break;\n case FileExportTypes.Manager:\n this.outputData.showResultSets = true;\n this.outputData.showCode = false;\n break;\n case FileExportTypes.Administrator:\n this.outputData.showResultSets = true;\n this.outputData.showCode = true;\n }\n\n // Set default attribute values in preparation for value assignment\n this.outputData.files = [];\n this.outputData.resultSets = [];\n\n // Fill out data template for html file using received hdf file(s)\n for (const file of files) {\n // Check if provided data is string typed\n if (_.isString(file.data)) {\n const contextualizedFile = convertFileContextual(file.data);\n if (!isContextualizedEvaluation(contextualizedFile)) {\n throw new Error('Input string was not an HDF ExecJSON');\n }\n file.data = contextualizedFile;\n }\n\n this.addFiledata(\n {\n data: file.data,\n fileName: file.fileName,\n fileID: file.fileID,\n filteredControls: file.filteredControls\n },\n exportType\n );\n }\n }\n\n // Pulls and sets high level attributes of outputData object from file data\n addFiledata(file: ProcessedData, exportType: FileExportTypes) {\n // Set file profile data\n this.outputData.files.push({\n filename: file.fileName,\n toolVersion: _.get(file.data, 'data.version') as unknown as string,\n platform: _.get(file.data, 'data.platform.name') as unknown as string,\n duration: _.get(\n file.data,\n 'data.statistics.duration'\n ) as unknown as string\n });\n\n // Set export type\n // Controls what components are shown in HTML\n this.outputData.exportType = exportType;\n\n // Pull out results from file\n const allResultLevels: ContextualizedControl[] = [];\n if (file.filteredControls === undefined) {\n file.data.contains.map((profile) => {\n profile.contains.map((result) => {\n allResultLevels.push(result);\n });\n });\n } else {\n file.data.contains.flatMap((profile) => {\n profile.contains.flatMap((result) => {\n for (const element of (file.filteredControls ?? [])) {\n if (element === result.data.id) {\n allResultLevels.push(result);\n }\n }\n });\n });\n }\n\n // Begin filling out outpuData object to pass into HTML template\n // Set high level generalized profile details\n this.addProfileDetails(allResultLevels);\n\n // Set specific result details\n this.outputData.resultSets.push({\n filename: file.fileName,\n fileID: file.fileID,\n results: allResultLevels.map((result) =>\n this.addResultDetails(\n result,\n allResultLevels.filter(\n (searchingResult) => searchingResult.data.id === result.data.id\n )\n )\n )\n });\n }\n\n // Set attributes for high level generalized profile details\n addProfileDetails(results: ContextualizedControl[]) {\n let passed = 0;\n let failed = 0;\n let notApplicable = 0;\n let notReviewed = 0;\n let profileError = 0;\n let none = 0;\n let low = 0;\n let medium = 0;\n let high = 0;\n let critical = 0;\n let passedTests = 0;\n let failedTests = 0;\n let passingTestsFailedResult = 0;\n // Count out statuses and sub-statuses\n for (const result of results) {\n switch (result.root.hdf.status) {\n case 'Passed':\n passed++;\n passedTests += (result.root.hdf.segments || []).length;\n break;\n case 'Failed':\n failed++;\n passingTestsFailedResult += (result.root.hdf.segments || []).filter(\n (subStatus) => subStatus.status === 'passed'\n ).length;\n failedTests += (result.root.hdf.segments || []).filter(\n (subStatus) => subStatus.status === 'failed'\n ).length;\n break;\n case 'Not Applicable':\n notApplicable++;\n break;\n case 'Not Reviewed':\n notReviewed++;\n break;\n case 'Profile Error':\n profileError++;\n }\n // Count out severities\n switch (result.root.hdf.severity) {\n case 'none':\n none++;\n break;\n case 'low':\n low++;\n break;\n case 'medium':\n medium++;\n break;\n case 'high':\n high++;\n break;\n case 'critical':\n critical++;\n }\n }\n\n // Set following attributes from existing file data\n this.outputData.statistics = {\n passed: this.outputData.statistics.passed + passed,\n failed: this.outputData.statistics.failed + failed,\n notApplicable: this.outputData.statistics.notApplicable + notApplicable,\n notReviewed: this.outputData.statistics.notReviewed + notReviewed,\n profileError: this.outputData.statistics.profileError + profileError,\n totalResults: this.outputData.statistics.totalResults + results.length,\n passedTests: this.outputData.statistics.passedTests + passedTests,\n passingTestsFailedResult:\n this.outputData.statistics.passingTestsFailedResult +\n passingTestsFailedResult,\n failedTests: this.outputData.statistics.failedTests + failedTests,\n totalTests:\n this.outputData.statistics.totalTests +\n passingTestsFailedResult +\n failedTests\n };\n this.outputData.severity = {\n none: this.outputData.severity.none + none,\n low: this.outputData.severity.low + low,\n medium: this.outputData.severity.medium + medium,\n high: this.outputData.severity.high + high,\n critical: this.outputData.severity.critical + critical\n };\n\n // Calculate & set compliance level and color from result statuses\n // Set default compliance level and color\n this.outputData.compliance.level = '0.00%';\n this.outputData.compliance.color = 'low';\n\n // If results exist, calculate compliance level\n if (this.outputData.statistics.totalResults > 0) {\n // Formula: compliance = Passed/(Passed + Failed + Not Reviewed + Profile Error) * 100\n const complianceLevel = formatCompliance(\n (this.outputData.statistics.passed /\n (this.outputData.statistics.totalResults -\n this.outputData.statistics.notApplicable)) *\n 100\n );\n // Set compliance level\n this.outputData.compliance.level = complianceLevel.includes('NaN')\n ? '0.00%'\n : complianceLevel;\n // Determine color of compliance level\n // High compliance is green, medium is yellow, low is red\n this.outputData.compliance.color = translateCompliance(complianceLevel);\n }\n }\n\n // Sets attributes for each specific result\n addResultDetails(\n result: ContextualizedControl,\n resultLevels: ContextualizedControl[]\n ): ContextualizedControl & {details: IDetail[]} & {resultID: string} & {\n resultStatus: IResultStatus;\n } & {resultSeverity: IResultSeverity} & {controlTags: string[]} {\n // Check status of individual result to assign corresponding icon\n let statusColor;\n switch (result.root.hdf.status) {\n case 'Passed':\n statusColor = this.iconHTMLStore.circleCheck;\n break;\n case 'Failed':\n statusColor = this.iconHTMLStore.circleCross;\n break;\n case 'Not Applicable':\n statusColor = this.iconHTMLStore.circleMinus;\n break;\n case 'Not Reviewed':\n statusColor = this.iconHTMLStore.circleAlert;\n break;\n case 'Profile Error':\n statusColor = this.iconHTMLStore.triangleAlert;\n break;\n default:\n statusColor = this.iconHTMLStore.circleWhite;\n }\n\n // Severity is recorded as all lowercase by default; for aesthetic purposes, uppercase the first letter\n const severity = _.capitalize(result.root.hdf.severity);\n // Check severity of individual result to assign corresponding icon\n let severityColor;\n switch (result.root.hdf.severity) {\n case 'none':\n severityColor = this.iconHTMLStore.circleNone;\n break;\n case 'low':\n severityColor = this.iconHTMLStore.circleLow;\n break;\n case 'medium':\n severityColor = this.iconHTMLStore.circleMedium;\n break;\n case 'high':\n severityColor = this.iconHTMLStore.circleHigh;\n break;\n case 'critical':\n severityColor = this.iconHTMLStore.circleCritical;\n break;\n default:\n severityColor = this.iconHTMLStore.circleWhite;\n }\n\n // Grab NIST & CCI controls\n const allControls = [result.hdf.rawNistTags, result.hdf.wraps.tags.cci].filter(Boolean).flat();\n // Remove `Rev_4` item and replace `unmapped` with proper `UM-1` naming\n const filteredControls = allControls\n .map((control) => (control === 'unmapped' ? 'UM-1' : control))\n .filter((control) => control !== 'Rev_4');\n\n // Assign attributes\n return {\n ..._.set(\n result,\n 'hdf.segments',\n ([] as HDFControlSegment[]).concat.apply(\n [],\n resultLevels.map((resultLevel) => resultLevel.hdf.segments || [])\n )\n ),\n full_code: result.full_code,\n details: [\n {\n name: 'Control',\n value: result.data.id\n },\n {\n name: 'Title',\n value: result.data.title\n },\n {\n name: 'Caveat',\n value: result.hdf.descriptions.caveat\n },\n {\n name: 'Desc',\n value: result.data.desc\n },\n {\n name: 'Rationale',\n value: result.hdf.descriptions.rationale\n },\n {\n name: 'Justification',\n value: result.hdf.descriptions.justification\n },\n {\n name: 'Severity',\n value: result.root.hdf.severity\n },\n {\n name: 'Impact',\n value: result.data.impact\n },\n {\n name: 'Nist Controls',\n value: result.hdf.rawNistTags.join(', ')\n },\n {\n name: 'Check Text',\n value: result.hdf.descriptions.check || result.data.tags.check\n },\n {\n name: 'Fix Text',\n value: result.hdf.descriptions.fix || result.data.tags.fix\n }\n ].filter((v) => v.value).map((s) => ({...s, value: sanitize(s.value, {disallowedTagsMode: \"escape\"})})),\n resultID: this.replaceIllegalCharacters(result.hdf.wraps.id),\n resultStatus: {\n status: result.root.hdf.status,\n icon: statusColor\n },\n resultSeverity: {\n severity: severity,\n icon: severityColor\n },\n controlTags: filteredControls\n };\n }\n\n // Generate SVG HTML for icons for injection into export template\n iconDataToSVG(\n iconData: string,\n fill: string,\n widthPx = 24,\n heightPx = 24,\n description?: string\n ): string {\n let imgLabel;\n // Check if description is included in function call\n // If so, include description as title/aria-label\n if (description) {\n imgLabel = `title=\"${description}\" aria-label=\"${description}\"`;\n // Else hide aria\n } else {\n imgLabel = `aria-hidden=\"true\"`;\n }\n return `<svg style=\"width:${widthPx}px; height:${heightPx}px\" viewBox=\"0 0 ${widthPx} ${heightPx}\" role=\"img\" ${imgLabel}><path fill=\"${fill}\" d=\"${iconData}\"/></svg>`;\n }\n\n // Replace all found illegal characters in string with compliant string equivalent\n replaceIllegalCharacters(text: string): string {\n for (const illegalCharacter of ILLEGAL_CHARACTER_SET) {\n text = text.replace(\n new RegExp(`${illegalCharacter[0]}`, 'g'),\n illegalCharacter[1]\n );\n }\n return text;\n }\n\n // Prompt HTML generation from data pulled from file during constructor initialization\n async toHTML(): Promise<string> {\n // Pull export template + styles and create outputData object containing data to fill template with\n const template = html;\n this.outputData.tailwindStyles = css;\n // Remove source map reference in TW Elements library\n this.outputData.tailwindElements = js.replace(\n '//# sourceMappingURL=tw-elements.umd.min.js.map',\n ''\n );\n // Render template and return generated HTML file\n return Mustache.render(template, this.outputData);\n }\n}\n"]}
@@ -8,3 +8,4 @@ export declare class FromAnyBaseConverter extends FromHdfBaseConverter {
8
8
  [K in keyof T]: V;
9
9
  };
10
10
  }
11
+ //# sourceMappingURL=reverse-any-base-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-any-base-converter.d.ts","sourceRoot":"","sources":["../../../src/converters-from-hdf/reverse-any-base-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,oBAAoB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG7E,qBAAa,oBAAqB,SAAQ,oBAAoB;IACpD,IAAI,EAAE,GAAG,CAAC;gBAEN,IAAI,EAAE,GAAG,EAAE,eAAe,UAAQ;IAK9C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC;IAO5E,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EACnC,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAChC;SAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;KAAC;CAKvB"}
@@ -2,13 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromAnyBaseConverter = void 0;
4
4
  const reverse_base_converter_1 = require("./reverse-base-converter");
5
+ // Base converter used to support conversions from HDF to Any Format
5
6
  class FromAnyBaseConverter extends reverse_base_converter_1.FromHdfBaseConverter {
6
7
  constructor(data, collapseResults = false) {
7
8
  super(data, collapseResults);
8
9
  }
10
+ // Called over and over to iterate through objects assigned to keys too
9
11
  convertInternal(file, fields) {
10
12
  return this.objectMap(fields, (v) => this.evaluate(file, v));
11
13
  }
14
+ // Preforms fn() on all entries inside the passed obj
12
15
  objectMap(obj, fn) {
13
16
  return Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, fn(v)]));
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reverse-any-base-converter.js","sourceRoot":"","sources":["../../../src/converters-from-hdf/reverse-any-base-converter.ts"],"names":[],"mappings":";;;AACA,qEAA6E;AAG7E,MAAa,oBAAqB,SAAQ,6CAAoB;IAG5D,YAAY,IAAS,EAAE,eAAe,GAAG,KAAK;QAC5C,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC/B,CAAC;IAGD,eAAe,CAAC,IAAY,EAAE,MAAW;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAwB,EAAE,EAAE,CACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CACvB,CAAC;IACJ,CAAC;IAGD,SAAS,CACP,GAAM,EACN,EAAiC;QAEjC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAwB,CAAC,CAAC,CAAC,CACjD,CAAC;IAC1B,CAAC;CACF;AAvBD,oDAuBC"}
1
+ {"version":3,"file":"reverse-any-base-converter.js","sourceRoot":"","sources":["../../../src/converters-from-hdf/reverse-any-base-converter.ts"],"names":[],"mappings":";;;AACA,qEAA6E;AAE7E,oEAAoE;AACpE,MAAa,oBAAqB,SAAQ,6CAAoB;IAG5D,YAAY,IAAS,EAAE,eAAe,GAAG,KAAK;QAC5C,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC/B,CAAC;IAED,uEAAuE;IACvE,eAAe,CAAC,IAAY,EAAE,MAAW;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAwB,EAAE,EAAE,CACzD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CACvB,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,SAAS,CACP,GAAM,EACN,EAAiC;QAEjC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAwB,CAAC,CAAC,CAAC,CACjD,CAAC;IAC1B,CAAC;CACF;AAvBD,oDAuBC","sourcesContent":["import {MappedReform, ObjectEntryValue} from '../base-converter';\nimport {FromHdfBaseConverter, ILookupPathFH} from './reverse-base-converter';\n\n// Base converter used to support conversions from HDF to Any Format\nexport class FromAnyBaseConverter extends FromHdfBaseConverter {\n declare data: any;\n\n constructor(data: any, collapseResults = false) {\n super(data, collapseResults);\n }\n\n // Called over and over to iterate through objects assigned to keys too\n convertInternal(file: object, fields: any): MappedReform<any, ILookupPathFH> {\n return this.objectMap(fields, (v: ObjectEntryValue<any>) =>\n this.evaluate(file, v)\n );\n }\n\n // Preforms fn() on all entries inside the passed obj\n objectMap<T extends Array<unknown>, V>(\n obj: T,\n fn: (v: ObjectEntryValue<T>) => V\n ): {[K in keyof T]: V} {\n return Object.fromEntries(\n Object.entries(obj).map(([k, v]) => [k, fn(v as ObjectEntryValue<T>)])\n ) as Record<keyof T, V>;\n }\n}\n"]}
@@ -23,3 +23,4 @@ export declare class FromHdfBaseConverter {
23
23
  handlePath(file: object, path: string): unknown;
24
24
  hasPath(file: object, path: string): boolean;
25
25
  }
26
+ //# sourceMappingURL=reverse-base-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-base-converter.d.ts","sourceRoot":"","sources":["../../../src/converters-from-hdf/reverse-base-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAElC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IACrD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAGD,qBAAa,oBAAoB;IAC/B,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/C,eAAe,EAAE,OAAO,CAAC;gBAEb,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,UAAQ;IAK7D,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,IAAI;IAKhE,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC;IAQ3E,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EACnC,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAChC;SAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;KAAC;IAOtB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,EACvC,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GACd,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC;IAsChD,WAAW,CAAC,CAAC,SAAS,aAAa,EACjC,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,GAC1B,KAAK,CAAC,CAAC,CAAC;IAmDX,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAO/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;CAO7C"}