@mitre/hdf-converters 2.12.6 → 2.14.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 +21 -42
  19. package/lib/src/anchore-grype-mapper.d.ts +1 -0
  20. package/lib/src/anchore-grype-mapper.d.ts.map +1 -0
  21. package/lib/src/anchore-grype-mapper.js +7 -1
  22. package/lib/src/anchore-grype-mapper.js.map +1 -1
  23. package/lib/src/asff-mapper/asff-mapper.d.ts +1 -0
  24. package/lib/src/asff-mapper/asff-mapper.d.ts.map +1 -0
  25. package/lib/src/asff-mapper/asff-mapper.js +274 -237
  26. package/lib/src/asff-mapper/asff-mapper.js.map +1 -1
  27. package/lib/src/asff-mapper/case-cms-inspec.d.ts +1 -0
  28. package/lib/src/asff-mapper/case-cms-inspec.d.ts.map +1 -0
  29. package/lib/src/asff-mapper/case-cms-inspec.js +18 -9
  30. package/lib/src/asff-mapper/case-cms-inspec.js.map +1 -1
  31. package/lib/src/asff-mapper/case-firewall-manager.d.ts +1 -0
  32. package/lib/src/asff-mapper/case-firewall-manager.d.ts.map +1 -0
  33. package/lib/src/asff-mapper/case-firewall-manager.js +18 -9
  34. package/lib/src/asff-mapper/case-firewall-manager.js.map +1 -1
  35. package/lib/src/asff-mapper/case-guardduty.d.ts +1 -0
  36. package/lib/src/asff-mapper/case-guardduty.d.ts.map +1 -0
  37. package/lib/src/asff-mapper/case-guardduty.js +18 -9
  38. package/lib/src/asff-mapper/case-guardduty.js.map +1 -1
  39. package/lib/src/asff-mapper/case-inspector.d.ts +1 -0
  40. package/lib/src/asff-mapper/case-inspector.d.ts.map +1 -0
  41. package/lib/src/asff-mapper/case-inspector.js +18 -9
  42. package/lib/src/asff-mapper/case-inspector.js.map +1 -1
  43. package/lib/src/asff-mapper/case-previously-hdf.d.ts +1 -0
  44. package/lib/src/asff-mapper/case-previously-hdf.d.ts.map +1 -0
  45. package/lib/src/asff-mapper/case-previously-hdf.js +21 -10
  46. package/lib/src/asff-mapper/case-previously-hdf.js.map +1 -1
  47. package/lib/src/asff-mapper/case-prowler.d.ts +1 -0
  48. package/lib/src/asff-mapper/case-prowler.d.ts.map +1 -0
  49. package/lib/src/asff-mapper/case-prowler.js +19 -9
  50. package/lib/src/asff-mapper/case-prowler.js.map +1 -1
  51. package/lib/src/asff-mapper/case-security-hub.d.ts +1 -0
  52. package/lib/src/asff-mapper/case-security-hub.d.ts.map +1 -0
  53. package/lib/src/asff-mapper/case-security-hub.js +24 -9
  54. package/lib/src/asff-mapper/case-security-hub.js.map +1 -1
  55. package/lib/src/asff-mapper/case-trivy.d.ts +1 -0
  56. package/lib/src/asff-mapper/case-trivy.d.ts.map +1 -0
  57. package/lib/src/asff-mapper/case-trivy.js +18 -9
  58. package/lib/src/asff-mapper/case-trivy.js.map +1 -1
  59. package/lib/src/aws-config-mapper.d.ts +1 -0
  60. package/lib/src/aws-config-mapper.d.ts.map +1 -0
  61. package/lib/src/aws-config-mapper.js +29 -7
  62. package/lib/src/aws-config-mapper.js.map +1 -1
  63. package/lib/src/base-converter.d.ts +11 -2
  64. package/lib/src/base-converter.d.ts.map +1 -0
  65. package/lib/src/base-converter.js +55 -27
  66. package/lib/src/base-converter.js.map +1 -1
  67. package/lib/src/burpsuite-mapper.d.ts +7 -0
  68. package/lib/src/burpsuite-mapper.d.ts.map +1 -0
  69. package/lib/src/burpsuite-mapper.js +115 -88
  70. package/lib/src/burpsuite-mapper.js.map +1 -1
  71. package/lib/src/checkov-mapper.d.ts +67 -0
  72. package/lib/src/checkov-mapper.d.ts.map +1 -0
  73. package/lib/src/checkov-mapper.js +240 -0
  74. package/lib/src/checkov-mapper.js.map +1 -0
  75. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts +17 -0
  76. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts.map +1 -0
  77. package/lib/src/ckl-mapper/checklist-jsonix-converter.js +38 -4
  78. package/lib/src/ckl-mapper/checklist-jsonix-converter.js.map +1 -1
  79. package/lib/src/ckl-mapper/checklist-mapper.d.ts +35 -0
  80. package/lib/src/ckl-mapper/checklist-mapper.d.ts.map +1 -0
  81. package/lib/src/ckl-mapper/checklist-mapper.js +262 -151
  82. package/lib/src/ckl-mapper/checklist-mapper.js.map +1 -1
  83. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts +1 -0
  84. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts.map +1 -0
  85. package/lib/src/ckl-mapper/checklist-metadata-utils.js +32 -15
  86. package/lib/src/ckl-mapper/checklist-metadata-utils.js.map +1 -1
  87. package/lib/src/ckl-mapper/checklistJsonix.d.ts +6 -0
  88. package/lib/src/ckl-mapper/checklistJsonix.d.ts.map +1 -0
  89. package/lib/src/ckl-mapper/checklistJsonix.js +8 -8
  90. package/lib/src/ckl-mapper/checklistJsonix.js.map +1 -1
  91. package/lib/src/ckl-mapper/jsonixMapping.d.ts +5 -0
  92. package/lib/src/ckl-mapper/jsonixMapping.d.ts.map +1 -0
  93. package/lib/src/ckl-mapper/jsonixMapping.js +4 -0
  94. package/lib/src/ckl-mapper/jsonixMapping.js.map +1 -1
  95. package/lib/src/converters-from-hdf/asff/asff-types.d.ts +1 -0
  96. package/lib/src/converters-from-hdf/asff/asff-types.d.ts.map +1 -0
  97. package/lib/src/converters-from-hdf/asff/asff-types.js +1 -0
  98. package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -1
  99. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +1 -0
  100. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts.map +1 -0
  101. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +110 -84
  102. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -1
  103. package/lib/src/converters-from-hdf/asff/transformers.d.ts +1 -0
  104. package/lib/src/converters-from-hdf/asff/transformers.d.ts.map +1 -0
  105. package/lib/src/converters-from-hdf/asff/transformers.js +68 -38
  106. package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -1
  107. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts +1 -0
  108. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts.map +1 -0
  109. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js +54 -28
  110. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js.map +1 -1
  111. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts +4 -0
  112. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts.map +1 -0
  113. package/lib/src/converters-from-hdf/html/embedded-assets.js +8 -0
  114. package/lib/src/converters-from-hdf/html/embedded-assets.js.map +1 -0
  115. package/lib/src/converters-from-hdf/html/html-types.d.ts +1 -0
  116. package/lib/src/converters-from-hdf/html/html-types.d.ts.map +1 -0
  117. package/lib/src/converters-from-hdf/html/html-types.js +1 -0
  118. package/lib/src/converters-from-hdf/html/html-types.js.map +1 -1
  119. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts +3 -2
  120. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts.map +1 -0
  121. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js +156 -125
  122. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js.map +1 -1
  123. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts +1 -0
  124. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts.map +1 -0
  125. package/lib/src/converters-from-hdf/reverse-any-base-converter.js +3 -0
  126. package/lib/src/converters-from-hdf/reverse-any-base-converter.js.map +1 -1
  127. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +1 -0
  128. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts.map +1 -0
  129. package/lib/src/converters-from-hdf/reverse-base-converter.js +29 -9
  130. package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -1
  131. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts +1 -0
  132. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts.map +1 -0
  133. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js +39 -14
  134. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js.map +1 -1
  135. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts +1 -0
  136. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts.map +1 -0
  137. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js +32 -10
  138. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js.map +1 -1
  139. package/lib/src/conveyor-mapper.d.ts +1 -0
  140. package/lib/src/conveyor-mapper.d.ts.map +1 -0
  141. package/lib/src/conveyor-mapper.js +85 -40
  142. package/lib/src/conveyor-mapper.js.map +1 -1
  143. package/lib/src/cyclonedx-sbom-mapper.d.ts +1 -0
  144. package/lib/src/cyclonedx-sbom-mapper.d.ts.map +1 -0
  145. package/lib/src/cyclonedx-sbom-mapper.js +368 -294
  146. package/lib/src/cyclonedx-sbom-mapper.js.map +1 -1
  147. package/lib/src/dbprotect-mapper.d.ts +1 -0
  148. package/lib/src/dbprotect-mapper.d.ts.map +1 -0
  149. package/lib/src/dbprotect-mapper.js +72 -84
  150. package/lib/src/dbprotect-mapper.js.map +1 -1
  151. package/lib/src/dependency-track-mapper.d.ts +1 -0
  152. package/lib/src/dependency-track-mapper.d.ts.map +1 -0
  153. package/lib/src/dependency-track-mapper.js +144 -130
  154. package/lib/src/dependency-track-mapper.js.map +1 -1
  155. package/lib/src/fortify-mapper.d.ts +7 -0
  156. package/lib/src/fortify-mapper.d.ts.map +1 -0
  157. package/lib/src/fortify-mapper.js +118 -92
  158. package/lib/src/fortify-mapper.js.map +1 -1
  159. package/lib/src/gosec-mapper.d.ts +1 -0
  160. package/lib/src/gosec-mapper.d.ts.map +1 -0
  161. package/lib/src/gosec-mapper.js +90 -72
  162. package/lib/src/gosec-mapper.js.map +1 -1
  163. package/lib/src/ionchannel-mapper.d.ts +1 -0
  164. package/lib/src/ionchannel-mapper.d.ts.map +1 -0
  165. package/lib/src/ionchannel-mapper.js +130 -110
  166. package/lib/src/ionchannel-mapper.js.map +1 -1
  167. package/lib/src/jfrog-xray-mapper.d.ts +1 -0
  168. package/lib/src/jfrog-xray-mapper.d.ts.map +1 -0
  169. package/lib/src/jfrog-xray-mapper.js +92 -78
  170. package/lib/src/jfrog-xray-mapper.js.map +1 -1
  171. package/lib/src/jsonix-converter.d.ts +1 -0
  172. package/lib/src/jsonix-converter.d.ts.map +1 -0
  173. package/lib/src/jsonix-converter.js +1 -0
  174. package/lib/src/jsonix-converter.js.map +1 -1
  175. package/lib/src/jsonix-intermediate-converter.d.ts +1 -0
  176. package/lib/src/jsonix-intermediate-converter.d.ts.map +1 -0
  177. package/lib/src/jsonix-intermediate-converter.js.map +1 -1
  178. package/lib/src/mappings/AwsConfigMapping.d.ts +1 -0
  179. package/lib/src/mappings/AwsConfigMapping.d.ts.map +1 -0
  180. package/lib/src/mappings/AwsConfigMapping.js +19 -9
  181. package/lib/src/mappings/AwsConfigMapping.js.map +1 -1
  182. package/lib/src/mappings/AwsConfigMappingData.d.ts +1 -0
  183. package/lib/src/mappings/AwsConfigMappingData.d.ts.map +1 -0
  184. package/lib/src/mappings/AwsConfigMappingData.js.map +1 -1
  185. package/lib/src/mappings/CciNistMapping.d.ts +1 -0
  186. package/lib/src/mappings/CciNistMapping.d.ts.map +1 -0
  187. package/lib/src/mappings/CciNistMapping.js +4 -0
  188. package/lib/src/mappings/CciNistMapping.js.map +1 -1
  189. package/lib/src/mappings/CciNistMappingData.d.ts +1 -0
  190. package/lib/src/mappings/CciNistMappingData.d.ts.map +1 -0
  191. package/lib/src/mappings/CciNistMappingData.js.map +1 -1
  192. package/lib/src/mappings/CciNistMappingItem.d.ts +1 -0
  193. package/lib/src/mappings/CciNistMappingItem.d.ts.map +1 -0
  194. package/lib/src/mappings/CciNistMappingItem.js +2 -0
  195. package/lib/src/mappings/CciNistMappingItem.js.map +1 -1
  196. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts +5 -0
  197. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts.map +1 -0
  198. package/lib/src/mappings/CheckovToCciAndNistMappingData.js +2695 -0
  199. package/lib/src/mappings/CheckovToCciAndNistMappingData.js.map +1 -0
  200. package/lib/src/mappings/CweNistMapping.d.ts +1 -0
  201. package/lib/src/mappings/CweNistMapping.d.ts.map +1 -0
  202. package/lib/src/mappings/CweNistMapping.js +1 -0
  203. package/lib/src/mappings/CweNistMapping.js.map +1 -1
  204. package/lib/src/mappings/CweNistMappingData.d.ts +1 -0
  205. package/lib/src/mappings/CweNistMappingData.d.ts.map +1 -0
  206. package/lib/src/mappings/CweNistMappingData.js.map +1 -1
  207. package/lib/src/mappings/CweNistMappingItem.d.ts +1 -0
  208. package/lib/src/mappings/CweNistMappingItem.d.ts.map +1 -0
  209. package/lib/src/mappings/CweNistMappingItem.js +5 -0
  210. package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
  211. package/lib/src/mappings/NessusPluginNistMappingData.d.ts +1 -0
  212. package/lib/src/mappings/NessusPluginNistMappingData.d.ts.map +1 -0
  213. package/lib/src/mappings/NessusPluginNistMappingData.js.map +1 -1
  214. package/lib/src/mappings/NessusPluginsNistMapping.d.ts +1 -0
  215. package/lib/src/mappings/NessusPluginsNistMapping.d.ts.map +1 -0
  216. package/lib/src/mappings/NessusPluginsNistMapping.js +1 -0
  217. package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
  218. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +1 -0
  219. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts.map +1 -0
  220. package/lib/src/mappings/NessusPluginsNistMappingItem.js +4 -0
  221. package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
  222. package/lib/src/mappings/NiktoNistMapping.d.ts +1 -0
  223. package/lib/src/mappings/NiktoNistMapping.d.ts.map +1 -0
  224. package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
  225. package/lib/src/mappings/NiktoNistMappingData.d.ts +1 -0
  226. package/lib/src/mappings/NiktoNistMappingData.d.ts.map +1 -0
  227. package/lib/src/mappings/NiktoNistMappingData.js.map +1 -1
  228. package/lib/src/mappings/NiktoNistMappingItem.d.ts +1 -0
  229. package/lib/src/mappings/NiktoNistMappingItem.d.ts.map +1 -0
  230. package/lib/src/mappings/NiktoNistMappingItem.js +4 -0
  231. package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
  232. package/lib/src/mappings/NistCciMappingData.d.ts +1 -0
  233. package/lib/src/mappings/NistCciMappingData.d.ts.map +1 -0
  234. package/lib/src/mappings/NistCciMappingData.js.map +1 -1
  235. package/lib/src/mappings/OwaspNistMapping.d.ts +1 -0
  236. package/lib/src/mappings/OwaspNistMapping.d.ts.map +1 -0
  237. package/lib/src/mappings/OwaspNistMapping.js +18 -7
  238. package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
  239. package/lib/src/mappings/OwaspNistMappingData.d.ts +1 -0
  240. package/lib/src/mappings/OwaspNistMappingData.d.ts.map +1 -0
  241. package/lib/src/mappings/OwaspNistMappingData.js.map +1 -1
  242. package/lib/src/mappings/OwaspNistMappingItem.d.ts +1 -0
  243. package/lib/src/mappings/OwaspNistMappingItem.d.ts.map +1 -0
  244. package/lib/src/mappings/OwaspNistMappingItem.js +5 -0
  245. package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
  246. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +1 -0
  247. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts.map +1 -0
  248. package/lib/src/mappings/ScoutsuiteNistMapping.js +1 -0
  249. package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
  250. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts +1 -0
  251. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts.map +1 -0
  252. package/lib/src/mappings/ScoutsuiteNistMappingData.js.map +1 -1
  253. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +1 -0
  254. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts.map +1 -0
  255. package/lib/src/mappings/ScoutsuiteNistMappingItem.js +2 -0
  256. package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
  257. package/lib/src/msft-secure-score-mapper.d.ts +1 -0
  258. package/lib/src/msft-secure-score-mapper.d.ts.map +1 -0
  259. package/lib/src/msft-secure-score-mapper.js +202 -185
  260. package/lib/src/msft-secure-score-mapper.js.map +1 -1
  261. package/lib/src/nessus-mapper.d.ts +5 -3
  262. package/lib/src/nessus-mapper.d.ts.map +1 -0
  263. package/lib/src/nessus-mapper.js +135 -108
  264. package/lib/src/nessus-mapper.js.map +1 -1
  265. package/lib/src/netsparker-mapper.d.ts +7 -0
  266. package/lib/src/netsparker-mapper.d.ts.map +1 -0
  267. package/lib/src/netsparker-mapper.js +34 -9
  268. package/lib/src/netsparker-mapper.js.map +1 -1
  269. package/lib/src/neuvector-mapper.d.ts +1 -0
  270. package/lib/src/neuvector-mapper.d.ts.map +1 -0
  271. package/lib/src/neuvector-mapper.js +120 -117
  272. package/lib/src/neuvector-mapper.js.map +1 -1
  273. package/lib/src/nikto-mapper.d.ts +1 -0
  274. package/lib/src/nikto-mapper.d.ts.map +1 -0
  275. package/lib/src/nikto-mapper.js +85 -74
  276. package/lib/src/nikto-mapper.js.map +1 -1
  277. package/lib/src/prisma-mapper.d.ts +1 -0
  278. package/lib/src/prisma-mapper.d.ts.map +1 -0
  279. package/lib/src/prisma-mapper.js +138 -128
  280. package/lib/src/prisma-mapper.js.map +1 -1
  281. package/lib/src/sarif-mapper.d.ts +1 -0
  282. package/lib/src/sarif-mapper.d.ts.map +1 -0
  283. package/lib/src/sarif-mapper.js +116 -105
  284. package/lib/src/sarif-mapper.js.map +1 -1
  285. package/lib/src/scoutsuite-mapper.d.ts +1 -0
  286. package/lib/src/scoutsuite-mapper.d.ts.map +1 -0
  287. package/lib/src/scoutsuite-mapper.js +174 -163
  288. package/lib/src/scoutsuite-mapper.js.map +1 -1
  289. package/lib/src/snyk-mapper.d.ts +1 -0
  290. package/lib/src/snyk-mapper.d.ts.map +1 -0
  291. package/lib/src/snyk-mapper.js +112 -100
  292. package/lib/src/snyk-mapper.js.map +1 -1
  293. package/lib/src/sonarqube-mapper.d.ts +18 -5
  294. package/lib/src/sonarqube-mapper.d.ts.map +1 -0
  295. package/lib/src/sonarqube-mapper.js +525 -271
  296. package/lib/src/sonarqube-mapper.js.map +1 -1
  297. package/lib/src/splunk-mapper.d.ts +3 -2
  298. package/lib/src/splunk-mapper.d.ts.map +1 -0
  299. package/lib/src/splunk-mapper.js +69 -12
  300. package/lib/src/splunk-mapper.js.map +1 -1
  301. package/lib/src/trufflehog-mapper.d.ts +1 -0
  302. package/lib/src/trufflehog-mapper.d.ts.map +1 -0
  303. package/lib/src/trufflehog-mapper.js +72 -69
  304. package/lib/src/trufflehog-mapper.js.map +1 -1
  305. package/lib/src/twistlock-mapper.d.ts +1 -0
  306. package/lib/src/twistlock-mapper.d.ts.map +1 -0
  307. package/lib/src/twistlock-mapper.js +140 -126
  308. package/lib/src/twistlock-mapper.js.map +1 -1
  309. package/lib/src/utils/CCI_List.d.ts +1 -0
  310. package/lib/src/utils/CCI_List.d.ts.map +1 -0
  311. package/lib/src/utils/CCI_List.js.map +1 -1
  312. package/lib/src/utils/attestations.d.ts +1 -0
  313. package/lib/src/utils/attestations.d.ts.map +1 -0
  314. package/lib/src/utils/attestations.js +28 -13
  315. package/lib/src/utils/attestations.js.map +1 -1
  316. package/lib/src/utils/compliance.d.ts +1 -0
  317. package/lib/src/utils/compliance.d.ts.map +1 -0
  318. package/lib/src/utils/compliance.js +11 -3
  319. package/lib/src/utils/compliance.js.map +1 -1
  320. package/lib/src/utils/fingerprinting.d.ts +2 -0
  321. package/lib/src/utils/fingerprinting.d.ts.map +1 -0
  322. package/lib/src/utils/fingerprinting.js +28 -11
  323. package/lib/src/utils/fingerprinting.js.map +1 -1
  324. package/lib/src/utils/global.d.ts +3 -1
  325. package/lib/src/utils/global.d.ts.map +1 -0
  326. package/lib/src/utils/global.js +34 -15
  327. package/lib/src/utils/global.js.map +1 -1
  328. package/lib/src/utils/parseJson.d.ts +1 -0
  329. package/lib/src/utils/parseJson.d.ts.map +1 -0
  330. package/lib/src/utils/parseJson.js +7 -3
  331. package/lib/src/utils/parseJson.js.map +1 -1
  332. package/lib/src/utils/result.d.ts +1 -0
  333. package/lib/src/utils/result.d.ts.map +1 -0
  334. package/lib/src/utils/result.js.map +1 -1
  335. package/lib/src/utils/splunk-tools.d.ts +2 -1
  336. package/lib/src/utils/splunk-tools.d.ts.map +1 -0
  337. package/lib/src/utils/splunk-tools.js +52 -31
  338. package/lib/src/utils/splunk-tools.js.map +1 -1
  339. package/lib/src/veracode-mapper.d.ts +1 -0
  340. package/lib/src/veracode-mapper.d.ts.map +1 -0
  341. package/lib/src/veracode-mapper.js +50 -7
  342. package/lib/src/veracode-mapper.js.map +1 -1
  343. package/lib/src/xccdf-results-mapper.d.ts +7 -0
  344. package/lib/src/xccdf-results-mapper.d.ts.map +1 -0
  345. package/lib/src/xccdf-results-mapper.js +336 -301
  346. package/lib/src/xccdf-results-mapper.js.map +1 -1
  347. package/lib/src/zap-mapper.d.ts +8 -0
  348. package/lib/src/zap-mapper.d.ts.map +1 -0
  349. package/lib/src/zap-mapper.js +119 -90
  350. package/lib/src/zap-mapper.js.map +1 -1
  351. package/lib/tsconfig.build.tsbuildinfo +1 -0
  352. package/lib/types/neuvector-types.d.ts +1 -0
  353. package/lib/types/neuvector-types.d.ts.map +1 -0
  354. package/lib/types/neuvector-types.js +80 -0
  355. package/lib/types/neuvector-types.js.map +1 -1
  356. package/lib/types/splunk-config-types.d.ts +1 -0
  357. package/lib/types/splunk-config-types.d.ts.map +1 -0
  358. package/lib/types/splunk-config-types.js.map +1 -1
  359. package/lib/types/splunk-control-types.d.ts +1 -0
  360. package/lib/types/splunk-control-types.d.ts.map +1 -0
  361. package/lib/types/splunk-control-types.js.map +1 -1
  362. package/lib/types/splunk-profile-types.d.ts +1 -0
  363. package/lib/types/splunk-profile-types.d.ts.map +1 -0
  364. package/lib/types/splunk-profile-types.js.map +1 -1
  365. package/lib/types/splunk-report-types.d.ts +1 -0
  366. package/lib/types/splunk-report-types.d.ts.map +1 -0
  367. package/lib/types/splunk-report-types.js.map +1 -1
  368. package/package.json +21 -42
  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;IAkD5D,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,40 +149,36 @@ 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;
