@mitre/hdf-converters 2.12.2 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/README.md +25 -24
  2. package/lib/data/converters/csv2json.d.ts +1 -0
  3. package/lib/data/converters/csv2json.d.ts.map +1 -0
  4. package/lib/data/converters/csv2json.js +1 -1
  5. package/lib/data/converters/csv2json.js.map +1 -1
  6. package/lib/data/converters/xml2json.d.ts +1 -0
  7. package/lib/data/converters/xml2json.d.ts.map +1 -0
  8. package/lib/data/converters/xml2json.js +6 -25
  9. package/lib/data/converters/xml2json.js.map +1 -1
  10. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts +2 -0
  11. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts.map +1 -0
  12. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js +13 -0
  13. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js.map +1 -0
  14. package/lib/index.d.ts +6 -0
  15. package/lib/index.d.ts.map +1 -0
  16. package/lib/index.js +23 -8
  17. package/lib/index.js.map +1 -1
  18. package/lib/package.json +28 -45
  19. package/lib/src/anchore-grype-mapper.d.ts +1 -0
  20. package/lib/src/anchore-grype-mapper.d.ts.map +1 -0
  21. package/lib/src/anchore-grype-mapper.js +7 -1
  22. package/lib/src/anchore-grype-mapper.js.map +1 -1
  23. package/lib/src/asff-mapper/asff-mapper.d.ts +1 -0
  24. package/lib/src/asff-mapper/asff-mapper.d.ts.map +1 -0
  25. package/lib/src/asff-mapper/asff-mapper.js +276 -242
  26. package/lib/src/asff-mapper/asff-mapper.js.map +1 -1
  27. package/lib/src/asff-mapper/case-cms-inspec.d.ts +1 -0
  28. package/lib/src/asff-mapper/case-cms-inspec.d.ts.map +1 -0
  29. package/lib/src/asff-mapper/case-cms-inspec.js +18 -9
  30. package/lib/src/asff-mapper/case-cms-inspec.js.map +1 -1
  31. package/lib/src/asff-mapper/case-firewall-manager.d.ts +1 -0
  32. package/lib/src/asff-mapper/case-firewall-manager.d.ts.map +1 -0
  33. package/lib/src/asff-mapper/case-firewall-manager.js +18 -9
  34. package/lib/src/asff-mapper/case-firewall-manager.js.map +1 -1
  35. package/lib/src/asff-mapper/case-guardduty.d.ts +1 -0
  36. package/lib/src/asff-mapper/case-guardduty.d.ts.map +1 -0
  37. package/lib/src/asff-mapper/case-guardduty.js +18 -9
  38. package/lib/src/asff-mapper/case-guardduty.js.map +1 -1
  39. package/lib/src/asff-mapper/case-inspector.d.ts +1 -0
  40. package/lib/src/asff-mapper/case-inspector.d.ts.map +1 -0
  41. package/lib/src/asff-mapper/case-inspector.js +18 -9
  42. package/lib/src/asff-mapper/case-inspector.js.map +1 -1
  43. package/lib/src/asff-mapper/case-previously-hdf.d.ts +1 -0
  44. package/lib/src/asff-mapper/case-previously-hdf.d.ts.map +1 -0
  45. package/lib/src/asff-mapper/case-previously-hdf.js +28 -15
  46. package/lib/src/asff-mapper/case-previously-hdf.js.map +1 -1
  47. package/lib/src/asff-mapper/case-prowler.d.ts +1 -0
  48. package/lib/src/asff-mapper/case-prowler.d.ts.map +1 -0
  49. package/lib/src/asff-mapper/case-prowler.js +19 -9
  50. package/lib/src/asff-mapper/case-prowler.js.map +1 -1
  51. package/lib/src/asff-mapper/case-security-hub.d.ts +1 -0
  52. package/lib/src/asff-mapper/case-security-hub.d.ts.map +1 -0
  53. package/lib/src/asff-mapper/case-security-hub.js +24 -9
  54. package/lib/src/asff-mapper/case-security-hub.js.map +1 -1
  55. package/lib/src/asff-mapper/case-trivy.d.ts +1 -0
  56. package/lib/src/asff-mapper/case-trivy.d.ts.map +1 -0
  57. package/lib/src/asff-mapper/case-trivy.js +18 -9
  58. package/lib/src/asff-mapper/case-trivy.js.map +1 -1
  59. package/lib/src/aws-config-mapper.d.ts +1 -0
  60. package/lib/src/aws-config-mapper.d.ts.map +1 -0
  61. package/lib/src/aws-config-mapper.js +38 -22
  62. package/lib/src/aws-config-mapper.js.map +1 -1
  63. package/lib/src/base-converter.d.ts +2 -1
  64. package/lib/src/base-converter.d.ts.map +1 -0
  65. package/lib/src/base-converter.js +51 -33
  66. package/lib/src/base-converter.js.map +1 -1
  67. package/lib/src/burpsuite-mapper.d.ts +7 -0
  68. package/lib/src/burpsuite-mapper.d.ts.map +1 -0
  69. package/lib/src/burpsuite-mapper.js +115 -88
  70. package/lib/src/burpsuite-mapper.js.map +1 -1
  71. package/lib/src/checkov-mapper.d.ts +67 -0
  72. package/lib/src/checkov-mapper.d.ts.map +1 -0
  73. package/lib/src/checkov-mapper.js +240 -0
  74. package/lib/src/checkov-mapper.js.map +1 -0
  75. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts +17 -0
  76. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts.map +1 -0
  77. package/lib/src/ckl-mapper/checklist-jsonix-converter.js +59 -25
  78. package/lib/src/ckl-mapper/checklist-jsonix-converter.js.map +1 -1
  79. package/lib/src/ckl-mapper/checklist-mapper.d.ts +35 -0
  80. package/lib/src/ckl-mapper/checklist-mapper.d.ts.map +1 -0
  81. package/lib/src/ckl-mapper/checklist-mapper.js +264 -155
  82. package/lib/src/ckl-mapper/checklist-mapper.js.map +1 -1
  83. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts +1 -0
  84. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts.map +1 -0
  85. package/lib/src/ckl-mapper/checklist-metadata-utils.js +38 -16
  86. package/lib/src/ckl-mapper/checklist-metadata-utils.js.map +1 -1
  87. package/lib/src/ckl-mapper/checklistJsonix.d.ts +6 -0
  88. package/lib/src/ckl-mapper/checklistJsonix.d.ts.map +1 -0
  89. package/lib/src/ckl-mapper/checklistJsonix.js +8 -8
  90. package/lib/src/ckl-mapper/checklistJsonix.js.map +1 -1
  91. package/lib/src/ckl-mapper/jsonixMapping.d.ts +5 -0
  92. package/lib/src/ckl-mapper/jsonixMapping.d.ts.map +1 -0
  93. package/lib/src/ckl-mapper/jsonixMapping.js +4 -0
  94. package/lib/src/ckl-mapper/jsonixMapping.js.map +1 -1
  95. package/lib/src/converters-from-hdf/asff/asff-types.d.ts +1 -0
  96. package/lib/src/converters-from-hdf/asff/asff-types.d.ts.map +1 -0
  97. package/lib/src/converters-from-hdf/asff/asff-types.js +1 -0
  98. package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -1
  99. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +1 -0
  100. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts.map +1 -0
  101. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +110 -84
  102. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -1
  103. package/lib/src/converters-from-hdf/asff/transformers.d.ts +1 -0
  104. package/lib/src/converters-from-hdf/asff/transformers.d.ts.map +1 -0
  105. package/lib/src/converters-from-hdf/asff/transformers.js +82 -55
  106. package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -1
  107. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts +1 -0
  108. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts.map +1 -0
  109. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js +65 -38
  110. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js.map +1 -1
  111. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts +4 -0
  112. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts.map +1 -0
  113. package/lib/src/converters-from-hdf/html/embedded-assets.js +8 -0
  114. package/lib/src/converters-from-hdf/html/embedded-assets.js.map +1 -0
  115. package/lib/src/converters-from-hdf/html/html-types.d.ts +1 -0
  116. package/lib/src/converters-from-hdf/html/html-types.d.ts.map +1 -0
  117. package/lib/src/converters-from-hdf/html/html-types.js +1 -0
  118. package/lib/src/converters-from-hdf/html/html-types.js.map +1 -1
  119. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts +3 -2
  120. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts.map +1 -0
  121. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js +151 -107
  122. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js.map +1 -1
  123. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts +1 -0
  124. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts.map +1 -0
  125. package/lib/src/converters-from-hdf/reverse-any-base-converter.js +3 -0
  126. package/lib/src/converters-from-hdf/reverse-any-base-converter.js.map +1 -1
  127. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +1 -0
  128. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts.map +1 -0
  129. package/lib/src/converters-from-hdf/reverse-base-converter.js +29 -9
  130. package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -1
  131. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts +1 -0
  132. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts.map +1 -0
  133. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js +40 -16
  134. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js.map +1 -1
  135. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts +1 -0
  136. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts.map +1 -0
  137. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js +33 -12
  138. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js.map +1 -1
  139. package/lib/src/conveyor-mapper.d.ts +1 -0
  140. package/lib/src/conveyor-mapper.d.ts.map +1 -0
  141. package/lib/src/conveyor-mapper.js +85 -40
  142. package/lib/src/conveyor-mapper.js.map +1 -1
  143. package/lib/src/cyclonedx-sbom-mapper.d.ts +1 -0
  144. package/lib/src/cyclonedx-sbom-mapper.d.ts.map +1 -0
  145. package/lib/src/cyclonedx-sbom-mapper.js +377 -309
  146. package/lib/src/cyclonedx-sbom-mapper.js.map +1 -1
  147. package/lib/src/dbprotect-mapper.d.ts +1 -0
  148. package/lib/src/dbprotect-mapper.d.ts.map +1 -0
  149. package/lib/src/dbprotect-mapper.js +74 -63
  150. package/lib/src/dbprotect-mapper.js.map +1 -1
  151. package/lib/src/dependency-track-mapper.d.ts +1 -0
  152. package/lib/src/dependency-track-mapper.d.ts.map +1 -0
  153. package/lib/src/dependency-track-mapper.js +144 -130
  154. package/lib/src/dependency-track-mapper.js.map +1 -1
  155. package/lib/src/fortify-mapper.d.ts +7 -0
  156. package/lib/src/fortify-mapper.d.ts.map +1 -0
  157. package/lib/src/fortify-mapper.js +118 -92
  158. package/lib/src/fortify-mapper.js.map +1 -1
  159. package/lib/src/gosec-mapper.d.ts +1 -0
  160. package/lib/src/gosec-mapper.d.ts.map +1 -0
  161. package/lib/src/gosec-mapper.js +90 -72
  162. package/lib/src/gosec-mapper.js.map +1 -1
  163. package/lib/src/ionchannel-mapper.d.ts +1 -0
  164. package/lib/src/ionchannel-mapper.d.ts.map +1 -0
  165. package/lib/src/ionchannel-mapper.js +130 -110
  166. package/lib/src/ionchannel-mapper.js.map +1 -1
  167. package/lib/src/jfrog-xray-mapper.d.ts +1 -0
  168. package/lib/src/jfrog-xray-mapper.d.ts.map +1 -0
  169. package/lib/src/jfrog-xray-mapper.js +92 -78
  170. package/lib/src/jfrog-xray-mapper.js.map +1 -1
  171. package/lib/src/jsonix-converter.d.ts +1 -0
  172. package/lib/src/jsonix-converter.d.ts.map +1 -0
  173. package/lib/src/jsonix-converter.js +1 -0
  174. package/lib/src/jsonix-converter.js.map +1 -1
  175. package/lib/src/jsonix-intermediate-converter.d.ts +1 -0
  176. package/lib/src/jsonix-intermediate-converter.d.ts.map +1 -0
  177. package/lib/src/jsonix-intermediate-converter.js.map +1 -1
  178. package/lib/src/mappings/AwsConfigMapping.d.ts +1 -0
  179. package/lib/src/mappings/AwsConfigMapping.d.ts.map +1 -0
  180. package/lib/src/mappings/AwsConfigMapping.js +19 -9
  181. package/lib/src/mappings/AwsConfigMapping.js.map +1 -1
  182. package/lib/src/mappings/AwsConfigMappingData.d.ts +1 -0
  183. package/lib/src/mappings/AwsConfigMappingData.d.ts.map +1 -0
  184. package/lib/src/mappings/AwsConfigMappingData.js.map +1 -1
  185. package/lib/src/mappings/CciNistMapping.d.ts +1 -0
  186. package/lib/src/mappings/CciNistMapping.d.ts.map +1 -0
  187. package/lib/src/mappings/CciNistMapping.js +6 -2
  188. package/lib/src/mappings/CciNistMapping.js.map +1 -1
  189. package/lib/src/mappings/CciNistMappingData.d.ts +1 -0
  190. package/lib/src/mappings/CciNistMappingData.d.ts.map +1 -0
  191. package/lib/src/mappings/CciNistMappingData.js.map +1 -1
  192. package/lib/src/mappings/CciNistMappingItem.d.ts +1 -0
  193. package/lib/src/mappings/CciNistMappingItem.d.ts.map +1 -0
  194. package/lib/src/mappings/CciNistMappingItem.js +2 -0
  195. package/lib/src/mappings/CciNistMappingItem.js.map +1 -1
  196. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts +5 -0
  197. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts.map +1 -0
  198. package/lib/src/mappings/CheckovToCciAndNistMappingData.js +2695 -0
  199. package/lib/src/mappings/CheckovToCciAndNistMappingData.js.map +1 -0
  200. package/lib/src/mappings/CweNistMapping.d.ts +1 -0
  201. package/lib/src/mappings/CweNistMapping.d.ts.map +1 -0
  202. package/lib/src/mappings/CweNistMapping.js +1 -0
  203. package/lib/src/mappings/CweNistMapping.js.map +1 -1
  204. package/lib/src/mappings/CweNistMappingData.d.ts +1 -0
  205. package/lib/src/mappings/CweNistMappingData.d.ts.map +1 -0
  206. package/lib/src/mappings/CweNistMappingData.js.map +1 -1
  207. package/lib/src/mappings/CweNistMappingItem.d.ts +1 -0
  208. package/lib/src/mappings/CweNistMappingItem.d.ts.map +1 -0
  209. package/lib/src/mappings/CweNistMappingItem.js +5 -0
  210. package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
  211. package/lib/src/mappings/NessusPluginNistMappingData.d.ts +1 -0
  212. package/lib/src/mappings/NessusPluginNistMappingData.d.ts.map +1 -0
  213. package/lib/src/mappings/NessusPluginNistMappingData.js.map +1 -1
  214. package/lib/src/mappings/NessusPluginsNistMapping.d.ts +1 -0
  215. package/lib/src/mappings/NessusPluginsNistMapping.d.ts.map +1 -0
  216. package/lib/src/mappings/NessusPluginsNistMapping.js +1 -0
  217. package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
  218. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +1 -0
  219. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts.map +1 -0
  220. package/lib/src/mappings/NessusPluginsNistMappingItem.js +4 -0
  221. package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
  222. package/lib/src/mappings/NiktoNistMapping.d.ts +1 -0
  223. package/lib/src/mappings/NiktoNistMapping.d.ts.map +1 -0
  224. package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
  225. package/lib/src/mappings/NiktoNistMappingData.d.ts +1 -0
  226. package/lib/src/mappings/NiktoNistMappingData.d.ts.map +1 -0
  227. package/lib/src/mappings/NiktoNistMappingData.js.map +1 -1
  228. package/lib/src/mappings/NiktoNistMappingItem.d.ts +1 -0
  229. package/lib/src/mappings/NiktoNistMappingItem.d.ts.map +1 -0
  230. package/lib/src/mappings/NiktoNistMappingItem.js +4 -0
  231. package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
  232. package/lib/src/mappings/NistCciMappingData.d.ts +1 -0
  233. package/lib/src/mappings/NistCciMappingData.d.ts.map +1 -0
  234. package/lib/src/mappings/NistCciMappingData.js.map +1 -1
  235. package/lib/src/mappings/OwaspNistMapping.d.ts +1 -0
  236. package/lib/src/mappings/OwaspNistMapping.d.ts.map +1 -0
  237. package/lib/src/mappings/OwaspNistMapping.js +19 -8
  238. package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
  239. package/lib/src/mappings/OwaspNistMappingData.d.ts +1 -0
  240. package/lib/src/mappings/OwaspNistMappingData.d.ts.map +1 -0
  241. package/lib/src/mappings/OwaspNistMappingData.js.map +1 -1
  242. package/lib/src/mappings/OwaspNistMappingItem.d.ts +1 -0
  243. package/lib/src/mappings/OwaspNistMappingItem.d.ts.map +1 -0
  244. package/lib/src/mappings/OwaspNistMappingItem.js +5 -0
  245. package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
  246. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +1 -0
  247. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts.map +1 -0
  248. package/lib/src/mappings/ScoutsuiteNistMapping.js +1 -0
  249. package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
  250. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts +1 -0
  251. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts.map +1 -0
  252. package/lib/src/mappings/ScoutsuiteNistMappingData.js.map +1 -1
  253. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +1 -0
  254. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts.map +1 -0
  255. package/lib/src/mappings/ScoutsuiteNistMappingItem.js +2 -0
  256. package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
  257. package/lib/src/msft-secure-score-mapper.d.ts +1 -0
  258. package/lib/src/msft-secure-score-mapper.d.ts.map +1 -0
  259. package/lib/src/msft-secure-score-mapper.js +202 -185
  260. package/lib/src/msft-secure-score-mapper.js.map +1 -1
  261. package/lib/src/nessus-mapper.d.ts +2 -1
  262. package/lib/src/nessus-mapper.d.ts.map +1 -0
  263. package/lib/src/nessus-mapper.js +122 -105
  264. package/lib/src/nessus-mapper.js.map +1 -1
  265. package/lib/src/netsparker-mapper.d.ts +7 -0
  266. package/lib/src/netsparker-mapper.d.ts.map +1 -0
  267. package/lib/src/netsparker-mapper.js +34 -9
  268. package/lib/src/netsparker-mapper.js.map +1 -1
  269. package/lib/src/neuvector-mapper.d.ts +1 -0
  270. package/lib/src/neuvector-mapper.d.ts.map +1 -0
  271. package/lib/src/neuvector-mapper.js +123 -124
  272. package/lib/src/neuvector-mapper.js.map +1 -1
  273. package/lib/src/nikto-mapper.d.ts +1 -0
  274. package/lib/src/nikto-mapper.d.ts.map +1 -0
  275. package/lib/src/nikto-mapper.js +85 -74
  276. package/lib/src/nikto-mapper.js.map +1 -1
  277. package/lib/src/prisma-mapper.d.ts +1 -0
  278. package/lib/src/prisma-mapper.d.ts.map +1 -0
  279. package/lib/src/prisma-mapper.js +138 -128
  280. package/lib/src/prisma-mapper.js.map +1 -1
  281. package/lib/src/sarif-mapper.d.ts +1 -0
  282. package/lib/src/sarif-mapper.d.ts.map +1 -0
  283. package/lib/src/sarif-mapper.js +116 -105
  284. package/lib/src/sarif-mapper.js.map +1 -1
  285. package/lib/src/scoutsuite-mapper.d.ts +1 -0
  286. package/lib/src/scoutsuite-mapper.d.ts.map +1 -0
  287. package/lib/src/scoutsuite-mapper.js +174 -163
  288. package/lib/src/scoutsuite-mapper.js.map +1 -1
  289. package/lib/src/snyk-mapper.d.ts +1 -0
  290. package/lib/src/snyk-mapper.d.ts.map +1 -0
  291. package/lib/src/snyk-mapper.js +112 -100
  292. package/lib/src/snyk-mapper.js.map +1 -1
  293. package/lib/src/sonarqube-mapper.d.ts +18 -5
  294. package/lib/src/sonarqube-mapper.d.ts.map +1 -0
  295. package/lib/src/sonarqube-mapper.js +526 -278
  296. package/lib/src/sonarqube-mapper.js.map +1 -1
  297. package/lib/src/splunk-mapper.d.ts +3 -2
  298. package/lib/src/splunk-mapper.d.ts.map +1 -0
  299. package/lib/src/splunk-mapper.js +72 -16
  300. package/lib/src/splunk-mapper.js.map +1 -1
  301. package/lib/src/trufflehog-mapper.d.ts +1 -0
  302. package/lib/src/trufflehog-mapper.d.ts.map +1 -0
  303. package/lib/src/trufflehog-mapper.js +72 -69
  304. package/lib/src/trufflehog-mapper.js.map +1 -1
  305. package/lib/src/twistlock-mapper.d.ts +1 -0
  306. package/lib/src/twistlock-mapper.d.ts.map +1 -0
  307. package/lib/src/twistlock-mapper.js +140 -126
  308. package/lib/src/twistlock-mapper.js.map +1 -1
  309. package/lib/src/utils/CCI_List.d.ts +1 -0
  310. package/lib/src/utils/CCI_List.d.ts.map +1 -0
  311. package/lib/src/utils/CCI_List.js.map +1 -1
  312. package/lib/src/utils/attestations.d.ts +1 -0
  313. package/lib/src/utils/attestations.d.ts.map +1 -0
  314. package/lib/src/utils/attestations.js +28 -13
  315. package/lib/src/utils/attestations.js.map +1 -1
  316. package/lib/src/utils/compliance.d.ts +1 -0
  317. package/lib/src/utils/compliance.d.ts.map +1 -0
  318. package/lib/src/utils/compliance.js +11 -3
  319. package/lib/src/utils/compliance.js.map +1 -1
  320. package/lib/src/utils/fingerprinting.d.ts +2 -0
  321. package/lib/src/utils/fingerprinting.d.ts.map +1 -0
  322. package/lib/src/utils/fingerprinting.js +28 -11
  323. package/lib/src/utils/fingerprinting.js.map +1 -1
  324. package/lib/src/utils/global.d.ts +3 -1
  325. package/lib/src/utils/global.d.ts.map +1 -0
  326. package/lib/src/utils/global.js +35 -17
  327. package/lib/src/utils/global.js.map +1 -1
  328. package/lib/src/utils/parseJson.d.ts +1 -0
  329. package/lib/src/utils/parseJson.d.ts.map +1 -0
  330. package/lib/src/utils/parseJson.js +7 -3
  331. package/lib/src/utils/parseJson.js.map +1 -1
  332. package/lib/src/utils/result.d.ts +1 -0
  333. package/lib/src/utils/result.d.ts.map +1 -0
  334. package/lib/src/utils/result.js.map +1 -1
  335. package/lib/src/utils/splunk-tools.d.ts +2 -1
  336. package/lib/src/utils/splunk-tools.d.ts.map +1 -0
  337. package/lib/src/utils/splunk-tools.js +52 -32
  338. package/lib/src/utils/splunk-tools.js.map +1 -1
  339. package/lib/src/veracode-mapper.d.ts +1 -0
  340. package/lib/src/veracode-mapper.d.ts.map +1 -0
  341. package/lib/src/veracode-mapper.js +50 -7
  342. package/lib/src/veracode-mapper.js.map +1 -1
  343. package/lib/src/xccdf-results-mapper.d.ts +7 -0
  344. package/lib/src/xccdf-results-mapper.d.ts.map +1 -0
  345. package/lib/src/xccdf-results-mapper.js +336 -301
  346. package/lib/src/xccdf-results-mapper.js.map +1 -1
  347. package/lib/src/zap-mapper.d.ts +8 -0
  348. package/lib/src/zap-mapper.d.ts.map +1 -0
  349. package/lib/src/zap-mapper.js +119 -90
  350. package/lib/src/zap-mapper.js.map +1 -1
  351. package/lib/tsconfig.build.tsbuildinfo +1 -0
  352. package/lib/types/neuvector-types.d.ts +1 -0
  353. package/lib/types/neuvector-types.d.ts.map +1 -0
  354. package/lib/types/neuvector-types.js +80 -0
  355. package/lib/types/neuvector-types.js.map +1 -1
  356. package/lib/types/splunk-config-types.d.ts +1 -0
  357. package/lib/types/splunk-config-types.d.ts.map +1 -0
  358. package/lib/types/splunk-config-types.js.map +1 -1
  359. package/lib/types/splunk-control-types.d.ts +1 -0
  360. package/lib/types/splunk-control-types.d.ts.map +1 -0
  361. package/lib/types/splunk-control-types.js.map +1 -1
  362. package/lib/types/splunk-profile-types.d.ts +1 -0
  363. package/lib/types/splunk-profile-types.d.ts.map +1 -0
  364. package/lib/types/splunk-profile-types.js.map +1 -1
  365. package/lib/types/splunk-report-types.d.ts +1 -0
  366. package/lib/types/splunk-report-types.d.ts.map +1 -0
  367. package/lib/types/splunk-report-types.js.map +1 -1
  368. package/package.json +29 -46
  369. package/lib/data/converters/csv2json.ts +0 -36
  370. package/lib/data/converters/xml2json.ts +0 -57
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.FromHDFToCAATMapper = exports.CAATHeaders = void 0;
27
37
  const XLSX = __importStar(require("@e965/xlsx"));
