@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,18 +15,55 @@ 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.setupControlStatus = exports.setupDetailsAssume = exports.setupResourcesID2 = exports.setupResourcesID = exports.setupProdFieldCheck = exports.setupRemRec = exports.getFixForControl = exports.setupFindingType = exports.setupSevOriginal = exports.setupSevLabel = exports.setupDescr = exports.setupTitle = exports.setupGeneratorId = exports.setupUpdated = exports.setupRegion = exports.setupCreated = exports.setupAwsAcct = exports.setupProductARN = exports.setupId = exports.createCode = exports.createNote = exports.getAllLayers = exports.cleanText = exports.createAssumeRolePolicyDocument = exports.createDescription = exports.statusCount = exports.createProfileInfoFinding = exports.getRunTime = void 0;
39
+ exports.getRunTime = getRunTime;
40
+ exports.createProfileInfoFinding = createProfileInfoFinding;
41
+ exports.statusCount = statusCount;
42
+ exports.createDescription = createDescription;
43
+ exports.createAssumeRolePolicyDocument = createAssumeRolePolicyDocument;
44
+ exports.cleanText = cleanText;
45
+ exports.getAllLayers = getAllLayers;
46
+ exports.createNote = createNote;
47
+ exports.createCode = createCode;
48
+ exports.setupId = setupId;
49
+ exports.setupProductARN = setupProductARN;
50
+ exports.setupAwsAcct = setupAwsAcct;
51
+ exports.setupCreated = setupCreated;
52
+ exports.setupRegion = setupRegion;
53
+ exports.setupUpdated = setupUpdated;
54
+ exports.setupGeneratorId = setupGeneratorId;
55
+ exports.setupTitle = setupTitle;
56
+ exports.setupDescr = setupDescr;
57
+ exports.setupSevLabel = setupSevLabel;
58
+ exports.setupSevOriginal = setupSevOriginal;
59
+ exports.setupFindingType = setupFindingType;
60
+ exports.getFixForControl = getFixForControl;
61
+ exports.setupRemRec = setupRemRec;
62
+ exports.setupProdFieldCheck = setupProdFieldCheck;
63
+ exports.setupResourcesID = setupResourcesID;
64
+ exports.setupResourcesID2 = setupResourcesID2;
65
+ exports.setupDetailsAssume = setupDetailsAssume;
66
+ exports.setupControlStatus = setupControlStatus;
30
67
  const crypto_1 = require("crypto");
31
68
  const inspecjs_1 = require("inspecjs");
32
69
  const _ = __importStar(require("lodash"));
@@ -50,22 +87,26 @@ function getRunTime(hdf) {
50
87
  });
51
88
  return time;
52
89
  }
53
- exports.getRunTime = getRunTime;
90
+ /** Trivial overlay filter that just takes the version of the control that has results from amongst all identical ids */
54
91
  function filter_overlays(controls) {
55
92
  const idHash = {};
56
93
  controls.forEach((c) => {
57
94
  const id = c.hdf.wraps.id;
58
95
  const old = idHash[id];
96
+ // If old, gotta check if our new status list is "better than" old
59
97
  if (old) {
60
98
  const newSignificant = c.hdf.status_list && c.hdf.status_list.length > 0;
61
99
  if (newSignificant) {
100
+ // Overwrite
62
101
  idHash[id] = c;
63
102
  }
64
103
  }
65
104
  else {
105
+ // First time seeing this id
66
106
  idHash[id] = c;
67
107
  }
68
108
  });
109
+ // Return the set of keys
69
110
  return Array.from(Object.values(idHash));
70
111
  }
71
112
  function createProfileInfoFinding(hdf, options) {
@@ -104,11 +145,12 @@ function createProfileInfoFinding(hdf, options) {
104
145
  }
105
146
  ]
106
147
  };
148
+ // need the intermediate caste to tell typescript that this cast is intentional
107
149
  return profileInfo;
108
150
  }
109
- exports.createProfileInfoFinding = createProfileInfoFinding;
110
151
  function statusCount(evaluation) {
111
152
  let controls = [];
153
+ // Get all controls
112
154
  evaluation.contains.forEach((p) => controls.push(...p.contains));
113
155
  controls = filter_overlays(controls);
114
156
  const statusCounts = {
@@ -139,17 +181,15 @@ function statusCount(evaluation) {
139
181
  });
140
182
  return statusCounts;
141
183
  }
142
- exports.statusCount = statusCount;
143
184
  function createDescription(counts) {
144
185
  return `Result Set Status Summary -- Passed: ${counts.Passed} (${counts.PassedTests} individual checks passed) --- Failed: ${counts.Failed} (${counts.PassingTestsFailedControl} individual checks failed out of ${counts.PassingTestsFailedControl + counts.FailedTests} total checks) --- Not Applicable: ${counts.NotApplicable} (System exception or absent component) --- Not Reviewed: ${counts.NotReviewed} (Can only be tested manually at this time)`;
145
186
  }
146
- exports.createDescription = createDescription;
147
187
  function createAssumeRolePolicyDocument(layersOfControl, segment) {
148
188
  const segmentOverview = createNote(segment);
149
189
  const code = layersOfControl.map((layer) => createCode(layer)).join('\n\n');
150
190
  return `${code}\n\n${segmentOverview}`;
151
191
  }