143
- const allResultLevels = [];
144
- if (file.filteredControls === undefined) {
145
- file.data.contains.map((profile) => {
146
- profile.contains.map((result) => {
147
- allResultLevels.push(result);
148
- });
149
- });
150
- }
151
- else {
152
- file.data.contains.flatMap((profile) => {
153
- profile.contains.flatMap((result) => {
154
- for (const element of file.filteredControls) {
155
- if (element === result.data.id) {
156
- allResultLevels.push(result);
157
- }
158
- }
159
- });
160
- });
161
- }
164
+ // Pull out results from file
165
+ const filteredControlsSet = file.filteredControls ? new Set(file.filteredControls) : null;
166
+ const allResultLevels = file.data.contains.reduce((acc, profile) => {
167
+ const matchingResults = profile.contains.filter((result) => !filteredControlsSet || filteredControlsSet.has(result.data.id));
168
+ acc.push(...matchingResults);
169
+ return acc;
170
+ }, []);
171
+ // Begin filling out outpuData object to pass into HTML template
172
+ // Set high level generalized profile details
162
173
  this.addProfileDetails(allResultLevels);
174
+ // Set specific result details
163
175
  this.outputData.resultSets.push({
164
176
  filename: file.fileName,
165
177
  fileID: file.fileID,
166
178
  results: allResultLevels.map((result) => this.addResultDetails(result, allResultLevels.filter((searchingResult) => searchingResult.data.id === result.data.id)))
167
179
  });