@@ -51,6 +61,23 @@ exports.CAATHeaders = [
51
61
  'Impact'
52
62
  ];
53
63
  class FromHDFToCAATMapper {
64
+ static MaxCellSize = 32000;
65
+ static MaxSheetNameLength = 31;
66
+ static NistCanonizationConfig = {
67
+ max_specifiers: 3,
68
+ pad_zeros: true,
69
+ allow_letters: false,
70
+ add_spaces: false
71
+ };
72
+ static FileSettings = {
73
+ Title: 'Compliance Assessment/Audit Tracking (CAAT) Spreadsheet',
74
+ Subject: 'Assessment Data',
75
+ Author: 'MITRE SAF',
76
+ CreatedDate: new Date()
77
+ };
78
+ static SheetOptions = {
79
+ header: exports.CAATHeaders.slice() // CAATHeaders is immutable but the type expects a mutable string
80
+ };
54
81
  static formatDate(date, delimiter) {
55
82
  return [
56
83
  Intl.DateTimeFormat('en-US', { month: '2-digit' }),
@@ -60,17 +87,19 @@ class FromHDFToCAATMapper {
60
87
  .map((formatter) => formatter.format(date))
61
88
  .join(delimiter);
62
89
  }
90
+ // ensure we're using Windows style newlines and fit within the maximum length
63
91
  static fix(str) {
64
- return (str !== null && str !== void 0 ? str : '')
92
+ return (str ?? '')
65
93
  .replace(/(\r\n|\n|\r)/gmu, '\r\n')
66
94
  .slice(0, FromHDFToCAATMapper.MaxCellSize);
67
95
  }
96
+ data;
97
+ // ensure input is turned into an array of contextualized evaluations with some additional metadata
68
98
  constructor(data) {
69
99
  if (!Array.isArray(data)) {
70
100
  data = [data];
71
101
  }
72
102
  this.data = data.map((datum) => {
73
- var _a, _b, _c;
74
103
  let contextualizedEvaluation = datum.data;
75
104
  if (_.isString(contextualizedEvaluation)) {
76
105
  const contextualizedFile = (0, inspecjs_1.convertFileContextual)(contextualizedEvaluation);
@@ -82,7 +111,9 @@ class FromHDFToCAATMapper {
82
111
  contextualizedEvaluation = (0, global_1.ensureContextualizedEvaluation)(contextualizedEvaluation);
83
112
  return {
84
113
  data: contextualizedEvaluation,
85
- filename: (_c = (_a = datum.filename) !== null && _a !== void 0 ? _a : (_b = contextualizedEvaluation.data.profiles.at(0)) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : 'ExecJSON',
114
+ filename: datum.filename ?? // if provided a filename use it
115
+ contextualizedEvaluation.data.profiles.at(0)?.name ?? // otherwise use the name of the first profile which is typically the only profile or the wrapper or overlay profile if there are multiple
116
+ 'ExecJSON', // otherwise set the default
86
117
  controls: datum.controls
87
118
  };
88
119
  });
@@ -94,15 +125,16 @@ class FromHDFToCAATMapper {
94
125
  return `${caveat}${FromHDFToCAATMapper.fix(hdf.wraps.desc)}`;
95
126
  }
96
127
  newTestResultDescription(hdf) {
97
- var _a, _b;
98
128
  const controlStatus = `${hdf.status}:\r\n\r\n`;
99
- const description = (_b = (_a = hdf.segments) === null || _a === void 0 ? void 0 : _a.map((result) => {
129
+ const description = hdf.segments
130
+ ?.map((result) => {
100
131
  const statusAndTest = `${result.status.toUpperCase()} -- Test: ${result.code_desc}\r\n`;
101
132
  const message = result.message
102
133
  ? `Message: ${result.message}\r\n\r\n`
103
134
  : '\r\n';
104
135
  return `${statusAndTest}${message}`;
105
- }).join('')) !== null && _b !== void 0 ? _b : '';
136
+ })
137
+ .join('') ?? '';
106
138
  return `${controlStatus}${description}`;
107
139
  }
108
140
  newTestResult(hdf) {
@@ -117,8 +149,9 @@ class FromHDFToCAATMapper {
117
149
  const allRows = _.compact(hdf
118
150
  .canonized_nist(FromHDFToCAATMapper.NistCanonizationConfig)
119
151
  .map((formattedNistTag) => {
120
- var _a, _b;
152
+ // I have not found a sample that triggers this case because the canonized_nist function seems to only return a nist tag
121
153
  if (!formattedNistTag) {
154
+ // early exiting forces us to use the compact function to get rid of empty values in the array
122
155
  return;
123
156
  }
124
157
  const row = {};
@@ -133,43 +166,54 @@ class FromHDFToCAATMapper {
133
166
  row['Control Weakness Type'] = 'Security';
134
167
  row['Source'] = 'Self-Assessment';
135
168
  row['Test Method'] = 'Test';
136
- row['Test Objective'] = FromHDFToCAATMapper.fix((_a = hdf.descriptions.check) !== null && _a !== void 0 ? _a : hdf.wraps.tags.check);
169
+ row['Test Objective'] = FromHDFToCAATMapper.fix(hdf.descriptions.check ?? hdf.wraps.tags.check);
137
170
  row['Test Result Description'] = FromHDFToCAATMapper.fix(this.newTestResultDescription(hdf));
138
171
  row['Test Result'] = this.newTestResult(hdf);
139
- row['Recommended Corrective Action(s)'] = FromHDFToCAATMapper.fix((_b = hdf.descriptions.fix) !== null && _b !== void 0 ? _b : hdf.wraps.tags.fix);
172
+ row['Recommended Corrective Action(s)'] = FromHDFToCAATMapper.fix(hdf.descriptions.fix ?? hdf.wraps.tags.fix);
140
173
  row['Impact'] = this.newImpact(hdf);
141
174
  return row;
142
175
  }));
143
176
  return allRows;
144
177
  }
178
+ // returnWorkBook: true -> raw workbook class
179
+ // returnWorkBook: false | undefined -> binary string by default otherwise whatever is specified in the options parameter
145
180
  toCAAT(returnWorkBook = false, options = { bookType: 'xlsx', type: 'binary' }) {
146
- var _a, _b, _c, _d;
181
+ // Sheet names must be unique across the workbook
147
182
  const takenSheetNames = [];
183
+ // Define our workbook
148
184
  const workBook = XLSX.utils.book_new();
185
+ // For each contextualized evaluation
149
186
  for (const d of this.data) {
187
+ // Ensure sheet name uniqueness
150
188
  let renameCount = 2;
151
- const fullName = `${(_c = (_a = d.filename) !== null && _a !== void 0 ? _a : (_b = d.data.data.profiles.at(0)) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : 'ExecJSON'}`;
189
+ const fullName = `${d.filename ?? d.data.data.profiles.at(0)?.name ?? 'ExecJSON'}`;
152
190
  let sheetName = fullName.substring(0, FromHDFToCAATMapper.MaxSheetNameLength);
153
191
  while (takenSheetNames.includes(sheetName)) {
154
192
  sheetName =
155
193
  fullName.substring(0, FromHDFToCAATMapper.MaxSheetNameLength - 5) +
156
- ` (${renameCount})`;
194
+ ` (${renameCount})`; // space for up to a 2 digit number; there's no check to stop it going past other than the workbook failing to be created, but that should be fine since the likelihood of someone having that many dupes is very slim
157
195
  renameCount++;
158
196
  }
159
197
  takenSheetNames.push(sheetName);
198
+ // Create a new Sheet
160
199
  workBook.SheetNames.push(sheetName);
161
200
  workBook.Props = FromHDFToCAATMapper.FileSettings;
201
+ // Get the controls for the current evaluation
162
202
  const processedControls = new Set();
163
203
  const rows = [];
164
- for (const control of (_d = d.controls) !== null && _d !== void 0 ? _d : d.data.contains.flatMap((profile) => profile.contains)) {
204
+ // Convert them into rows
205
+ for (const control of d.controls ??
206
+ d.data.contains.flatMap((profile) => profile.contains)) {
165
207
  const root = control.root;
208
+ // Overlay profiles will usually share controls
166
209
  if (processedControls.has(root.hdf.wraps.id)) {
167
210
  continue;
168
211
  }
169
212
  processedControls.add(root.hdf.wraps.id);
170
213
  rows.push(...this.getRow(root, d.filename));
171
214
  }
172
- rows.sort((x, y) => { var _a, _b, _c; return (_c = (_a = x['Finding Title']) === null || _a === void 0 ? void 0 : _a.localeCompare((_b = y['Finding Title']) !== null && _b !== void 0 ? _b : '')) !== null && _c !== void 0 ? _c : 1; });
215
+ rows.sort((x, y) => x['Finding Title']?.localeCompare(y['Finding Title'] ?? '') ?? 1);
216
+ // Add rows to sheet
173
217
  const workSheet = XLSX.utils.json_to_sheet(rows, FromHDFToCAATMapper.SheetOptions);
174
218
  workBook.Sheets[sheetName] = workSheet;
175
219
  }
@@ -180,21 +224,4 @@ class FromHDFToCAATMapper {
180
224
  }
181
225
  }
182
226
  exports.FromHDFToCAATMapper = FromHDFToCAATMapper;
183
- FromHDFToCAATMapper.MaxCellSize = 32000;
184
- FromHDFToCAATMapper.MaxSheetNameLength = 31;
185
- FromHDFToCAATMapper.NistCanonizationConfig = {
186
- max_specifiers: 3,
187
- pad_zeros: true,
188
- allow_letters: false,
189
- add_spaces: false
190
- };
191
- FromHDFToCAATMapper.FileSettings = {
192
- Title: 'Compliance Assessment/Audit Tracking (CAAT) Spreadsheet',
193
- Subject: 'Assessment Data',
194
- Author: 'MITRE SAF',
195
- CreatedDate: new Date()
196
- };
197
- FromHDFToCAATMapper.SheetOptions = {
198
- header: exports.CAATHeaders.slice()
199
- };
200
227
  //# sourceMappingURL=reverse-caat-mapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reverse-caat-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/caat/reverse-caat-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reverse-caat-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/caat/reverse-caat-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import * as XLSX from '@e965/xlsx';\nimport {\n CanonizationConfig,\n ContextualizedControl,\n ContextualizedEvaluation,\n convertFileContextual,\n ExecJSON,\n HDFControl,\n isContextualizedEvaluation\n} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {ensureContextualizedEvaluation} from '../../utils/global';\n\nexport type InputData = {\n data: string | ExecJSON.Execution | ContextualizedEvaluation;\n filename?: string;\n controls?: ContextualizedControl[];\n};\n\ntype Data = InputData & {data: ContextualizedEvaluation; filename: string};\n\nexport const CAATHeaders = [\n 'Control Number',\n 'Finding Title',\n 'Date Identified',\n 'Finding ID',\n 'Information System or Program Name',\n 'Repeat Findings',\n 'Repeat Finding Weakness ID',\n 'Finding Description',\n 'Weakness Description',\n 'Control Weakness Type',\n 'Source',\n 'Assessment/Audit Company',\n 'Test Method',\n 'Test Objective',\n 'Test Result Description',\n 'Test Result',\n 'Recommended Corrective Action(s)',\n 'Effect on Business',\n 'Likelihood',\n 'Impact'\n] as const;\n\nexport type CAATRow = Partial<\n Record<(typeof CAATHeaders)[number], string | undefined>\n>;\n\nexport class FromHDFToCAATMapper {\n static readonly MaxCellSize = 32000;\n static readonly MaxSheetNameLength = 31;\n\n static readonly NistCanonizationConfig: CanonizationConfig = {\n max_specifiers: 3,\n pad_zeros: true,\n allow_letters: false,\n add_spaces: false\n };\n\n static readonly FileSettings: XLSX.Properties = {\n Title: 'Compliance Assessment/Audit Tracking (CAAT) Spreadsheet',\n Subject: 'Assessment Data',\n Author: 'MITRE SAF',\n CreatedDate: new Date()\n };\n\n static readonly SheetOptions: XLSX.JSON2SheetOpts = {\n header: CAATHeaders.slice() // CAATHeaders is immutable but the type expects a mutable string\n };\n\n static formatDate(date: Date, delimiter: string): string {\n return [\n Intl.DateTimeFormat('en-US', {month: '2-digit'}),\n Intl.DateTimeFormat('en-US', {day: '2-digit'}),\n Intl.DateTimeFormat('en-US', {year: 'numeric'})\n ]\n .map((formatter) => formatter.format(date))\n .join(delimiter);\n }\n\n // ensure we're using Windows style newlines and fit within the maximum length\n static fix(str?: string | null): string {\n return (str ?? '')\n .replace(/(\\r\\n|\\n|\\r)/gmu, '\\r\\n')\n .slice(0, FromHDFToCAATMapper.MaxCellSize);\n }\n\n data: Data[];\n\n // ensure input is turned into an array of contextualized evaluations with some additional metadata\n constructor(data: InputData | InputData[]) {\n if (!Array.isArray(data)) {\n data = [data];\n }\n this.data = data.map((datum) => {\n let contextualizedEvaluation = datum.data;\n if (_.isString(contextualizedEvaluation)) {\n const contextualizedFile = convertFileContextual(\n contextualizedEvaluation\n );\n if (!isContextualizedEvaluation(contextualizedFile)) {\n throw new Error('Input string was not an HDF ExecJSON');\n }\n contextualizedEvaluation = contextualizedFile;\n }\n contextualizedEvaluation = ensureContextualizedEvaluation(\n contextualizedEvaluation\n );\n return {\n data: contextualizedEvaluation,\n filename:\n datum.filename ?? // if provided a filename use it\n contextualizedEvaluation.data.profiles.at(0)?.name ?? // otherwise use the name of the first profile which is typically the only profile or the wrapper or overlay profile if there are multiple\n 'ExecJSON', // otherwise set the default\n controls: datum.controls\n };\n });\n }\n\n newCaveat(hdf: HDFControl): string {\n const caveat = hdf.descriptions.caveat\n ? `(Caveat: ${FromHDFToCAATMapper.fix(hdf.descriptions.caveat)})\\r\\n`\n : '';\n return `${caveat}${FromHDFToCAATMapper.fix(hdf.wraps.desc)}`;\n }\n\n newTestResultDescription(hdf: HDFControl): string {\n const controlStatus = `${hdf.status}:\\r\\n\\r\\n`;\n const description =\n hdf.segments\n ?.map((result) => {\n const statusAndTest = `${result.status.toUpperCase()} -- Test: ${\n result.code_desc\n }\\r\\n`;\n const message = result.message\n ? `Message: ${result.message}\\r\\n\\r\\n`\n : '\\r\\n';\n return `${statusAndTest}${message}`;\n })\n .join('') ?? '';\n return `${controlStatus}${description}`;\n }\n\n newTestResult(hdf: HDFControl): string {\n return hdf.status === 'Passed' ? 'Satisfied' : 'Other Than Satisfied';\n }\n\n newImpact(hdf: HDFControl): string {\n const controlSeverity =\n hdf.severity === 'medium' ? 'moderate' : hdf.severity;\n return FromHDFToCAATMapper.fix(\n hdf.wraps.impact === 0 ? 'none' : controlSeverity\n );\n }\n\n getRow(control: ContextualizedControl, filename: string): CAATRow[] {\n const hdf = control.hdf;\n const allRows: CAATRow[] = _.compact(\n hdf\n .canonized_nist(FromHDFToCAATMapper.NistCanonizationConfig)\n .map((formattedNistTag) => {\n // I have not found a sample that triggers this case because the canonized_nist function seems to only return a nist tag\n if (!formattedNistTag) {\n // early exiting forces us to use the compact function to get rid of empty values in the array\n return;\n }\n\n const row: CAATRow = {};\n row['Control Number'] = formattedNistTag;\n row['Finding Title'] = `Test ${FromHDFToCAATMapper.fix(\n hdf.wraps.id\n )} - ${FromHDFToCAATMapper.fix(hdf.wraps.title)}`;\n if (hdf.start_time) {\n row['Date Identified'] = FromHDFToCAATMapper.formatDate(\n new Date(hdf.start_time),\n '/'\n );\n }\n row['Finding ID'] = `${filename} - Test ${FromHDFToCAATMapper.fix(\n hdf.wraps.id\n )}`;\n row['Finding Description'] = FromHDFToCAATMapper.fix(hdf.wraps.title);\n row['Weakness Description'] = this.newCaveat(hdf);\n row['Control Weakness Type'] = 'Security';\n row['Source'] = 'Self-Assessment';\n row['Test Method'] = 'Test';\n row['Test Objective'] = FromHDFToCAATMapper.fix(\n hdf.descriptions.check ?? hdf.wraps.tags.check\n );\n row['Test Result Description'] = FromHDFToCAATMapper.fix(\n this.newTestResultDescription(hdf)\n );\n row['Test Result'] = this.newTestResult(hdf);\n row['Recommended Corrective Action(s)'] = FromHDFToCAATMapper.fix(\n hdf.descriptions.fix ?? hdf.wraps.tags.fix\n );\n row['Impact'] = this.newImpact(hdf);\n return row;\n })\n );\n return allRows;\n }\n\n // returnWorkBook: true -> raw workbook class\n // returnWorkBook: false | undefined -> binary string by default otherwise whatever is specified in the options parameter\n toCAAT(\n returnWorkBook = false,\n options: XLSX.WritingOptions = {bookType: 'xlsx', type: 'binary'}\n ) {\n // Sheet names must be unique across the workbook\n const takenSheetNames: string[] = [];\n\n // Define our workbook\n const workBook = XLSX.utils.book_new();\n\n // For each contextualized evaluation\n for (const d of this.data) {\n // Ensure sheet name uniqueness\n let renameCount = 2;\n const fullName = `${\n d.filename ?? d.data.data.profiles.at(0)?.name ?? 'ExecJSON'\n }`;\n let sheetName: string = fullName.substring(\n 0,\n FromHDFToCAATMapper.MaxSheetNameLength\n );\n while (takenSheetNames.includes(sheetName)) {\n sheetName =\n fullName.substring(0, FromHDFToCAATMapper.MaxSheetNameLength - 5) +\n ` (${renameCount})`; // space for up to a 2 digit number; there's no check to stop it going past other than the workbook failing to be created, but that should be fine since the likelihood of someone having that many dupes is very slim\n renameCount++;\n }\n takenSheetNames.push(sheetName);\n\n // Create a new Sheet\n workBook.SheetNames.push(sheetName);\n workBook.Props = FromHDFToCAATMapper.FileSettings;\n\n // Get the controls for the current evaluation\n const processedControls = new Set();\n const rows: CAATRow[] = [];\n // Convert them into rows\n for (const control of d.controls ??\n d.data.contains.flatMap((profile) => profile.contains)) {\n const root = control.root;\n\n // Overlay profiles will usually share controls\n if (processedControls.has(root.hdf.wraps.id)) {\n continue;\n }\n\n processedControls.add(root.hdf.wraps.id);\n rows.push(...this.getRow(root, d.filename));\n }\n\n rows.sort(\n (x, y) =>\n x['Finding Title']?.localeCompare(y['Finding Title'] ?? '') ?? 1\n );\n\n // Add rows to sheet\n const workSheet = XLSX.utils.json_to_sheet(\n rows,\n FromHDFToCAATMapper.SheetOptions\n );\n workBook.Sheets[sheetName] = workSheet;\n }\n\n if (returnWorkBook) {\n return workBook;\n }\n return XLSX.write(workBook, options);\n }\n}\n"]}