@mitre/hdf-converters 3.0.1 → 3.1.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 (565) hide show
  1. package/LICENSE.md +55 -0
  2. package/README.md +130 -92
  3. package/dist/detect.d.ts +28 -0
  4. package/dist/detect.d.ts.map +1 -0
  5. package/dist/detect.js +3 -0
  6. package/dist/index.d.ts +713 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +6988 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/register-all-DaYHszLd.js +945 -0
  11. package/dist/register-all-DaYHszLd.js.map +1 -0
  12. package/dist/registry.d.ts +38 -0
  13. package/dist/registry.d.ts.map +1 -0
  14. package/dist/registry.js +23 -0
  15. package/dist/registry.js.map +1 -0
  16. package/package.json +32 -32
  17. package/dist/converters/aws-config-to-hdf/typescript/converter.d.ts +0 -9
  18. package/dist/converters/aws-config-to-hdf/typescript/converter.d.ts.map +0 -1
  19. package/dist/converters/aws-config-to-hdf/typescript/converter.js +0 -132
  20. package/dist/converters/aws-config-to-hdf/typescript/converter.js.map +0 -1
  21. package/dist/converters/aws-config-to-hdf/typescript/fingerprint.d.ts +0 -10
  22. package/dist/converters/aws-config-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  23. package/dist/converters/aws-config-to-hdf/typescript/fingerprint.js +0 -32
  24. package/dist/converters/aws-config-to-hdf/typescript/fingerprint.js.map +0 -1
  25. package/dist/converters/aws-config-to-hdf/typescript/index.d.ts +0 -2
  26. package/dist/converters/aws-config-to-hdf/typescript/index.d.ts.map +0 -1
  27. package/dist/converters/aws-config-to-hdf/typescript/index.js +0 -2
  28. package/dist/converters/aws-config-to-hdf/typescript/index.js.map +0 -1
  29. package/dist/converters/burpsuite-to-hdf/typescript/converter.d.ts +0 -11
  30. package/dist/converters/burpsuite-to-hdf/typescript/converter.d.ts.map +0 -1
  31. package/dist/converters/burpsuite-to-hdf/typescript/converter.js +0 -169
  32. package/dist/converters/burpsuite-to-hdf/typescript/converter.js.map +0 -1
  33. package/dist/converters/burpsuite-to-hdf/typescript/fingerprint.d.ts +0 -9
  34. package/dist/converters/burpsuite-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  35. package/dist/converters/burpsuite-to-hdf/typescript/fingerprint.js +0 -33
  36. package/dist/converters/burpsuite-to-hdf/typescript/fingerprint.js.map +0 -1
  37. package/dist/converters/burpsuite-to-hdf/typescript/index.d.ts +0 -2
  38. package/dist/converters/burpsuite-to-hdf/typescript/index.d.ts.map +0 -1
  39. package/dist/converters/burpsuite-to-hdf/typescript/index.js +0 -2
  40. package/dist/converters/burpsuite-to-hdf/typescript/index.js.map +0 -1
  41. package/dist/converters/conveyor-to-hdf/typescript/converter.d.ts +0 -9
  42. package/dist/converters/conveyor-to-hdf/typescript/converter.d.ts.map +0 -1
  43. package/dist/converters/conveyor-to-hdf/typescript/converter.js +0 -206
  44. package/dist/converters/conveyor-to-hdf/typescript/converter.js.map +0 -1
  45. package/dist/converters/conveyor-to-hdf/typescript/fingerprint.d.ts +0 -10
  46. package/dist/converters/conveyor-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  47. package/dist/converters/conveyor-to-hdf/typescript/fingerprint.js +0 -37
  48. package/dist/converters/conveyor-to-hdf/typescript/fingerprint.js.map +0 -1
  49. package/dist/converters/conveyor-to-hdf/typescript/index.d.ts +0 -2
  50. package/dist/converters/conveyor-to-hdf/typescript/index.d.ts.map +0 -1
  51. package/dist/converters/conveyor-to-hdf/typescript/index.js +0 -2
  52. package/dist/converters/conveyor-to-hdf/typescript/index.js.map +0 -1
  53. package/dist/converters/cyclonedx-to-hdf/typescript/converter.d.ts +0 -8
  54. package/dist/converters/cyclonedx-to-hdf/typescript/converter.d.ts.map +0 -1
  55. package/dist/converters/cyclonedx-to-hdf/typescript/converter.js +0 -199
  56. package/dist/converters/cyclonedx-to-hdf/typescript/converter.js.map +0 -1
  57. package/dist/converters/cyclonedx-to-hdf/typescript/fingerprint.d.ts +0 -10
  58. package/dist/converters/cyclonedx-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  59. package/dist/converters/cyclonedx-to-hdf/typescript/fingerprint.js +0 -34
  60. package/dist/converters/cyclonedx-to-hdf/typescript/fingerprint.js.map +0 -1
  61. package/dist/converters/cyclonedx-to-hdf/typescript/index.d.ts +0 -2
  62. package/dist/converters/cyclonedx-to-hdf/typescript/index.d.ts.map +0 -1
  63. package/dist/converters/cyclonedx-to-hdf/typescript/index.js +0 -2
  64. package/dist/converters/cyclonedx-to-hdf/typescript/index.js.map +0 -1
  65. package/dist/converters/dbprotect-to-hdf/typescript/converter.d.ts +0 -10
  66. package/dist/converters/dbprotect-to-hdf/typescript/converter.d.ts.map +0 -1
  67. package/dist/converters/dbprotect-to-hdf/typescript/converter.js +0 -171
  68. package/dist/converters/dbprotect-to-hdf/typescript/converter.js.map +0 -1
  69. package/dist/converters/dbprotect-to-hdf/typescript/fingerprint.d.ts +0 -10
  70. package/dist/converters/dbprotect-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  71. package/dist/converters/dbprotect-to-hdf/typescript/fingerprint.js +0 -35
  72. package/dist/converters/dbprotect-to-hdf/typescript/fingerprint.js.map +0 -1
  73. package/dist/converters/dbprotect-to-hdf/typescript/index.d.ts +0 -2
  74. package/dist/converters/dbprotect-to-hdf/typescript/index.d.ts.map +0 -1
  75. package/dist/converters/dbprotect-to-hdf/typescript/index.js +0 -2
  76. package/dist/converters/dbprotect-to-hdf/typescript/index.js.map +0 -1
  77. package/dist/converters/deptrack-to-hdf/typescript/converter.d.ts +0 -8
  78. package/dist/converters/deptrack-to-hdf/typescript/converter.d.ts.map +0 -1
  79. package/dist/converters/deptrack-to-hdf/typescript/converter.js +0 -120
  80. package/dist/converters/deptrack-to-hdf/typescript/converter.js.map +0 -1
  81. package/dist/converters/deptrack-to-hdf/typescript/fingerprint.d.ts +0 -10
  82. package/dist/converters/deptrack-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  83. package/dist/converters/deptrack-to-hdf/typescript/fingerprint.js +0 -46
  84. package/dist/converters/deptrack-to-hdf/typescript/fingerprint.js.map +0 -1
  85. package/dist/converters/deptrack-to-hdf/typescript/index.d.ts +0 -2
  86. package/dist/converters/deptrack-to-hdf/typescript/index.d.ts.map +0 -1
  87. package/dist/converters/deptrack-to-hdf/typescript/index.js +0 -2
  88. package/dist/converters/deptrack-to-hdf/typescript/index.js.map +0 -1
  89. package/dist/converters/fortify-to-hdf/typescript/converter.d.ts +0 -12
  90. package/dist/converters/fortify-to-hdf/typescript/converter.d.ts.map +0 -1
  91. package/dist/converters/fortify-to-hdf/typescript/converter.js +0 -211
  92. package/dist/converters/fortify-to-hdf/typescript/converter.js.map +0 -1
  93. package/dist/converters/fortify-to-hdf/typescript/fingerprint.d.ts +0 -11
  94. package/dist/converters/fortify-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  95. package/dist/converters/fortify-to-hdf/typescript/fingerprint.js +0 -42
  96. package/dist/converters/fortify-to-hdf/typescript/fingerprint.js.map +0 -1
  97. package/dist/converters/fortify-to-hdf/typescript/index.d.ts +0 -2
  98. package/dist/converters/fortify-to-hdf/typescript/index.d.ts.map +0 -1
  99. package/dist/converters/fortify-to-hdf/typescript/index.js +0 -2
  100. package/dist/converters/fortify-to-hdf/typescript/index.js.map +0 -1
  101. package/dist/converters/gitlab-to-hdf/typescript/converter.d.ts +0 -2
  102. package/dist/converters/gitlab-to-hdf/typescript/converter.d.ts.map +0 -1
  103. package/dist/converters/gitlab-to-hdf/typescript/converter.js +0 -222
  104. package/dist/converters/gitlab-to-hdf/typescript/converter.js.map +0 -1
  105. package/dist/converters/gitlab-to-hdf/typescript/fingerprint.d.ts +0 -10
  106. package/dist/converters/gitlab-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  107. package/dist/converters/gitlab-to-hdf/typescript/fingerprint.js +0 -37
  108. package/dist/converters/gitlab-to-hdf/typescript/fingerprint.js.map +0 -1
  109. package/dist/converters/gitlab-to-hdf/typescript/index.d.ts +0 -2
  110. package/dist/converters/gitlab-to-hdf/typescript/index.d.ts.map +0 -1
  111. package/dist/converters/gitlab-to-hdf/typescript/index.js +0 -2
  112. package/dist/converters/gitlab-to-hdf/typescript/index.js.map +0 -1
  113. package/dist/converters/gosec-to-hdf/typescript/converter.d.ts +0 -10
  114. package/dist/converters/gosec-to-hdf/typescript/converter.d.ts.map +0 -1
  115. package/dist/converters/gosec-to-hdf/typescript/converter.js +0 -126
  116. package/dist/converters/gosec-to-hdf/typescript/converter.js.map +0 -1
  117. package/dist/converters/gosec-to-hdf/typescript/fingerprint.d.ts +0 -10
  118. package/dist/converters/gosec-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  119. package/dist/converters/gosec-to-hdf/typescript/fingerprint.js +0 -32
  120. package/dist/converters/gosec-to-hdf/typescript/fingerprint.js.map +0 -1
  121. package/dist/converters/gosec-to-hdf/typescript/index.d.ts +0 -2
  122. package/dist/converters/gosec-to-hdf/typescript/index.d.ts.map +0 -1
  123. package/dist/converters/gosec-to-hdf/typescript/index.js +0 -2
  124. package/dist/converters/gosec-to-hdf/typescript/index.js.map +0 -1
  125. package/dist/converters/grype-to-hdf/typescript/converter.d.ts +0 -2
  126. package/dist/converters/grype-to-hdf/typescript/converter.d.ts.map +0 -1
  127. package/dist/converters/grype-to-hdf/typescript/converter.js +0 -222
  128. package/dist/converters/grype-to-hdf/typescript/converter.js.map +0 -1
  129. package/dist/converters/grype-to-hdf/typescript/fingerprint.d.ts +0 -10
  130. package/dist/converters/grype-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  131. package/dist/converters/grype-to-hdf/typescript/fingerprint.js +0 -38
  132. package/dist/converters/grype-to-hdf/typescript/fingerprint.js.map +0 -1
  133. package/dist/converters/grype-to-hdf/typescript/index.d.ts +0 -2
  134. package/dist/converters/grype-to-hdf/typescript/index.d.ts.map +0 -1
  135. package/dist/converters/grype-to-hdf/typescript/index.js +0 -2
  136. package/dist/converters/grype-to-hdf/typescript/index.js.map +0 -1
  137. package/dist/converters/hdf-to-csv/typescript/converter.d.ts +0 -7
  138. package/dist/converters/hdf-to-csv/typescript/converter.d.ts.map +0 -1
  139. package/dist/converters/hdf-to-csv/typescript/converter.js +0 -108
  140. package/dist/converters/hdf-to-csv/typescript/converter.js.map +0 -1
  141. package/dist/converters/hdf-to-csv/typescript/fingerprint.d.ts +0 -10
  142. package/dist/converters/hdf-to-csv/typescript/fingerprint.d.ts.map +0 -1
  143. package/dist/converters/hdf-to-csv/typescript/fingerprint.js +0 -28
  144. package/dist/converters/hdf-to-csv/typescript/fingerprint.js.map +0 -1
  145. package/dist/converters/hdf-to-csv/typescript/index.d.ts +0 -2
  146. package/dist/converters/hdf-to-csv/typescript/index.d.ts.map +0 -1
  147. package/dist/converters/hdf-to-csv/typescript/index.js +0 -2
  148. package/dist/converters/hdf-to-csv/typescript/index.js.map +0 -1
  149. package/dist/converters/hdf-to-oscal-poam/typescript/converter.d.ts +0 -13
  150. package/dist/converters/hdf-to-oscal-poam/typescript/converter.d.ts.map +0 -1
  151. package/dist/converters/hdf-to-oscal-poam/typescript/converter.js +0 -156
  152. package/dist/converters/hdf-to-oscal-poam/typescript/converter.js.map +0 -1
  153. package/dist/converters/hdf-to-oscal-poam/typescript/fingerprint.d.ts +0 -10
  154. package/dist/converters/hdf-to-oscal-poam/typescript/fingerprint.d.ts.map +0 -1
  155. package/dist/converters/hdf-to-oscal-poam/typescript/fingerprint.js +0 -28
  156. package/dist/converters/hdf-to-oscal-poam/typescript/fingerprint.js.map +0 -1
  157. package/dist/converters/hdf-to-oscal-poam/typescript/index.d.ts +0 -2
  158. package/dist/converters/hdf-to-oscal-poam/typescript/index.d.ts.map +0 -1
  159. package/dist/converters/hdf-to-oscal-poam/typescript/index.js +0 -2
  160. package/dist/converters/hdf-to-oscal-poam/typescript/index.js.map +0 -1
  161. package/dist/converters/hdf-to-oscal-sar/typescript/converter.d.ts +0 -22
  162. package/dist/converters/hdf-to-oscal-sar/typescript/converter.d.ts.map +0 -1
  163. package/dist/converters/hdf-to-oscal-sar/typescript/converter.js +0 -276
  164. package/dist/converters/hdf-to-oscal-sar/typescript/converter.js.map +0 -1
  165. package/dist/converters/hdf-to-oscal-sar/typescript/fingerprint.d.ts +0 -10
  166. package/dist/converters/hdf-to-oscal-sar/typescript/fingerprint.d.ts.map +0 -1
  167. package/dist/converters/hdf-to-oscal-sar/typescript/fingerprint.js +0 -28
  168. package/dist/converters/hdf-to-oscal-sar/typescript/fingerprint.js.map +0 -1
  169. package/dist/converters/hdf-to-oscal-sar/typescript/index.d.ts +0 -2
  170. package/dist/converters/hdf-to-oscal-sar/typescript/index.d.ts.map +0 -1
  171. package/dist/converters/hdf-to-oscal-sar/typescript/index.js +0 -2
  172. package/dist/converters/hdf-to-oscal-sar/typescript/index.js.map +0 -1
  173. package/dist/converters/hdf-to-xccdf/typescript/converter.d.ts +0 -8
  174. package/dist/converters/hdf-to-xccdf/typescript/converter.d.ts.map +0 -1
  175. package/dist/converters/hdf-to-xccdf/typescript/converter.js +0 -186
  176. package/dist/converters/hdf-to-xccdf/typescript/converter.js.map +0 -1
  177. package/dist/converters/hdf-to-xccdf/typescript/index.d.ts +0 -2
  178. package/dist/converters/hdf-to-xccdf/typescript/index.d.ts.map +0 -1
  179. package/dist/converters/hdf-to-xccdf/typescript/index.js +0 -2
  180. package/dist/converters/hdf-to-xccdf/typescript/index.js.map +0 -1
  181. package/dist/converters/hdf-to-xml/typescript/converter.d.ts +0 -7
  182. package/dist/converters/hdf-to-xml/typescript/converter.d.ts.map +0 -1
  183. package/dist/converters/hdf-to-xml/typescript/converter.js +0 -140
  184. package/dist/converters/hdf-to-xml/typescript/converter.js.map +0 -1
  185. package/dist/converters/hdf-to-xml/typescript/fingerprint.d.ts +0 -10
  186. package/dist/converters/hdf-to-xml/typescript/fingerprint.d.ts.map +0 -1
  187. package/dist/converters/hdf-to-xml/typescript/fingerprint.js +0 -28
  188. package/dist/converters/hdf-to-xml/typescript/fingerprint.js.map +0 -1
  189. package/dist/converters/hdf-to-xml/typescript/index.d.ts +0 -2
  190. package/dist/converters/hdf-to-xml/typescript/index.d.ts.map +0 -1
  191. package/dist/converters/hdf-to-xml/typescript/index.js +0 -2
  192. package/dist/converters/hdf-to-xml/typescript/index.js.map +0 -1
  193. package/dist/converters/hdf-v2-passthrough/typescript/fingerprint.d.ts +0 -15
  194. package/dist/converters/hdf-v2-passthrough/typescript/fingerprint.d.ts.map +0 -1
  195. package/dist/converters/hdf-v2-passthrough/typescript/fingerprint.js +0 -33
  196. package/dist/converters/hdf-v2-passthrough/typescript/fingerprint.js.map +0 -1
  197. package/dist/converters/ionchannel-to-hdf/typescript/converter.d.ts +0 -2
  198. package/dist/converters/ionchannel-to-hdf/typescript/converter.d.ts.map +0 -1
  199. package/dist/converters/ionchannel-to-hdf/typescript/converter.js +0 -150
  200. package/dist/converters/ionchannel-to-hdf/typescript/converter.js.map +0 -1
  201. package/dist/converters/ionchannel-to-hdf/typescript/fingerprint.d.ts +0 -11
  202. package/dist/converters/ionchannel-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  203. package/dist/converters/ionchannel-to-hdf/typescript/fingerprint.js +0 -41
  204. package/dist/converters/ionchannel-to-hdf/typescript/fingerprint.js.map +0 -1
  205. package/dist/converters/ionchannel-to-hdf/typescript/index.d.ts +0 -2
  206. package/dist/converters/ionchannel-to-hdf/typescript/index.d.ts.map +0 -1
  207. package/dist/converters/ionchannel-to-hdf/typescript/index.js +0 -2
  208. package/dist/converters/ionchannel-to-hdf/typescript/index.js.map +0 -1
  209. package/dist/converters/jfrog-xray-to-hdf/typescript/converter.d.ts +0 -8
  210. package/dist/converters/jfrog-xray-to-hdf/typescript/converter.d.ts.map +0 -1
  211. package/dist/converters/jfrog-xray-to-hdf/typescript/converter.js +0 -149
  212. package/dist/converters/jfrog-xray-to-hdf/typescript/converter.js.map +0 -1
  213. package/dist/converters/jfrog-xray-to-hdf/typescript/fingerprint.d.ts +0 -10
  214. package/dist/converters/jfrog-xray-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  215. package/dist/converters/jfrog-xray-to-hdf/typescript/fingerprint.js +0 -28
  216. package/dist/converters/jfrog-xray-to-hdf/typescript/fingerprint.js.map +0 -1
  217. package/dist/converters/jfrog-xray-to-hdf/typescript/index.d.ts +0 -2
  218. package/dist/converters/jfrog-xray-to-hdf/typescript/index.d.ts.map +0 -1
  219. package/dist/converters/jfrog-xray-to-hdf/typescript/index.js +0 -2
  220. package/dist/converters/jfrog-xray-to-hdf/typescript/index.js.map +0 -1
  221. package/dist/converters/junit-to-hdf/typescript/converter.d.ts +0 -5
  222. package/dist/converters/junit-to-hdf/typescript/converter.d.ts.map +0 -1
  223. package/dist/converters/junit-to-hdf/typescript/converter.js +0 -142
  224. package/dist/converters/junit-to-hdf/typescript/converter.js.map +0 -1
  225. package/dist/converters/junit-to-hdf/typescript/fingerprint.d.ts +0 -9
  226. package/dist/converters/junit-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  227. package/dist/converters/junit-to-hdf/typescript/fingerprint.js +0 -28
  228. package/dist/converters/junit-to-hdf/typescript/fingerprint.js.map +0 -1
  229. package/dist/converters/junit-to-hdf/typescript/index.d.ts +0 -2
  230. package/dist/converters/junit-to-hdf/typescript/index.d.ts.map +0 -1
  231. package/dist/converters/junit-to-hdf/typescript/index.js +0 -2
  232. package/dist/converters/junit-to-hdf/typescript/index.js.map +0 -1
  233. package/dist/converters/legacyhdf-to-hdf/typescript/converter.d.ts +0 -232
  234. package/dist/converters/legacyhdf-to-hdf/typescript/converter.d.ts.map +0 -1
  235. package/dist/converters/legacyhdf-to-hdf/typescript/converter.js +0 -418
  236. package/dist/converters/legacyhdf-to-hdf/typescript/converter.js.map +0 -1
  237. package/dist/converters/legacyhdf-to-hdf/typescript/fingerprint.d.ts +0 -17
  238. package/dist/converters/legacyhdf-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  239. package/dist/converters/legacyhdf-to-hdf/typescript/fingerprint.js +0 -49
  240. package/dist/converters/legacyhdf-to-hdf/typescript/fingerprint.js.map +0 -1
  241. package/dist/converters/legacyhdf-to-hdf/typescript/index.d.ts +0 -8
  242. package/dist/converters/legacyhdf-to-hdf/typescript/index.d.ts.map +0 -1
  243. package/dist/converters/legacyhdf-to-hdf/typescript/index.js +0 -8
  244. package/dist/converters/legacyhdf-to-hdf/typescript/index.js.map +0 -1
  245. package/dist/converters/msft-defender-cloud-to-hdf/typescript/converter.d.ts +0 -8
  246. package/dist/converters/msft-defender-cloud-to-hdf/typescript/converter.d.ts.map +0 -1
  247. package/dist/converters/msft-defender-cloud-to-hdf/typescript/converter.js +0 -153
  248. package/dist/converters/msft-defender-cloud-to-hdf/typescript/converter.js.map +0 -1
  249. package/dist/converters/msft-defender-cloud-to-hdf/typescript/fingerprint.d.ts +0 -11
  250. package/dist/converters/msft-defender-cloud-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  251. package/dist/converters/msft-defender-cloud-to-hdf/typescript/fingerprint.js +0 -37
  252. package/dist/converters/msft-defender-cloud-to-hdf/typescript/fingerprint.js.map +0 -1
  253. package/dist/converters/msft-defender-cloud-to-hdf/typescript/index.d.ts +0 -2
  254. package/dist/converters/msft-defender-cloud-to-hdf/typescript/index.d.ts.map +0 -1
  255. package/dist/converters/msft-defender-cloud-to-hdf/typescript/index.js +0 -2
  256. package/dist/converters/msft-defender-cloud-to-hdf/typescript/index.js.map +0 -1
  257. package/dist/converters/msft-defender-devops-to-hdf/typescript/converter.d.ts +0 -7
  258. package/dist/converters/msft-defender-devops-to-hdf/typescript/converter.d.ts.map +0 -1
  259. package/dist/converters/msft-defender-devops-to-hdf/typescript/converter.js +0 -126
  260. package/dist/converters/msft-defender-devops-to-hdf/typescript/converter.js.map +0 -1
  261. package/dist/converters/msft-defender-devops-to-hdf/typescript/fingerprint.d.ts +0 -13
  262. package/dist/converters/msft-defender-devops-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  263. package/dist/converters/msft-defender-devops-to-hdf/typescript/fingerprint.js +0 -62
  264. package/dist/converters/msft-defender-devops-to-hdf/typescript/fingerprint.js.map +0 -1
  265. package/dist/converters/msft-defender-devops-to-hdf/typescript/index.d.ts +0 -2
  266. package/dist/converters/msft-defender-devops-to-hdf/typescript/index.d.ts.map +0 -1
  267. package/dist/converters/msft-defender-devops-to-hdf/typescript/index.js +0 -2
  268. package/dist/converters/msft-defender-devops-to-hdf/typescript/index.js.map +0 -1
  269. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/converter.d.ts +0 -9
  270. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/converter.d.ts.map +0 -1
  271. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/converter.js +0 -194
  272. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/converter.js.map +0 -1
  273. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/fingerprint.d.ts +0 -11
  274. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  275. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/fingerprint.js +0 -39
  276. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/fingerprint.js.map +0 -1
  277. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/index.d.ts +0 -2
  278. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/index.d.ts.map +0 -1
  279. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/index.js +0 -2
  280. package/dist/converters/msft-defender-endpoint-to-hdf/typescript/index.js.map +0 -1
  281. package/dist/converters/msft-secure-score-to-hdf/typescript/converter.d.ts +0 -11
  282. package/dist/converters/msft-secure-score-to-hdf/typescript/converter.d.ts.map +0 -1
  283. package/dist/converters/msft-secure-score-to-hdf/typescript/converter.js +0 -160
  284. package/dist/converters/msft-secure-score-to-hdf/typescript/converter.js.map +0 -1
  285. package/dist/converters/msft-secure-score-to-hdf/typescript/fingerprint.d.ts +0 -11
  286. package/dist/converters/msft-secure-score-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  287. package/dist/converters/msft-secure-score-to-hdf/typescript/fingerprint.js +0 -41
  288. package/dist/converters/msft-secure-score-to-hdf/typescript/fingerprint.js.map +0 -1
  289. package/dist/converters/msft-secure-score-to-hdf/typescript/index.d.ts +0 -2
  290. package/dist/converters/msft-secure-score-to-hdf/typescript/index.d.ts.map +0 -1
  291. package/dist/converters/msft-secure-score-to-hdf/typescript/index.js +0 -2
  292. package/dist/converters/msft-secure-score-to-hdf/typescript/index.js.map +0 -1
  293. package/dist/converters/nessus-to-hdf/typescript/converter.d.ts +0 -6
  294. package/dist/converters/nessus-to-hdf/typescript/converter.d.ts.map +0 -1
  295. package/dist/converters/nessus-to-hdf/typescript/converter.js +0 -329
  296. package/dist/converters/nessus-to-hdf/typescript/converter.js.map +0 -1
  297. package/dist/converters/nessus-to-hdf/typescript/fingerprint.d.ts +0 -9
  298. package/dist/converters/nessus-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  299. package/dist/converters/nessus-to-hdf/typescript/fingerprint.js +0 -34
  300. package/dist/converters/nessus-to-hdf/typescript/fingerprint.js.map +0 -1
  301. package/dist/converters/nessus-to-hdf/typescript/index.d.ts +0 -2
  302. package/dist/converters/nessus-to-hdf/typescript/index.d.ts.map +0 -1
  303. package/dist/converters/nessus-to-hdf/typescript/index.js +0 -2
  304. package/dist/converters/nessus-to-hdf/typescript/index.js.map +0 -1
  305. package/dist/converters/netsparker-to-hdf/typescript/converter.d.ts +0 -9
  306. package/dist/converters/netsparker-to-hdf/typescript/converter.d.ts.map +0 -1
  307. package/dist/converters/netsparker-to-hdf/typescript/converter.js +0 -211
  308. package/dist/converters/netsparker-to-hdf/typescript/converter.js.map +0 -1
  309. package/dist/converters/netsparker-to-hdf/typescript/fingerprint.d.ts +0 -10
  310. package/dist/converters/netsparker-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  311. package/dist/converters/netsparker-to-hdf/typescript/fingerprint.js +0 -29
  312. package/dist/converters/netsparker-to-hdf/typescript/fingerprint.js.map +0 -1
  313. package/dist/converters/netsparker-to-hdf/typescript/index.d.ts +0 -2
  314. package/dist/converters/netsparker-to-hdf/typescript/index.d.ts.map +0 -1
  315. package/dist/converters/netsparker-to-hdf/typescript/index.js +0 -2
  316. package/dist/converters/netsparker-to-hdf/typescript/index.js.map +0 -1
  317. package/dist/converters/neuvector-to-hdf/typescript/converter.d.ts +0 -16
  318. package/dist/converters/neuvector-to-hdf/typescript/converter.d.ts.map +0 -1
  319. package/dist/converters/neuvector-to-hdf/typescript/converter.js +0 -148
  320. package/dist/converters/neuvector-to-hdf/typescript/converter.js.map +0 -1
  321. package/dist/converters/neuvector-to-hdf/typescript/fingerprint.d.ts +0 -11
  322. package/dist/converters/neuvector-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  323. package/dist/converters/neuvector-to-hdf/typescript/fingerprint.js +0 -37
  324. package/dist/converters/neuvector-to-hdf/typescript/fingerprint.js.map +0 -1
  325. package/dist/converters/neuvector-to-hdf/typescript/index.d.ts +0 -2
  326. package/dist/converters/neuvector-to-hdf/typescript/index.d.ts.map +0 -1
  327. package/dist/converters/neuvector-to-hdf/typescript/index.js +0 -2
  328. package/dist/converters/neuvector-to-hdf/typescript/index.js.map +0 -1
  329. package/dist/converters/nikto-to-hdf/typescript/converter.d.ts +0 -2
  330. package/dist/converters/nikto-to-hdf/typescript/converter.d.ts.map +0 -1
  331. package/dist/converters/nikto-to-hdf/typescript/converter.js +0 -111
  332. package/dist/converters/nikto-to-hdf/typescript/converter.js.map +0 -1
  333. package/dist/converters/nikto-to-hdf/typescript/fingerprint.d.ts +0 -10
  334. package/dist/converters/nikto-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  335. package/dist/converters/nikto-to-hdf/typescript/fingerprint.js +0 -33
  336. package/dist/converters/nikto-to-hdf/typescript/fingerprint.js.map +0 -1
  337. package/dist/converters/nikto-to-hdf/typescript/index.d.ts +0 -2
  338. package/dist/converters/nikto-to-hdf/typescript/index.d.ts.map +0 -1
  339. package/dist/converters/nikto-to-hdf/typescript/index.js +0 -2
  340. package/dist/converters/nikto-to-hdf/typescript/index.js.map +0 -1
  341. package/dist/converters/oscal-to-hdf/typescript/converter-catalog.d.ts +0 -20
  342. package/dist/converters/oscal-to-hdf/typescript/converter-catalog.d.ts.map +0 -1
  343. package/dist/converters/oscal-to-hdf/typescript/converter-catalog.js +0 -134
  344. package/dist/converters/oscal-to-hdf/typescript/converter-catalog.js.map +0 -1
  345. package/dist/converters/oscal-to-hdf/typescript/converter-component.d.ts +0 -13
  346. package/dist/converters/oscal-to-hdf/typescript/converter-component.d.ts.map +0 -1
  347. package/dist/converters/oscal-to-hdf/typescript/converter-component.js +0 -92
  348. package/dist/converters/oscal-to-hdf/typescript/converter-component.js.map +0 -1
  349. package/dist/converters/oscal-to-hdf/typescript/converter-poam.d.ts +0 -13
  350. package/dist/converters/oscal-to-hdf/typescript/converter-poam.d.ts.map +0 -1
  351. package/dist/converters/oscal-to-hdf/typescript/converter-poam.js +0 -196
  352. package/dist/converters/oscal-to-hdf/typescript/converter-poam.js.map +0 -1
  353. package/dist/converters/oscal-to-hdf/typescript/converter-profile.d.ts +0 -26
  354. package/dist/converters/oscal-to-hdf/typescript/converter-profile.d.ts.map +0 -1
  355. package/dist/converters/oscal-to-hdf/typescript/converter-profile.js +0 -239
  356. package/dist/converters/oscal-to-hdf/typescript/converter-profile.js.map +0 -1
  357. package/dist/converters/oscal-to-hdf/typescript/converter-sap.d.ts +0 -13
  358. package/dist/converters/oscal-to-hdf/typescript/converter-sap.d.ts.map +0 -1
  359. package/dist/converters/oscal-to-hdf/typescript/converter-sap.js +0 -196
  360. package/dist/converters/oscal-to-hdf/typescript/converter-sap.js.map +0 -1
  361. package/dist/converters/oscal-to-hdf/typescript/converter-sar.d.ts +0 -13
  362. package/dist/converters/oscal-to-hdf/typescript/converter-sar.d.ts.map +0 -1
  363. package/dist/converters/oscal-to-hdf/typescript/converter-sar.js +0 -270
  364. package/dist/converters/oscal-to-hdf/typescript/converter-sar.js.map +0 -1
  365. package/dist/converters/oscal-to-hdf/typescript/converter-ssp.d.ts +0 -13
  366. package/dist/converters/oscal-to-hdf/typescript/converter-ssp.d.ts.map +0 -1
  367. package/dist/converters/oscal-to-hdf/typescript/converter-ssp.js +0 -246
  368. package/dist/converters/oscal-to-hdf/typescript/converter-ssp.js.map +0 -1
  369. package/dist/converters/oscal-to-hdf/typescript/detect.d.ts +0 -15
  370. package/dist/converters/oscal-to-hdf/typescript/detect.d.ts.map +0 -1
  371. package/dist/converters/oscal-to-hdf/typescript/detect.js +0 -33
  372. package/dist/converters/oscal-to-hdf/typescript/detect.js.map +0 -1
  373. package/dist/converters/oscal-to-hdf/typescript/fingerprint.d.ts +0 -12
  374. package/dist/converters/oscal-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  375. package/dist/converters/oscal-to-hdf/typescript/fingerprint.js +0 -57
  376. package/dist/converters/oscal-to-hdf/typescript/fingerprint.js.map +0 -1
  377. package/dist/converters/oscal-to-hdf/typescript/index.d.ts +0 -9
  378. package/dist/converters/oscal-to-hdf/typescript/index.d.ts.map +0 -1
  379. package/dist/converters/oscal-to-hdf/typescript/index.js +0 -9
  380. package/dist/converters/oscal-to-hdf/typescript/index.js.map +0 -1
  381. package/dist/converters/oscal-to-hdf/typescript/shared.d.ts +0 -85
  382. package/dist/converters/oscal-to-hdf/typescript/shared.d.ts.map +0 -1
  383. package/dist/converters/oscal-to-hdf/typescript/shared.js +0 -251
  384. package/dist/converters/oscal-to-hdf/typescript/shared.js.map +0 -1
  385. package/dist/converters/oscal-to-hdf/typescript/types.d.ts +0 -5372
  386. package/dist/converters/oscal-to-hdf/typescript/types.d.ts.map +0 -1
  387. package/dist/converters/oscal-to-hdf/typescript/types.js +0 -2340
  388. package/dist/converters/oscal-to-hdf/typescript/types.js.map +0 -1
  389. package/dist/converters/prisma-to-hdf/typescript/converter.d.ts +0 -16
  390. package/dist/converters/prisma-to-hdf/typescript/converter.d.ts.map +0 -1
  391. package/dist/converters/prisma-to-hdf/typescript/converter.js +0 -197
  392. package/dist/converters/prisma-to-hdf/typescript/converter.js.map +0 -1
  393. package/dist/converters/prisma-to-hdf/typescript/fingerprint.d.ts +0 -10
  394. package/dist/converters/prisma-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  395. package/dist/converters/prisma-to-hdf/typescript/fingerprint.js +0 -39
  396. package/dist/converters/prisma-to-hdf/typescript/fingerprint.js.map +0 -1
  397. package/dist/converters/prisma-to-hdf/typescript/index.d.ts +0 -2
  398. package/dist/converters/prisma-to-hdf/typescript/index.d.ts.map +0 -1
  399. package/dist/converters/prisma-to-hdf/typescript/index.js +0 -2
  400. package/dist/converters/prisma-to-hdf/typescript/index.js.map +0 -1
  401. package/dist/converters/sarif-to-hdf/typescript/converter.d.ts +0 -2
  402. package/dist/converters/sarif-to-hdf/typescript/converter.d.ts.map +0 -1
  403. package/dist/converters/sarif-to-hdf/typescript/converter.js +0 -406
  404. package/dist/converters/sarif-to-hdf/typescript/converter.js.map +0 -1
  405. package/dist/converters/sarif-to-hdf/typescript/fingerprint.d.ts +0 -10
  406. package/dist/converters/sarif-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  407. package/dist/converters/sarif-to-hdf/typescript/fingerprint.js +0 -34
  408. package/dist/converters/sarif-to-hdf/typescript/fingerprint.js.map +0 -1
  409. package/dist/converters/sarif-to-hdf/typescript/index.d.ts +0 -2
  410. package/dist/converters/sarif-to-hdf/typescript/index.d.ts.map +0 -1
  411. package/dist/converters/sarif-to-hdf/typescript/index.js +0 -2
  412. package/dist/converters/sarif-to-hdf/typescript/index.js.map +0 -1
  413. package/dist/converters/scoutsuite-to-hdf/typescript/converter.d.ts +0 -9
  414. package/dist/converters/scoutsuite-to-hdf/typescript/converter.d.ts.map +0 -1
  415. package/dist/converters/scoutsuite-to-hdf/typescript/converter.js +0 -173
  416. package/dist/converters/scoutsuite-to-hdf/typescript/converter.js.map +0 -1
  417. package/dist/converters/scoutsuite-to-hdf/typescript/fingerprint.d.ts +0 -10
  418. package/dist/converters/scoutsuite-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  419. package/dist/converters/scoutsuite-to-hdf/typescript/fingerprint.js +0 -29
  420. package/dist/converters/scoutsuite-to-hdf/typescript/fingerprint.js.map +0 -1
  421. package/dist/converters/scoutsuite-to-hdf/typescript/index.d.ts +0 -2
  422. package/dist/converters/scoutsuite-to-hdf/typescript/index.d.ts.map +0 -1
  423. package/dist/converters/scoutsuite-to-hdf/typescript/index.js +0 -2
  424. package/dist/converters/scoutsuite-to-hdf/typescript/index.js.map +0 -1
  425. package/dist/converters/snyk-to-hdf/typescript/converter.d.ts +0 -11
  426. package/dist/converters/snyk-to-hdf/typescript/converter.d.ts.map +0 -1
  427. package/dist/converters/snyk-to-hdf/typescript/converter.js +0 -131
  428. package/dist/converters/snyk-to-hdf/typescript/converter.js.map +0 -1
  429. package/dist/converters/snyk-to-hdf/typescript/fingerprint.d.ts +0 -12
  430. package/dist/converters/snyk-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  431. package/dist/converters/snyk-to-hdf/typescript/fingerprint.js +0 -44
  432. package/dist/converters/snyk-to-hdf/typescript/fingerprint.js.map +0 -1
  433. package/dist/converters/snyk-to-hdf/typescript/index.d.ts +0 -2
  434. package/dist/converters/snyk-to-hdf/typescript/index.d.ts.map +0 -1
  435. package/dist/converters/snyk-to-hdf/typescript/index.js +0 -2
  436. package/dist/converters/snyk-to-hdf/typescript/index.js.map +0 -1
  437. package/dist/converters/sonarqube-to-hdf/typescript/converter.d.ts +0 -8
  438. package/dist/converters/sonarqube-to-hdf/typescript/converter.d.ts.map +0 -1
  439. package/dist/converters/sonarqube-to-hdf/typescript/converter.js +0 -266
  440. package/dist/converters/sonarqube-to-hdf/typescript/converter.js.map +0 -1
  441. package/dist/converters/sonarqube-to-hdf/typescript/fingerprint.d.ts +0 -10
  442. package/dist/converters/sonarqube-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  443. package/dist/converters/sonarqube-to-hdf/typescript/fingerprint.js +0 -35
  444. package/dist/converters/sonarqube-to-hdf/typescript/fingerprint.js.map +0 -1
  445. package/dist/converters/sonarqube-to-hdf/typescript/index.d.ts +0 -2
  446. package/dist/converters/sonarqube-to-hdf/typescript/index.d.ts.map +0 -1
  447. package/dist/converters/sonarqube-to-hdf/typescript/index.js +0 -2
  448. package/dist/converters/sonarqube-to-hdf/typescript/index.js.map +0 -1
  449. package/dist/converters/splunk-to-hdf/typescript/converter.d.ts +0 -13
  450. package/dist/converters/splunk-to-hdf/typescript/converter.d.ts.map +0 -1
  451. package/dist/converters/splunk-to-hdf/typescript/converter.js +0 -165
  452. package/dist/converters/splunk-to-hdf/typescript/converter.js.map +0 -1
  453. package/dist/converters/splunk-to-hdf/typescript/fingerprint.d.ts +0 -11
  454. package/dist/converters/splunk-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  455. package/dist/converters/splunk-to-hdf/typescript/fingerprint.js +0 -36
  456. package/dist/converters/splunk-to-hdf/typescript/fingerprint.js.map +0 -1
  457. package/dist/converters/splunk-to-hdf/typescript/index.d.ts +0 -2
  458. package/dist/converters/splunk-to-hdf/typescript/index.d.ts.map +0 -1
  459. package/dist/converters/splunk-to-hdf/typescript/index.js +0 -2
  460. package/dist/converters/splunk-to-hdf/typescript/index.js.map +0 -1
  461. package/dist/converters/trufflehog-to-hdf/typescript/converter.d.ts +0 -9
  462. package/dist/converters/trufflehog-to-hdf/typescript/converter.d.ts.map +0 -1
  463. package/dist/converters/trufflehog-to-hdf/typescript/converter.js +0 -189
  464. package/dist/converters/trufflehog-to-hdf/typescript/converter.js.map +0 -1
  465. package/dist/converters/trufflehog-to-hdf/typescript/fingerprint.d.ts +0 -18
  466. package/dist/converters/trufflehog-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  467. package/dist/converters/trufflehog-to-hdf/typescript/fingerprint.js +0 -50
  468. package/dist/converters/trufflehog-to-hdf/typescript/fingerprint.js.map +0 -1
  469. package/dist/converters/trufflehog-to-hdf/typescript/index.d.ts +0 -2
  470. package/dist/converters/trufflehog-to-hdf/typescript/index.d.ts.map +0 -1
  471. package/dist/converters/trufflehog-to-hdf/typescript/index.js +0 -2
  472. package/dist/converters/trufflehog-to-hdf/typescript/index.js.map +0 -1
  473. package/dist/converters/twistlock-to-hdf/typescript/converter.d.ts +0 -11
  474. package/dist/converters/twistlock-to-hdf/typescript/converter.d.ts.map +0 -1
  475. package/dist/converters/twistlock-to-hdf/typescript/converter.js +0 -153
  476. package/dist/converters/twistlock-to-hdf/typescript/converter.js.map +0 -1
  477. package/dist/converters/twistlock-to-hdf/typescript/fingerprint.d.ts +0 -18
  478. package/dist/converters/twistlock-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  479. package/dist/converters/twistlock-to-hdf/typescript/fingerprint.js +0 -49
  480. package/dist/converters/twistlock-to-hdf/typescript/fingerprint.js.map +0 -1
  481. package/dist/converters/twistlock-to-hdf/typescript/index.d.ts +0 -2
  482. package/dist/converters/twistlock-to-hdf/typescript/index.d.ts.map +0 -1
  483. package/dist/converters/twistlock-to-hdf/typescript/index.js +0 -2
  484. package/dist/converters/twistlock-to-hdf/typescript/index.js.map +0 -1
  485. package/dist/converters/veracode-to-hdf/typescript/converter.d.ts +0 -20
  486. package/dist/converters/veracode-to-hdf/typescript/converter.d.ts.map +0 -1
  487. package/dist/converters/veracode-to-hdf/typescript/converter.js +0 -350
  488. package/dist/converters/veracode-to-hdf/typescript/converter.js.map +0 -1
  489. package/dist/converters/veracode-to-hdf/typescript/fingerprint.d.ts +0 -16
  490. package/dist/converters/veracode-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  491. package/dist/converters/veracode-to-hdf/typescript/fingerprint.js +0 -35
  492. package/dist/converters/veracode-to-hdf/typescript/fingerprint.js.map +0 -1
  493. package/dist/converters/veracode-to-hdf/typescript/index.d.ts +0 -2
  494. package/dist/converters/veracode-to-hdf/typescript/index.d.ts.map +0 -1
  495. package/dist/converters/veracode-to-hdf/typescript/index.js +0 -2
  496. package/dist/converters/veracode-to-hdf/typescript/index.js.map +0 -1
  497. package/dist/converters/xccdf-results-to-hdf/typescript/converter.d.ts +0 -29
  498. package/dist/converters/xccdf-results-to-hdf/typescript/converter.d.ts.map +0 -1
  499. package/dist/converters/xccdf-results-to-hdf/typescript/converter.js +0 -604
  500. package/dist/converters/xccdf-results-to-hdf/typescript/converter.js.map +0 -1
  501. package/dist/converters/xccdf-results-to-hdf/typescript/fingerprint.d.ts +0 -12
  502. package/dist/converters/xccdf-results-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  503. package/dist/converters/xccdf-results-to-hdf/typescript/fingerprint.js +0 -33
  504. package/dist/converters/xccdf-results-to-hdf/typescript/fingerprint.js.map +0 -1
  505. package/dist/converters/xccdf-results-to-hdf/typescript/index.d.ts +0 -2
  506. package/dist/converters/xccdf-results-to-hdf/typescript/index.d.ts.map +0 -1
  507. package/dist/converters/xccdf-results-to-hdf/typescript/index.js +0 -2
  508. package/dist/converters/xccdf-results-to-hdf/typescript/index.js.map +0 -1
  509. package/dist/converters/zap-to-hdf/typescript/converter.d.ts +0 -2
  510. package/dist/converters/zap-to-hdf/typescript/converter.d.ts.map +0 -1
  511. package/dist/converters/zap-to-hdf/typescript/converter.js +0 -237
  512. package/dist/converters/zap-to-hdf/typescript/converter.js.map +0 -1
  513. package/dist/converters/zap-to-hdf/typescript/fingerprint.d.ts +0 -11
  514. package/dist/converters/zap-to-hdf/typescript/fingerprint.d.ts.map +0 -1
  515. package/dist/converters/zap-to-hdf/typescript/fingerprint.js +0 -34
  516. package/dist/converters/zap-to-hdf/typescript/fingerprint.js.map +0 -1
  517. package/dist/converters/zap-to-hdf/typescript/index.d.ts +0 -2
  518. package/dist/converters/zap-to-hdf/typescript/index.d.ts.map +0 -1
  519. package/dist/converters/zap-to-hdf/typescript/index.js +0 -2
  520. package/dist/converters/zap-to-hdf/typescript/index.js.map +0 -1
  521. package/dist/package.json +0 -71
  522. package/dist/shared/typescript/compare.d.ts +0 -14
  523. package/dist/shared/typescript/compare.d.ts.map +0 -1
  524. package/dist/shared/typescript/compare.js +0 -91
  525. package/dist/shared/typescript/compare.js.map +0 -1
  526. package/dist/shared/typescript/converter-contract.d.ts +0 -20
  527. package/dist/shared/typescript/converter-contract.d.ts.map +0 -1
  528. package/dist/shared/typescript/converter-contract.js +0 -35
  529. package/dist/shared/typescript/converter-contract.js.map +0 -1
  530. package/dist/shared/typescript/converterutil.d.ts +0 -158
  531. package/dist/shared/typescript/converterutil.d.ts.map +0 -1
  532. package/dist/shared/typescript/converterutil.js +0 -220
  533. package/dist/shared/typescript/converterutil.js.map +0 -1
  534. package/dist/shared/typescript/fingerprint.d.ts +0 -17
  535. package/dist/shared/typescript/fingerprint.d.ts.map +0 -1
  536. package/dist/shared/typescript/fingerprint.js +0 -85
  537. package/dist/shared/typescript/fingerprint.js.map +0 -1
  538. package/dist/shared/typescript/fptest.d.ts +0 -40
  539. package/dist/shared/typescript/fptest.d.ts.map +0 -1
  540. package/dist/shared/typescript/fptest.js +0 -70
  541. package/dist/shared/typescript/fptest.js.map +0 -1
  542. package/dist/shared/typescript/hdf-version.d.ts +0 -20
  543. package/dist/shared/typescript/hdf-version.d.ts.map +0 -1
  544. package/dist/shared/typescript/hdf-version.js +0 -206
  545. package/dist/shared/typescript/hdf-version.js.map +0 -1
  546. package/dist/shared/typescript/register-all.d.ts +0 -12
  547. package/dist/shared/typescript/register-all.d.ts.map +0 -1
  548. package/dist/shared/typescript/register-all.js +0 -111
  549. package/dist/shared/typescript/register-all.js.map +0 -1
  550. package/dist/shared/typescript/registry.d.ts +0 -35
  551. package/dist/shared/typescript/registry.d.ts.map +0 -1
  552. package/dist/shared/typescript/registry.js +0 -27
  553. package/dist/shared/typescript/registry.js.map +0 -1
  554. package/dist/shared/typescript/xml-utils.d.ts +0 -16
  555. package/dist/shared/typescript/xml-utils.d.ts.map +0 -1
  556. package/dist/shared/typescript/xml-utils.js +0 -66
  557. package/dist/shared/typescript/xml-utils.js.map +0 -1
  558. package/dist/src/detect.d.ts +0 -15
  559. package/dist/src/detect.d.ts.map +0 -1
  560. package/dist/src/detect.js +0 -15
  561. package/dist/src/detect.js.map +0 -1
  562. package/dist/src/index.d.ts +0 -52
  563. package/dist/src/index.d.ts.map +0 -1
  564. package/dist/src/index.js +0 -91
  565. package/dist/src/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-all-DaYHszLd.js","names":[],"sources":["../shared/typescript/fingerprint.ts","../converters/aws-config-to-hdf/typescript/fingerprint.ts","../converters/conveyor-to-hdf/typescript/fingerprint.ts","../converters/cyclonedx-to-hdf/typescript/fingerprint.ts","../converters/deptrack-to-hdf/typescript/fingerprint.ts","../converters/gitlab-to-hdf/typescript/fingerprint.ts","../converters/gosec-to-hdf/typescript/fingerprint.ts","../converters/grype-to-hdf/typescript/fingerprint.ts","../converters/jfrog-xray-to-hdf/typescript/fingerprint.ts","../converters/msft-defender-cloud-to-hdf/typescript/fingerprint.ts","../converters/msft-defender-devops-to-hdf/typescript/fingerprint.ts","../converters/msft-defender-endpoint-to-hdf/typescript/fingerprint.ts","../converters/msft-secure-score-to-hdf/typescript/fingerprint.ts","../converters/neuvector-to-hdf/typescript/fingerprint.ts","../converters/sarif-to-hdf/typescript/fingerprint.ts","../converters/scoutsuite-to-hdf/typescript/fingerprint.ts","../converters/snyk-to-hdf/typescript/fingerprint.ts","../converters/sonarqube-to-hdf/typescript/fingerprint.ts","../converters/splunk-to-hdf/typescript/fingerprint.ts","../converters/trufflehog-to-hdf/typescript/fingerprint.ts","../converters/twistlock-to-hdf/typescript/fingerprint.ts","../converters/nikto-to-hdf/typescript/fingerprint.ts","../converters/zap-to-hdf/typescript/fingerprint.ts","../shared/typescript/xml-utils.ts","../converters/burpsuite-to-hdf/typescript/fingerprint.ts","../converters/dbprotect-to-hdf/typescript/fingerprint.ts","../converters/fortify-to-hdf/typescript/fingerprint.ts","../converters/junit-to-hdf/typescript/fingerprint.ts","../converters/nessus-to-hdf/typescript/fingerprint.ts","../converters/netsparker-to-hdf/typescript/fingerprint.ts","../converters/veracode-to-hdf/typescript/fingerprint.ts","../converters/xccdf-results-to-hdf/typescript/fingerprint.ts","../converters/prisma-to-hdf/typescript/fingerprint.ts","../converters/hdf-v2-passthrough/typescript/fingerprint.ts","../converters/legacyhdf-to-hdf/typescript/fingerprint.ts","../converters/oscal-to-hdf/typescript/fingerprint.ts","../converters/hdf-to-csv/typescript/fingerprint.ts","../converters/hdf-to-xml/typescript/fingerprint.ts","../converters/hdf-to-oscal-sar/typescript/fingerprint.ts","../converters/hdf-to-oscal-poam/typescript/fingerprint.ts","../shared/typescript/register-all.ts"],"sourcesContent":["/**\n * Converter auto-detection dispatcher.\n *\n * Walks registered fingerprints and returns the highest-confidence match.\n * Lightweight — no converter imports, safe for any bundle.\n */\n\nimport { getIngestFingerprints, type ConverterFingerprint, type InputFamily } from './registry.js';\n\nexport interface DetectionResult {\n fingerprint: ConverterFingerprint;\n confidence: number;\n /** Detected format version (e.g. \"2.1.0\" for SARIF). Empty when not available. */\n version: string;\n}\n\n/** Minimum confidence to accept an auto-detection result. */\nconst MIN_CONFIDENCE = 0.8;\n\nexport function detectConverter(input: string): DetectionResult | undefined {\n const results = detectConverterAll(input);\n if (results.length === 0) return undefined;\n const best = results[0]!;\n // Refuse to guess if confidence is too low\n if (best.confidence < MIN_CONFIDENCE) return undefined;\n // Refuse to guess if there's an ambiguous tie at the top\n if (results.length > 1 && results[1]!.confidence === best.confidence) return undefined;\n return best;\n}\n\n/** Maximum input size for fingerprint detection (100 MB). */\nconst MAX_DETECT_SIZE = 100 * 1024 * 1024;\n/** Maximum characters scanned for XML/text root element detection. */\nconst MAX_XML_PREAMBLE = 8 * 1024;\n\nexport function detectConverterAll(input: string): DetectionResult[] {\n if (!input || input.length > MAX_DETECT_SIZE) return [];\n\n const family = detectFamily(input);\n if (!family) return [];\n\n // For XML/text, only pass the preamble to fingerprints\n const effectiveInput = (family !== 'json' && input.length > MAX_XML_PREAMBLE)\n ? input.slice(0, MAX_XML_PREAMBLE)\n : input;\n\n const parsed = family === 'json' ? tryParseJSON(input) : effectiveInput;\n if (parsed === undefined) return [];\n\n const results: DetectionResult[] = [];\n for (const fp of getIngestFingerprints()) {\n if (fp.inputFamily !== family) continue;\n const confidence = fp.fingerprint(parsed);\n if (confidence > 0) {\n let version = '';\n if (fp.detectVersion) {\n try {\n version = fp.detectVersion(parsed);\n } catch {\n version = '';\n }\n }\n results.push({ fingerprint: fp, confidence, version });\n }\n }\n\n // Stable sort: by confidence desc, then by ID asc for deterministic tiebreaking\n results.sort((a, b) => b.confidence - a.confidence || a.fingerprint.id.localeCompare(b.fingerprint.id));\n return results;\n}\n\nexport function detectFamily(input: string): InputFamily | undefined {\n if (!input) return undefined;\n // Strip UTF-8 BOM (U+FEFF) — common on Windows-generated files\n const stripped = input.replace(/^\\uFEFF/, '');\n const trimmed = stripped.trim();\n if (!trimmed) return undefined;\n if (trimmed.startsWith('{') || trimmed.startsWith('[')) return 'json';\n if (trimmed.startsWith('<')) return 'xml';\n // CSV intentionally excluded — too many false positives (see design doc D1)\n return 'text';\n}\n\nfunction tryParseJSON(input: string): unknown | undefined {\n try {\n return JSON.parse(input);\n } catch {\n return undefined;\n }\n}\n","/**\n * AWS Config format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JSON with ConfigRules[] array or individual ConfigRuleName fields.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const awsConfigFingerprint: ConverterFingerprint = {\n id: 'aws-config-to-hdf',\n label: 'AWS Config',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // Primary: ConfigRules array (the standard export shape)\n if (Array.isArray(obj.ConfigRules)) return 1.0;\n // Secondary: individual config rule object with ConfigRuleName\n if (typeof obj.ConfigRuleName === 'string') return 0.7;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('aws-config-to-hdf')) return;\n registerFingerprint(awsConfigFingerprint);\n}\n","/**\n * Conveyor format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JSON with api_response.results structure.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const conveyorFingerprint: ConverterFingerprint = {\n id: 'conveyor-to-hdf',\n label: 'Conveyor',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // Primary: api_response with results\n if (typeof obj.api_response === 'object' && obj.api_response !== null) {\n const resp = obj.api_response as Record<string, unknown>;\n if (typeof resp.results === 'object' && resp.results !== null) return 1.0;\n // Has api_response but no results — still likely Conveyor\n return 0.6;\n }\n // Secondary: has api_server_version (Conveyor-specific field)\n if (typeof obj.api_server_version === 'string') return 0.5;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('conveyor-to-hdf')) return;\n registerFingerprint(conveyorFingerprint);\n}\n","/**\n * CycloneDX format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JSON with bomFormat === 'CycloneDX'.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const cyclonedxFingerprint: ConverterFingerprint = {\n id: 'cyclonedx-to-hdf',\n label: 'CycloneDX',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (obj.bomFormat === 'CycloneDX') return 1.0;\n return 0;\n },\n detectVersion: (input: unknown): string => {\n if (typeof input !== 'object' || input === null) return '';\n const obj = input as Record<string, unknown>;\n return typeof obj.specVersion === 'string' ? obj.specVersion : '';\n },\n};\n\nexport function register(): void {\n if (getFingerprint('cyclonedx-to-hdf')) return;\n registerFingerprint(cyclonedxFingerprint);\n}\n","/**\n * Dependency-Track format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JSON with findings[] containing vulnerability.vulnId fields.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const deptrackFingerprint: ConverterFingerprint = {\n id: 'deptrack-to-hdf',\n label: 'Dependency-Track',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // Primary: findings array with vulnerability.vulnId + project + meta\n if (Array.isArray(obj.findings)) {\n // Strong signal: has project and meta (standard FPF shape)\n if (typeof obj.project === 'object' && obj.project !== null &&\n typeof obj.meta === 'object' && obj.meta !== null) {\n return 1.0;\n }\n // Medium signal: findings with vulnerability sub-objects\n const findings = obj.findings as unknown[];\n if (findings.length > 0) {\n const first = findings[0] as Record<string, unknown>;\n if (typeof first === 'object' && first !== null &&\n typeof first.vulnerability === 'object' && first.vulnerability !== null) {\n const vuln = first.vulnerability as Record<string, unknown>;\n if (typeof vuln.vulnId === 'string') return 0.9;\n }\n }\n return 0.5;\n }\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('deptrack-to-hdf')) return;\n registerFingerprint(deptrackFingerprint);\n}\n","/**\n * GitLab Security Report format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JSON with vulnerabilities[] + scan.type (v0.9) or just vulnerabilities[] (v0.5).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const gitlabFingerprint: ConverterFingerprint = {\n id: 'gitlab-to-hdf',\n label: 'GitLab',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (!Array.isArray(obj.vulnerabilities)) return 0;\n // Strong signal: scan object with type field (GitLab Security Report schema)\n if (typeof obj.scan === 'object' && obj.scan !== null) {\n const scan = obj.scan as Record<string, unknown>;\n if (typeof scan.type === 'string') return 0.9;\n // Has scan but no type — still likely GitLab\n return 0.7;\n }\n // Weak signal: just vulnerabilities[] (could be GitLab or other tools)\n return 0.5;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('gitlab-to-hdf')) return;\n registerFingerprint(gitlabFingerprint);\n}\n","/**\n * GoSec format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JSON with GosecVersion + Issues[] (1.0) or Issues[] + Stats (0.6).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const gosecFingerprint: ConverterFingerprint = {\n id: 'gosec-to-hdf',\n label: 'GoSec',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // Strong signal: GosecVersion present with Issues array\n if (typeof obj.GosecVersion === 'string' && Array.isArray(obj.Issues)) return 1.0;\n // Medium signal: Issues array with Stats object (gosec shape without version)\n if (Array.isArray(obj.Issues) && typeof obj.Stats === 'object' && obj.Stats !== null) return 0.6;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('gosec-to-hdf')) return;\n registerFingerprint(gosecFingerprint);\n}\n","/**\n * Grype format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JSON with matches[] + source (1.0) or descriptor.name === 'grype' (0.8).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const grypeFingerprint: ConverterFingerprint = {\n id: 'grype-to-hdf',\n label: 'Grype',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // Strong signal: matches array with source object (standard Grype output)\n if (Array.isArray(obj.matches) && typeof obj.source === 'object' && obj.source !== null) return 1.0;\n // Medium signal: descriptor.name === 'grype'\n if (typeof obj.descriptor === 'object' && obj.descriptor !== null) {\n const desc = obj.descriptor as Record<string, unknown>;\n if (desc.name === 'grype') return 0.8;\n }\n // Weak signal: matches array alone (could be other tools)\n if (Array.isArray(obj.matches)) return 0.4;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('grype-to-hdf')) return;\n registerFingerprint(grypeFingerprint);\n}\n","/**\n * JFrog Xray format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects JFrog Xray JSON by the presence of a `data` array with `total_count`.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const jfrogXrayFingerprint: ConverterFingerprint = {\n id: 'jfrog-xray-to-hdf',\n label: 'JFrog Xray',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (Array.isArray(obj.data) && typeof obj.total_count === 'number') return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('jfrog-xray-to-hdf')) return;\n registerFingerprint(jfrogXrayFingerprint);\n}\n","/**\n * Microsoft Defender for Cloud format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects Defender for Cloud JSON by `value[]` with items containing\n * `properties.displayName` (Azure Security Assessment structure).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const msftDefenderCloudFingerprint: ConverterFingerprint = {\n id: 'msft-defender-cloud-to-hdf',\n label: 'Microsoft Defender for Cloud',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (!Array.isArray(obj.value)) return 0;\n if (obj.value.length === 0) return 0.5;\n const first = obj.value[0] as Record<string, unknown> | undefined;\n if (!first || typeof first !== 'object') return 0;\n const props = first.properties as Record<string, unknown> | undefined;\n if (props && typeof props === 'object' && typeof props.displayName === 'string') return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('msft-defender-cloud-to-hdf')) return;\n registerFingerprint(msftDefenderCloudFingerprint);\n}\n","/**\n * Microsoft Defender for DevOps (MSDO) SARIF format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * This is SARIF input enriched with MSDO-specific properties.\n * Confidence 0.95 so it outranks the generic SARIF fingerprint at 0.9.\n * Detects by checking for `version` + `runs[]` (SARIF) AND a tool.driver\n * containing 'Microsoft' or 'DevOps' in name/organization/product/fullName.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nfunction isMsdoDriver(driver: Record<string, unknown>): boolean {\n const fields = [\n driver.name,\n driver.organization,\n driver.product,\n driver.fullName,\n ];\n for (const field of fields) {\n if (typeof field === 'string') {\n const lower = field.toLowerCase();\n if (lower.includes('microsoft') || lower.includes('devops')) return true;\n }\n }\n return false;\n}\n\nexport const msftDefenderDevopsFingerprint: ConverterFingerprint = {\n id: 'msft-defender-devops-to-hdf',\n label: 'Microsoft Defender for DevOps',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // Must be SARIF: version string + runs array\n if (typeof obj.version !== 'string' || !Array.isArray(obj.runs)) return 0;\n // Check runs for MSDO-specific tool driver\n for (const run of obj.runs) {\n if (typeof run !== 'object' || run === null) continue;\n const r = run as Record<string, unknown>;\n const tool = r.tool as Record<string, unknown> | undefined;\n if (!tool || typeof tool !== 'object') continue;\n const driver = tool.driver as Record<string, unknown> | undefined;\n if (!driver || typeof driver !== 'object') continue;\n if (isMsdoDriver(driver)) return 0.95;\n }\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('msft-defender-devops-to-hdf')) return;\n registerFingerprint(msftDefenderDevopsFingerprint);\n}\n","/**\n * Microsoft Defender for Endpoint format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects MDE alert response JSON by `value[]` with items containing\n * `severity` + `category` + `evidence` (Microsoft Graph Security v2 alert structure).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const msftDefenderEndpointFingerprint: ConverterFingerprint = {\n id: 'msft-defender-endpoint-to-hdf',\n label: 'Microsoft Defender for Endpoint',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (!Array.isArray(obj.value)) return 0;\n if (obj.value.length === 0) return 0;\n const first = obj.value[0] as Record<string, unknown> | undefined;\n if (!first || typeof first !== 'object') return 0;\n // MDE alerts have severity + category + evidence array\n if (\n typeof first.severity === 'string' &&\n typeof first.category === 'string' &&\n Array.isArray(first.evidence)\n ) return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('msft-defender-endpoint-to-hdf')) return;\n registerFingerprint(msftDefenderEndpointFingerprint);\n}\n","/**\n * Microsoft Secure Score format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects the combined input format: `secureScore.value[]` + `profiles.value[]`\n * with controlScores inside secureScore entries.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const msftSecureScoreFingerprint: ConverterFingerprint = {\n id: 'msft-secure-score-to-hdf',\n label: 'Microsoft Secure Score',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n const secureScore = obj.secureScore as Record<string, unknown> | undefined;\n const profiles = obj.profiles as Record<string, unknown> | undefined;\n if (!secureScore || typeof secureScore !== 'object') return 0;\n if (!profiles || typeof profiles !== 'object') return 0;\n if (!Array.isArray(secureScore.value) || !Array.isArray(profiles.value)) return 0;\n // Check for controlScores in the first secureScore entry\n if (secureScore.value.length > 0) {\n const first = secureScore.value[0] as Record<string, unknown> | undefined;\n if (first && Array.isArray(first.controlScores)) return 1.0;\n }\n return 0.8;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('msft-secure-score-to-hdf')) return;\n registerFingerprint(msftSecureScoreFingerprint);\n}\n","/**\n * NeuVector format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects NeuVector scan JSON by the presence of `report.vulnerabilities[]`\n * where vulnerability items have `name` + `package_name`.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const neuvectorFingerprint: ConverterFingerprint = {\n id: 'neuvector-to-hdf',\n label: 'NeuVector',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n const report = obj.report as Record<string, unknown> | undefined;\n if (!report || typeof report !== 'object') return 0;\n if (!Array.isArray(report.vulnerabilities)) return 0;\n if (report.vulnerabilities.length === 0) return 0.7;\n const first = report.vulnerabilities[0] as Record<string, unknown> | undefined;\n if (first && typeof first.name === 'string' && typeof first.package_name === 'string') return 1.0;\n return 0.5;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('neuvector-to-hdf')) return;\n registerFingerprint(neuvectorFingerprint);\n}\n","/**\n * SARIF format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Confidence 0.9 — tool-specific SARIF wrappers (MSDO etc.) return 0.95+.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const sarifFingerprint: ConverterFingerprint = {\n id: 'sarif-to-hdf',\n label: 'SARIF',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (typeof obj.version === 'string' && Array.isArray(obj.runs)) return 0.9;\n return 0;\n },\n detectVersion: (input: unknown): string => {\n if (typeof input !== 'object' || input === null) return '';\n const obj = input as Record<string, unknown>;\n return typeof obj.version === 'string' ? obj.version : '';\n },\n};\n\nexport function register(): void {\n if (getFingerprint('sarif-to-hdf')) return;\n registerFingerprint(sarifFingerprint);\n}\n","/**\n * ScoutSuite format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects ScoutSuite JSON by the presence of `services` (object) + `last_run` (object).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const scoutsuiteFingerprint: ConverterFingerprint = {\n id: 'scoutsuite-to-hdf',\n label: 'ScoutSuite',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (\n typeof obj.services === 'object' && obj.services !== null && !Array.isArray(obj.services) &&\n typeof obj.last_run === 'object' && obj.last_run !== null\n ) return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('scoutsuite-to-hdf')) return;\n registerFingerprint(scoutsuiteFingerprint);\n}\n","/**\n * Snyk format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects Snyk JSON by `vulnerabilities[]` array. Returns 1.0 when\n * `packageManager` is also present, 0.5 for just `vulnerabilities[]`.\n * Also handles multi-project array input (array of Snyk reports).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nfunction isSnykReport(obj: Record<string, unknown>): number {\n if (!Array.isArray(obj.vulnerabilities)) return 0;\n if (typeof obj.packageManager === 'string') return 1.0;\n return 0.5;\n}\n\nexport const snykFingerprint: ConverterFingerprint = {\n id: 'snyk-to-hdf',\n label: 'Snyk',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n // Handle array input (multi-project)\n if (Array.isArray(input)) {\n if (input.length === 0) return 0;\n const first = input[0] as Record<string, unknown> | undefined;\n if (!first || typeof first !== 'object') return 0;\n return isSnykReport(first);\n }\n // Single project\n return isSnykReport(input as Record<string, unknown>);\n },\n};\n\nexport function register(): void {\n if (getFingerprint('snyk-to-hdf')) return;\n registerFingerprint(snykFingerprint);\n}\n","/**\n * SonarQube format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects SonarQube issues JSON by `issues[]` where items have `rule` + `component`.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const sonarqubeFingerprint: ConverterFingerprint = {\n id: 'sonarqube-to-hdf',\n label: 'SonarQube',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (!Array.isArray(obj.issues)) return 0;\n if (obj.issues.length === 0) return 0.5;\n const first = obj.issues[0] as Record<string, unknown> | undefined;\n if (!first || typeof first !== 'object') return 0;\n if (typeof first.rule === 'string' && typeof first.component === 'string') return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('sonarqube-to-hdf')) return;\n registerFingerprint(sonarqubeFingerprint);\n}\n","/**\n * Splunk HDF event format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Detects Splunk HDF events by checking for an array where items have\n * `meta.subtype` and `meta.guid` (the Splunk HDF pipeline event structure).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const splunkFingerprint: ConverterFingerprint = {\n id: 'splunk-to-hdf',\n label: 'Splunk',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (!Array.isArray(input)) return 0;\n if (input.length === 0) return 0;\n const first = input[0] as Record<string, unknown> | undefined;\n if (!first || typeof first !== 'object') return 0;\n const meta = first.meta as Record<string, unknown> | undefined;\n if (!meta || typeof meta !== 'object') return 0;\n if (typeof meta.subtype === 'string' && typeof meta.guid === 'string') return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('splunk-to-hdf')) return;\n registerFingerprint(splunkFingerprint);\n}\n","/**\n * TruffleHog format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n *\n * TruffleHog output can be:\n * - JSON array of findings\n * - Single JSON object finding\n * - NDJSON (newline-delimited JSON)\n *\n * Key structural markers:\n * - SourceMetadata + DetectorName → confidence 1.0\n * - Raw + Verified (boolean) → confidence 0.7\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nfunction isTrufflehogFinding(obj: Record<string, unknown>): number {\n if (typeof obj.DetectorName === 'string' && obj.SourceMetadata != null) return 1.0;\n if (typeof obj.Raw === 'string' && typeof obj.Verified === 'boolean') return 0.7;\n return 0;\n}\n\nexport const trufflehogFingerprint: ConverterFingerprint = {\n id: 'trufflehog-to-hdf',\n label: 'TruffleHog',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n\n // Array of findings\n if (Array.isArray(input)) {\n if (input.length === 0) return 0;\n const first = input[0] as Record<string, unknown>;\n if (typeof first !== 'object' || first === null) return 0;\n return isTrufflehogFinding(first);\n }\n\n // Single finding object\n return isTrufflehogFinding(input as Record<string, unknown>);\n },\n};\n\nexport function register(): void {\n if (getFingerprint('trufflehog-to-hdf')) return;\n registerFingerprint(trufflehogFingerprint);\n}\n","/**\n * Twistlock/Prisma Cloud format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n *\n * Twistlock container image scans produce a top-level \"results\" array where\n * each item has complianceDistribution or vulnerabilityDistribution.\n * Code repository scans omit the results wrapper but still have those fields.\n *\n * Key structural markers:\n * - results[] with complianceDistribution → confidence 1.0\n * - results[] with vulnerabilityDistribution → confidence 0.9\n * - Single object with complianceDistribution → confidence 0.9\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nfunction hasTwistlockMarkers(obj: Record<string, unknown>): number {\n if ('complianceDistribution' in obj) return 1.0;\n if ('vulnerabilityDistribution' in obj) return 0.9;\n return 0;\n}\n\nexport const twistlockFingerprint: ConverterFingerprint = {\n id: 'twistlock-to-hdf',\n label: 'Twistlock',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null || Array.isArray(input)) return 0;\n const obj = input as Record<string, unknown>;\n\n // Container scan with \"results\" wrapper\n if (Array.isArray(obj.results) && obj.results.length > 0) {\n const first = obj.results[0] as Record<string, unknown>;\n if (typeof first === 'object' && first !== null) {\n return hasTwistlockMarkers(first);\n }\n }\n\n // Code repo scan — single result object without wrapper\n return hasTwistlockMarkers(obj);\n },\n};\n\nexport function register(): void {\n if (getFingerprint('twistlock-to-hdf')) return;\n registerFingerprint(twistlockFingerprint);\n}\n","/**\n * Nikto format fingerprint.\n *\n * Detects Nikto JSON output by checking for a vulnerabilities array.\n * Nikto outputs JSON (not XML), containing host/port/vulnerabilities fields.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const niktoFingerprint: ConverterFingerprint = {\n id: 'nikto-to-hdf',\n label: 'Nikto',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // Nikto JSON has a \"vulnerabilities\" array and optionally \"host\", \"port\", \"banner\"\n if (Array.isArray(obj.vulnerabilities)) {\n // Higher confidence if host/port present (standard Nikto fields)\n if (typeof obj.host === 'string' || typeof obj.port === 'string') return 0.95;\n return 0.85;\n }\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('nikto-to-hdf')) return;\n registerFingerprint(niktoFingerprint);\n}\n","/**\n * OWASP ZAP format fingerprint.\n *\n * Detects ZAP JSON output by checking for a site array with alerts.\n * ZAP outputs JSON (not XML), containing @generated/@version and site[] fields.\n * Note: ZAP can also output SARIF — the SARIF fingerprint handles that case.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const zapFingerprint: ConverterFingerprint = {\n id: 'zap-to-hdf',\n label: 'OWASP ZAP',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n // ZAP JSON has a \"site\" array and optionally \"@generated\", \"@version\"\n if (Array.isArray(obj.site)) {\n // Higher confidence if @version or @generated present (standard ZAP fields)\n if (typeof obj['@version'] === 'string' || typeof obj['@generated'] === 'string') return 0.95;\n return 0.85;\n }\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('zap-to-hdf')) return;\n registerFingerprint(zapFingerprint);\n}\n","/**\n * Shared XML utilities for fingerprint detection.\n *\n * Extracts root element name from XML strings, handling declarations,\n * comments, DOCTYPE (including internal subsets), and namespace prefixes.\n */\n\n/**\n * Extract the root element local name from an XML string.\n * Skips XML declarations (<?...?>), comments (<!--...-->),\n * and DOCTYPE declarations (<!DOCTYPE ... [...]>).\n * Strips namespace prefixes (e.g., xccdf:Benchmark -> Benchmark).\n *\n * Returns null if no element found.\n */\nexport function extractXmlRootElement(input: string): string | null {\n let s = input;\n while (true) {\n s = s.trimStart();\n if (s.startsWith('<?')) {\n // XML processing instruction: <?...?>\n const end = s.indexOf('?>');\n if (end === -1) return null;\n s = s.slice(end + 2);\n } else if (s.startsWith('<!--')) {\n // XML comment: <!--...-->\n const end = s.indexOf('-->');\n if (end === -1) return null;\n s = s.slice(end + 3);\n } else if (s.startsWith('<!DOCTYPE') || s.startsWith('<!doctype')) {\n // DOCTYPE: may have internal subset in [...]\n const bracket = s.indexOf('[');\n const gt = s.indexOf('>');\n if (gt === -1) return null;\n if (bracket !== -1 && bracket < gt) {\n // Has internal subset: skip to ]>\n const endSubset = s.indexOf(']>');\n if (endSubset === -1) return null;\n s = s.slice(endSubset + 2);\n } else {\n // Simple DOCTYPE without internal subset\n s = s.slice(gt + 1);\n }\n } else if (s.startsWith('<!')) {\n // Other markup declaration\n const end = s.indexOf('>');\n if (end === -1) return null;\n s = s.slice(end + 1);\n } else {\n break;\n }\n }\n // Match the root element, stripping optional namespace prefix\n const m = s.match(/^<(?:[a-zA-Z_][\\w.-]*:)?([a-zA-Z_][\\w.-]*)/);\n return m?.[1] ?? null;\n}\n","/**\n * Burp Suite format fingerprint.\n *\n * Detects Burp Suite XML files by checking for <issues> root element.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const burpsuiteFingerprint: ConverterFingerprint = {\n id: 'burpsuite-to-hdf',\n label: 'Burp Suite',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n // BurpSuite XML has <!DOCTYPE issues [...]> before <issues> root.\n // extractXmlRootElement handles DOCTYPE stripping.\n const root = extractXmlRootElement(input);\n if (root !== 'issues') return 0;\n // burpVersion attribute is a strong signal\n if (input.includes('burpVersion')) return 1.0;\n return 0.7;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('burpsuite-to-hdf')) return;\n registerFingerprint(burpsuiteFingerprint);\n}\n","/**\n * DBProtect format fingerprint.\n *\n * Detects DBProtect XML files by checking for <dataset> root element\n * with metadata/data child structure.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const dbprotectFingerprint: ConverterFingerprint = {\n id: 'dbprotect-to-hdf',\n label: 'DBProtect',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n const root = extractXmlRootElement(input);\n if (!root) return 0;\n if (root === 'dataset') {\n // Higher confidence if metadata/data children present (DBProtect-specific)\n if (input.includes('<metadata') && input.includes('<data')) return 1.0;\n return 0.8;\n }\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('dbprotect-to-hdf')) return;\n registerFingerprint(dbprotectFingerprint);\n}\n","/**\n * Fortify FVDL format fingerprint.\n *\n * Detects Fortify XML files by checking for <FVDL> root element.\n * Fortify uses the FVDL (Fortify Vulnerability Description Language) format\n * with xmlns=\"xmlns.fortify.com/schema/fvdl\" namespace.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const fortifyFingerprint: ConverterFingerprint = {\n id: 'fortify-to-hdf',\n label: 'Fortify',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n const root = extractXmlRootElement(input);\n if (!root) return 0;\n if (root === 'FVDL') {\n // Higher confidence with Fortify namespace\n if (input.includes('xmlns.fortify.com')) return 1.0;\n return 0.95;\n }\n return 0;\n },\n detectVersion: (input: unknown): string => {\n if (typeof input !== 'string') return '';\n const m = input.match(/<FVDL\\b[^>]*\\bversion=\"([^\"]+)\"/);\n return m?.[1] ?? '';\n },\n};\n\nexport function register(): void {\n if (getFingerprint('fortify-to-hdf')) return;\n registerFingerprint(fortifyFingerprint);\n}\n","/**\n * JUnit format fingerprint.\n *\n * Detects JUnit XML files by checking for <testsuites> or <testsuite> root element.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const junitFingerprint: ConverterFingerprint = {\n id: 'junit-to-hdf',\n label: 'JUnit',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n const root = extractXmlRootElement(input);\n if (!root) return 0;\n return (root === 'testsuites' || root === 'testsuite') ? 1.0 : 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('junit-to-hdf')) return;\n registerFingerprint(junitFingerprint);\n}\n","/**\n * Nessus format fingerprint.\n *\n * Detects Nessus XML files by checking for <NessusClientData_v2> root element.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const nessusFingerprint: ConverterFingerprint = {\n id: 'nessus-to-hdf',\n label: 'Nessus',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n const root = extractXmlRootElement(input);\n if (!root) return 0;\n return root === 'NessusClientData_v2' ? 1.0 : 0;\n },\n detectVersion: (input: unknown): string => {\n if (typeof input !== 'string') return '';\n const root = extractXmlRootElement(input);\n return root === 'NessusClientData_v2' ? '2' : '';\n },\n};\n\nexport function register(): void {\n if (getFingerprint('nessus-to-hdf')) return;\n registerFingerprint(nessusFingerprint);\n}\n","/**\n * Netsparker/Invicti format fingerprint.\n *\n * Detects Netsparker XML files by checking for <netsparker-enterprise>\n * or <invicti-enterprise> root element.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const netsparkerFingerprint: ConverterFingerprint = {\n id: 'netsparker-to-hdf',\n label: 'Netsparker',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n const root = extractXmlRootElement(input);\n if (!root) return 0;\n return (root === 'netsparker-enterprise' || root === 'invicti-enterprise') ? 1.0 : 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('netsparker-to-hdf')) return;\n registerFingerprint(netsparkerFingerprint);\n}\n","/**\n * Veracode DetailedReport XML format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n *\n * Veracode reports are XML with a <detailedreport> root element in the\n * Veracode namespace. The fingerprint checks for the <detailedreport> tag.\n *\n * Key structural markers:\n * - <detailedreport> root element → confidence 1.0\n * - <summaryreport> (unsupported variant) → confidence 0.0\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const veracodeFingerprint: ConverterFingerprint = {\n id: 'veracode-to-hdf',\n label: 'Veracode',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n const root = extractXmlRootElement(input);\n if (root === 'detailedreport') return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('veracode-to-hdf')) return;\n registerFingerprint(veracodeFingerprint);\n}\n","/**\n * XCCDF/ARF format fingerprint.\n *\n * Detects XCCDF and ARF XML files by checking for:\n * - <Benchmark> root element (XCCDF)\n * - <asset-report-collection> root element (ARF)\n * Handles namespace prefixes (e.g., <xccdf:Benchmark>).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\nimport { extractXmlRootElement } from '../../../shared/typescript/xml-utils.js';\n\nexport const xccdfFingerprint: ConverterFingerprint = {\n id: 'xccdf-results-to-hdf',\n label: 'XCCDF/ARF',\n direction: 'ingest',\n inputFamily: 'xml',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n const root = extractXmlRootElement(input);\n if (!root) return 0;\n if (root === 'Benchmark' || root === 'asset-report-collection') return 1.0;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('xccdf-results-to-hdf')) return;\n registerFingerprint(xccdfFingerprint);\n}\n","/**\n * Prisma Cloud CSV format fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * Confidence 0.85 — text/CSV input with Prisma-specific column headers.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\n/** Columns that uniquely identify Prisma Cloud CSV output */\nconst PRISMA_COLUMNS = ['Hostname', 'Compliance ID', 'Severity', 'Type', 'Description'];\n\nexport const prismaFingerprint: ConverterFingerprint = {\n id: 'prisma-to-hdf',\n label: 'Prisma Cloud CSV',\n direction: 'ingest',\n inputFamily: 'text',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'string') return 0;\n // Get the first line (header row) from the CSV\n const firstNewline = input.indexOf('\\n');\n const headerLine = firstNewline === -1 ? input : input.substring(0, firstNewline);\n if (!headerLine.trim()) return 0;\n\n // Check if all required Prisma columns are present in the header\n const matchCount = PRISMA_COLUMNS.filter(col => headerLine.includes(col)).length;\n if (matchCount === PRISMA_COLUMNS.length) return 0.85;\n // Partial match — at least 3 of 5 columns suggests Prisma-like CSV\n if (matchCount >= 3) return 0.4;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('prisma-to-hdf')) return;\n registerFingerprint(prismaFingerprint);\n}\n","/**\n * HDF v2 native format fingerprint.\n *\n * Detects HDF v2.0 JSON files (the most common upload format). These have\n * a baselines[] array at the top level — no conversion needed, just passthrough.\n *\n * Confidence 0.8: lower than tool-specific formats so that if a file matches\n * a more specific converter (e.g. SARIF, TruffleHog), that wins.\n *\n * No converter imports — data only, safe for client bundles.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const hdfV2Fingerprint: ConverterFingerprint = {\n id: 'hdf-v2-passthrough',\n label: 'HDF v2',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null || Array.isArray(input)) return 0;\n const obj = input as Record<string, unknown>;\n if (Array.isArray(obj.baselines)) return 0.8;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('hdf-v2-passthrough')) return;\n registerFingerprint(hdfV2Fingerprint);\n}\n","/**\n * HDF v1 (legacy) format fingerprint.\n *\n * Detects HDF v1.0 JSON files that need conversion to v2.0 format.\n * V1 files have a profiles[] array at root, a platform object, and a\n * version string. They do NOT have baselines[] (that is v2).\n *\n * The isHDFV1() function in the converter checks:\n * typeof obj.version === 'string' && Array.isArray(obj.profiles) &&\n * typeof obj.platform === 'object' && obj.platform !== null\n *\n * No converter imports — data only, safe for client bundles.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const legacyHdfFingerprint: ConverterFingerprint = {\n id: 'legacyhdf-to-hdf',\n label: 'HDF v1 (Legacy)',\n direction: 'ingest',\n inputFamily: 'json',\n outputType: 'results',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null || Array.isArray(input)) return 0;\n const obj = input as Record<string, unknown>;\n\n // Must NOT have baselines[] (that would be HDF v2)\n if (Array.isArray(obj.baselines)) return 0;\n\n // V1 structure: profiles[] + platform object + version string\n if (\n typeof obj.version === 'string' &&\n Array.isArray(obj.profiles) &&\n typeof obj.platform === 'object' &&\n obj.platform !== null\n ) {\n return 1.0;\n }\n\n return 0;\n },\n detectVersion: (input: unknown): string => {\n if (typeof input !== 'object' || input === null) return '';\n const obj = input as Record<string, unknown>;\n return typeof obj.version === 'string' ? obj.version : '';\n },\n};\n\nexport function register(): void {\n if (getFingerprint('legacyhdf-to-hdf')) return;\n registerFingerprint(legacyHdfFingerprint);\n}\n","/**\n * OSCAL document type fingerprints.\n *\n * Registers 7 separate ConverterFingerprint entries, one for each OSCAL\n * document type. Each checks for its specific top-level JSON key.\n *\n * No converter imports — data only, safe for client bundles.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint, type OutputType } from '../../../shared/typescript/registry.js';\n\ninterface OscalFingerprintSpec {\n key: string;\n id: string;\n label: string;\n outputType: OutputType;\n}\n\nconst OSCAL_SPECS: OscalFingerprintSpec[] = [\n { key: 'system-security-plan', id: 'oscal-ssp-to-hdf', label: 'OSCAL SSP', outputType: 'raw' },\n { key: 'assessment-plan', id: 'oscal-sap-to-hdf', label: 'OSCAL SAP', outputType: 'plan' },\n { key: 'assessment-results', id: 'oscal-sar-to-hdf', label: 'OSCAL SAR', outputType: 'results' },\n { key: 'plan-of-action-and-milestones', id: 'oscal-poam-to-hdf', label: 'OSCAL POA&M', outputType: 'amendments' },\n { key: 'profile', id: 'oscal-profile-to-hdf', label: 'OSCAL Profile', outputType: 'baseline' },\n { key: 'catalog', id: 'oscal-catalog-to-hdf', label: 'OSCAL Catalog', outputType: 'baseline' },\n { key: 'component-definition', id: 'oscal-component-to-hdf', label: 'OSCAL Component', outputType: 'baseline' },\n];\n\nfunction oscalDetectVersion(rootKey: string, input: unknown): string {\n if (typeof input !== 'object' || input === null) return '';\n const obj = input as Record<string, unknown>;\n const root = obj[rootKey] as Record<string, unknown> | undefined;\n if (!root || typeof root !== 'object') return '';\n const meta = root.metadata as Record<string, unknown> | undefined;\n if (!meta || typeof meta !== 'object') return '';\n return typeof meta['oscal-version'] === 'string' ? meta['oscal-version'] : '';\n}\n\nfunction buildFingerprint(spec: OscalFingerprintSpec): ConverterFingerprint {\n return {\n id: spec.id,\n label: spec.label,\n direction: 'ingest',\n inputFamily: 'json',\n outputType: spec.outputType,\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null || Array.isArray(input)) return 0;\n const obj = input as Record<string, unknown>;\n if (spec.key in obj) return 1.0;\n return 0;\n },\n detectVersion: (input: unknown): string => oscalDetectVersion(spec.key, input),\n };\n}\n\nexport const oscalFingerprints: ConverterFingerprint[] = OSCAL_SPECS.map(buildFingerprint);\n\nexport function register(): void {\n for (const fp of oscalFingerprints) {\n if (getFingerprint(fp.id)) continue;\n registerFingerprint(fp);\n }\n}\n","/**\n * HDF-to-CSV export fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * direction: 'export' — not a detection target, low confidence (0.5).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const hdfToCsvFingerprint: ConverterFingerprint = {\n id: 'hdf-to-csv',\n label: 'HDF to CSV',\n direction: 'export',\n inputFamily: 'json',\n outputType: 'raw',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (Array.isArray(obj.baselines)) return 0.5;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('hdf-to-csv')) return;\n registerFingerprint(hdfToCsvFingerprint);\n}\n","/**\n * HDF-to-XML export fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * direction: 'export' — not a detection target, low confidence (0.5).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const hdfToXmlFingerprint: ConverterFingerprint = {\n id: 'hdf-to-xml',\n label: 'HDF to XML',\n direction: 'export',\n inputFamily: 'json',\n outputType: 'raw',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (Array.isArray(obj.baselines)) return 0.5;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('hdf-to-xml')) return;\n registerFingerprint(hdfToXmlFingerprint);\n}\n","/**\n * HDF-to-OSCAL-SAR export fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * direction: 'export' — not a detection target, low confidence (0.5).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const hdfToOscalSarFingerprint: ConverterFingerprint = {\n id: 'hdf-to-oscal-sar',\n label: 'HDF to OSCAL SAR',\n direction: 'export',\n inputFamily: 'json',\n outputType: 'raw',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (Array.isArray(obj.baselines)) return 0.5;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('hdf-to-oscal-sar')) return;\n registerFingerprint(hdfToOscalSarFingerprint);\n}\n","/**\n * HDF-to-OSCAL-POA&M export fingerprint.\n *\n * Exports a ConverterFingerprint object (data only, no converter import).\n * direction: 'export' — not a detection target, low confidence (0.5).\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from '../../../shared/typescript/registry.js';\n\nexport const hdfToOscalPoamFingerprint: ConverterFingerprint = {\n id: 'hdf-to-oscal-poam',\n label: 'HDF to OSCAL POA&M',\n direction: 'export',\n inputFamily: 'json',\n outputType: 'raw',\n fingerprint: (input: unknown): number => {\n if (typeof input !== 'object' || input === null) return 0;\n const obj = input as Record<string, unknown>;\n if (Array.isArray(obj.baselines)) return 0.5;\n return 0;\n },\n};\n\nexport function register(): void {\n if (getFingerprint('hdf-to-oscal-poam')) return;\n registerFingerprint(hdfToOscalPoamFingerprint);\n}\n","/**\n * Explicit fingerprint registration for all converters.\n *\n * Consumers call registerAllFingerprints() once at startup.\n * This avoids side-effect imports that bundlers tree-shake away.\n */\n\nimport { registerFingerprint, getFingerprint, type ConverterFingerprint } from './registry.js';\n\n// JSON ingest converters\nimport { awsConfigFingerprint } from '../../converters/aws-config-to-hdf/typescript/fingerprint.js';\nimport { conveyorFingerprint } from '../../converters/conveyor-to-hdf/typescript/fingerprint.js';\nimport { cyclonedxFingerprint } from '../../converters/cyclonedx-to-hdf/typescript/fingerprint.js';\nimport { deptrackFingerprint } from '../../converters/deptrack-to-hdf/typescript/fingerprint.js';\nimport { gitlabFingerprint } from '../../converters/gitlab-to-hdf/typescript/fingerprint.js';\nimport { gosecFingerprint } from '../../converters/gosec-to-hdf/typescript/fingerprint.js';\nimport { grypeFingerprint } from '../../converters/grype-to-hdf/typescript/fingerprint.js';\nimport { jfrogXrayFingerprint } from '../../converters/jfrog-xray-to-hdf/typescript/fingerprint.js';\nimport { msftDefenderCloudFingerprint } from '../../converters/msft-defender-cloud-to-hdf/typescript/fingerprint.js';\nimport { msftDefenderDevopsFingerprint } from '../../converters/msft-defender-devops-to-hdf/typescript/fingerprint.js';\nimport { msftDefenderEndpointFingerprint } from '../../converters/msft-defender-endpoint-to-hdf/typescript/fingerprint.js';\nimport { msftSecureScoreFingerprint } from '../../converters/msft-secure-score-to-hdf/typescript/fingerprint.js';\nimport { neuvectorFingerprint } from '../../converters/neuvector-to-hdf/typescript/fingerprint.js';\nimport { sarifFingerprint } from '../../converters/sarif-to-hdf/typescript/fingerprint.js';\nimport { scoutsuiteFingerprint } from '../../converters/scoutsuite-to-hdf/typescript/fingerprint.js';\nimport { snykFingerprint } from '../../converters/snyk-to-hdf/typescript/fingerprint.js';\nimport { sonarqubeFingerprint } from '../../converters/sonarqube-to-hdf/typescript/fingerprint.js';\nimport { splunkFingerprint } from '../../converters/splunk-to-hdf/typescript/fingerprint.js';\nimport { trufflehogFingerprint } from '../../converters/trufflehog-to-hdf/typescript/fingerprint.js';\nimport { twistlockFingerprint } from '../../converters/twistlock-to-hdf/typescript/fingerprint.js';\n\n// JSON ingest converters (input is JSON despite tool names suggesting XML)\nimport { niktoFingerprint } from '../../converters/nikto-to-hdf/typescript/fingerprint.js';\nimport { zapFingerprint } from '../../converters/zap-to-hdf/typescript/fingerprint.js';\n\n// XML ingest converters\nimport { burpsuiteFingerprint } from '../../converters/burpsuite-to-hdf/typescript/fingerprint.js';\nimport { dbprotectFingerprint } from '../../converters/dbprotect-to-hdf/typescript/fingerprint.js';\nimport { fortifyFingerprint } from '../../converters/fortify-to-hdf/typescript/fingerprint.js';\nimport { junitFingerprint } from '../../converters/junit-to-hdf/typescript/fingerprint.js';\nimport { nessusFingerprint } from '../../converters/nessus-to-hdf/typescript/fingerprint.js';\nimport { netsparkerFingerprint } from '../../converters/netsparker-to-hdf/typescript/fingerprint.js';\nimport { veracodeFingerprint } from '../../converters/veracode-to-hdf/typescript/fingerprint.js';\nimport { xccdfFingerprint } from '../../converters/xccdf-results-to-hdf/typescript/fingerprint.js';\n\n// Text/CSV ingest converters\nimport { prismaFingerprint } from '../../converters/prisma-to-hdf/typescript/fingerprint.js';\n\n// HDF native detection\nimport { hdfV2Fingerprint } from '../../converters/hdf-v2-passthrough/typescript/fingerprint.js';\nimport { legacyHdfFingerprint } from '../../converters/legacyhdf-to-hdf/typescript/fingerprint.js';\n\n// OSCAL converters (7 fingerprints in one array)\nimport { oscalFingerprints } from '../../converters/oscal-to-hdf/typescript/fingerprint.js';\n\n// Export converters\nimport { hdfToCsvFingerprint } from '../../converters/hdf-to-csv/typescript/fingerprint.js';\nimport { hdfToXmlFingerprint } from '../../converters/hdf-to-xml/typescript/fingerprint.js';\nimport { hdfToOscalSarFingerprint } from '../../converters/hdf-to-oscal-sar/typescript/fingerprint.js';\nimport { hdfToOscalPoamFingerprint } from '../../converters/hdf-to-oscal-poam/typescript/fingerprint.js';\n\nconst allFingerprints: ConverterFingerprint[] = [\n // JSON ingest\n awsConfigFingerprint,\n conveyorFingerprint,\n cyclonedxFingerprint,\n deptrackFingerprint,\n gitlabFingerprint,\n gosecFingerprint,\n grypeFingerprint,\n jfrogXrayFingerprint,\n msftDefenderCloudFingerprint,\n msftDefenderDevopsFingerprint,\n msftDefenderEndpointFingerprint,\n msftSecureScoreFingerprint,\n neuvectorFingerprint,\n sarifFingerprint,\n scoutsuiteFingerprint,\n snykFingerprint,\n sonarqubeFingerprint,\n splunkFingerprint,\n trufflehogFingerprint,\n twistlockFingerprint,\n // JSON ingest (input is JSON despite tool names)\n niktoFingerprint,\n zapFingerprint,\n // XML ingest\n burpsuiteFingerprint,\n dbprotectFingerprint,\n fortifyFingerprint,\n junitFingerprint,\n nessusFingerprint,\n netsparkerFingerprint,\n veracodeFingerprint,\n xccdfFingerprint,\n // Text/CSV ingest\n prismaFingerprint,\n // HDF native\n hdfV2Fingerprint,\n legacyHdfFingerprint,\n // OSCAL (7 fingerprints)\n ...oscalFingerprints,\n // Export converters\n hdfToCsvFingerprint,\n hdfToXmlFingerprint,\n hdfToOscalSarFingerprint,\n hdfToOscalPoamFingerprint,\n];\n\n/**\n * Register all known converter fingerprints.\n * Idempotent — safe to call multiple times or after _resetRegistry().\n */\nexport function registerAllFingerprints(): void {\n for (const fp of allFingerprints) {\n if (!getFingerprint(fp.id)) {\n registerFingerprint(fp);\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ //#region shared/typescript/registry.d.ts
2
+ /**
3
+ * Converter fingerprint registry.
4
+ *
5
+ * Lightweight fingerprint metadata — NO converter function imports.
6
+ * Safe for client bundles. Converters are loaded lazily by consumers.
7
+ */
8
+ type InputFamily = 'json' | 'xml' | 'csv' | 'text';
9
+ type ConverterDirection = 'ingest' | 'export';
10
+ type OutputType = 'results' | 'baseline' | 'plan' | 'amendments' | 'system' | 'evidence-package' | 'raw';
11
+ interface ConverterFingerprint {
12
+ /** Unique ID matching directory name: e.g. 'sarif-to-hdf' */
13
+ id: string;
14
+ /** Human-readable label: e.g. 'SARIF' */
15
+ label: string;
16
+ /** Direction of conversion */
17
+ direction: ConverterDirection;
18
+ /** Input format family */
19
+ inputFamily: InputFamily;
20
+ /** What the converter produces */
21
+ outputType: OutputType;
22
+ /** Structural fingerprint. Returns confidence 0.0-1.0. */
23
+ fingerprint: (input: unknown) => number;
24
+ /**
25
+ * Optional version detector. Returns a version string from the parsed input.
26
+ * For example, SARIF returns obj.version ("2.1.0"), CycloneDX returns
27
+ * obj.specVersion ("1.5"). Undefined means version detection is not supported.
28
+ */
29
+ detectVersion?: (input: unknown) => string;
30
+ }
31
+ declare function registerFingerprint(fp: ConverterFingerprint): void;
32
+ declare function getFingerprints(): readonly ConverterFingerprint[];
33
+ declare function getIngestFingerprints(): readonly ConverterFingerprint[];
34
+ declare function getFingerprint(id: string): ConverterFingerprint | undefined;
35
+ declare function _resetRegistry(): void;
36
+ //#endregion
37
+ export { ConverterDirection, ConverterFingerprint, InputFamily, OutputType, _resetRegistry, getFingerprint, getFingerprints, getIngestFingerprints, registerFingerprint };
38
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","names":[],"sources":["../shared/typescript/registry.ts"],"mappings":";;AAOA;;;;;KAAY,WAAA;AAAA,KACA,kBAAA;AAAA,KACA,UAAA;AAAA,UAGK,oBAAA;EAJa;EAM5B,EAAA;EALoB;EAOpB,KAAA;EAPoB;EASpB,SAAA,EAAW,kBAAA;EANI;EAQf,WAAA,EAAa,WAAA;;EAEb,UAAA,EAAY,UAAA;EAFC;EAIb,WAAA,GAAc,KAAA;EAFQ;;;;;EAQtB,aAAA,IAAiB,KAAA;AAAA;AAAA,iBAKH,mBAAA,CAAoB,EAAA,EAAI,oBAAA;AAAA,iBAOxB,eAAA,CAAA,YAA4B,oBAAA;AAAA,iBAI5B,qBAAA,CAAA,YAAkC,oBAAA;AAAA,iBAIlC,cAAA,CAAe,EAAA,WAAa,oBAAA;AAAA,iBAK5B,cAAA,CAAA"}
@@ -0,0 +1,23 @@
1
+ //#region shared/typescript/registry.ts
2
+ const registry = [];
3
+ function registerFingerprint(fp) {
4
+ if (registry.some((d) => d.id === fp.id)) throw new Error(`Duplicate fingerprint: ${fp.id}`);
5
+ registry.push(fp);
6
+ }
7
+ function getFingerprints() {
8
+ return [...registry];
9
+ }
10
+ function getIngestFingerprints() {
11
+ return registry.filter((d) => d.direction === "ingest");
12
+ }
13
+ function getFingerprint(id) {
14
+ const found = registry.find((d) => d.id === id);
15
+ return found ? { ...found } : void 0;
16
+ }
17
+ function _resetRegistry() {
18
+ registry.length = 0;
19
+ }
20
+ //#endregion
21
+ export { _resetRegistry, getFingerprint, getFingerprints, getIngestFingerprints, registerFingerprint };
22
+
23
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","names":[],"sources":["../shared/typescript/registry.ts"],"sourcesContent":["/**\n * Converter fingerprint registry.\n *\n * Lightweight fingerprint metadata — NO converter function imports.\n * Safe for client bundles. Converters are loaded lazily by consumers.\n */\n\nexport type InputFamily = 'json' | 'xml' | 'csv' | 'text';\nexport type ConverterDirection = 'ingest' | 'export';\nexport type OutputType = 'results' | 'baseline' | 'plan' | 'amendments'\n | 'system' | 'evidence-package' | 'raw';\n\nexport interface ConverterFingerprint {\n /** Unique ID matching directory name: e.g. 'sarif-to-hdf' */\n id: string;\n /** Human-readable label: e.g. 'SARIF' */\n label: string;\n /** Direction of conversion */\n direction: ConverterDirection;\n /** Input format family */\n inputFamily: InputFamily;\n /** What the converter produces */\n outputType: OutputType;\n /** Structural fingerprint. Returns confidence 0.0-1.0. */\n fingerprint: (input: unknown) => number;\n /**\n * Optional version detector. Returns a version string from the parsed input.\n * For example, SARIF returns obj.version (\"2.1.0\"), CycloneDX returns\n * obj.specVersion (\"1.5\"). Undefined means version detection is not supported.\n */\n detectVersion?: (input: unknown) => string;\n}\n\nconst registry: ConverterFingerprint[] = [];\n\nexport function registerFingerprint(fp: ConverterFingerprint): void {\n if (registry.some(d => d.id === fp.id)) {\n throw new Error(`Duplicate fingerprint: ${fp.id}`);\n }\n registry.push(fp);\n}\n\nexport function getFingerprints(): readonly ConverterFingerprint[] {\n return [...registry];\n}\n\nexport function getIngestFingerprints(): readonly ConverterFingerprint[] {\n return registry.filter(d => d.direction === 'ingest');\n}\n\nexport function getFingerprint(id: string): ConverterFingerprint | undefined {\n const found = registry.find(d => d.id === id);\n return found ? { ...found } : undefined;\n}\n\nexport function _resetRegistry(): void {\n registry.length = 0;\n}\n"],"mappings":";AAiCA,MAAM,WAAmC,EAAE;AAE3C,SAAgB,oBAAoB,IAAgC;AAClE,KAAI,SAAS,MAAK,MAAK,EAAE,OAAO,GAAG,GAAG,CACpC,OAAM,IAAI,MAAM,0BAA0B,GAAG,KAAK;AAEpD,UAAS,KAAK,GAAG;;AAGnB,SAAgB,kBAAmD;AACjE,QAAO,CAAC,GAAG,SAAS;;AAGtB,SAAgB,wBAAyD;AACvE,QAAO,SAAS,QAAO,MAAK,EAAE,cAAc,SAAS;;AAGvD,SAAgB,eAAe,IAA8C;CAC3E,MAAM,QAAQ,SAAS,MAAK,MAAK,EAAE,OAAO,GAAG;AAC7C,QAAO,QAAQ,EAAE,GAAG,OAAO,GAAG,KAAA;;AAGhC,SAAgB,iBAAuB;AACrC,UAAS,SAAS"}
package/package.json CHANGED
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "@mitre/hdf-converters",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "description": "Converters for transforming security tool outputs and HDF formats",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "type": "module",
9
- "main": "./dist/src/index.js",
10
- "types": "./dist/src/index.d.ts",
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
11
  "exports": {
12
12
  ".": {
13
- "import": "./dist/src/index.js",
14
- "types": "./dist/src/index.d.ts"
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
15
  },
16
16
  "./detect": {
17
- "import": "./dist/src/detect.js",
18
- "types": "./dist/src/detect.d.ts"
17
+ "types": "./dist/detect.d.ts",
18
+ "import": "./dist/detect.js"
19
19
  },
20
20
  "./registry": {
21
- "import": "./dist/shared/typescript/registry.js",
22
- "types": "./dist/shared/typescript/registry.d.ts"
21
+ "types": "./dist/registry.d.ts",
22
+ "import": "./dist/registry.js"
23
23
  },
24
24
  "./package.json": "./package.json"
25
25
  },
@@ -27,22 +27,6 @@
27
27
  "files": [
28
28
  "dist"
29
29
  ],
30
- "scripts": {
31
- "build": "pnpm clean && tsc",
32
- "clean": "rimraf dist",
33
- "test": "pnpm run test:ts && pnpm run test:go",
34
- "test:ts": "vitest run",
35
- "test:go": "go test ./...",
36
- "test:watch": "vitest",
37
- "test:coverage": "vitest run --coverage",
38
- "test:differential": "vitest run converters/**/differential.test.ts",
39
- "test:parity": "pnpm test:differential && pnpm test:go && node shared/typescript/compare-all.js",
40
- "type-check": "tsc --noEmit",
41
- "lint": "eslint src converters shared",
42
- "lint:fix": "eslint src converters shared --fix",
43
- "lint:go": "golangci-lint run ./...",
44
- "lint:go:fix": "golangci-lint run --fix ./..."
45
- },
46
30
  "repository": {
47
31
  "type": "git",
48
32
  "url": "https://github.com/mitre/hdf-libs.git",
@@ -51,14 +35,14 @@
51
35
  "author": "MITRE Corporation",
52
36
  "license": "Apache-2.0",
53
37
  "dependencies": {
54
- "@mitre/hdf-parsers": "workspace:*",
55
- "@mitre/hdf-schema": "workspace:*",
56
- "@mitre/hdf-utilities": "workspace:*",
57
- "@mitre/hdf-mappings": "workspace:*"
38
+ "@mitre/hdf-parsers": "^3.1.0",
39
+ "@mitre/hdf-schema": "^3.1.0",
40
+ "@mitre/hdf-utilities": "^3.1.0",
41
+ "@mitre/hdf-mappings": "^3.1.0"
58
42
  },
59
43
  "devDependencies": {},
60
44
  "engines": {
61
- "node": ">=20.0.0"
45
+ "node": ">=22.0.0"
62
46
  },
63
47
  "keywords": [
64
48
  "hdf",
@@ -67,5 +51,21 @@
67
51
  "security",
68
52
  "compliance",
69
53
  "inspec"
70
- ]
71
- }
54
+ ],
55
+ "scripts": {
56
+ "build": "tsdown",
57
+ "clean": "rimraf dist",
58
+ "test": "pnpm run test:ts && pnpm run test:go",
59
+ "test:ts": "vitest run",
60
+ "test:go": "go test ./...",
61
+ "test:watch": "vitest",
62
+ "test:coverage": "vitest run --coverage",
63
+ "test:differential": "vitest run converters/**/differential.test.ts",
64
+ "test:parity": "pnpm test:differential && pnpm test:go && node shared/typescript/compare-all.js",
65
+ "type-check": "tsc --noEmit",
66
+ "lint": "eslint src converters shared",
67
+ "lint:fix": "eslint src converters shared --fix",
68
+ "lint:go": "golangci-lint run ./...",
69
+ "lint:go:fix": "golangci-lint run --fix ./..."
70
+ }
71
+ }
@@ -1,9 +0,0 @@
1
- /**
2
- * Converts an AWS Config static export (ConfigRulesFile JSON) to HDF format.
3
- *
4
- * @param input - JSON string produced by combining aws configservice describe-config-rules
5
- * with get-compliance-details-by-config-rule
6
- * @returns HDF JSON string
7
- */
8
- export declare function convertAwsConfigToHdf(input: string): Promise<string>;
9
- //# sourceMappingURL=converter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../converters/aws-config-to-hdf/typescript/converter.ts"],"names":[],"mappings":"AA4JA;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiD1E"}
@@ -1,132 +0,0 @@
1
- import { parseJSON } from '@mitre/hdf-utilities';
2
- import { getAwsConfigNistControlByIdentifier, getAwsConfigNistControlByName, } from '@mitre/hdf-mappings';
3
- import { inputChecksum, limitArray, validateInputSize, buildHdfResults } from '../../../shared/typescript/converterutil.js';
4
- import { Copyright, } from '@mitre/hdf-schema';
5
- import { ResultStatus, createMinimalBaseline, createRequirement, createResult, } from '@mitre/hdf-schema';
6
- const ARN_RE = /arn:aws[^:]*:config:([^:]+):(\d{12}):config-rule/;
7
- function getAccountId(arn) {
8
- const m = ARN_RE.exec(arn);
9
- return m ? m[2] : 'no-account-id';
10
- }
11
- function getRegion(arn) {
12
- const m = ARN_RE.exec(arn);
13
- return m ? m[1] : 'unknown';
14
- }
15
- function mapComplianceStatus(complianceType) {
16
- switch (complianceType) {
17
- case 'COMPLIANT': return ResultStatus.Passed;
18
- case 'NON_COMPLIANT': return ResultStatus.Failed;
19
- case 'NOT_APPLICABLE': return ResultStatus.NotApplicable;
20
- default: return ResultStatus.NotReviewed; // INSUFFICIENT_DATA etc.
21
- }
22
- }
23
- function buildNistTags(sourceIdentifier, ruleName) {
24
- const byIdentifier = getAwsConfigNistControlByIdentifier(sourceIdentifier);
25
- if (byIdentifier)
26
- return [byIdentifier];
27
- const byName = getAwsConfigNistControlByName(ruleName);
28
- if (byName)
29
- return [byName];
30
- return [];
31
- }
32
- function buildCheckText(rule) {
33
- const parts = [
34
- `ARN: ${rule.ConfigRuleArn || 'N/A'}`,
35
- `Source Identifier: ${rule.Source.SourceIdentifier || 'N/A'}`,
36
- ];
37
- if (rule.InputParameters && rule.InputParameters !== '{}') {
38
- const params = rule.InputParameters
39
- .replace(/[{}"]/g, '')
40
- .split(',')
41
- .map(p => p.trim())
42
- .filter(Boolean);
43
- parts.push(...params);
44
- }
45
- return parts.join('<br/>');
46
- }
47
- function buildCodeDesc(q) {
48
- return `config_rule_name: ${q.ConfigRuleName}, resource_type: ${q.ResourceType}, resource_id: ${q.ResourceId}`;
49
- }
50
- function buildResultMessage(codeDesc, annotation, status) {
51
- if (status !== ResultStatus.Failed)
52
- return undefined;
53
- const text = annotation || 'Rule does not pass rule compliance';
54
- return `(${codeDesc}): ${text}`;
55
- }
56
- function buildResult(r) {
57
- const q = r.EvaluationResultIdentifier.EvaluationResultQualifier;
58
- const status = mapComplianceStatus(r.ComplianceType);
59
- const codeDesc = buildCodeDesc(q);
60
- const message = buildResultMessage(codeDesc, r.Annotation, status);
61
- const startTime = r.ConfigRuleInvokedTime ? new Date(r.ConfigRuleInvokedTime) : undefined;
62
- return createResult(status, message ?? codeDesc, {
63
- codeDesc,
64
- ...(startTime ? { startTime } : {}),
65
- });
66
- }
67
- function buildRequirement(rule) {
68
- const nist = buildNistTags(rule.Source.SourceIdentifier, rule.ConfigRuleName);
69
- const tags = nist.length > 0 ? { nist } : {};
70
- const descriptions = [
71
- { label: 'default', data: rule.Description },
72
- { label: 'check', data: buildCheckText(rule) },
73
- ];
74
- const title = `${getAccountId(rule.ConfigRuleArn)} - ${rule.ConfigRuleName}`;
75
- const results = rule.EvaluationResults.map(buildResult);
76
- return createRequirement(rule.ConfigRuleId, title, descriptions, 0.5, results, {
77
- tags,
78
- sourceLocation: { ref: rule.ConfigRuleArn, line: 1 },
79
- });
80
- }
81
- /**
82
- * Converts an AWS Config static export (ConfigRulesFile JSON) to HDF format.
83
- *
84
- * @param input - JSON string produced by combining aws configservice describe-config-rules
85
- * with get-compliance-details-by-config-rule
86
- * @returns HDF JSON string
87
- */
88
- export async function convertAwsConfigToHdf(input) {
89
- validateInputSize(input, 'aws-config');
90
- const resultsChecksum = await inputChecksum(input);
91
- const data = parseJSON(input);
92
- if (!data || typeof data !== 'object') {
93
- throw new Error('Invalid AWS Config export: not a valid JSON object');
94
- }
95
- if (!Array.isArray(data.ConfigRules)) {
96
- throw new Error('Invalid AWS Config export: ConfigRules field is required');
97
- }
98
- const { items: limitedRules, truncated: truncatedRules } = limitArray(data.ConfigRules);
99
- /* v8 ignore next -- truncation only triggers with >100K items */
100
- if (truncatedRules) {
101
- // eslint-disable-next-line no-console
102
- console.warn(`WARNING: Input truncated at ${limitedRules.length} ConfigRule items (original: ${data.ConfigRules.length})`);
103
- }
104
- const requirements = limitedRules.map(buildRequirement);
105
- const baseline = {
106
- ...createMinimalBaseline('AWS Config', requirements, { resultsChecksum }),
107
- title: 'AWS Config Compliance Results',
108
- version: '1.0.0',
109
- maintainer: 'Amazon Web Services',
110
- };
111
- // Extract account/region from the first rule's ARN for target labels
112
- const firstArn = limitedRules[0]?.ConfigRuleArn ?? '';
113
- const accountId = getAccountId(firstArn);
114
- const region = getRegion(firstArn);
115
- return buildHdfResults({
116
- generatorName: 'aws-config-to-hdf',
117
- converterVersion: '1.0.0',
118
- toolName: 'AWS Config',
119
- baselines: [baseline],
120
- components: [{
121
- type: Copyright.CloudAccount,
122
- name: `AWS Account ${accountId}`,
123
- labels: {
124
- account: accountId,
125
- region,
126
- provider: 'aws',
127
- },
128
- }],
129
- timestamp: new Date(),
130
- });
131
- }
132
- //# sourceMappingURL=converter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../converters/aws-config-to-hdf/typescript/converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,mCAAmC,EACnC,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC5H,OAAO,EACL,SAAS,GAMV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,GACb,MAAM,mBAAmB,CAAC;AA4C3B,MAAM,MAAM,GAAG,kDAAkD,CAAC;AAElE,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,eAAe,CAAC;AACrC,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,cAAsB;IACjD,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,WAAW,CAAC,CAAO,OAAO,YAAY,CAAC,MAAM,CAAC;QACnD,KAAK,eAAe,CAAC,CAAG,OAAO,YAAY,CAAC,MAAM,CAAC;QACnD,KAAK,gBAAgB,CAAC,CAAE,OAAO,YAAY,CAAC,aAAa,CAAC;QAC1D,OAAO,CAAC,CAAgB,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC,yBAAyB;IACpF,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,gBAAwB,EAAE,QAAgB;IAC/D,MAAM,YAAY,GAAG,mCAAmC,CAAC,gBAAgB,CAAC,CAAC;IAC3E,IAAI,YAAY;QAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,MAAM,KAAK,GAAa;QACtB,QAAQ,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE;QACrC,sBAAsB,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,KAAK,EAAE;KAC9D,CAAC;IACF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe;aAChC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,CAA4B;IACjD,OAAO,qBAAqB,CAAC,CAAC,cAAc,oBAAoB,CAAC,CAAC,YAAY,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAC;AACjH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,UAA8B,EAAE,MAAoB;IAChG,IAAI,MAAM,KAAK,YAAY,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,IAAI,GAAG,UAAU,IAAI,oCAAoC,CAAC;IAChE,OAAO,IAAI,QAAQ,MAAM,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,CAAmB;IACtC,MAAM,CAAC,GAAG,CAAC,CAAC,0BAA0B,CAAC,yBAAyB,CAAC;IACjE,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,OAAO,YAAY,CAAC,MAAM,EAAE,OAAO,IAAI,QAAQ,EAAE;QAC/C,QAAQ;QACR,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAgB;IACxC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9E,MAAM,IAAI,GAA4B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,MAAM,YAAY,GAAkB;QAClC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE;QAC5C,EAAE,KAAK,EAAE,OAAO,EAAI,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE;KACjD,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAExD,OAAO,iBAAiB,CACtB,IAAI,CAAC,YAAY,EACjB,KAAK,EACL,YAAY,EACZ,GAAG,EACH,OAAO,EACP;QACE,IAAI;QACJ,cAAc,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;KACrD,CACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAa;IACvD,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACvC,MAAM,eAAe,GAAa,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,SAAS,CAAkB,KAAK,CAAC,CAAC;IAE/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxF,iEAAiE;IACjE,IAAI,cAAc,EAAE,CAAC;QACnB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CAAC,+BAA+B,YAAY,CAAC,MAAM,gCAAgC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7H,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAsB;QAClC,GAAG,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,CAAC;QACzE,KAAK,EAAE,+BAA+B;QACtC,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,qBAAqB;KACb,CAAC;IAEvB,qEAAqE;IACrE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,EAAE,CAAC;IACtD,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEnC,OAAO,eAAe,CAAC;QACrB,aAAa,EAAE,mBAAmB;QAClC,gBAAgB,EAAE,OAAO;QACzB,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,UAAU,EAAE,CAAC;gBACX,IAAI,EAAE,SAAS,CAAC,YAAY;gBAC5B,IAAI,EAAE,eAAe,SAAS,EAAE;gBAChC,MAAM,EAAE;oBACN,OAAO,EAAE,SAAS;oBAClB,MAAM;oBACN,QAAQ,EAAE,KAAK;iBAChB;aACF,CAAC;QACF,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAC;AACL,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * AWS Config format fingerprint.
3
- *
4
- * Exports a ConverterFingerprint object (data only, no converter import).
5
- * Detects JSON with ConfigRules[] array or individual ConfigRuleName fields.
6
- */
7
- import { type ConverterFingerprint } from '../../../shared/typescript/registry.js';
8
- export declare const awsConfigFingerprint: ConverterFingerprint;
9
- export declare function register(): void;
10
- //# sourceMappingURL=fingerprint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../../../converters/aws-config-to-hdf/typescript/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAuC,KAAK,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAExH,eAAO,MAAM,oBAAoB,EAAE,oBAelC,CAAC;AAEF,wBAAgB,QAAQ,IAAI,IAAI,CAG/B"}
@@ -1,32 +0,0 @@
1
- /**
2
- * AWS Config format fingerprint.
3
- *
4
- * Exports a ConverterFingerprint object (data only, no converter import).
5
- * Detects JSON with ConfigRules[] array or individual ConfigRuleName fields.
6
- */
7
- import { registerFingerprint, getFingerprint } from '../../../shared/typescript/registry.js';
8
- export const awsConfigFingerprint = {
9
- id: 'aws-config-to-hdf',
10
- label: 'AWS Config',
11
- direction: 'ingest',
12
- inputFamily: 'json',
13
- outputType: 'results',
14
- fingerprint: (input) => {
15
- if (typeof input !== 'object' || input === null)
16
- return 0;
17
- const obj = input;
18
- // Primary: ConfigRules array (the standard export shape)
19
- if (Array.isArray(obj.ConfigRules))
20
- return 1.0;
21
- // Secondary: individual config rule object with ConfigRuleName
22
- if (typeof obj.ConfigRuleName === 'string')
23
- return 0.7;
24
- return 0;
25
- },
26
- };
27
- export function register() {
28
- if (getFingerprint('aws-config-to-hdf'))
29
- return;
30
- registerFingerprint(awsConfigFingerprint);
31
- }
32
- //# sourceMappingURL=fingerprint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../../converters/aws-config-to-hdf/typescript/fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAA6B,MAAM,wCAAwC,CAAC;AAExH,MAAM,CAAC,MAAM,oBAAoB,GAAyB;IACxD,EAAE,EAAE,mBAAmB;IACvB,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,CAAC,KAAc,EAAU,EAAE;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,yDAAyD;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,OAAO,GAAG,CAAC;QAC/C,+DAA+D;QAC/D,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,QAAQ;IACtB,IAAI,cAAc,CAAC,mBAAmB,CAAC;QAAE,OAAO;IAChD,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,2 +0,0 @@
1
- export { convertAwsConfigToHdf } from './converter.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../converters/aws-config-to-hdf/typescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { convertAwsConfigToHdf } from './converter.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../converters/aws-config-to-hdf/typescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Converts BurpSuite Pro XML export to HDF format.
3
- *
4
- * Issues are grouped by `<type>` — each unique type becomes one requirement,
5
- * with one result per individual issue instance.
6
- *
7
- * @param input - BurpSuite XML string
8
- * @returns HDF JSON string
9
- */
10
- export declare function convertBurpsuiteToHdf(input: string): Promise<string>;
11
- //# sourceMappingURL=converter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../../converters/burpsuite-to-hdf/typescript/converter.ts"],"names":[],"mappings":"AAyGA;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAwF1E"}