@mitre/hdf-converters 2.12.6 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/README.md +25 -24
  2. package/lib/data/converters/csv2json.d.ts +1 -0
  3. package/lib/data/converters/csv2json.d.ts.map +1 -0
  4. package/lib/data/converters/csv2json.js +1 -1
  5. package/lib/data/converters/csv2json.js.map +1 -1
  6. package/lib/data/converters/xml2json.d.ts +1 -0
  7. package/lib/data/converters/xml2json.d.ts.map +1 -0
  8. package/lib/data/converters/xml2json.js +6 -25
  9. package/lib/data/converters/xml2json.js.map +1 -1
  10. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts +2 -0
  11. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts.map +1 -0
  12. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js +13 -0
  13. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js.map +1 -0
  14. package/lib/index.d.ts +6 -0
  15. package/lib/index.d.ts.map +1 -0
  16. package/lib/index.js +23 -8
  17. package/lib/index.js.map +1 -1
  18. package/lib/package.json +19 -40
  19. package/lib/src/anchore-grype-mapper.d.ts +1 -0
  20. package/lib/src/anchore-grype-mapper.d.ts.map +1 -0
  21. package/lib/src/anchore-grype-mapper.js +7 -1
  22. package/lib/src/anchore-grype-mapper.js.map +1 -1
  23. package/lib/src/asff-mapper/asff-mapper.d.ts +1 -0
  24. package/lib/src/asff-mapper/asff-mapper.d.ts.map +1 -0
  25. package/lib/src/asff-mapper/asff-mapper.js +274 -237
  26. package/lib/src/asff-mapper/asff-mapper.js.map +1 -1
  27. package/lib/src/asff-mapper/case-cms-inspec.d.ts +1 -0
  28. package/lib/src/asff-mapper/case-cms-inspec.d.ts.map +1 -0
  29. package/lib/src/asff-mapper/case-cms-inspec.js +18 -9
  30. package/lib/src/asff-mapper/case-cms-inspec.js.map +1 -1
  31. package/lib/src/asff-mapper/case-firewall-manager.d.ts +1 -0
  32. package/lib/src/asff-mapper/case-firewall-manager.d.ts.map +1 -0
  33. package/lib/src/asff-mapper/case-firewall-manager.js +18 -9
  34. package/lib/src/asff-mapper/case-firewall-manager.js.map +1 -1
  35. package/lib/src/asff-mapper/case-guardduty.d.ts +1 -0
  36. package/lib/src/asff-mapper/case-guardduty.d.ts.map +1 -0
  37. package/lib/src/asff-mapper/case-guardduty.js +18 -9
  38. package/lib/src/asff-mapper/case-guardduty.js.map +1 -1
  39. package/lib/src/asff-mapper/case-inspector.d.ts +1 -0
  40. package/lib/src/asff-mapper/case-inspector.d.ts.map +1 -0
  41. package/lib/src/asff-mapper/case-inspector.js +18 -9
  42. package/lib/src/asff-mapper/case-inspector.js.map +1 -1
  43. package/lib/src/asff-mapper/case-previously-hdf.d.ts +1 -0
  44. package/lib/src/asff-mapper/case-previously-hdf.d.ts.map +1 -0
  45. package/lib/src/asff-mapper/case-previously-hdf.js +21 -10
  46. package/lib/src/asff-mapper/case-previously-hdf.js.map +1 -1
  47. package/lib/src/asff-mapper/case-prowler.d.ts +1 -0
  48. package/lib/src/asff-mapper/case-prowler.d.ts.map +1 -0
  49. package/lib/src/asff-mapper/case-prowler.js +19 -9
  50. package/lib/src/asff-mapper/case-prowler.js.map +1 -1
  51. package/lib/src/asff-mapper/case-security-hub.d.ts +1 -0
  52. package/lib/src/asff-mapper/case-security-hub.d.ts.map +1 -0
  53. package/lib/src/asff-mapper/case-security-hub.js +24 -9
  54. package/lib/src/asff-mapper/case-security-hub.js.map +1 -1
  55. package/lib/src/asff-mapper/case-trivy.d.ts +1 -0
  56. package/lib/src/asff-mapper/case-trivy.d.ts.map +1 -0
  57. package/lib/src/asff-mapper/case-trivy.js +18 -9
  58. package/lib/src/asff-mapper/case-trivy.js.map +1 -1
  59. package/lib/src/aws-config-mapper.d.ts +1 -0
  60. package/lib/src/aws-config-mapper.d.ts.map +1 -0
  61. package/lib/src/aws-config-mapper.js +29 -7
  62. package/lib/src/aws-config-mapper.js.map +1 -1
  63. package/lib/src/base-converter.d.ts +2 -1
  64. package/lib/src/base-converter.d.ts.map +1 -0
  65. package/lib/src/base-converter.js +46 -26
  66. package/lib/src/base-converter.js.map +1 -1
  67. package/lib/src/burpsuite-mapper.d.ts +7 -0
  68. package/lib/src/burpsuite-mapper.d.ts.map +1 -0
  69. package/lib/src/burpsuite-mapper.js +115 -88
  70. package/lib/src/burpsuite-mapper.js.map +1 -1
  71. package/lib/src/checkov-mapper.d.ts +67 -0
  72. package/lib/src/checkov-mapper.d.ts.map +1 -0
  73. package/lib/src/checkov-mapper.js +240 -0
  74. package/lib/src/checkov-mapper.js.map +1 -0
  75. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts +17 -0
  76. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts.map +1 -0
  77. package/lib/src/ckl-mapper/checklist-jsonix-converter.js +38 -4
  78. package/lib/src/ckl-mapper/checklist-jsonix-converter.js.map +1 -1
  79. package/lib/src/ckl-mapper/checklist-mapper.d.ts +35 -0
  80. package/lib/src/ckl-mapper/checklist-mapper.d.ts.map +1 -0
  81. package/lib/src/ckl-mapper/checklist-mapper.js +262 -151
  82. package/lib/src/ckl-mapper/checklist-mapper.js.map +1 -1
  83. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts +1 -0
  84. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts.map +1 -0
  85. package/lib/src/ckl-mapper/checklist-metadata-utils.js +32 -15
  86. package/lib/src/ckl-mapper/checklist-metadata-utils.js.map +1 -1
  87. package/lib/src/ckl-mapper/checklistJsonix.d.ts +6 -0
  88. package/lib/src/ckl-mapper/checklistJsonix.d.ts.map +1 -0
  89. package/lib/src/ckl-mapper/checklistJsonix.js +8 -8
  90. package/lib/src/ckl-mapper/checklistJsonix.js.map +1 -1
  91. package/lib/src/ckl-mapper/jsonixMapping.d.ts +5 -0
  92. package/lib/src/ckl-mapper/jsonixMapping.d.ts.map +1 -0
  93. package/lib/src/ckl-mapper/jsonixMapping.js +4 -0
  94. package/lib/src/ckl-mapper/jsonixMapping.js.map +1 -1
  95. package/lib/src/converters-from-hdf/asff/asff-types.d.ts +1 -0
  96. package/lib/src/converters-from-hdf/asff/asff-types.d.ts.map +1 -0
  97. package/lib/src/converters-from-hdf/asff/asff-types.js +1 -0
  98. package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -1
  99. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +1 -0
  100. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts.map +1 -0
  101. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +110 -84
  102. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -1
  103. package/lib/src/converters-from-hdf/asff/transformers.d.ts +1 -0
  104. package/lib/src/converters-from-hdf/asff/transformers.d.ts.map +1 -0
  105. package/lib/src/converters-from-hdf/asff/transformers.js +68 -38
  106. package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -1
  107. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts +1 -0
  108. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts.map +1 -0
  109. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js +54 -28
  110. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js.map +1 -1
  111. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts +4 -0
  112. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts.map +1 -0
  113. package/lib/src/converters-from-hdf/html/embedded-assets.js +8 -0
  114. package/lib/src/converters-from-hdf/html/embedded-assets.js.map +1 -0
  115. package/lib/src/converters-from-hdf/html/html-types.d.ts +1 -0
  116. package/lib/src/converters-from-hdf/html/html-types.d.ts.map +1 -0
  117. package/lib/src/converters-from-hdf/html/html-types.js +1 -0
  118. package/lib/src/converters-from-hdf/html/html-types.js.map +1 -1
  119. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts +3 -2
  120. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts.map +1 -0
  121. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js +151 -107
  122. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js.map +1 -1
  123. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts +1 -0
  124. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts.map +1 -0
  125. package/lib/src/converters-from-hdf/reverse-any-base-converter.js +3 -0
  126. package/lib/src/converters-from-hdf/reverse-any-base-converter.js.map +1 -1
  127. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +1 -0
  128. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts.map +1 -0
  129. package/lib/src/converters-from-hdf/reverse-base-converter.js +29 -9
  130. package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -1
  131. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts +1 -0
  132. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts.map +1 -0
  133. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js +39 -14
  134. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js.map +1 -1
  135. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts +1 -0
  136. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts.map +1 -0
  137. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js +32 -10
  138. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js.map +1 -1
  139. package/lib/src/conveyor-mapper.d.ts +1 -0
  140. package/lib/src/conveyor-mapper.d.ts.map +1 -0
  141. package/lib/src/conveyor-mapper.js +85 -40
  142. package/lib/src/conveyor-mapper.js.map +1 -1
  143. package/lib/src/cyclonedx-sbom-mapper.d.ts +1 -0
  144. package/lib/src/cyclonedx-sbom-mapper.d.ts.map +1 -0
  145. package/lib/src/cyclonedx-sbom-mapper.js +368 -294
  146. package/lib/src/cyclonedx-sbom-mapper.js.map +1 -1
  147. package/lib/src/dbprotect-mapper.d.ts +1 -0
  148. package/lib/src/dbprotect-mapper.d.ts.map +1 -0
  149. package/lib/src/dbprotect-mapper.js +74 -63
  150. package/lib/src/dbprotect-mapper.js.map +1 -1
  151. package/lib/src/dependency-track-mapper.d.ts +1 -0
  152. package/lib/src/dependency-track-mapper.d.ts.map +1 -0
  153. package/lib/src/dependency-track-mapper.js +144 -130
  154. package/lib/src/dependency-track-mapper.js.map +1 -1
  155. package/lib/src/fortify-mapper.d.ts +7 -0
  156. package/lib/src/fortify-mapper.d.ts.map +1 -0
  157. package/lib/src/fortify-mapper.js +118 -92
  158. package/lib/src/fortify-mapper.js.map +1 -1
  159. package/lib/src/gosec-mapper.d.ts +1 -0
  160. package/lib/src/gosec-mapper.d.ts.map +1 -0
  161. package/lib/src/gosec-mapper.js +90 -72
  162. package/lib/src/gosec-mapper.js.map +1 -1
  163. package/lib/src/ionchannel-mapper.d.ts +1 -0
  164. package/lib/src/ionchannel-mapper.d.ts.map +1 -0
  165. package/lib/src/ionchannel-mapper.js +130 -110
  166. package/lib/src/ionchannel-mapper.js.map +1 -1
  167. package/lib/src/jfrog-xray-mapper.d.ts +1 -0
  168. package/lib/src/jfrog-xray-mapper.d.ts.map +1 -0
  169. package/lib/src/jfrog-xray-mapper.js +92 -78
  170. package/lib/src/jfrog-xray-mapper.js.map +1 -1
  171. package/lib/src/jsonix-converter.d.ts +1 -0
  172. package/lib/src/jsonix-converter.d.ts.map +1 -0
  173. package/lib/src/jsonix-converter.js +1 -0
  174. package/lib/src/jsonix-converter.js.map +1 -1
  175. package/lib/src/jsonix-intermediate-converter.d.ts +1 -0
  176. package/lib/src/jsonix-intermediate-converter.d.ts.map +1 -0
  177. package/lib/src/jsonix-intermediate-converter.js.map +1 -1
  178. package/lib/src/mappings/AwsConfigMapping.d.ts +1 -0
  179. package/lib/src/mappings/AwsConfigMapping.d.ts.map +1 -0
  180. package/lib/src/mappings/AwsConfigMapping.js +19 -9
  181. package/lib/src/mappings/AwsConfigMapping.js.map +1 -1
  182. package/lib/src/mappings/AwsConfigMappingData.d.ts +1 -0
  183. package/lib/src/mappings/AwsConfigMappingData.d.ts.map +1 -0
  184. package/lib/src/mappings/AwsConfigMappingData.js.map +1 -1
  185. package/lib/src/mappings/CciNistMapping.d.ts +1 -0
  186. package/lib/src/mappings/CciNistMapping.d.ts.map +1 -0
  187. package/lib/src/mappings/CciNistMapping.js +4 -0
  188. package/lib/src/mappings/CciNistMapping.js.map +1 -1
  189. package/lib/src/mappings/CciNistMappingData.d.ts +1 -0
  190. package/lib/src/mappings/CciNistMappingData.d.ts.map +1 -0
  191. package/lib/src/mappings/CciNistMappingData.js.map +1 -1
  192. package/lib/src/mappings/CciNistMappingItem.d.ts +1 -0
  193. package/lib/src/mappings/CciNistMappingItem.d.ts.map +1 -0
  194. package/lib/src/mappings/CciNistMappingItem.js +2 -0
  195. package/lib/src/mappings/CciNistMappingItem.js.map +1 -1
  196. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts +5 -0
  197. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts.map +1 -0
  198. package/lib/src/mappings/CheckovToCciAndNistMappingData.js +2695 -0
  199. package/lib/src/mappings/CheckovToCciAndNistMappingData.js.map +1 -0
  200. package/lib/src/mappings/CweNistMapping.d.ts +1 -0
  201. package/lib/src/mappings/CweNistMapping.d.ts.map +1 -0
  202. package/lib/src/mappings/CweNistMapping.js +1 -0
  203. package/lib/src/mappings/CweNistMapping.js.map +1 -1
  204. package/lib/src/mappings/CweNistMappingData.d.ts +1 -0
  205. package/lib/src/mappings/CweNistMappingData.d.ts.map +1 -0
  206. package/lib/src/mappings/CweNistMappingData.js.map +1 -1
  207. package/lib/src/mappings/CweNistMappingItem.d.ts +1 -0
  208. package/lib/src/mappings/CweNistMappingItem.d.ts.map +1 -0
  209. package/lib/src/mappings/CweNistMappingItem.js +5 -0
  210. package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
  211. package/lib/src/mappings/NessusPluginNistMappingData.d.ts +1 -0
  212. package/lib/src/mappings/NessusPluginNistMappingData.d.ts.map +1 -0
  213. package/lib/src/mappings/NessusPluginNistMappingData.js.map +1 -1
  214. package/lib/src/mappings/NessusPluginsNistMapping.d.ts +1 -0
  215. package/lib/src/mappings/NessusPluginsNistMapping.d.ts.map +1 -0
  216. package/lib/src/mappings/NessusPluginsNistMapping.js +1 -0
  217. package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
  218. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +1 -0
  219. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts.map +1 -0
  220. package/lib/src/mappings/NessusPluginsNistMappingItem.js +4 -0
  221. package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
  222. package/lib/src/mappings/NiktoNistMapping.d.ts +1 -0
  223. package/lib/src/mappings/NiktoNistMapping.d.ts.map +1 -0
  224. package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
  225. package/lib/src/mappings/NiktoNistMappingData.d.ts +1 -0
  226. package/lib/src/mappings/NiktoNistMappingData.d.ts.map +1 -0
  227. package/lib/src/mappings/NiktoNistMappingData.js.map +1 -1
  228. package/lib/src/mappings/NiktoNistMappingItem.d.ts +1 -0
  229. package/lib/src/mappings/NiktoNistMappingItem.d.ts.map +1 -0
  230. package/lib/src/mappings/NiktoNistMappingItem.js +4 -0
  231. package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
  232. package/lib/src/mappings/NistCciMappingData.d.ts +1 -0
  233. package/lib/src/mappings/NistCciMappingData.d.ts.map +1 -0
  234. package/lib/src/mappings/NistCciMappingData.js.map +1 -1
  235. package/lib/src/mappings/OwaspNistMapping.d.ts +1 -0
  236. package/lib/src/mappings/OwaspNistMapping.d.ts.map +1 -0
  237. package/lib/src/mappings/OwaspNistMapping.js +18 -7
  238. package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
  239. package/lib/src/mappings/OwaspNistMappingData.d.ts +1 -0
  240. package/lib/src/mappings/OwaspNistMappingData.d.ts.map +1 -0
  241. package/lib/src/mappings/OwaspNistMappingData.js.map +1 -1
  242. package/lib/src/mappings/OwaspNistMappingItem.d.ts +1 -0
  243. package/lib/src/mappings/OwaspNistMappingItem.d.ts.map +1 -0
  244. package/lib/src/mappings/OwaspNistMappingItem.js +5 -0
  245. package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
  246. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +1 -0
  247. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts.map +1 -0
  248. package/lib/src/mappings/ScoutsuiteNistMapping.js +1 -0
  249. package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
  250. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts +1 -0
  251. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts.map +1 -0
  252. package/lib/src/mappings/ScoutsuiteNistMappingData.js.map +1 -1
  253. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +1 -0
  254. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts.map +1 -0
  255. package/lib/src/mappings/ScoutsuiteNistMappingItem.js +2 -0
  256. package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
  257. package/lib/src/msft-secure-score-mapper.d.ts +1 -0
  258. package/lib/src/msft-secure-score-mapper.d.ts.map +1 -0
  259. package/lib/src/msft-secure-score-mapper.js +202 -185
  260. package/lib/src/msft-secure-score-mapper.js.map +1 -1
  261. package/lib/src/nessus-mapper.d.ts +2 -1
  262. package/lib/src/nessus-mapper.d.ts.map +1 -0
  263. package/lib/src/nessus-mapper.js +122 -105
  264. package/lib/src/nessus-mapper.js.map +1 -1
  265. package/lib/src/netsparker-mapper.d.ts +7 -0
  266. package/lib/src/netsparker-mapper.d.ts.map +1 -0
  267. package/lib/src/netsparker-mapper.js +34 -9
  268. package/lib/src/netsparker-mapper.js.map +1 -1
  269. package/lib/src/neuvector-mapper.d.ts +1 -0
  270. package/lib/src/neuvector-mapper.d.ts.map +1 -0
  271. package/lib/src/neuvector-mapper.js +120 -117
  272. package/lib/src/neuvector-mapper.js.map +1 -1
  273. package/lib/src/nikto-mapper.d.ts +1 -0
  274. package/lib/src/nikto-mapper.d.ts.map +1 -0
  275. package/lib/src/nikto-mapper.js +85 -74
  276. package/lib/src/nikto-mapper.js.map +1 -1
  277. package/lib/src/prisma-mapper.d.ts +1 -0
  278. package/lib/src/prisma-mapper.d.ts.map +1 -0
  279. package/lib/src/prisma-mapper.js +138 -128
  280. package/lib/src/prisma-mapper.js.map +1 -1
  281. package/lib/src/sarif-mapper.d.ts +1 -0
  282. package/lib/src/sarif-mapper.d.ts.map +1 -0
  283. package/lib/src/sarif-mapper.js +116 -105
  284. package/lib/src/sarif-mapper.js.map +1 -1
  285. package/lib/src/scoutsuite-mapper.d.ts +1 -0
  286. package/lib/src/scoutsuite-mapper.d.ts.map +1 -0
  287. package/lib/src/scoutsuite-mapper.js +174 -163
  288. package/lib/src/scoutsuite-mapper.js.map +1 -1
  289. package/lib/src/snyk-mapper.d.ts +1 -0
  290. package/lib/src/snyk-mapper.d.ts.map +1 -0
  291. package/lib/src/snyk-mapper.js +112 -100
  292. package/lib/src/snyk-mapper.js.map +1 -1
  293. package/lib/src/sonarqube-mapper.d.ts +18 -5
  294. package/lib/src/sonarqube-mapper.d.ts.map +1 -0
  295. package/lib/src/sonarqube-mapper.js +525 -271
  296. package/lib/src/sonarqube-mapper.js.map +1 -1
  297. package/lib/src/splunk-mapper.d.ts +3 -2
  298. package/lib/src/splunk-mapper.d.ts.map +1 -0
  299. package/lib/src/splunk-mapper.js +69 -12
  300. package/lib/src/splunk-mapper.js.map +1 -1
  301. package/lib/src/trufflehog-mapper.d.ts +1 -0
  302. package/lib/src/trufflehog-mapper.d.ts.map +1 -0
  303. package/lib/src/trufflehog-mapper.js +72 -69
  304. package/lib/src/trufflehog-mapper.js.map +1 -1
  305. package/lib/src/twistlock-mapper.d.ts +1 -0
  306. package/lib/src/twistlock-mapper.d.ts.map +1 -0
  307. package/lib/src/twistlock-mapper.js +140 -126
  308. package/lib/src/twistlock-mapper.js.map +1 -1
  309. package/lib/src/utils/CCI_List.d.ts +1 -0
  310. package/lib/src/utils/CCI_List.d.ts.map +1 -0
  311. package/lib/src/utils/CCI_List.js.map +1 -1
  312. package/lib/src/utils/attestations.d.ts +1 -0
  313. package/lib/src/utils/attestations.d.ts.map +1 -0
  314. package/lib/src/utils/attestations.js +28 -13
  315. package/lib/src/utils/attestations.js.map +1 -1
  316. package/lib/src/utils/compliance.d.ts +1 -0
  317. package/lib/src/utils/compliance.d.ts.map +1 -0
  318. package/lib/src/utils/compliance.js +11 -3
  319. package/lib/src/utils/compliance.js.map +1 -1
  320. package/lib/src/utils/fingerprinting.d.ts +2 -0
  321. package/lib/src/utils/fingerprinting.d.ts.map +1 -0
  322. package/lib/src/utils/fingerprinting.js +28 -11
  323. package/lib/src/utils/fingerprinting.js.map +1 -1
  324. package/lib/src/utils/global.d.ts +3 -1
  325. package/lib/src/utils/global.d.ts.map +1 -0
  326. package/lib/src/utils/global.js +34 -15
  327. package/lib/src/utils/global.js.map +1 -1
  328. package/lib/src/utils/parseJson.d.ts +1 -0
  329. package/lib/src/utils/parseJson.d.ts.map +1 -0
  330. package/lib/src/utils/parseJson.js +7 -3
  331. package/lib/src/utils/parseJson.js.map +1 -1
  332. package/lib/src/utils/result.d.ts +1 -0
  333. package/lib/src/utils/result.d.ts.map +1 -0
  334. package/lib/src/utils/result.js.map +1 -1
  335. package/lib/src/utils/splunk-tools.d.ts +2 -1
  336. package/lib/src/utils/splunk-tools.d.ts.map +1 -0
  337. package/lib/src/utils/splunk-tools.js +52 -31
  338. package/lib/src/utils/splunk-tools.js.map +1 -1
  339. package/lib/src/veracode-mapper.d.ts +1 -0
  340. package/lib/src/veracode-mapper.d.ts.map +1 -0
  341. package/lib/src/veracode-mapper.js +50 -7
  342. package/lib/src/veracode-mapper.js.map +1 -1
  343. package/lib/src/xccdf-results-mapper.d.ts +7 -0
  344. package/lib/src/xccdf-results-mapper.d.ts.map +1 -0
  345. package/lib/src/xccdf-results-mapper.js +336 -301
  346. package/lib/src/xccdf-results-mapper.js.map +1 -1
  347. package/lib/src/zap-mapper.d.ts +8 -0
  348. package/lib/src/zap-mapper.d.ts.map +1 -0
  349. package/lib/src/zap-mapper.js +119 -90
  350. package/lib/src/zap-mapper.js.map +1 -1
  351. package/lib/tsconfig.build.tsbuildinfo +1 -0
  352. package/lib/types/neuvector-types.d.ts +1 -0
  353. package/lib/types/neuvector-types.d.ts.map +1 -0
  354. package/lib/types/neuvector-types.js +80 -0
  355. package/lib/types/neuvector-types.js.map +1 -1
  356. package/lib/types/splunk-config-types.d.ts +1 -0
  357. package/lib/types/splunk-config-types.d.ts.map +1 -0
  358. package/lib/types/splunk-config-types.js.map +1 -1
  359. package/lib/types/splunk-control-types.d.ts +1 -0
  360. package/lib/types/splunk-control-types.d.ts.map +1 -0
  361. package/lib/types/splunk-control-types.js.map +1 -1
  362. package/lib/types/splunk-profile-types.d.ts +1 -0
  363. package/lib/types/splunk-profile-types.d.ts.map +1 -0
  364. package/lib/types/splunk-profile-types.js.map +1 -1
  365. package/lib/types/splunk-report-types.d.ts +1 -0
  366. package/lib/types/splunk-report-types.d.ts.map +1 -0
  367. package/lib/types/splunk-report-types.js.map +1 -1
  368. package/package.json +19 -40
  369. package/lib/data/converters/csv2json.ts +0 -36
  370. package/lib/data/converters/xml2json.ts +0 -57