168
180
  }
181
+ // Set attributes for high level generalized profile details
169
182
  addProfileDetails(results) {
170
183
  let passed = 0;
171
184
  let failed = 0;
@@ -180,6 +193,7 @@ class FromHDFToHTMLMapper {
180
193
  let passedTests = 0;
181
194
  let failedTests = 0;
182
195
  let passingTestsFailedResult = 0;
196
+ // Count out statuses and sub-statuses
183
197
  for (const result of results) {
184
198
  switch (result.root.hdf.status) {
185
199
  case 'Passed':
@@ -200,6 +214,7 @@ class FromHDFToHTMLMapper {
200
214
  case 'Profile Error':
201
215
  profileError++;
202
216
  }
217
+ // Count out severities
203
218
  switch (result.root.hdf.severity) {
204
219
  case 'none':
205
220
  none++;
@@ -217,6 +232,7 @@ class FromHDFToHTMLMapper {
217
232
  critical++;
218
233
  }
219
234
  }
235
+ // Set following attributes from existing file data
220
236
  this.outputData.statistics = {
221
237
  passed: this.outputData.statistics.passed + passed,
222
238
  failed: this.outputData.statistics.failed + failed,
@@ -239,20 +255,29 @@ class FromHDFToHTMLMapper {
239
255
  high: this.outputData.severity.high + high,
240
256
  critical: this.outputData.severity.critical + critical
241
257
  };
258
+ // Calculate & set compliance level and color from result statuses
259
+ // Set default compliance level and color
242
260
  this.outputData.compliance.level = '0.00%';
243
261
  this.outputData.compliance.color = 'low';
262
+ // If results exist, calculate compliance level
244
263
  if (this.outputData.statistics.totalResults > 0) {
264
+ // Formula: compliance = Passed/(Passed + Failed + Not Reviewed + Profile Error) * 100
245
265
  const complianceLevel = (0, compliance_1.formatCompliance)((this.outputData.statistics.passed /
246
266
  (this.outputData.statistics.totalResults -
247
267
  this.outputData.statistics.notApplicable)) *
248
268
  100);
269
+ // Set compliance level
249
270
  this.outputData.compliance.level = complianceLevel.includes('NaN')
250
271
  ? '0.00%'
251
272
  : complianceLevel;
273
+ // Determine color of compliance level
274
+ // High compliance is green, medium is yellow, low is red
252
275
  this.outputData.compliance.color = (0, compliance_1.translateCompliance)(complianceLevel);
253
276
  }
254
277
  }
278
+ // Sets attributes for each specific result
255
279
  addResultDetails(result, resultLevels) {
280
+ // Check status of individual result to assign corresponding icon
256
281
  let statusColor;
257
282
  switch (result.root.hdf.status) {
258
283
  case 'Passed':
@@ -273,7 +298,9 @@ class FromHDFToHTMLMapper {
273
298
  default:
274
299
  statusColor = this.iconHTMLStore.circleWhite;
275
300
  }
276
- const severity = _.capitalize(result.root.hdf.severity);
301
+ // Severity is recorded as all lowercase by default; for aesthetic purposes, uppercase the first letter
302
+ const severity = lodash_1.default.capitalize(result.root.hdf.severity);
303
+ // Check severity of individual result to assign corresponding icon
277
304
  let severityColor;
278
305
  switch (result.root.hdf.severity) {
279
306
  case 'none':
@@ -294,12 +321,15 @@ class FromHDFToHTMLMapper {
294
321
  default:
295
322
  severityColor = this.iconHTMLStore.circleWhite;
296
323
  }
297
- const allControls = _.filter([result.hdf.rawNistTags, result.hdf.wraps.tags.cci], Boolean).flat();
324
+ // Grab NIST & CCI controls
325
+ const allControls = [result.hdf.rawNistTags, result.hdf.wraps.tags.cci].filter(Boolean).flat();
326
+ // Remove `Rev_4` item and replace `unmapped` with proper `UM-1` naming
298
327
  const filteredControls = allControls
299
328
  .map((control) => (control === 'unmapped' ? 'UM-1' : control))
300
329
  .filter((control) => control !== 'Rev_4');
330
+ // Assign attributes
301
331
  return {
302
- ..._.set(result, 'hdf.segments', [].concat.apply([], resultLevels.map((resultLevel) => resultLevel.hdf.segments || []))),
332
+ ...lodash_1.default.set(result, 'hdf.segments', [].concat.apply([], resultLevels.map((resultLevel) => resultLevel.hdf.segments || []))),
303
333
  full_code: result.full_code,
304
334
  details: [
305
335
  {
@@ -346,7 +376,7 @@ class FromHDFToHTMLMapper {
346
376
  name: 'Fix Text',
347
377
  value: result.hdf.descriptions.fix || result.data.tags.fix
348
378
  }
349
- ].filter((v) => v.value),
379
+ ].filter((v) => v.value).map((s) => ({ ...s, value: (0, sanitize_html_1.default)(s.value, { disallowedTagsMode: "escape" }) })),
350
380
  resultID: this.replaceIllegalCharacters(result.hdf.wraps.id),
351
381
  resultStatus: {
352
382
  status: result.root.hdf.status,
@@ -359,34 +389,35 @@ class FromHDFToHTMLMapper {
359
389
  controlTags: filteredControls
360
390
  };
361
391
  }
392
+ // Generate SVG HTML for icons for injection into export template
362
393
  iconDataToSVG(iconData, fill, widthPx = 24, heightPx = 24, description) {
363
394
  let imgLabel;
395
+ // Check if description is included in function call
396
+ // If so, include description as title/aria-label
364
397
  if (description) {
365
398
  imgLabel = `title="${description}" aria-label="${description}"`;
399
+ // Else hide aria
366
400
  }
367
401
  else {
368
402
  imgLabel = `aria-hidden="true"`;
369
403
  }
370
404
  return `<svg style="width:${widthPx}px; height:${heightPx}px" viewBox="0 0 ${widthPx} ${heightPx}" role="img" ${imgLabel}><path fill="${fill}" d="${iconData}"/></svg>`;
371
405
  }
406
+ // Replace all found illegal characters in string with compliant string equivalent
372
407
  replaceIllegalCharacters(text) {
373
408
  for (const illegalCharacter of ILLEGAL_CHARACTER_SET) {
374
409
  text = text.replace(new RegExp(`${illegalCharacter[0]}`, 'g'), illegalCharacter[1]);
375
410
  }
376
411
  return text;
377
412
  }
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', '');
413
+ // Prompt HTML generation from data pulled from file during constructor initialization
414
+ async toHTML() {
415
+ // Pull export template + styles and create outputData object containing data to fill template with
416
+ const template = embedded_assets_1.html;
417
+ this.outputData.tailwindStyles = embedded_assets_1.css;
418
+ // Remove source map reference in TW Elements library
419
+ this.outputData.tailwindElements = embedded_assets_1.js.replace('//# sourceMappingURL=tw-elements.umd.min.js.map', '');
420
+ // Render template and return generated HTML file
390
421
  return mustache_1.default.render(template, this.outputData);
391
422
  }
392
423
  }
@@ -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 filteredControlsSet = file.filteredControls ? new Set(file.filteredControls) : null;\n const allResultLevels = file.data.contains.reduce<ContextualizedControl[]>(\n (acc, profile) => {\n const matchingResults = profile.contains.filter(\n (result) => !filteredControlsSet || filteredControlsSet.has(result.data.id)\n );\n\n acc.push(...matchingResults);\n return acc;\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"}