152
- exports.createAssumeRolePolicyDocument = createAssumeRolePolicyDocument;
192
+ // Gets rid of extra spacing + newlines as these aren't shown in Security Hub
153
193
  function cleanText(text) {
154
194
  if (text) {
155
195
  return text.replace(/ +/g, ' ');
@@ -158,7 +198,7 @@ function cleanText(text) {
158
198
  return undefined;
159
199
  }
160
200
  }
161
- exports.cleanText = cleanText;
201
+ // Gets all layers of a control across overlaid profiles given the ID
162
202
  function getAllLayers(hdf, knownControl) {
163
203
  if (hdf.profiles.length === 1) {
164
204
  return [
@@ -172,6 +212,7 @@ function getAllLayers(hdf, knownControl) {
172
212
  }
173
213
  else {
174
214
  const foundControls = [];
215
+ // For each control in each profile
175
216
  hdf.profiles.forEach((profile) => {
176
217
  profile.controls.forEach((control) => {
177
218
  if (control.id === knownControl.id) {
@@ -185,7 +226,7 @@ function getAllLayers(hdf, knownControl) {
185
226
  return foundControls;
186
227
  }
187
228
  }
188
- exports.getAllLayers = getAllLayers;
229
+ // Creates Note field containing control status
189
230
  function createNote(segment) {
190
231
  if (segment.message) {
191
232
  return `Test Description: ${segment.code_desc} --- Test Result: ${segment.message}`;
@@ -197,7 +238,6 @@ function createNote(segment) {
197
238
  return `Test Description: ${segment.code_desc}`;
198
239
  }
199
240
  }
200
- exports.createNote = createNote;
201
241
  function cleanObjectValues(value) {
202
242
  if (Array.isArray(value)) {
203
243
  return value.length < 0;
@@ -205,7 +245,6 @@ function cleanObjectValues(value) {
205
245
  return !Boolean(value);
206
246
  }
207
247
  function createCode(control) {
208
- var _a, _b;
209
248
  const noCodeValue = (_.get(control, 'profileInfo.depends') || [])
210
249
  .length > 0
211
250
  ? ''
@@ -213,25 +252,21 @@ function createCode(control) {
213
252
  if (!control.code && noCodeValue === '') {
214
253
  return '';
215
254
  }
216
- return `=========================================================\n# Profile name: ${(_a = control.profileInfo) === null || _a === void 0 ? void 0 : _a.name}\n=========================================================\n\n${control.code ? (_b = control.code) === null || _b === void 0 ? void 0 : _b.replace(/\\\"/g, '"') : noCodeValue}`;
255
+ return `=========================================================\n# Profile name: ${control.profileInfo?.name}\n=========================================================\n\n${control.code ? control.code?.replace(/\\\"/g, '"') : noCodeValue}`;
217
256
  }
218
- exports.createCode = createCode;
219
257
  function setupId(control, context) {
220
- const target = context === null || context === void 0 ? void 0 : context.ioptions.target;
221
- const name = context === null || context === void 0 ? void 0 : context.data.profiles[0].name;
258
+ const target = context?.ioptions.target;
259
+ const name = context?.data.profiles[0].name;
222
260
  return `${target}/${name}/${control.id}/finding/${(0, crypto_1.createHash)('sha256')
223
261
  .update(control.id + control.result.code_desc)
224
262
  .digest('hex')}`;
225
263
  }
226
- exports.setupId = setupId;
227
264
  function setupProductARN(_val, context) {
228
- return `arn:aws:securityhub:${context === null || context === void 0 ? void 0 : context.ioptions.region}:${context === null || context === void 0 ? void 0 : context.ioptions.awsAccountId}:product/${context === null || context === void 0 ? void 0 : context.ioptions.awsAccountId}/default`;
265
+ return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:product/${context?.ioptions.awsAccountId}/default`;
229
266
  }
230
- exports.setupProductARN = setupProductARN;
231
267
  function setupAwsAcct(_val, context) {
232
- return context === null || context === void 0 ? void 0 : context.ioptions.awsAccountId;
268
+ return context?.ioptions.awsAccountId;
233
269
  }
234
- exports.setupAwsAcct = setupAwsAcct;
235
270
  function setupCreated(control) {
236
271
  try {
237
272
  return (new Date(control.result.start_time).toISOString() ||
@@ -241,27 +276,24 @@ function setupCreated(control) {
241
276
  return new Date().toISOString();
242
277
  }
243
278
  }
244
- exports.setupCreated = setupCreated;
245
279
  function setupRegion(_val, context) {
246
- return context === null || context === void 0 ? void 0 : context.ioptions.region;
280
+ return context?.ioptions.region;
247
281
  }
248
- exports.setupRegion = setupRegion;
249
282
  function setupUpdated(_control, context) {
283
+ // Add one millisecond to the time by control index so the order is correct in security hub
250
284
  const time = new Date();
251
- time.setMilliseconds(time.getMilliseconds() + ((context === null || context === void 0 ? void 0 : context.index) || 0));
285
+ time.setMilliseconds(time.getMilliseconds() + (context?.index || 0));
252
286
  return time.toISOString();
253
287
  }
254
- exports.setupUpdated = setupUpdated;
255
288
  function setupGeneratorId(control, context) {
256
- return `arn:aws:securityhub:${context === null || context === void 0 ? void 0 : context.ioptions.region}:${context === null || context === void 0 ? void 0 : context.ioptions.awsAccountId}:ruleset/set/${context === null || context === void 0 ? void 0 : context.data.profiles[0].name}/rule/${control.id}`;
289
+ return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:ruleset/set/${context?.data.profiles[0].name}/rule/${control.id}`;
257
290
  }
258
- exports.setupGeneratorId = setupGeneratorId;
259
291
  function setupTitle(control) {
260
292
  const nistTags = control.tags.nist ? `[${control.tags.nist.join(', ')}]` : '';
261
293
  return _.truncate(`${control.id} | ${nistTags} | ${cleanText(control.title)}`, { length: 256 });
262
294
  }
263
- exports.setupTitle = setupTitle;
264
295
  function setupDescr(control) {
296
+ // Check text can either be a description or a tag
265
297
  const checkText = (0, global_1.getDescription)(control.descriptions || [], 'check') ||
266
298
  control.tags.check ||
267
299
  'Check not available';
@@ -272,15 +304,12 @@ function setupDescr(control) {
272
304
  }
273
305
  return currentVal;
274
306
  }
275
- exports.setupDescr = setupDescr;
276
307
  function setupSevLabel(control, context) {
277
- return (context === null || context === void 0 ? void 0 : context.impactMapping.get(control.impact)) || 'INFORMATIONAL';
308
+ return context?.impactMapping.get(control.impact) || 'INFORMATIONAL';
278
309
  }
279
- exports.setupSevLabel = setupSevLabel;
280
310
  function setupSevOriginal(control) {
281
311
  return `${control.impact}`;
282
312
  }
283
- exports.setupSevOriginal = setupSevOriginal;
284
313
  function createControlMetadata(control) {
285
314
  const types = [
286
315
  `Control/ID/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(control.id)}`,
@@ -308,9 +337,8 @@ function createControlMetadata(control) {
308
337
  return types;
309
338
  }
310
339
  function getFilename(options) {
311
- var _a;
312
- const slashSplit = options === null || options === void 0 ? void 0 : options.input.split('\\')[(options === null || options === void 0 ? void 0 : options.input.split('\\').length) - 1];
313
- return (_a = slashSplit === null || slashSplit === void 0 ? void 0 : slashSplit.split('/')[slashSplit.split('/').length - 1]) !== null && _a !== void 0 ? _a : '';
340
+ const slashSplit = options?.input.split('\\')[options?.input.split('\\').length - 1];
341
+ return slashSplit?.split('/')[slashSplit.split('/').length - 1] ?? '';
314
342
  }
315
343
  function createProfileInfoFindingFields(hdf, options) {
316
344
  const typesArr = [
@@ -400,10 +428,9 @@ function createTagInfo(control) {
400
428
  return typesArr;
401
429
  }
402
430
  function createDescriptionInfo(control) {
403
- var _a;
404
431
  const typesArr = [];
405
432
  if (Array.isArray(control.descriptions)) {
406
- (_a = control.descriptions) === null || _a === void 0 ? void 0 : _a.forEach((description) => {
433
+ control.descriptions?.forEach((description) => {
407
434
  if (description.data && cleanText(description.data)) {
408
435
  typesArr.push(`Descriptions/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(description.label)}/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(cleanText(description.data))}`);
409
436
  }
@@ -419,57 +446,58 @@ function createDescriptionInfo(control) {
419
446
  return typesArr;
420
447
  }
421
448
  function setupFindingType(control, context) {
449
+ // typesArr needs to be ordered so that attributes that are likely to be bloated and/or contain less necessary information end up at the bottom so that they don't expand and push more attributes outside of the list which is capped at 50 items
422
450
  const typesArr = [
423
451
  `MITRE/SAF/${package_json_1.version}-hdf2asff`,
424
- `File/Input/${getFilename(context === null || context === void 0 ? void 0 : context.ioptions)}`
452
+ `File/Input/${getFilename(context?.ioptions)}`
425
453
  ];
454
+ // Add control metadata to the Finding Provider Fields
426
455
  typesArr.push(...createControlMetadata(control));
456
+ // Add segment/result information to Finding Provider Fields
427
457
  typesArr.push(...createSegmentInfo(control.result));
458
+ // Add Tags to Finding Provider Fields
428
459
  typesArr.push(...createTagInfo(control));
460
+ // nist tag, then subdescriptions, then remaining tags
429
461
  const nistTagIndex = typesArr.findIndex((typeString) => typeString.startsWith('Tags/nist/'));
430
462
  const tagsIndex = typesArr.findIndex((typeString) => typeString.startsWith('Tags/'));
431
463
  if (nistTagIndex !== -1) {
432
464
  typesArr.splice(tagsIndex, 0, typesArr.splice(nistTagIndex, 1)[0]);
433
465
  }
434
- typesArr.splice(tagsIndex === -1 ? typesArr.length : tagsIndex + 1, 0, ...createDescriptionInfo(control));
466
+ typesArr.splice(tagsIndex === -1 ? typesArr.length : tagsIndex + 1, 0,
467
+ // Add Descriptions to FindingProviderFields
468
+ ...createDescriptionInfo(control));
469
+ // description, then code, then code_desc
435
470
  const desc = typesArr.splice(typesArr.findIndex((typeString) => typeString.startsWith('Control/Desc/')), 1)[0];
436
471
  const code = `Control/Code/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(control.layersOfControl
437
472
  .map((layer) => createCode(layer))
438
473
  .join('\n\n'))}`;
439
474
  const codeDesc = typesArr.splice(typesArr.findIndex((typeString) => typeString.startsWith('Segment/code_desc/')), 1)[0];
440
- typesArr.push(..._.compact([desc, code, codeDesc]));
475
+ typesArr.push(..._.compact([desc, code, codeDesc])); // [][0] can return undefined so use compact to deal with them
441
476
  return typesArr;
442
477
  }
443
- exports.setupFindingType = setupFindingType;
444
478
  function getFixForControl(control) {
445
479
  return ((0, global_1.getDescription)(control.descriptions || [], 'fix') ||
446
480
  control.tags.fix ||
447
481
  'Fix not available');
448
482
  }
449
- exports.getFixForControl = getFixForControl;
450
483
  function setupRemRec(control) {
451
484
  return _.truncate(cleanText(`${createNote(control.result)} --- Fix: ${getFixForControl(control)}`), { length: 512, omission: '... [SEE FULL TEXT IN AssumeRolePolicyDocument]' });
452
485
  }
453
- exports.setupRemRec = setupRemRec;
454
486
  function setupProdFieldCheck(control) {
455
487
  const checkText = (0, global_1.getDescription)(control.descriptions || [], 'check') ||
456
488
  control.tags.check ||
457
489
  'Check not available';
458
490
  return _.truncate(checkText, { length: 2048, omission: '' });
459
491
  }
460
- exports.setupProdFieldCheck = setupProdFieldCheck;
461
492
  function setupResourcesID(_val, context) {
462
- return `AWS::::Account:${context === null || context === void 0 ? void 0 : context.ioptions.awsAccountId}`;
493
+ return `AWS::::Account:${context?.ioptions.awsAccountId}`;
463
494
  }
464
- exports.setupResourcesID = setupResourcesID;
465
495
  function setupResourcesID2(control) {
466
496
  return `${control.id} Validation Code`;
467
497
  }
468
- exports.setupResourcesID2 = setupResourcesID2;
469
498
  function setupDetailsAssume(control) {
470
499
  return createAssumeRolePolicyDocument(control.layersOfControl, control.result);
471
500
  }
472
- exports.setupDetailsAssume = setupDetailsAssume;
473
501
  function setupControlStatus(control) {
474
502
  if (control.results.some((result) => 'backtrace' in result)) {
475
503
  return 'NOT_AVAILABLE';
@@ -482,5 +510,4 @@ function setupControlStatus(control) {
482
510
  }
483
511
  return status;
484
512
  }
485
- exports.setupControlStatus = setupControlStatus;
486
513
  //# sourceMappingURL=transformers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/transformers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,uCAMkB;AAClB,0CAA4B;AAC5B,oDAA4B;AAC5B,wDAAsE;AACtE,+CAAkD;AAElD,+DAI+B;AAa/B,SAAgB,UAAU,CAAC,GAAuB;IAChD,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,IACE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;YAClC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EACzC;YACA,IAAI;gBACF,IAAI,GAAG,IAAI,IAAI,CACb,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAC1C,CAAC,WAAW,EAAE,CAAC;aACjB;YAAC,MAAM;gBACN,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;IACH,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAlBD,gCAkBC;AAGD,SAAS,eAAe,CACtB,QAAiC;IAEjC,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAsC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1D,IAAI,GAAG,EAAE;YACP,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YACzE,IAAI,cAAc,EAAE;gBAElB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;aAChB;SACF;aAAM;YAEL,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SAChB;IACH,CAAC,CAAC,CAAC;IAGH,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,wBAAwB,CACtC,GAAuB,EACvB,OAAiB;IAEjB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,wBAAwB,GAAG,IAAA,kCAAuB,EACtD,YAAY,CAAC,cAAc,CAAQ,CACpC,CAAC;IACF,MAAM,MAAM,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,SAAS,CAAC,eAAe,CACvB,SAAS,CAAC,eAAe,EAAE;QACzB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAC9D,CAAC;IACF,MAAM,WAAW,GAA4B;QAC3C,aAAa,EAAE,YAAY;QAC3B,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QAC/C,UAAU,EAAE,uBAAuB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,YAAY,OAAO,CAAC,YAAY,UAAU;QACnH,WAAW,EAAE,iCAAiC,OAAO,CAAC,YAAY,gBAAgB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACxG,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,IAAA,gBAAM,GAAE,CAAC,MAAM,CACrE,6BAA6B,CAC9B,EAAE;QACH,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACtC,QAAQ,EAAE;YACR,KAAK,EAAE,eAAe;SACvB;QACD,qBAAqB,EAAE;YACrB,QAAQ,EAAE;gBACR,KAAK,EAAE,eAAe;aACvB;YACD,KAAK,EAAE,8BAA8B,CAAC,GAAG,EAAE,OAAO,CAAC;SACpD;QACD,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,kBAAkB,OAAO,CAAC,YAAY,EAAE;gBAC5C,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB;SACF;KACF,CAAC;IAGF,OAAO,WAAsC,CAAC;AAChD,CAAC;AAhDD,4DAgDC;AAED,SAAgB,WAAW,CAAC,UAAoC;IAC9D,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAE3C,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,YAAY,GAAW;QAC3B,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,CAAC;QACd,yBAAyB,EAAE,CAAC;QAC5B,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE;YACnC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;YACzB,YAAY,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;SACjE;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC1C,YAAY,CAAC,yBAAyB,IAAI,CACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAC3B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;YAC9C,YAAY,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAC7B,CAAC,MAAM,CAAC;YACT,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;SAC1B;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE;YAClD,YAAY,CAAC,aAAa,IAAI,CAAC,CAAC;SACjC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE;YAChD,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC;SAC/B;IACH,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC;AAjCD,kCAiCC;AAED,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,wCAAwC,MAAM,CAAC,MAAM,KAC1D,MAAM,CAAC,WACT,0CAA0C,MAAM,CAAC,MAAM,KACrD,MAAM,CAAC,yBACT,oCACE,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,WAC5C,sCACE,MAAM,CAAC,aACT,6DACE,MAAM,CAAC,WACT,6CAA6C,CAAC;AAChD,CAAC;AAZD,8CAYC;AAED,SAAgB,8BAA8B,CAC5C,eAAmC,EACnC,OAA+B;IAE/B,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5E,OAAO,GAAG,IAAI,OAAO,eAAe,EAAE,CAAC;AACzC,CAAC;AAPD,wEAOC;AAGD,SAAgB,SAAS,CAAC,IAAoB;IAC5C,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAND,8BAMC;AAGD,SAAgB,YAAY,CAC1B,GAAuB,EACvB,YAA8B;IAE9B,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO;YACL;gBACE,GAAG,YAAY;gBACf,WAAW,EAAE;oBACX,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;iBACvC;aACF;SACF,CAAC;KACH;SAAM;QACL,MAAM,aAAa,GAAmD,EAAE,CAAC;QAEzE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,IAAI,OAAO,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,EAAE;oBAClC,aAAa,CAAC,IAAI,CAAC;wBACjB,GAAG,OAAO;wBACV,WAAW,EAAE,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAC;qBAC9C,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;KACtB;AACH,CAAC;AA5BD,oCA4BC;AAGD,SAAgB,UAAU,CAAC,OAA+B;IACxD,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,OAAO,qBAAqB,OAAO,CAAC,SAAS,qBAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;KACrF;SAAM,IAAI,OAAO,CAAC,YAAY,EAAE;QAC/B,OAAO,qBAAqB,OAAO,CAAC,SAAS,sBAAsB,OAAO,CAAC,YAAY,EAAE,CAAC;KAC3F;SAAM;QACL,OAAO,qBAAqB,OAAO,CAAC,SAAS,EAAE,CAAC;KACjD;AACH,CAAC;AARD,gCAQC;AAED,SAAS,iBAAiB,CAAI,KAAQ;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KACzB;IACD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,UAAU,CACxB,OAAmE;;IAEnE,MAAM,WAAW,GACd,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAA+B;SACzE,MAAM,GAAG,CAAC;QACX,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CACZ,CAAC,CAAC,MAAM,CACN,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,EAC3C,iBAAiB,CAClB,CACF,CAAC;IACR,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,KAAK,EAAE,EAAE;QACvC,OAAO,EAAE,CAAC;KACX;IACD,OAAO,8EACL,MAAA,OAAO,CAAC,WAAW,0CAAE,IACvB,kEACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WACvD,EAAE,CAAC;AACL,CAAC;AArBD,gCAqBC;AAED,SAAgB,OAAO,CACrB,OAAyB,EACzB,OAA6B;IAE7B,MAAM,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,MAAM,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;IAE5C,OAAO,GAAG,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC,EAAE,YAAY,IAAA,mBAAU,EAAC,QAAQ,CAAC;SACnE,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;SAC7C,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACrB,CAAC;AAVD,0BAUC;AAED,SAAgB,eAAe,CAC7B,IAAsB,EACtB,OAA6B;IAE7B,OAAO,uBAAuB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,MAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,YAAY,YAAY,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,YAAY,UAAU,CAAC;AAC/I,CAAC;AALD,0CAKC;AAED,SAAgB,YAAY,CAC1B,IAAsB,EACtB,OAA6B;IAE7B,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,YAAY,CAAC;AACxC,CAAC;AALD,oCAKC;AAED,SAAgB,YAAY,CAAC,OAAyB;IACpD,IAAI;QACF,OAAO,CACL,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YACjD,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;KACH;IAAC,MAAM;QACN,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KACjC;AACH,CAAC;AATD,oCASC;AAED,SAAgB,WAAW,CACzB,IAAsB,EACtB,OAA6B;IAE7B,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,MAAM,CAAC;AAClC,CAAC;AALD,kCAKC;AACD,SAAgB,YAAY,CAC1B,QAA0B,EAC1B,OAA6B;IAG7B,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AARD,oCAQC;AAED,SAAgB,gBAAgB,CAC9B,OAAyB,EACzB,OAA6B;IAE7B,OAAO,uBAAuB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,MAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,YAAY,gBAAgB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC;AAC9J,CAAC;AALD,4CAKC;AAED,SAAgB,UAAU,CAAC,OAAyB;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,OAAO,CAAC,CAAC,QAAQ,CACf,GAAG,OAAO,CAAC,EAAE,MAAM,QAAQ,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAC3D,EAAC,MAAM,EAAE,GAAG,EAAC,CACd,CAAC;AACJ,CAAC;AAND,gCAMC;AAED,SAAgB,UAAU,CAAC,OAAyB;IAElD,MAAM,SAAS,GACb,IAAA,uBAAc,EAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,KAAgB;QAC9B,qBAAqB,CAAC;IAExB,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAC3B,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,mBAAmB,SAAS,EAAE,CAAC,EACxD,EAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,6CAA6C,EAAC,CACxE,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEpE,IAAI,MAAM,EAAE;QACV,OAAO,CAAC,CAAC,QAAQ,CACf,WAAW,SAAS,CAAC,MAAM,CAAC,qBAAqB,UAAU,EAAE,EAC7D,EAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAC,CAC7B,CAAC;KACH;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AArBD,gCAqBC;AAED,SAAgB,aAAa,CAC3B,OAAyB,EACzB,OAA6B;IAE7B,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAI,eAAe,CAAC;AACvE,CAAC;AALD,sCAKC;AAED,SAAgB,gBAAgB,CAAC,OAAyB;IACxD,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;AAC7B,CAAC;AAFD,4CAEC;AAED,SAAS,qBAAqB,CAAC,OAAyB;IACtD,MAAM,KAAK,GAAG;QACZ,cAAc,IAAA,0CAAoB,EAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAChD,kBAAkB,OAAO,CAAC,MAAM,EAAE;KACnC,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAA,0CAAoB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACpE;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAA,0CAAoB,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAClE;IACD,IAAI,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtE,KAAK,CAAC,IAAI,CACR,uBAAuB,IAAA,0CAAoB,EACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CACpC,EAAE,CACJ,CAAC;KACH;IACD,IAAI,OAAO,CAAC,gBAAgB,EAAE;QAC5B,KAAK,CAAC,IAAI,CACR,4BAA4B,IAAA,0CAAoB,EAC9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACzC,EAAE,CACJ,CAAC;KACH;IACD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3C,KAAK,CAAC,IAAI,CACR,gBAAgB,IAAA,0CAAoB,EAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CACrE,CAAC;KACH;IACD,IACE,OAAO,CAAC,eAAe;QACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAC/C;QACA,KAAK,CAAC,IAAI,CACR,2BAA2B,IAAA,0CAAoB,EAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CACxC,EAAE,CACJ,CAAC;KACH;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,OAAkB;;IACrC,MAAM,UAAU,GACd,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,IAAG,CAAC,CAAC,CAAC;IACpE,OAAO,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,8BAA8B,CACrC,GAAuB,EACvB,OAAiB;IAEjB,MAAM,QAAQ,GAAG;QACf,aAAa,sBAAoB,WAAW;QAC5C,cAAc,WAAW,CAAC,OAAO,CAAC,EAAE;KACrC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC/D,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;YACrC,QAAQ,CAAC,IAAI,CACX,aAAa,IAAA,0CAAoB,EAAC,MAAM,CAAC,IAAI,IAAA,0CAAoB,EAC/D,KAAK,CACN,EAAE,CACJ,CAAC;SACH;aAAM;YACL,QAAQ,CAAC,IAAI,CACX,aAAa,IAAA,0CAAoB,EAAC,MAAM,CAAC,IAAI,IAAA,0CAAoB,EAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACtB,EAAE,CACJ,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG;YACd,SAAS;YACT,QAAQ;YACR,YAAY;YACZ,SAAS;YACT,SAAS;YACT,WAAW;YACX,iBAAiB;YACjB,MAAM;YACN,OAAO;YACP,SAAS;YACT,UAAU;YACV,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;YACd,QAAQ;YACR,gBAAgB;SACjB,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE;gBACtC,QAAQ,CAAC,IAAI,CACX,GAAG,IAAA,0CAAoB,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAA,0CAAoB,EAC3D,MAAM,CACP,IAAI,IAAA,0CAAoB,EAAC,KAAK,CAAC,EAAE,CACnC,CAAC;aACH;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACpC,QAAQ,CAAC,IAAI,CACX,GAAG,IAAA,0CAAoB,EAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAA,0CAAoB,EAC3D,MAAM,CACP,IAAI,IAAA,0CAAoB,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CACnD,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAK,WAAsB,CAAC,IAAI,EAAE,EAAE;QAC7D,QAAQ,CAAC,IAAI,CAAC,yBAAyB,IAAA,0CAAoB,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC7E;SAAM,IAAI,WAAW,KAAK,SAAS,EAAE;QACpC,QAAQ,CAAC,IAAI,CACX,yBAAyB,IAAA,0CAAoB,EAC3C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC5B,EAAE,CACJ,CAAC;KACH;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA+B;IACxD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG;QACd,WAAW;QACX,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;QACV,YAAY;QACZ,cAAc;QACd,QAAQ;KACT,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE;YAClE,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE;gBACjC,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAA,0CAAoB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC7D;iBAAM;gBACL,QAAQ,CAAC,IAAI,CACX,WAAW,IAAA,0CAAoB,EAAC,MAAM,CAAC,IAAI,IAAA,0CAAoB,EAC7D,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CACvB,EAAE,CACJ,CAAC;aACH;SACF;IACH,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,OAAwC;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE;QAC9B,QAAQ,CAAC,IAAI,CACX,QAAQ,IAAA,0CAAoB,EAAC,GAAG,CAAC,IAAI,IAAA,0CAAoB,EACvD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAClC,EAAE,CACJ,CAAC;KACH;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAyB;;IACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACvC,MAAA,OAAO,CAAC,YAAY,0CAAE,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAC5C,IAAI,WAAW,CAAC,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;gBACnD,QAAQ,CAAC,IAAI,CACX,gBAAgB,IAAA,0CAAoB,EAClC,WAAW,CAAC,KAAK,CAClB,IAAI,IAAA,0CAAoB,EAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CACzD,CAAC;aACH;QACH,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClE,IAAI,KAAK,IAAI,SAAS,CAAC,KAAe,CAAC,EAAE;gBACvC,QAAQ,CAAC,IAAI,CACX,gBAAgB,IAAA,0CAAoB,EAAC,GAAG,CAAC,IAAI,IAAA,0CAAoB,EAC/D,SAAS,CAAC,KAAe,CAAC,CAC3B,EAAE,CACJ,CAAC;aACH;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,gBAAgB,CAC9B,OAAyB,EACzB,OAA6B;IAG7B,MAAM,QAAQ,GAAG;QACf,aAAa,sBAAoB,WAAW;QAC5C,cAAc,WAAW,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,EAAE;KAC/C,CAAC;IAGF,QAAQ,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjD,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpD,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAGzC,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CACrD,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CACpC,CAAC;IACF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAClD,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAC/B,CAAC;IACF,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;QACvB,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpE;IACD,QAAQ,CAAC,MAAM,CACb,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,EAClD,CAAC,EAED,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAClC,CAAC;IAGF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAC1B,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAC1E,CAAC,CACF,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,IAAI,GAAG,gBAAgB,IAAA,0CAAoB,EAC/C,OAAO,CAAC,eAAe;SACpB,GAAG,CACF,CAAC,KAAiE,EAAE,EAAE,CACpE,UAAU,CAAC,KAAK,CAAC,CACpB;SACA,IAAI,CAAC,MAAM,CAAC,CAChB,EAAE,CAAC;IACJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAC9B,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAChC,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAC5C,EACD,CAAC,CACF,CAAC,CAAC,CAAC,CAAC;IACL,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAxDD,4CAwDC;AAED,SAAgB,gBAAgB,CAAC,OAAyB;IACxD,OAAO,CACL,IAAA,uBAAc,EAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,KAAK,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,GAAG;QAChB,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAND,4CAMC;AAED,SAAgB,WAAW,CAAC,OAAyB;IACnD,OAAO,CAAC,CAAC,QAAQ,CACf,SAAS,CACP,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,gBAAgB,CAAC,OAAO,CAAC,EAAE,CACtE,EACD,EAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,iDAAiD,EAAC,CAC3E,CAAC;AACJ,CAAC;AAPD,kCAOC;AAED,SAAgB,mBAAmB,CAAC,OAAyB;IAC3D,MAAM,SAAS,GACb,IAAA,uBAAc,EAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,KAAgB;QAC9B,qBAAqB,CAAC;IAExB,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;AAC7D,CAAC;AAPD,kDAOC;AAED,SAAgB,gBAAgB,CAC9B,IAAsB,EACtB,OAA6B;IAE7B,OAAO,kBAAkB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,YAAY,EAAE,CAAC;AAC5D,CAAC;AALD,4CAKC;AAED,SAAgB,iBAAiB,CAAC,OAAyB;IACzD,OAAO,GAAG,OAAO,CAAC,EAAE,kBAAkB,CAAC;AACzC,CAAC;AAFD,8CAEC;AAED,SAAgB,kBAAkB,CAAC,OAAyB;IAC1D,OAAO,8BAA8B,CACnC,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,MAAM,CACf,CAAC;AACJ,CAAC;AALD,gDAKC;AAED,SAAgB,kBAAkB,CAAC,OAAyB;IAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE;QAC3D,OAAO,eAAe,CAAC;KACxB;IACD,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;QACjC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;IACzC,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;QAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;KACrC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,gDAYC"}
1
+ {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/transformers.ts"],"names":[],"mappings":"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","sourcesContent":["import {createHash} from 'crypto';\nimport {\n ContextualizedControl,\n ContextualizedEvaluation,\n contextualizeEvaluation,\n convertFile,\n ExecJSON\n} from 'inspecjs';\nimport * as _ from 'lodash';\nimport moment from 'moment';\nimport {version as HeimdallToolsVersion} from '../../../package.json';\nimport {getDescription} from '../../utils/global';\nimport {IFindingASFF, IOptions} from './asff-types';\nimport {\n escapeForwardSlashes,\n FromHdfToAsffMapper,\n SegmentedControl\n} from './reverse-asff-mapper';\n\n//FromHdfToAsff mapper transformers\ntype Counts = {\n Passed: number;\n PassedTests: number;\n Failed: number;\n FailedTests: number;\n PassingTestsFailedControl: number;\n NotApplicable: number;\n NotReviewed: number;\n};\n\nexport function getRunTime(hdf: ExecJSON.Execution): string {\n let time = new Date().toISOString();\n hdf.profiles.forEach((profile) => {\n if (\n profile.controls[0] &&\n profile.controls[0].results.length &&\n profile.controls[0].results[0].start_time\n ) {\n try {\n time = new Date(\n profile.controls[0].results[0].start_time\n ).toISOString();\n } catch {\n time = new Date().toISOString();\n }\n }\n });\n return time;\n}\n\n/** Trivial overlay filter that just takes the version of the control that has results from amongst all identical ids */\nfunction filter_overlays(\n controls: ContextualizedControl[]\n): ContextualizedControl[] {\n const idHash: {[key: string]: ContextualizedControl} = {};\n controls.forEach((c) => {\n const id = c.hdf.wraps.id;\n const old: ContextualizedControl | undefined = idHash[id];\n // If old, gotta check if our new status list is \"better than\" old\n if (old) {\n const newSignificant = c.hdf.status_list && c.hdf.status_list.length > 0;\n if (newSignificant) {\n // Overwrite\n idHash[id] = c;\n }\n } else {\n // First time seeing this id\n idHash[id] = c;\n }\n });\n\n // Return the set of keys\n return Array.from(Object.values(idHash));\n}\n\nexport function createProfileInfoFinding(\n hdf: ExecJSON.Execution,\n options: IOptions\n): IFindingASFF {\n const runTime = getRunTime(hdf);\n const inspecJSJson = convertFile(JSON.stringify(hdf));\n const contextualizedEvaluation = contextualizeEvaluation(\n inspecJSJson['1_0_ExecJson'] as any\n );\n const counts = statusCount(contextualizedEvaluation);\n const updatedAt = new Date();\n updatedAt.setMilliseconds(\n updatedAt.getMilliseconds() +\n (contextualizedEvaluation.contains[0].contains.length || 0)\n );\n const profileInfo: Record<string, unknown> = {\n SchemaVersion: '2018-10-08',\n Id: `${options.target}/${hdf.profiles[0].name}`,\n ProductArn: `arn:aws:securityhub:${options.region}:${options.awsAccountId}:product/${options.awsAccountId}/default`,\n GeneratorId: `arn:aws:securityhub:us-east-2:${options.awsAccountId}:ruleset/set/${hdf.profiles[0].name}`,\n AwsAccountId: options.awsAccountId,\n CreatedAt: runTime,\n UpdatedAt: updatedAt,\n Title: `${options.target} | ${hdf.profiles[0].name} | ${moment().format(\n 'YYYY-MM-DD hh:mm:ss [GMT]ZZ'\n )}`,\n Description: createDescription(counts),\n Severity: {\n Label: 'INFORMATIONAL'\n },\n FindingProviderFields: {\n Severity: {\n Label: 'INFORMATIONAL'\n },\n Types: createProfileInfoFindingFields(hdf, options)\n },\n Resources: [\n {\n Type: 'AwsAccount',\n Id: `AWS::::Account:${options.awsAccountId}`,\n Partition: 'aws',\n Region: options.region\n }\n ]\n };\n\n // need the intermediate caste to tell typescript that this cast is intentional\n return profileInfo as unknown as IFindingASFF;\n}\n\nexport function statusCount(evaluation: ContextualizedEvaluation): Counts {\n let controls: ContextualizedControl[] = [];\n // Get all controls\n evaluation.contains.forEach((p) => controls.push(...p.contains));\n controls = filter_overlays(controls);\n const statusCounts: Counts = {\n Passed: 0,\n PassedTests: 0,\n PassingTestsFailedControl: 0,\n Failed: 0,\n FailedTests: 0,\n NotApplicable: 0,\n NotReviewed: 0\n };\n controls.forEach((control) => {\n if (control.hdf.status === 'Passed') {\n statusCounts.Passed += 1;\n statusCounts.PassedTests += (control.hdf.segments || []).length;\n } else if (control.hdf.status === 'Failed') {\n statusCounts.PassingTestsFailedControl += (\n control.hdf.segments || []\n ).filter((s) => s.status === 'passed').length;\n statusCounts.FailedTests += (control.hdf.segments || []).filter(\n (s) => s.status === 'failed'\n ).length;\n statusCounts.Failed += 1;\n } else if (control.hdf.status === 'Not Applicable') {\n statusCounts.NotApplicable += 1;\n } else if (control.hdf.status === 'Not Reviewed') {\n statusCounts.NotReviewed += 1;\n }\n });\n return statusCounts;\n}\n\nexport function createDescription(counts: Counts): string {\n return `Result Set Status Summary -- Passed: ${counts.Passed} (${\n counts.PassedTests\n } individual checks passed) --- Failed: ${counts.Failed} (${\n counts.PassingTestsFailedControl\n } individual checks failed out of ${\n counts.PassingTestsFailedControl + counts.FailedTests\n } total checks) --- Not Applicable: ${\n counts.NotApplicable\n } (System exception or absent component) --- Not Reviewed: ${\n counts.NotReviewed\n } (Can only be tested manually at this time)`;\n}\n\nexport function createAssumeRolePolicyDocument(\n layersOfControl: ExecJSON.Control[],\n segment: ExecJSON.ControlResult\n): string {\n const segmentOverview = createNote(segment);\n const code = layersOfControl.map((layer) => createCode(layer)).join('\\n\\n');\n return `${code}\\n\\n${segmentOverview}`;\n}\n\n// Gets rid of extra spacing + newlines as these aren't shown in Security Hub\nexport function cleanText(text?: string | null): string | undefined {\n if (text) {\n return text.replace(/ +/g, ' ');\n } else {\n return undefined;\n }\n}\n\n// Gets all layers of a control across overlaid profiles given the ID\nexport function getAllLayers(\n hdf: ExecJSON.Execution,\n knownControl: ExecJSON.Control\n): (ExecJSON.Control & Record<string, unknown>)[] {\n if (hdf.profiles.length === 1) {\n return [\n {\n ...knownControl,\n profileInfo: {\n ..._.omit(hdf.profiles[0], 'controls')\n }\n }\n ];\n } else {\n const foundControls: (ExecJSON.Control & Record<string, unknown>)[] = [];\n // For each control in each profile\n hdf.profiles.forEach((profile) => {\n profile.controls.forEach((control) => {\n if (control.id === knownControl.id) {\n foundControls.push({\n ...control,\n profileInfo: {..._.omit(profile, 'controls')}\n });\n }\n });\n });\n return foundControls;\n }\n}\n\n// Creates Note field containing control status\nexport function createNote(segment: ExecJSON.ControlResult) {\n if (segment.message) {\n return `Test Description: ${segment.code_desc} --- Test Result: ${segment.message}`;\n } else if (segment.skip_message) {\n return `Test Description: ${segment.code_desc} --- Skip Message: ${segment.skip_message}`;\n } else {\n return `Test Description: ${segment.code_desc}`;\n }\n}\n\nfunction cleanObjectValues<T>(value: T): boolean {\n if (Array.isArray(value)) {\n return value.length < 0;\n }\n return !Boolean(value);\n}\n\nexport function createCode(\n control: ExecJSON.Control & {profileInfo?: Record<string, unknown>}\n) {\n const noCodeValue =\n ((_.get(control, 'profileInfo.depends') || []) as Record<string, unknown>[])\n .length > 0\n ? ''\n : JSON.stringify(\n _.omitBy(\n _.omit(control, ['results', 'profileInfo']),\n cleanObjectValues\n )\n );\n if (!control.code && noCodeValue === '') {\n return '';\n }\n return `=========================================================\\n# Profile name: ${\n control.profileInfo?.name\n }\\n=========================================================\\n\\n${\n control.code ? control.code?.replace(/\\\\\\\"/g, '\"') : noCodeValue\n }`;\n}\n\nexport function setupId(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n const target = context?.ioptions.target;\n const name = context?.data.profiles[0].name;\n\n return `${target}/${name}/${control.id}/finding/${createHash('sha256')\n .update(control.id + control.result.code_desc)\n .digest('hex')}`;\n}\n\nexport function setupProductARN(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:product/${context?.ioptions.awsAccountId}/default`;\n}\n\nexport function setupAwsAcct(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return context?.ioptions.awsAccountId;\n}\n\nexport function setupCreated(control: SegmentedControl) {\n try {\n return (\n new Date(control.result.start_time).toISOString() ||\n new Date().toISOString()\n );\n } catch {\n return new Date().toISOString();\n }\n}\n\nexport function setupRegion(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return context?.ioptions.region;\n}\nexport function setupUpdated(\n _control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n // Add one millisecond to the time by control index so the order is correct in security hub\n const time = new Date();\n time.setMilliseconds(time.getMilliseconds() + (context?.index || 0));\n return time.toISOString();\n}\n\nexport function setupGeneratorId(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:ruleset/set/${context?.data.profiles[0].name}/rule/${control.id}`;\n}\n\nexport function setupTitle(control: SegmentedControl) {\n const nistTags = control.tags.nist ? `[${control.tags.nist.join(', ')}]` : '';\n return _.truncate(\n `${control.id} | ${nistTags} | ${cleanText(control.title)}`,\n {length: 256}\n );\n}\n\nexport function setupDescr(control: SegmentedControl) {\n // Check text can either be a description or a tag\n const checkText: string =\n getDescription(control.descriptions || [], 'check') ||\n (control.tags.check as string) ||\n 'Check not available';\n\n const currentVal = _.truncate(\n cleanText(`${control.desc} -- Check Text: ${checkText}`),\n {length: 1024, omission: '[SEE FULL TEXT IN AssumeRolePolicyDocument]'}\n );\n\n const caveat = getDescription(control.descriptions || [], 'caveat');\n\n if (caveat) {\n return _.truncate(\n `Caveat: ${cleanText(caveat)} --- Description: ${currentVal}`,\n {length: 1024, omission: ''}\n );\n }\n return currentVal;\n}\n\nexport function setupSevLabel(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return context?.impactMapping.get(control.impact) || 'INFORMATIONAL';\n}\n\nexport function setupSevOriginal(control: SegmentedControl) {\n return `${control.impact}`;\n}\n\nfunction createControlMetadata(control: SegmentedControl) {\n const types = [\n `Control/ID/${escapeForwardSlashes(control.id)}`,\n `Control/Impact/${control.impact}`\n ];\n if (control.title) {\n types.push(`Control/Title/${escapeForwardSlashes(control.title)}`);\n }\n if (control.desc) {\n types.push(`Control/Desc/${escapeForwardSlashes(control.desc)}`);\n }\n if (control.waiver_data && Object.keys(control.waiver_data).length > 0) {\n types.push(\n `Control/Waiver_Data/${escapeForwardSlashes(\n JSON.stringify(control.waiver_data)\n )}`\n );\n }\n if (control.attestation_data) {\n types.push(\n `Control/Attestation_Data/${escapeForwardSlashes(\n JSON.stringify(control.attestation_data)\n )}`\n );\n }\n if (control.refs && control.refs.length > 0) {\n types.push(\n `Control/Refs/${escapeForwardSlashes(JSON.stringify(control.refs))}`\n );\n }\n if (\n control.source_location &&\n Object.keys(control.source_location).length > 0\n ) {\n types.push(\n `Control/Source_Location/${escapeForwardSlashes(\n JSON.stringify(control.source_location)\n )}`\n );\n }\n return types;\n}\n\nfunction getFilename(options?: IOptions): string {\n const slashSplit =\n options?.input.split('\\\\')[options?.input.split('\\\\').length - 1];\n return slashSplit?.split('/')[slashSplit.split('/').length - 1] ?? '';\n}\n\nfunction createProfileInfoFindingFields(\n hdf: ExecJSON.Execution,\n options: IOptions\n): string[] {\n const typesArr = [\n `MITRE/SAF/${HeimdallToolsVersion}-hdf2asff`,\n `File/Input/${getFilename(options)}`\n ];\n const executionTargets = ['platform', 'statistics', 'version'];\n executionTargets.forEach((target) => {\n const value = _.get(hdf, target);\n if (_.isString(value) && value.trim()) {\n typesArr.push(\n `Execution/${escapeForwardSlashes(target)}/${escapeForwardSlashes(\n value\n )}`\n );\n } else {\n typesArr.push(\n `Execution/${escapeForwardSlashes(target)}/${escapeForwardSlashes(\n JSON.stringify(value)\n )}`\n );\n }\n });\n hdf.profiles.forEach((profile) => {\n const targets = [\n 'version',\n 'sha256',\n 'maintainer',\n 'summary',\n 'license',\n 'copyright',\n 'copyright_email',\n 'name',\n 'title',\n 'depends',\n 'supports',\n 'attributes',\n 'description',\n 'inspec_version',\n 'parent_profile',\n 'skip_message',\n 'status',\n 'status_message'\n ];\n targets.forEach((target) => {\n const value = _.get(profile, target);\n if (typeof value === 'string' && value) {\n typesArr.push(\n `${escapeForwardSlashes(profile.name)}/${escapeForwardSlashes(\n target\n )}/${escapeForwardSlashes(value)}`\n );\n } else if (typeof value === 'object') {\n typesArr.push(\n `${escapeForwardSlashes(profile.name)}/${escapeForwardSlashes(\n target\n )}/${escapeForwardSlashes(JSON.stringify(value))}`\n );\n }\n });\n });\n const passthrough = _.get(hdf, 'passthrough');\n if (_.isString(passthrough) && (passthrough as string).trim()) {\n typesArr.push(`Execution/passthrough/${escapeForwardSlashes(passthrough)}`);\n } else if (passthrough !== undefined) {\n typesArr.push(\n `Execution/passthrough/${escapeForwardSlashes(\n JSON.stringify(passthrough)\n )}`\n );\n }\n return typesArr;\n}\n\nfunction createSegmentInfo(segment: ExecJSON.ControlResult): string[] {\n const typesArr: string[] = [];\n const targets = [\n 'backtrace',\n 'exception',\n 'code_desc',\n 'message',\n 'resource',\n 'run_time',\n 'start_time',\n 'skip_message',\n 'status'\n ];\n targets.forEach((target) => {\n if (_.has(segment, target) && _.get(segment, target) !== undefined) {\n if (_.get(segment, target) === '') {\n typesArr.push(`Segment/${escapeForwardSlashes(target)}/''`);\n } else {\n typesArr.push(\n `Segment/${escapeForwardSlashes(target)}/${escapeForwardSlashes(\n _.get(segment, target)\n )}`\n );\n }\n }\n });\n return typesArr;\n}\n\nfunction createTagInfo(control: {tags: Record<string, unknown>}): string[] {\n const typesArr: string[] = [];\n for (const tag in control.tags) {\n typesArr.push(\n `Tags/${escapeForwardSlashes(tag)}/${escapeForwardSlashes(\n JSON.stringify(control.tags[tag])\n )}`\n );\n }\n return typesArr;\n}\n\nfunction createDescriptionInfo(control: ExecJSON.Control): string[] {\n const typesArr: string[] = [];\n if (Array.isArray(control.descriptions)) {\n control.descriptions?.forEach((description) => {\n if (description.data && cleanText(description.data)) {\n typesArr.push(\n `Descriptions/${escapeForwardSlashes(\n description.label\n )}/${escapeForwardSlashes(cleanText(description.data))}`\n );\n }\n });\n } else {\n Object.entries(control.descriptions || {}).forEach(([key, value]) => {\n if (value && cleanText(value as string)) {\n typesArr.push(\n `Descriptions/${escapeForwardSlashes(key)}/${escapeForwardSlashes(\n cleanText(value as string)\n )}`\n );\n }\n });\n }\n\n return typesArr;\n}\n\nexport function setupFindingType(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n // typesArr needs to be ordered so that attributes that are likely to be bloated and/or contain less necessary information end up at the bottom so that they don't expand and push more attributes outside of the list which is capped at 50 items\n const typesArr = [\n `MITRE/SAF/${HeimdallToolsVersion}-hdf2asff`,\n `File/Input/${getFilename(context?.ioptions)}`\n ];\n\n // Add control metadata to the Finding Provider Fields\n typesArr.push(...createControlMetadata(control));\n // Add segment/result information to Finding Provider Fields\n typesArr.push(...createSegmentInfo(control.result));\n // Add Tags to Finding Provider Fields\n typesArr.push(...createTagInfo(control));\n\n // nist tag, then subdescriptions, then remaining tags\n const nistTagIndex = typesArr.findIndex((typeString) =>\n typeString.startsWith('Tags/nist/')\n );\n const tagsIndex = typesArr.findIndex((typeString) =>\n typeString.startsWith('Tags/')\n );\n if (nistTagIndex !== -1) {\n typesArr.splice(tagsIndex, 0, typesArr.splice(nistTagIndex, 1)[0]);\n }\n typesArr.splice(\n tagsIndex === -1 ? typesArr.length : tagsIndex + 1,\n 0,\n // Add Descriptions to FindingProviderFields\n ...createDescriptionInfo(control)\n );\n\n // description, then code, then code_desc\n const desc = typesArr.splice(\n typesArr.findIndex((typeString) => typeString.startsWith('Control/Desc/')),\n 1\n )[0];\n const code = `Control/Code/${escapeForwardSlashes(\n control.layersOfControl\n .map(\n (layer: ExecJSON.Control & {profileInfo?: Record<string, unknown>}) =>\n createCode(layer)\n )\n .join('\\n\\n')\n )}`;\n const codeDesc = typesArr.splice(\n typesArr.findIndex((typeString) =>\n typeString.startsWith('Segment/code_desc/')\n ),\n 1\n )[0];\n typesArr.push(..._.compact([desc, code, codeDesc])); // [][0] can return undefined so use compact to deal with them\n\n return typesArr;\n}\n\nexport function getFixForControl(control: SegmentedControl) {\n return (\n getDescription(control.descriptions || [], 'fix') ||\n control.tags.fix ||\n 'Fix not available'\n );\n}\n\nexport function setupRemRec(control: SegmentedControl) {\n return _.truncate(\n cleanText(\n `${createNote(control.result)} --- Fix: ${getFixForControl(control)}`\n ),\n {length: 512, omission: '... [SEE FULL TEXT IN AssumeRolePolicyDocument]'}\n );\n}\n\nexport function setupProdFieldCheck(control: SegmentedControl) {\n const checkText: string =\n getDescription(control.descriptions || [], 'check') ||\n (control.tags.check as string) ||\n 'Check not available';\n\n return _.truncate(checkText, {length: 2048, omission: ''});\n}\n\nexport function setupResourcesID(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return `AWS::::Account:${context?.ioptions.awsAccountId}`;\n}\n\nexport function setupResourcesID2(control: SegmentedControl) {\n return `${control.id} Validation Code`;\n}\n\nexport function setupDetailsAssume(control: SegmentedControl) {\n return createAssumeRolePolicyDocument(\n control.layersOfControl,\n control.result\n );\n}\n\nexport function setupControlStatus(control: SegmentedControl) {\n if (control.results.some((result) => 'backtrace' in result)) {\n return 'NOT_AVAILABLE';\n }\n const status: string | boolean =\n control.result.status === 'skipped'\n ? 'WARNING'\n : control.result.status === 'passed';\n if (typeof status === 'boolean') {\n return status ? 'PASSED' : 'FAILED';\n }\n return status;\n}\n"]}
@@ -29,3 +29,4 @@ export declare class FromHDFToCAATMapper {
29
29
  toCAAT(returnWorkBook?: boolean, options?: XLSX.WritingOptions): any;
30
30
  }
31
31
  export {};
32
+ //# sourceMappingURL=reverse-caat-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-caat-mapper.d.ts","sourceRoot":"","sources":["../../../../src/converters-from-hdf/caat/reverse-caat-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EAExB,QAAQ,EACR,UAAU,EAEX,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,GAAG,wBAAwB,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC,CAAC;AAEF,KAAK,IAAI,GAAG,SAAS,GAAG;IAAC,IAAI,EAAE,wBAAwB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC;AAE3E,eAAO,MAAM,WAAW,ibAqBd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,OAAO,CAC3B,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CACzD,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAS;IACpC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM;IAExC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,kBAAkB,CAKxD;IAEF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAK3C;IAEF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAE/C;IAEF,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAWxD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAMvC,IAAI,EAAE,IAAI,EAAE,CAAC;gBAGD,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE;IA6BzC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAOlC,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAiBjD,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAItC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAQlC,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;IAkDnE,MAAM,CACJ,cAAc,UAAQ,EACtB,OAAO,GAAE,IAAI,CAAC,cAAmD;CAkEpE"}