@@ -9,3 +9,4 @@ export declare function createAttestationMessage(attestation: Attestation, expir
9
9
  export declare function convertAttestationToSegment(attestation: Attestation): ExecJSON.ControlResult;
10
10
  export declare function addAttestationToHDF(hdf: ExecJSON.Execution, attestations: Attestation[]): ExecJSON.Execution;
11
11
  export declare function parseXLSXAttestations(attestationXLSX: Uint8Array): Promise<Attestation[]>;
12
+ //# sourceMappingURL=attestations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attestations.d.ts","sourceRoot":"","sources":["../../../src/utils/attestations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,eAAe,EAEf,wBAAwB,EACzB,MAAM,gDAAgD,CAAC;AAExD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IAC1D,MAAM,EAAE,GAAG,wBAAwB,EAAE,CAAC;CACvC,CAAC;AAEF,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,CAgEf;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,UAmBjB;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,GACvB,QAAQ,CAAC,aAAa,CA2BxB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,CAAC,SAAS,EACvB,YAAY,EAAE,WAAW,EAAE,GAC1B,QAAQ,CAAC,SAAS,CA0BpB;AAED,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,UAAU,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC,CA2BxB"}
@@ -15,18 +15,32 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.parseXLSXAttestations = exports.addAttestationToHDF = exports.convertAttestationToSegment = exports.createAttestationMessage = exports.advanceDate = void 0;
39
+ exports.advanceDate = advanceDate;
40
+ exports.createAttestationMessage = createAttestationMessage;
41
+ exports.convertAttestationToSegment = convertAttestationToSegment;
42
+ exports.addAttestationToHDF = addAttestationToHDF;
43
+ exports.parseXLSXAttestations = parseXLSXAttestations;
30
44
  const XLSX = __importStar(require("@e965/xlsx"));
31
45
  const inspecjs_1 = require("inspecjs");
32
46
  const _ = __importStar(require("lodash"));
@@ -61,6 +75,8 @@ function advanceDate(date, frequency) {
61
75
  date.add(1, 'day');
62
76
  break;
63
77
  default: {
78
+ // a number followed by d/w/m/y, with or without spaces in between
79
+ // 10 character limit on number of digits and characters to prevent security issues with regex
64
80
  const re = /(\d{1,10}(?:.\d{0,10})?)(\s{0,10})([a-z])/;
65
81
  const match = re.exec(frequency);
66
82
  if (!match) {
@@ -70,6 +86,7 @@ function advanceDate(date, frequency) {
70
86
  }
71
87
  const number = match[1];
72
88
  const unit = match[3];
89
+ // add inputted amount of time
73
90
  switch (unit) {
74
91
  case 'd':
75
92
  date.add(number, 'days');
@@ -89,7 +106,6 @@ function advanceDate(date, frequency) {
89
106
  }
90
107
  return date;
91
108
  }
92
- exports.advanceDate = advanceDate;
93
109
  function createAttestationMessage(attestation, expired) {
94
110
  let message = '';
95
111
  if (expired) {
@@ -107,7 +123,6 @@ function createAttestationMessage(attestation, expired) {
107
123
  message += `Frequency: ${attestation.frequency}`;
108
124
  return message;
109
125
  }
110
- exports.createAttestationMessage = createAttestationMessage;
111
126
  function convertAttestationToSegment(attestation) {
112
127
  const expirationDate = advanceDate((0, moment_1.default)(attestation.updated), attestation.frequency);
113
128
  if (expirationDate.isBefore(new Date())) {
@@ -128,7 +143,6 @@ function convertAttestationToSegment(attestation) {
128
143
  };
129
144
  }
130
145
  }
131
- exports.convertAttestationToSegment = convertAttestationToSegment;
132
146
  function addAttestationToHDF(hdf, attestations) {
133
147
  for (const attestation of attestations) {
134
148
  let found_control = false;
@@ -153,7 +167,6 @@ function addAttestationToHDF(hdf, attestations) {
153
167
  }
154
168
  return hdf;
155
169
  }
156
- exports.addAttestationToHDF = addAttestationToHDF;
157
170
  async function parseXLSXAttestations(attestationXLSX) {
158
171
  return new Promise((resolve) => {
159
172
  const workbook = XLSX.read(attestationXLSX, {
@@ -181,15 +194,17 @@ async function parseXLSXAttestations(attestationXLSX) {
181
194
  resolve(attestations);
182
195
  });
183
196
  }
184
- exports.parseXLSXAttestations = parseXLSXAttestations;
185
197
  function attestationCanBeAdded(attestation, control) {
186
198
  if (attestation.control_id.toLowerCase() !== control.id.toLowerCase()) {
199
+ // An attestation cannot be added if it's not the same control.
187
200
  return false;
188
201
  }
189
202
  if (control.results.length === 0) {
203
+ // There are no results for this control. It may be part of an overlay file.
190
204
  return false;
191
205
  }
192
206
  if (control.results[0].status === 'skipped') {
207
+ // The attestation can be added if the control results show 'skipped', meaning it needs Manual Review.
193
208
  return true;
194
209
  }
195
210
  console.error('Invalid control selected: The control must have "skipped" status to be attested');
@@ -1 +1 @@
1
- {"version":3,"file":"attestations.js","sourceRoot":"","sources":["../../../src/utils/attestations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestations.js","sourceRoot":"","sources":["../../../src/utils/attestations.ts"],"names":[],"mappings":"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","sourcesContent":["import * as XLSX from '@e965/xlsx';\nimport {ExecJSON} from 'inspecjs';\nimport {\n AttestationData,\n ControlResultStatus,\n ControlAttestationStatus\n} from 'inspecjs/src/generated_parsers/v_1_0/exec-json';\nimport * as _ from 'lodash';\nimport moment from 'moment';\n\n// Convert from using enum type to enum values\nexport type Attestation = Omit<AttestationData, 'status'> & {\n status: `${ControlAttestationStatus}`;\n};\n\nexport function advanceDate(\n date: moment.Moment,\n frequency: string\n): moment.Moment {\n switch (frequency) {\n case 'annually':\n date.add(1, 'year');\n break;\n case 'semiannually':\n date.add(6, 'months');\n break;\n case 'quarterly':\n date.add(3, 'months');\n break;\n case 'monthly':\n date.add(1, 'month');\n break;\n case 'every2weeks':\n date.add(2, 'weeks');\n break;\n case 'fortnightly':\n date.add(2, 'weeks');\n break;\n case 'weekly':\n date.add(1, 'week');\n break;\n case 'every3days':\n date.add(3, 'day');\n break;\n case 'daily':\n date.add(1, 'day');\n break;\n default: {\n // a number followed by d/w/m/y, with or without spaces in between\n // 10 character limit on number of digits and characters to prevent security issues with regex\n const re = /(\\d{1,10}(?:.\\d{0,10})?)(\\s{0,10})([a-z])/;\n const match = re.exec(frequency);\n\n if (!match) {\n throw new Error(\n 'Unknown date format: ' +\n frequency +\n '. Please use a number followed by d/w/m/y to indicate days, weeks, months, or years, e.g. 1d/2w/3m/1y/custom.'\n );\n }\n\n const number = match[1];\n const unit = match[3];\n // add inputted amount of time\n switch (unit) {\n case 'd':\n date.add(number, 'days');\n break;\n case 'w':\n date.add(number, 'weeks');\n break;\n case 'm':\n date.add(number, 'months');\n break;\n case 'y':\n date.add(number, 'years');\n break;\n }\n break;\n }\n }\n return date;\n}\n\nexport function createAttestationMessage(\n attestation: Attestation,\n expired: boolean\n) {\n let message = '';\n\n if (expired) {\n message += 'Expired Attestation:\\n';\n message += `Expired Status: ${attestation.status}\\n`;\n message += `Expired Explanation: ${attestation.explanation}\\n\\n`;\n } else {\n message += 'Attestation:\\n';\n message += `Status: ${attestation.status}\\n`;\n message += `Explanation: ${attestation.explanation}\\n\\n`;\n }\n\n message += `Updated: ${attestation.updated}\\n`;\n message += `Updated By: ${attestation.updated_by}\\n`;\n message += `Frequency: ${attestation.frequency}`;\n\n return message;\n}\n\nexport function convertAttestationToSegment(\n attestation: Attestation\n): ExecJSON.ControlResult {\n const expirationDate = advanceDate(\n moment(attestation.updated),\n attestation.frequency\n );\n\n if (expirationDate.isBefore(new Date())) {\n console.log(\n `Warning: Attestation Expired: ${\n attestation.control_id\n } (Expired at ${expirationDate.toString()})`\n );\n return {\n code_desc:\n 'Manual verification status provided through attestation has expired',\n status: ExecJSON.ControlResultStatus.Skipped,\n message: createAttestationMessage(attestation, true),\n start_time: new Date().toISOString()\n };\n } else {\n return {\n code_desc: 'Manually verified status provided through attestation',\n status: attestation.status as ControlResultStatus,\n message: createAttestationMessage(attestation, false),\n start_time: new Date().toISOString()\n };\n }\n}\n\nexport function addAttestationToHDF(\n hdf: ExecJSON.Execution,\n attestations: Attestation[]\n): ExecJSON.Execution {\n for (const attestation of attestations) {\n let found_control = false;\n for (const profile of hdf.profiles) {\n for (const control of profile.controls) {\n if (attestationCanBeAdded(attestation, control)) {\n found_control = true;\n if (['passed', 'failed'].includes(attestation.status)) {\n control.attestation_data =\n attestation as unknown as AttestationData;\n control.results.push(convertAttestationToSegment(attestation));\n } else {\n console.error(\n `Invalid attestation status for Control ${control.id}: ${attestation.status} - Status must be passed or failed. To make this control 'not applicable', use a waiver.`\n );\n }\n }\n }\n }\n if (!found_control) {\n console.error(\n `Attestation cannot be added for control ${attestation.control_id}. Skipping attestation.`\n );\n }\n }\n return hdf;\n}\n\nexport async function parseXLSXAttestations(\n attestationXLSX: Uint8Array\n): Promise<Attestation[]> {\n return new Promise((resolve) => {\n const workbook = XLSX.read(attestationXLSX, {\n cellDates: true\n });\n const sheet = workbook.Sheets['attestations'];\n const data: Record<string, Date | string>[] =\n XLSX.utils.sheet_to_json(sheet);\n const attestations: Attestation[] = data.map((attestation) => {\n const lowerAttestation = _.mapKeys(attestation, (_v, k) => {\n return k.toLowerCase().replace(/\\s/g, '_');\n });\n return {\n control_id: getFirstPath(lowerAttestation, [\n 'control_id',\n 'id',\n 'control'\n ]),\n explanation: getFirstPath(lowerAttestation, ['explanation', 'explain']),\n frequency: getFirstPath(lowerAttestation, ['frequency']),\n status: getFirstPath(lowerAttestation, ['status']),\n updated: getFirstPath(lowerAttestation, ['updated', 'updated_at']),\n updated_by: getFirstPath(lowerAttestation, ['updated_by'])\n } as Attestation;\n });\n resolve(attestations);\n });\n}\n\nfunction attestationCanBeAdded(\n attestation: Attestation,\n control: ExecJSON.Control\n) {\n if (attestation.control_id.toLowerCase() !== control.id.toLowerCase()) {\n // An attestation cannot be added if it's not the same control.\n return false;\n }\n\n if (control.results.length === 0) {\n // There are no results for this control. It may be part of an overlay file.\n return false;\n }\n\n if (control.results[0].status === 'skipped') {\n // The attestation can be added if the control results show 'skipped', meaning it needs Manual Review.\n return true;\n }\n\n console.error(\n 'Invalid control selected: The control must have \"skipped\" status to be attested'\n );\n return false;\n}\n\nfunction getFirstPath(\n object: Record<string, string | Date>,\n paths: string[]\n): string {\n const index = _.findIndex(paths, (p) => hasPath(object, p));\n\n if (index === -1) {\n throw new Error(\n `Attestation is missing one of these paths: ${paths.join(', ')}`\n );\n }\n const stringOrDate = _.get(object, paths[index]);\n if (_.isString(stringOrDate)) {\n return stringOrDate;\n }\n return `${stringOrDate.getFullYear()}-${String(stringOrDate.getMonth() + 1).padStart(2, '0')}-${String(stringOrDate.getDate()).padStart(2, '0')}`;\n}\n\nfunction hasPath(\n file: Record<string, unknown>,\n path: string | string[]\n): boolean {\n let pathArray;\n if (typeof path === 'string') {\n pathArray = [path];\n } else {\n pathArray = path;\n }\n\n return _.some(pathArray, (p) => _.has(file, p));\n}\n"]}
@@ -1,3 +1,4 @@
1
1
  export declare const MAX_DECIMAL_PRECISION = 2;
2
2
  export declare function formatCompliance(rawCompliance: number, showAsPercentage?: boolean, maxDisplayPrecision?: number): string;
3
3
  export declare function translateCompliance(rawCompliance: string): string;
4
+ //# sourceMappingURL=compliance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.d.ts","sourceRoot":"","sources":["../../../src/utils/compliance.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAIvC,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,gBAAgB,UAAO,EACvB,mBAAmB,SAAwB,GAC1C,MAAM,CAYR;AAKD,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAUjE"}
@@ -1,16 +1,25 @@
1
1
  "use strict";
2
+ /* Provides unified compliance formatting function for compliance summaries used across both Results.vue and ExportHTMLModal.vue */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.translateCompliance = exports.formatCompliance = exports.MAX_DECIMAL_PRECISION = void 0;
4
+ exports.MAX_DECIMAL_PRECISION = void 0;
5
+ exports.formatCompliance = formatCompliance;
6
+ exports.translateCompliance = translateCompliance;
4
7
  exports.MAX_DECIMAL_PRECISION = 2;
8
+ // Format all final compliance level results to (by default) hundredths place percentage of compliance level
9
+ // Returns string typed compliance level
5
10
  function formatCompliance(rawCompliance, showAsPercentage = true, maxDisplayPrecision = exports.MAX_DECIMAL_PRECISION) {
6
11
  let truncatedCompliance = Math.trunc(Math.pow(10, exports.MAX_DECIMAL_PRECISION) * rawCompliance) /
7
12
  Math.pow(10, exports.MAX_DECIMAL_PRECISION);
13
+ // Check if calculated compliance is valid
8
14
  if (truncatedCompliance < 0) {
9
15
  truncatedCompliance = 0;
10
16
  }
17
+ // Return as string representation of compliance level percentage
11
18
  return `${truncatedCompliance.toFixed(maxDisplayPrecision)}${showAsPercentage ? '%' : ''}`;
12
19
  }
13
- exports.formatCompliance = formatCompliance;
20
+ // Takes formatted compliance level and determines human language equivalent of compliance
21
+ // >=90 is high compliance, >= 60 is medium compliance, <60 is low compliance
22
+ // Mainly for HTML export
14
23
  function translateCompliance(rawCompliance) {
15
24
  const compliance = Number.parseFloat(rawCompliance.slice(0, -1));
16
25
  if (compliance >= 90) {
@@ -23,5 +32,4 @@ function translateCompliance(rawCompliance) {
23
32
  return 'low';
24
33
  }
25
34
  }
26
- exports.translateCompliance = translateCompliance;
27
35
  //# sourceMappingURL=compliance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../src/utils/compliance.ts"],"names":[],"mappings":";;;AAEa,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAIvC,SAAgB,gBAAgB,CAC9B,aAAqB,EACrB,gBAAgB,GAAG,IAAI,EACvB,mBAAmB,GAAG,6BAAqB;IAE3C,IAAI,mBAAmB,GACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,6BAAqB,CAAC,GAAG,aAAa,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,6BAAqB,CAAC,CAAC;IAGtC,IAAI,mBAAmB,GAAG,CAAC,EAAE;QAC3B,mBAAmB,GAAG,CAAC,CAAC;KACzB;IAGD,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7F,CAAC;AAhBD,4CAgBC;AAKD,SAAgB,mBAAmB,CAAC,aAAqB;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,IAAI,UAAU,IAAI,EAAE,EAAE;QACpB,OAAO,MAAM,CAAC;KACf;SAAM,IAAI,UAAU,IAAI,EAAE,EAAE;QAC3B,OAAO,QAAQ,CAAC;KACjB;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAVD,kDAUC"}
1
+ {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../src/utils/compliance.ts"],"names":[],"mappings":";AAAA,oIAAoI;;;AAMpI,4CAgBC;AAKD,kDAUC;AAnCY,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC,4GAA4G;AAC5G,wCAAwC;AACxC,SAAgB,gBAAgB,CAC9B,aAAqB,EACrB,gBAAgB,GAAG,IAAI,EACvB,mBAAmB,GAAG,6BAAqB;IAE3C,IAAI,mBAAmB,GACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,6BAAqB,CAAC,GAAG,aAAa,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,6BAAqB,CAAC,CAAC;IAEtC,0CAA0C;IAC1C,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,mBAAmB,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,iEAAiE;IACjE,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7F,CAAC;AAED,0FAA0F;AAC1F,6EAA6E;AAC7E,yBAAyB;AACzB,SAAgB,mBAAmB,CAAC,aAAqB;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["/* Provides unified compliance formatting function for compliance summaries used across both Results.vue and ExportHTMLModal.vue */\n\nexport const MAX_DECIMAL_PRECISION = 2;\n\n// Format all final compliance level results to (by default) hundredths place percentage of compliance level\n// Returns string typed compliance level\nexport function formatCompliance(\n rawCompliance: number,\n showAsPercentage = true,\n maxDisplayPrecision = MAX_DECIMAL_PRECISION\n): string {\n let truncatedCompliance =\n Math.trunc(Math.pow(10, MAX_DECIMAL_PRECISION) * rawCompliance) /\n Math.pow(10, MAX_DECIMAL_PRECISION);\n\n // Check if calculated compliance is valid\n if (truncatedCompliance < 0) {\n truncatedCompliance = 0;\n }\n\n // Return as string representation of compliance level percentage\n return `${truncatedCompliance.toFixed(maxDisplayPrecision)}${showAsPercentage ? '%' : ''}`;\n}\n\n// Takes formatted compliance level and determines human language equivalent of compliance\n// >=90 is high compliance, >= 60 is medium compliance, <60 is low compliance\n// Mainly for HTML export\nexport function translateCompliance(rawCompliance: string): string {\n const compliance = Number.parseFloat(rawCompliance.slice(0, -1));\n\n if (compliance >= 90) {\n return 'high';\n } else if (compliance >= 60) {\n return 'medium';\n } else {\n return 'low';\n }\n}\n"]}
@@ -2,6 +2,7 @@ export declare enum INPUT_TYPES {
2
2
  ASFF = "asff",
3
3
  BURP = "burp",
4
4
  CHECKLIST = "checklist",
5
+ CHECKOV = "checkov",
5
6
  CONVEYOR = "conveyor",
6
7
  DEPENDENCY_TRACK = "dependencyTrack",
7
8
  FORTIFY = "fortify",
@@ -31,3 +32,4 @@ export declare function fingerprint(guessOptions: {
31
32
  data: string;
32
33
  filename: string;
33
34
  }): INPUT_TYPES;
35
+ //# sourceMappingURL=fingerprinting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprinting.d.ts","sourceRoot":"","sources":["../../../src/utils/fingerprinting.ts"],"names":[],"mappings":"AAEA,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,gBAAgB,oBAAoB;IACpC,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,cAAc,sBAAsB;IACpC,KAAK,UAAU;IACf,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,UAAU,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,KAAK;CACf;AA4ED,wBAAgB,WAAW,CAAC,YAAY,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,WAAW,CAmFd"}
@@ -15,21 +15,33 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.fingerprint = exports.INPUT_TYPES = void 0;
36
+ exports.INPUT_TYPES = void 0;
37
+ exports.fingerprint = fingerprint;
27
38
  const _ = __importStar(require("lodash"));
28
39
  var INPUT_TYPES;
29
40
  (function (INPUT_TYPES) {
30
41
  INPUT_TYPES["ASFF"] = "asff";
31
42
  INPUT_TYPES["BURP"] = "burp";
32
43
  INPUT_TYPES["CHECKLIST"] = "checklist";
44
+ INPUT_TYPES["CHECKOV"] = "checkov";
33
45
  INPUT_TYPES["CONVEYOR"] = "conveyor";
34
46
  INPUT_TYPES["DEPENDENCY_TRACK"] = "dependencyTrack";
35
47
  INPUT_TYPES["FORTIFY"] = "fortify";
@@ -54,9 +66,13 @@ var INPUT_TYPES;
54
66
  INPUT_TYPES["PRISMA"] = "prisma";
55
67
  INPUT_TYPES["VERACODE"] = "veracode";
56
68
  INPUT_TYPES["NOT_FOUND"] = "";
57
- })(INPUT_TYPES = exports.INPUT_TYPES || (exports.INPUT_TYPES = {}));
69
+ })(INPUT_TYPES || (exports.INPUT_TYPES = INPUT_TYPES = {}));
70
+ // Fields to look for inside of JSON structures to determine type before passing to hdf-converters
58
71
  const fileTypeFingerprints = {
59
72
  [INPUT_TYPES.ASFF]: ['Findings', 'AwsAccountId', 'ProductArn'],
73
+ [INPUT_TYPES.CHECKOV]: ["check_type", "results", "results.passed_checks",
74
+ "results.failed_checks", "results.skipped_checks", "results.parsing_errors",
75
+ "summary", "url"],
60
76
  [INPUT_TYPES.CONVEYOR]: ['api_error_message', 'api_response'],
61
77
  [INPUT_TYPES.CYCLONEDX_SBOM]: ['bomFormat', 'metadata', 'specVersion'],
62
78
  [INPUT_TYPES.DEPENDENCY_TRACK]: ['version', 'meta', 'project', 'findings'],
@@ -127,6 +143,7 @@ function fingerprint(guessOptions) {
127
143
  try {
128
144
  const parsed = JSON.parse(guessOptions.data);
129
145
  const object = Array.isArray(parsed) ? parsed[0] : parsed;
146
+ // Find the fingerprints that have the most matches
130
147
  const fingerprinted = Object.entries(fileTypeFingerprints).reduce((a, b) => {
131
148
  return a[1].filter((value) => _.get(object, value)).length >
132
149
  b[1].filter((value) => _.get(object, value)).length
@@ -143,10 +160,11 @@ function fingerprint(guessOptions) {
143
160
  }
144
161
  catch {
145
162
  const splitLines = guessOptions.data.trim().split('\n');
163
+ // If we don't have valid json, look for known strings inside the file text
146
164
  if (guessOptions.filename.toLowerCase().endsWith('.nessus')) {
147
165
  return INPUT_TYPES.NESSUS;
148
166
  }
149
- else if (guessOptions.data.match(/xmlns.*http.*\/xccdf/) ||
167
+ else if (guessOptions.data.match(/xmlns.*http.*\/xccdf/) || // Keys matching (hopefully) all xccdf formats
150
168
  guessOptions.filename.toLowerCase().indexOf('xccdf') !== -1) {
151
169
  return INPUT_TYPES.XCCDF;
152
170
  }
@@ -199,5 +217,4 @@ function fingerprint(guessOptions) {
199
217
  }
200
218
  return INPUT_TYPES.NOT_FOUND;
201
219
  }
202
- exports.fingerprint = fingerprint;
203
220
  //# sourceMappingURL=fingerprinting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprinting.js","sourceRoot":"","sources":["../../../src/utils/fingerprinting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fingerprinting.js","sourceRoot":"","sources":["../../../src/utils/fingerprinting.ts"],"names":[],"mappings":"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","sourcesContent":["import * as _ from 'lodash';\n\nexport enum INPUT_TYPES {\n ASFF = 'asff',\n BURP = 'burp',\n CHECKLIST = 'checklist',\n CHECKOV = 'checkov',\n CONVEYOR = 'conveyor',\n DEPENDENCY_TRACK = 'dependencyTrack',\n FORTIFY = 'fortify',\n GOSEC = 'gosec',\n GRYPE = 'grype',\n IONCHANNEL = 'ionchannel',\n JFROG = 'jfrog',\n MSFT_SEC_SCORE = 'msft_secure_score',\n NIKTO = 'nikto',\n SARIF = 'sarif',\n CYCLONEDX_SBOM = 'cyclonedx_sbom',\n SNYK = 'snyk',\n TRUFFLEHOG = 'trufflehog',\n TWISTLOCK = 'twistlock',\n ZAP = 'zap',\n NESSUS = 'nessus',\n NEUVECTOR = 'neuvector',\n XCCDF = 'xccdf',\n NETSPARKER = 'netsparker',\n SCOUTSUITE = 'scoutsuite',\n DB_PROTECT = 'dbProtect',\n PRISMA = 'prisma',\n VERACODE = 'veracode',\n NOT_FOUND = ''\n}\n\n// Fields to look for inside of JSON structures to determine type before passing to hdf-converters\nconst fileTypeFingerprints: Record<INPUT_TYPES, string[]> = {\n [INPUT_TYPES.ASFF]: ['Findings', 'AwsAccountId', 'ProductArn'],\n [INPUT_TYPES.CHECKOV]: [\"check_type\", \"results\", \"results.passed_checks\",\n \"results.failed_checks\", \"results.skipped_checks\", \"results.parsing_errors\",\n \"summary\", \"url\"],\n [INPUT_TYPES.CONVEYOR]: ['api_error_message', 'api_response'],\n [INPUT_TYPES.CYCLONEDX_SBOM]: ['bomFormat', 'metadata', 'specVersion'],\n [INPUT_TYPES.DEPENDENCY_TRACK]: ['version', 'meta', 'project', 'findings'],\n [INPUT_TYPES.FORTIFY]: ['FVDL', 'FVDL.EngineData.EngineVersion', 'FVDL.UUID'],\n [INPUT_TYPES.GOSEC]: ['Golang errors', 'Issues'],\n [INPUT_TYPES.GRYPE]: [\n 'matches.vulnerability',\n 'matches.relatedVulnerabilities',\n 'matches.matchDetails',\n 'matches.artifact',\n 'distro',\n 'descriptor'\n ],\n [INPUT_TYPES.IONCHANNEL]: [\n 'analysis_id',\n 'team_id',\n 'source',\n 'trigger_hash'\n ],\n [INPUT_TYPES.JFROG]: ['total_count', 'data'],\n [INPUT_TYPES.MSFT_SEC_SCORE]: ['secureScore', 'profiles'],\n [INPUT_TYPES.NEUVECTOR]: [\n 'report.base_os',\n 'report.cvedb_create_time',\n 'report.cvedb_version',\n 'report.modules',\n 'report.repository',\n 'report.signature_data',\n 'report.vulnerabilities'\n ],\n [INPUT_TYPES.NIKTO]: ['banner', 'host', 'ip', 'port', 'vulnerabilities'],\n [INPUT_TYPES.SARIF]: ['$schema', 'version', 'runs'],\n [INPUT_TYPES.SNYK]: [\n 'projectName',\n 'policy',\n 'summary',\n 'vulnerabilities',\n 'vulnerabilities[0].identifiers'\n ],\n [INPUT_TYPES.TRUFFLEHOG]: [\n 'SourceName',\n 'DetectorType',\n 'DetectorName',\n 'DecoderName'\n ],\n [INPUT_TYPES.TWISTLOCK]: [\n 'results[0].complianceDistribution',\n 'results[0].vulnerabilityDistribution',\n 'results[0].collections',\n 'results[0].digest',\n 'packages',\n 'complianceDistribution',\n 'vulnerabilityDistribution'\n ],\n [INPUT_TYPES.ZAP]: ['@generated', '@version', 'site'],\n\n [INPUT_TYPES.BURP]: [],\n [INPUT_TYPES.CHECKLIST]: [],\n [INPUT_TYPES.DB_PROTECT]: [],\n [INPUT_TYPES.NESSUS]: [],\n [INPUT_TYPES.NETSPARKER]: [],\n [INPUT_TYPES.PRISMA]: [],\n [INPUT_TYPES.SCOUTSUITE]: [],\n [INPUT_TYPES.VERACODE]: [],\n [INPUT_TYPES.XCCDF]: [],\n [INPUT_TYPES.NOT_FOUND]: []\n};\n\nexport function fingerprint(guessOptions: {\n data: string;\n filename: string;\n}): INPUT_TYPES {\n try {\n const parsed = JSON.parse(guessOptions.data);\n const object = Array.isArray(parsed) ? parsed[0] : parsed;\n // Find the fingerprints that have the most matches\n const fingerprinted = Object.entries(fileTypeFingerprints).reduce(\n (a, b) => {\n return a[1].filter((value) => _.get(object, value)).length >\n b[1].filter((value) => _.get(object, value)).length\n ? {...a, count: a[1].filter((value) => _.get(object, value)).length}\n : {\n ...b,\n count: b[1].filter((value) => _.get(object, value)).length\n };\n }\n ) as unknown as INPUT_TYPES[] & {count: number};\n const result = fingerprinted[0];\n if (fingerprinted.count !== 0) {\n return result;\n }\n } catch {\n const splitLines = guessOptions.data.trim().split('\\n');\n // If we don't have valid json, look for known strings inside the file text\n if (guessOptions.filename.toLowerCase().endsWith('.nessus')) {\n return INPUT_TYPES.NESSUS;\n } else if (\n guessOptions.data.match(/xmlns.*http.*\\/xccdf/) || // Keys matching (hopefully) all xccdf formats\n guessOptions.filename.toLowerCase().indexOf('xccdf') !== -1\n ) {\n return INPUT_TYPES.XCCDF;\n } else if (\n guessOptions.data.match(/<netsparker-.*generated.*>/) ||\n guessOptions.data.match(/<invicti-.*generated.*>/)\n ) {\n return INPUT_TYPES.NETSPARKER;\n } else if (guessOptions.filename.toLowerCase().endsWith('.fvdl')) {\n return INPUT_TYPES.FORTIFY;\n } else if (\n guessOptions.data.indexOf('\"AwsAccountId\"') !== -1 &&\n guessOptions.data.indexOf('\"SchemaVersion\"') !== -1\n ) {\n return INPUT_TYPES.ASFF;\n } else if (guessOptions.data.indexOf('issues burpVersion') !== -1) {\n return INPUT_TYPES.BURP;\n } else if (guessOptions.data.indexOf('scoutsuite_results') !== -1) {\n return INPUT_TYPES.SCOUTSUITE;\n } else if (\n guessOptions.data.indexOf('Policy') !== -1 &&\n guessOptions.data.indexOf('Job Name') !== -1 &&\n guessOptions.data.indexOf('Check ID') !== -1 &&\n guessOptions.data.indexOf('Result Status')\n ) {\n return INPUT_TYPES.DB_PROTECT;\n } else if (\n splitLines[0].includes('Hostname') &&\n splitLines[0].includes('Distro') &&\n splitLines[0].includes('CVE ID') &&\n splitLines[0].includes('Compliance ID') &&\n splitLines[0].includes('Type') &&\n splitLines[0].includes('Severity')\n ) {\n return INPUT_TYPES.PRISMA;\n } else if (\n splitLines[0].includes('SourceName') &&\n splitLines[0].includes('DetectorType') &&\n splitLines[0].includes('DetectorName') &&\n splitLines[0].includes('DecoderName')\n ) {\n return INPUT_TYPES.TRUFFLEHOG;\n } else if (\n guessOptions.data.indexOf('veracode') !== -1 &&\n guessOptions.data.indexOf('detailedreport') !== -1\n ) {\n return INPUT_TYPES.VERACODE;\n } else if (\n guessOptions.data.indexOf('<CHECKLIST>') !== -1 &&\n guessOptions.data.indexOf('<STIGS>') !== -1 &&\n guessOptions.data.indexOf('<STIG_INFO>') !== -1\n ) {\n return INPUT_TYPES.CHECKLIST;\n }\n }\n return INPUT_TYPES.NOT_FOUND;\n}\n"]}
@@ -1,10 +1,11 @@
1
1
  import { ContextualizedEvaluation, ExecJSON } from 'inspecjs';
2
2
  export declare const DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS: string[];
3
- export declare const DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS: string[][];
3
+ export declare const DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS: string[];
4
4
  export declare const DEFAULT_UPDATE_REMEDIATION_NIST_TAGS: string[];
5
5
  export declare const DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS: string[];
6
6
  export declare const FROM_ASFF_TYPES_SLASH_REPLACEMENT: RegExp;
7
7
  export declare function createWinstonLogger(mapperName: string, level?: string): import("winston").Logger;
8
+ /** Get description from Array of descriptions or Key/Value pairs */
8
9
  export declare function getDescription(descriptions: {
9
10
  [key: string]: string;
10
11
  } | ExecJSON.ControlDescription[], key: string): string | undefined;
@@ -12,3 +13,4 @@ export declare function getCCIsForNISTTags(nistTags: string[]): string[];
12
13
  export declare function conditionallyProvideAttribute(attributeName: string, attribute: unknown, condition: boolean): Record<string, unknown> | undefined;
13
14
  export declare function ensureContextualizedEvaluation(data: ExecJSON.Execution | ContextualizedEvaluation): ContextualizedEvaluation;
14
15
  export declare function filterString(input: string): string | undefined;
16
+ //# sourceMappingURL=global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,QAAQ,EACT,MAAM,UAAU,CAAC;AAOlB,eAAO,MAAM,sCAAsC,UAAoB,CAAC;AAExE,eAAO,MAAM,qCAAqC,UACgC,CAAC;AAInF,eAAO,MAAM,oCAAoC,UAAmB,CAAC;AAGrE,eAAO,MAAM,yDAAyD,UAErE,CAAC;AAGF,eAAO,MAAM,iCAAiC,QAAkB,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,SAAU,4BAatE;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,YAAY,EACR;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,GACD,QAAQ,CAAC,kBAAkB,EAAE,EACjC,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAYpB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAa/D;AAGD,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAKrC;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,wBAAwB,4BAOpD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D"}
@@ -15,25 +15,47 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.filterString = exports.ensureContextualizedEvaluation = exports.conditionallyProvideAttribute = exports.getCCIsForNISTTags = exports.getDescription = exports.createWinstonLogger = exports.FROM_ASFF_TYPES_SLASH_REPLACEMENT = exports.DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS = exports.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS = void 0;
36
+ exports.FROM_ASFF_TYPES_SLASH_REPLACEMENT = exports.DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS = exports.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS = void 0;
37
+ exports.createWinstonLogger = createWinstonLogger;
38
+ exports.getDescription = getDescription;
39
+ exports.getCCIsForNISTTags = getCCIsForNISTTags;
40
+ exports.conditionallyProvideAttribute = conditionallyProvideAttribute;
41
+ exports.ensureContextualizedEvaluation = ensureContextualizedEvaluation;
42
+ exports.filterString = filterString;
27
43
  const inspecjs_1 = require("inspecjs");
28
44
  const _ = __importStar(require("lodash"));
29
45
  const winston_1 = require("winston");
30
46
  const NistCciMappingData_1 = require("../mappings/NistCciMappingData");
47
+ // DEFAULT_NIST_TAG is applicable to all automated configuration tests.
48
+ // SA-11 (DEVELOPER SECURITY TESTING AND EVALUATION) - RA-5 (VULNERABILITY SCANNING)
31
49
  exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS = ['SA-11', 'RA-5'];
32
- exports.DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS.map((tag) => NistCciMappingData_1.data[tag]);
50
+ exports.DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS.flatMap((tag) => NistCciMappingData_1.data[tag]);
51
+ // REMEDIATION_NIST_TAG the set of default applicable NIST 800-53 controls for ensuring up-to-date packages.
52
+ // SI-2 (FLAW REMEDIATION) - RA-5 (VULNERABILITY SCANNING)
33
53
  exports.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS = ['SI-2', 'RA-5'];
54
+ // Applicable to dependency management
34
55
  exports.DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS = [
35
56
  'CM-8'
36
57
  ];
58
+ // The "Types" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding
37
59
  exports.FROM_ASFF_TYPES_SLASH_REPLACEMENT = /{{{SLASH}}}/gi;
38
60
  function createWinstonLogger(mapperName, level = 'debug') {
39
61
  return (0, winston_1.createLogger)({
@@ -44,7 +66,7 @@ function createWinstonLogger(mapperName, level = 'debug') {
44
66
  }), winston_1.format.printf((info) => `[${[info.timestamp]}] ${mapperName} ${info.message}`))
45
67
  });
46
68
  }
47
- exports.createWinstonLogger = createWinstonLogger;
69
+ /** Get description from Array of descriptions or Key/Value pairs */
48
70
  function getDescription(descriptions, key) {
49
71
  let found;
50
72
  if (Array.isArray(descriptions)) {
@@ -55,7 +77,6 @@ function getDescription(descriptions, key) {
55
77
  }
56
78
  return found;
57
79
  }
58
- exports.getDescription = getDescription;
59
80
  function getCCIsForNISTTags(nistTags) {
60
81
  const cciTags = [];
61
82
  for (const nistTag of nistTags) {
@@ -68,14 +89,13 @@ function getCCIsForNISTTags(nistTags) {
68
89
  }
69
90
  return cciTags;
70
91
  }
71
- exports.getCCIsForNISTTags = getCCIsForNISTTags;
92
+ // Using the spread operator on a falsy value within an object does nothing. It is possible to use that syntactic behavior to conditionally add attributes to an object by writing something as follows: {...(condition && {attributeName: attribute})} which returns {} if condition is falsy and {attributeName: attribute} otherwise. Use this function to replace the stuff in the parentheses to save cognitive complexity marks when sonarqube complains.
72
93
  function conditionallyProvideAttribute(attributeName, attribute, condition) {
73
94
  if (!condition) {
74
95
  return undefined;
75
96
  }
76
97
  return { [attributeName]: attribute };
77
98
  }
78
- exports.conditionallyProvideAttribute = conditionallyProvideAttribute;
79
99
  function ensureContextualizedEvaluation(data) {
80
100
  if ('contains' in data) {
81
101
  return data;
@@ -84,9 +104,8 @@ function ensureContextualizedEvaluation(data) {
84
104
  return (0, inspecjs_1.contextualizeEvaluation)(data);
85
105
  }
86
106
  }
87
- exports.ensureContextualizedEvaluation = ensureContextualizedEvaluation;
107
+ // Return original string if it exists, else return undefined
88
108
  function filterString(input) {
89
109
  return input || undefined;
90
110
  }
91
- exports.filterString = filterString;
92
111
  //# sourceMappingURL=global.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAIkB;AAClB,0CAA4B;AAC5B,qCAAyD;AACzD,uEAA0E;AAI7D,QAAA,sCAAsC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE3D,QAAA,qCAAqC,GAChD,8CAAsC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAIlE,QAAA,oCAAoC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAGxD,QAAA,yDAAyD,GAAG;IACvE,MAAM;CACP,CAAC;AAGW,QAAA,iCAAiC,GAAG,eAAe,CAAC;AAEjE,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,KAAK,GAAG,OAAO;IACrE,OAAO,IAAA,sBAAY,EAAC;QAClB,UAAU,EAAE,CAAC,IAAI,oBAAU,CAAC,OAAO,EAAE,CAAC;QACtC,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,gBAAM,CAAC,OAAO,CACpB,gBAAM,CAAC,SAAS,CAAC;YACf,MAAM,EAAE,wBAAwB;SACjC,CAAC,EACF,gBAAM,CAAC,MAAM,CACX,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAChE,CACF;KACF,CAAC,CAAC;AACL,CAAC;AAbD,kDAaC;AAGD,SAAgB,cAAc,CAC5B,YAIiC,EACjC,GAAW;IAEX,IAAI,KAAyB,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC/B,KAAK,GAAG,YAAY,CAAC,IAAI,CACvB,CAAC,WAAwC,EAAE,EAAE,CAC3C,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAC1C,EAAE,IAAI,CAAC;KACT;SAAM;QACL,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;KAClC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAnBD,wCAmBC;AAED,SAAgB,kBAAkB,CAAC,QAAkB;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IACE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtB,OAAO,CAAC,MAAM,GAAG,CAAC;YAClB,OAAO,CAAC,CAAC,CAAC,IAAI,yBAAkB,EAChC;YACA,OAAO,CAAC,IAAI,CAAC,GAAG,yBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAbD,gDAaC;AAGD,SAAgB,6BAA6B,CAC3C,aAAqB,EACrB,SAAkB,EAClB,SAAkB;IAElB,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,EAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAC,CAAC;AACtC,CAAC;AATD,sEASC;AAED,SAAgB,8BAA8B,CAC5C,IAAmD;IAEnD,IAAI,UAAU,IAAI,IAAI,EAAE;QACtB,OAAO,IAAI,CAAC;KACb;SAAM;QACL,OAAO,IAAA,kCAAuB,EAAC,IAAI,CAAC,CAAC;KACtC;AACH,CAAC;AARD,wEAQC;AAGD,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAFD,oCAEC"}
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ContextualizedEvaluation,\n contextualizeEvaluation,\n ExecJSON\n} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {createLogger, format, transports} from 'winston';\nimport {data as NistCciMappingData} from '../mappings/NistCciMappingData';\n\n// DEFAULT_NIST_TAG is applicable to all automated configuration tests.\n// SA-11 (DEVELOPER SECURITY TESTING AND EVALUATION) - RA-5 (VULNERABILITY SCANNING)\nexport const DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS = ['SA-11', 'RA-5'];\n\nexport const DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS =\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS.flatMap((tag) => NistCciMappingData[tag]);\n\n// REMEDIATION_NIST_TAG the set of default applicable NIST 800-53 controls for ensuring up-to-date packages.\n// SI-2 (FLAW REMEDIATION) - \tRA-5 (VULNERABILITY SCANNING)\nexport const DEFAULT_UPDATE_REMEDIATION_NIST_TAGS = ['SI-2', 'RA-5'];\n\n// Applicable to dependency management\nexport const DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS = [\n 'CM-8'\n];\n\n// The \"Types\" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding\nexport const FROM_ASFF_TYPES_SLASH_REPLACEMENT = /{{{SLASH}}}/gi;\n\nexport function createWinstonLogger(mapperName: string, level = 'debug') {\n return createLogger({\n transports: [new transports.Console()],\n level: level,\n format: format.combine(\n format.timestamp({\n format: 'MMM-DD-YYYY HH:mm:ss Z'\n }),\n format.printf(\n (info) => `[${[info.timestamp]}] ${mapperName} ${info.message}`\n )\n )\n });\n}\n\n/** Get description from Array of descriptions or Key/Value pairs */\nexport function getDescription(\n descriptions:\n | {\n [key: string]: string;\n }\n | ExecJSON.ControlDescription[],\n key: string\n): string | undefined {\n let found: string | undefined;\n if (Array.isArray(descriptions)) {\n found = descriptions.find(\n (description: ExecJSON.ControlDescription) =>\n description.label.toLowerCase() === key\n )?.data;\n } else {\n found = _.get(descriptions, key);\n }\n\n return found;\n}\n\nexport function getCCIsForNISTTags(nistTags: string[]): string[] {\n const cciTags: string[] = [];\n for (const nistTag of nistTags) {\n const baseTag = /\\w\\w-\\d\\d?\\d?/g.exec(nistTag);\n if (\n Array.isArray(baseTag) &&\n baseTag.length > 0 &&\n baseTag[0] in NistCciMappingData\n ) {\n cciTags.push(...NistCciMappingData[baseTag[0]]);\n }\n }\n return cciTags;\n}\n\n// Using the spread operator on a falsy value within an object does nothing. It is possible to use that syntactic behavior to conditionally add attributes to an object by writing something as follows: {...(condition && {attributeName: attribute})} which returns {} if condition is falsy and {attributeName: attribute} otherwise. Use this function to replace the stuff in the parentheses to save cognitive complexity marks when sonarqube complains.\nexport function conditionallyProvideAttribute(\n attributeName: string,\n attribute: unknown,\n condition: boolean\n): Record<string, unknown> | undefined {\n if (!condition) {\n return undefined;\n }\n return {[attributeName]: attribute};\n}\n\nexport function ensureContextualizedEvaluation(\n data: ExecJSON.Execution | ContextualizedEvaluation\n) {\n if ('contains' in data) {\n return data;\n } else {\n return contextualizeEvaluation(data);\n }\n}\n\n// Return original string if it exists, else return undefined\nexport function filterString(input: string): string | undefined {\n return input || undefined;\n}\n"]}
@@ -3,3 +3,4 @@ export type JSONValue = string | number | boolean | null | JSONValue[] | {
3
3
  [key: string]: JSONValue;
4
4
  };
5
5
  export declare function parseJson(str: string): Result<JSONValue, Error>;
6
+ //# sourceMappingURL=parseJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseJson.d.ts","sourceRoot":"","sources":["../../../src/utils/parseJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,CAAC;AAE/B,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAU/D"}
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseJson = void 0;
3
+ exports.parseJson = parseJson;
4
4
  function parseJson(str) {
5
5
  try {
6
6
  return { ok: true, value: JSON.parse(str) };
7
7
  }
8
8
  catch (e) {
9
- return { ok: false, error: e };
9
+ if (e instanceof Error) {
10
+ return { ok: false, error: e };
11
+ }
12
+ else {
13
+ return { ok: false, error: new Error(String(e)) };
14
+ }
10
15
  }
11
16
  }
12
- exports.parseJson = parseJson;
13
17
  //# sourceMappingURL=parseJson.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseJson.js","sourceRoot":"","sources":["../../../src/utils/parseJson.ts"],"names":[],"mappings":";;;AAUA,SAAgB,SAAS,CAAC,GAAW;IACnC,IAAI;QACF,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,CAAC;KAC3C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC;KAC9B;AACH,CAAC;AAND,8BAMC"}
1
+ {"version":3,"file":"parseJson.js","sourceRoot":"","sources":["../../../src/utils/parseJson.ts"],"names":[],"mappings":";;AAUA,8BAUC;AAVD,SAAgB,SAAS,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACR,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import {Result} from './result';\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | null\n | JSONValue[]\n | {[key: string]: JSONValue};\n\nexport function parseJson(str: string): Result<JSONValue, Error> {\n try {\n return {ok: true, value: JSON.parse(str)};\n } catch (e) {\n if (e instanceof Error) {\n return {ok: false, error: e};\n } else {\n return {ok: false, error: new Error(String(e))};\n }\n }\n}\n"]}
@@ -5,3 +5,4 @@ export type Result<T, E = Error> = {
5
5
  ok: false;
6
6
  error: E;
7
7
  };
8
+ //# sourceMappingURL=result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAC,GAAG;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":"","sourcesContent":["export type Result<T, E = Error> = {ok: true; value: T} | {ok: false; error: E};\n"]}
@@ -1,5 +1,6 @@
1
1
  import { AxiosResponse } from 'axios';
2
2
  import { SplunkConfig } from '../../types/splunk-config-types';
3
3
  export declare function generateHostname(config: SplunkConfig): string;
4
- export declare function handleSplunkErrorResponse(error: AxiosResponse): string;
4
+ export declare function handleSplunkErrorResponse(error: AxiosResponse | unknown): string;
5
5
  export declare function checkSplunkCredentials(config: SplunkConfig): Promise<string>;
6
+ //# sourceMappingURL=splunk-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splunk-tools.d.ts","sourceRoot":"","sources":["../../../src/utils/splunk-tools.ts"],"names":[],"mappings":"AAAA,OAAc,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAG7D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAI7D;AAID,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAqBhF;AAGD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAuDjB"}