@peculiar/certificates-viewer 4.5.0 → 4.6.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 (449) hide show
  1. package/components/actions.js.map +1 -1
  2. package/components/arrow_top.js.map +1 -1
  3. package/components/attribute-certificate-viewer.js +2 -4
  4. package/components/attribute-certificate-viewer.js.map +1 -1
  5. package/components/attribute.js.map +1 -1
  6. package/components/button-menu.js +1 -3
  7. package/components/button-menu.js.map +1 -1
  8. package/components/button.js +2 -2
  9. package/components/button.js.map +1 -1
  10. package/components/certificate-chain-viewer.js +0 -1
  11. package/components/certificate-chain-viewer.js.map +1 -1
  12. package/components/certificate-viewer.js +3 -8
  13. package/components/certificate-viewer.js.map +1 -1
  14. package/components/circular-progress.js +2 -6
  15. package/components/circular-progress.js.map +1 -1
  16. package/components/crl-viewer.js +0 -2
  17. package/components/crl-viewer.js.map +1 -1
  18. package/components/cross.js.map +1 -1
  19. package/components/csr-viewer.js +0 -4
  20. package/components/csr-viewer.js.map +1 -1
  21. package/components/download.js +32 -19
  22. package/components/download.js.map +1 -1
  23. package/components/highlight-words.js +1 -1
  24. package/components/highlight-words.js.map +1 -1
  25. package/components/index2.js +2 -1
  26. package/components/index2.js.map +1 -1
  27. package/components/issuer_name.js +3 -1
  28. package/components/issuer_name.js.map +1 -1
  29. package/components/miscellaneous.js +15 -16
  30. package/components/miscellaneous.js.map +1 -1
  31. package/components/peculiar-certificate-decoder.js +7 -8
  32. package/components/peculiar-certificate-decoder.js.map +1 -1
  33. package/components/peculiar-certificates-viewer.js +44 -43
  34. package/components/peculiar-certificates-viewer.js.map +1 -1
  35. package/components/peculiar-text-hider.js +1 -1
  36. package/components/peculiar-text-hider.js.map +1 -1
  37. package/components/pkcs10_certificate_request.js.map +1 -1
  38. package/components/read_file.js.map +1 -1
  39. package/components/subject_name.js.map +1 -1
  40. package/dist/cjs/actions-Dl4HXXlI.js.map +1 -1
  41. package/dist/cjs/arrow_top-DBMPHVlB.js.map +1 -1
  42. package/dist/cjs/{button-C5jDF-CZ.js → button-B0CduHSE.js} +4 -4
  43. package/dist/cjs/button-B0CduHSE.js.map +1 -0
  44. package/dist/cjs/{certification_request-DS5FED4F.js → certification_request-DaJSDP3R.js} +33 -20
  45. package/dist/cjs/certification_request-DaJSDP3R.js.map +1 -0
  46. package/dist/cjs/cross-pi7K0cHC.js.map +1 -1
  47. package/dist/cjs/download-D9skkVoT.js.map +1 -1
  48. package/dist/cjs/index.cjs.js +4 -4
  49. package/dist/cjs/{link-CwLq-Nge.js → link-kgbgxxVh.js} +4 -4
  50. package/dist/cjs/link-kgbgxxVh.js.map +1 -0
  51. package/dist/cjs/{miscellaneous-UxtK1SWb.js → miscellaneous-Ce9aGjKB.js} +23 -22
  52. package/dist/cjs/miscellaneous-Ce9aGjKB.js.map +1 -0
  53. package/dist/cjs/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.cjs.js.map +1 -1
  54. package/dist/cjs/peculiar-attribute-certificate-viewer_4.cjs.entry.js +8 -16
  55. package/dist/cjs/peculiar-attribute-certificate-viewer_4.cjs.entry.js.map +1 -1
  56. package/dist/cjs/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.cjs.js.map +1 -1
  57. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +5 -11
  58. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -1
  59. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +12 -13
  60. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js.map +1 -1
  61. package/dist/cjs/peculiar-certificate-decoder.entry.cjs.js.map +1 -1
  62. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +5 -7
  63. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js.map +1 -1
  64. package/dist/cjs/peculiar-certificate-viewer.entry.cjs.js.map +1 -1
  65. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +47 -46
  66. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js.map +1 -1
  67. package/dist/cjs/peculiar-certificates-viewer.entry.cjs.js.map +1 -1
  68. package/dist/cjs/peculiar-text-hider.cjs.entry.js +2 -2
  69. package/dist/cjs/peculiar-text-hider.cjs.entry.js.map +1 -1
  70. package/dist/cjs/peculiar-text-hider.entry.cjs.js.map +1 -1
  71. package/dist/cjs/{pkcs10_certificate_request-DaWYvR0i.js → pkcs10_certificate_request-D13Ssi7Z.js} +3 -3
  72. package/dist/cjs/pkcs10_certificate_request-D13Ssi7Z.js.map +1 -0
  73. package/dist/cjs/read_file-DWtcn3zU.js.map +1 -1
  74. package/dist/cjs/{x509_certificate-DBpSGIUT.js → x509_certificate-h5GZArG6.js} +6 -9
  75. package/dist/cjs/x509_certificate-h5GZArG6.js.map +1 -0
  76. package/dist/cjs/{x509_crl-BBnJqOIF.js → x509_crl-CDPt6P1z.js} +6 -6
  77. package/dist/cjs/x509_crl-CDPt6P1z.js.map +1 -0
  78. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +4 -6
  79. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js.map +1 -1
  80. package/dist/collection/components/button/button.js +3 -3
  81. package/dist/collection/components/button/button.js.map +1 -1
  82. package/dist/collection/components/button/index.js.map +1 -1
  83. package/dist/collection/components/button-menu/button-menu.js +5 -7
  84. package/dist/collection/components/button-menu/button-menu.js.map +1 -1
  85. package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js +1 -2
  86. package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js.map +1 -1
  87. package/dist/collection/components/certificate-decoder/certificate-decoder.js +4 -1
  88. package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -1
  89. package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js.map +1 -1
  90. package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js.map +1 -1
  91. package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js.map +1 -1
  92. package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js.map +1 -1
  93. package/dist/collection/components/certificate-details-parts/attributes/index.js +1 -1
  94. package/dist/collection/components/certificate-details-parts/attributes/index.js.map +1 -1
  95. package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js.map +1 -1
  96. package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js.map +1 -1
  97. package/dist/collection/components/certificate-details-parts/attributes/name_part.js +1 -0
  98. package/dist/collection/components/certificate-details-parts/attributes/name_part.js.map +1 -1
  99. package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js.map +1 -1
  100. package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js.map +1 -1
  101. package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js.map +1 -1
  102. package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js.map +1 -1
  103. package/dist/collection/components/certificate-details-parts/basic_information.js.map +1 -1
  104. package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js.map +1 -1
  105. package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js.map +1 -1
  106. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js +1 -1
  107. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js.map +1 -1
  108. package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js.map +1 -1
  109. package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js.map +1 -1
  110. package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js.map +1 -1
  111. package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js.map +1 -1
  112. package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js +1 -1
  113. package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js.map +1 -1
  114. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js +1 -1
  115. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js.map +1 -1
  116. package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js.map +1 -1
  117. package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js.map +1 -1
  118. package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js.map +1 -1
  119. package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js.map +1 -1
  120. package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js.map +1 -1
  121. package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js.map +1 -1
  122. package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js.map +1 -1
  123. package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js.map +1 -1
  124. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js +3 -3
  125. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js.map +1 -1
  126. package/dist/collection/components/certificate-details-parts/extensions/index.js +2 -2
  127. package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -1
  128. package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js.map +1 -1
  129. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js +0 -1
  130. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js.map +1 -1
  131. package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js +2 -2
  132. package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js.map +1 -1
  133. package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js.map +1 -1
  134. package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js.map +1 -1
  135. package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js.map +1 -1
  136. package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js.map +1 -1
  137. package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js.map +1 -1
  138. package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js.map +1 -1
  139. package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js.map +1 -1
  140. package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js.map +1 -1
  141. package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js.map +1 -1
  142. package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js.map +1 -1
  143. package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js.map +1 -1
  144. package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js.map +1 -1
  145. package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js.map +1 -1
  146. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js +1 -1
  147. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js.map +1 -1
  148. package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js.map +1 -1
  149. package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js.map +1 -1
  150. package/dist/collection/components/certificate-details-parts/holder.js +1 -1
  151. package/dist/collection/components/certificate-details-parts/holder.js.map +1 -1
  152. package/dist/collection/components/certificate-details-parts/issuer.js.map +1 -1
  153. package/dist/collection/components/certificate-details-parts/issuer_name.js +3 -1
  154. package/dist/collection/components/certificate-details-parts/issuer_name.js.map +1 -1
  155. package/dist/collection/components/certificate-details-parts/miscellaneous.js +2 -2
  156. package/dist/collection/components/certificate-details-parts/miscellaneous.js.map +1 -1
  157. package/dist/collection/components/certificate-details-parts/public_key.js +1 -1
  158. package/dist/collection/components/certificate-details-parts/public_key.js.map +1 -1
  159. package/dist/collection/components/certificate-details-parts/revoked_certificates.js +3 -3
  160. package/dist/collection/components/certificate-details-parts/revoked_certificates.js.map +1 -1
  161. package/dist/collection/components/certificate-details-parts/row.js +3 -3
  162. package/dist/collection/components/certificate-details-parts/row.js.map +1 -1
  163. package/dist/collection/components/certificate-details-parts/signature.js +1 -1
  164. package/dist/collection/components/certificate-details-parts/signature.js.map +1 -1
  165. package/dist/collection/components/certificate-details-parts/subject_name.js.map +1 -1
  166. package/dist/collection/components/certificate-details-parts/thumbprints.js.map +1 -1
  167. package/dist/collection/components/certificate-summary/certificate-summary.js.map +1 -1
  168. package/dist/collection/components/certificate-viewer/certificate-viewer.js +5 -7
  169. package/dist/collection/components/certificate-viewer/certificate-viewer.js.map +1 -1
  170. package/dist/collection/components/certificates-viewer/certificates-viewer.js +44 -43
  171. package/dist/collection/components/certificates-viewer/certificates-viewer.js.map +1 -1
  172. package/dist/collection/components/circular-progress/circular-progress.js +2 -6
  173. package/dist/collection/components/circular-progress/circular-progress.js.map +1 -1
  174. package/dist/collection/components/crl-viewer/crl-viewer.js +4 -6
  175. package/dist/collection/components/crl-viewer/crl-viewer.js.map +1 -1
  176. package/dist/collection/components/csr-viewer/csr-viewer.js +4 -8
  177. package/dist/collection/components/csr-viewer/csr-viewer.js.map +1 -1
  178. package/dist/collection/components/highlight-words/highlight-words.js +1 -1
  179. package/dist/collection/components/highlight-words/highlight-words.js.map +1 -1
  180. package/dist/collection/components/icons/actions.js.map +1 -1
  181. package/dist/collection/components/icons/arrow_bottom.js.map +1 -1
  182. package/dist/collection/components/icons/arrow_top.js.map +1 -1
  183. package/dist/collection/components/icons/cross.js.map +1 -1
  184. package/dist/collection/components/icons/details.js.map +1 -1
  185. package/dist/collection/components/icons/download.js.map +1 -1
  186. package/dist/collection/components/icons/link.js.map +1 -1
  187. package/dist/collection/components/link/link.js +1 -1
  188. package/dist/collection/components/link/link.js.map +1 -1
  189. package/dist/collection/components/text-hider/text-hider.js +1 -1
  190. package/dist/collection/components/text-hider/text-hider.js.map +1 -1
  191. package/dist/collection/components/typography/typography.js.map +1 -1
  192. package/dist/collection/constants/oids.js +5 -0
  193. package/dist/collection/constants/oids.js.map +1 -1
  194. package/dist/collection/crypto/asn_data.js +1 -1
  195. package/dist/collection/crypto/asn_data.js.map +1 -1
  196. package/dist/collection/crypto/attribute.js.map +1 -1
  197. package/dist/collection/crypto/extension.js.map +1 -1
  198. package/dist/collection/crypto/name.js.map +1 -1
  199. package/dist/collection/crypto/pem_converter.js +13 -8
  200. package/dist/collection/crypto/pem_converter.js.map +1 -1
  201. package/dist/collection/crypto/pkcs10_certificate_request.js.map +1 -1
  202. package/dist/collection/crypto/provider.js +7 -3
  203. package/dist/collection/crypto/provider.js.map +1 -1
  204. package/dist/collection/crypto/utils.js.map +1 -1
  205. package/dist/collection/crypto/x509_attribute_certificate.js +2 -2
  206. package/dist/collection/crypto/x509_attribute_certificate.js.map +1 -1
  207. package/dist/collection/crypto/x509_certificate.js +3 -6
  208. package/dist/collection/crypto/x509_certificate.js.map +1 -1
  209. package/dist/collection/crypto/x509_certificates.js +3 -7
  210. package/dist/collection/crypto/x509_certificates.js.map +1 -1
  211. package/dist/collection/crypto/x509_crl.js.map +1 -1
  212. package/dist/collection/utils/download.js +1 -0
  213. package/dist/collection/utils/download.js.map +1 -1
  214. package/dist/collection/utils/download_from_buffer.js +3 -3
  215. package/dist/collection/utils/download_from_buffer.js.map +1 -1
  216. package/dist/collection/utils/l10n.js +1 -3
  217. package/dist/collection/utils/l10n.js.map +1 -1
  218. package/dist/collection/utils/read_file.js.map +1 -1
  219. package/dist/esm/actions-DzoPRObK.js.map +1 -1
  220. package/dist/esm/arrow_top-CF9pv-tQ.js.map +1 -1
  221. package/dist/esm/{button-Djn8UI82.js → button-Do0R_8PZ.js} +4 -4
  222. package/dist/esm/button-Do0R_8PZ.js.map +1 -0
  223. package/dist/esm/{certification_request-Wtz6WM17.js → certification_request-DazysL_f.js} +33 -20
  224. package/dist/esm/certification_request-DazysL_f.js.map +1 -0
  225. package/dist/esm/cross-DdCuR1F2.js.map +1 -1
  226. package/dist/esm/download-Cqfc-Sxf.js.map +1 -1
  227. package/dist/esm/index.js +4 -4
  228. package/dist/esm/{link-BfDk078v.js → link-qg3yKAoS.js} +4 -4
  229. package/dist/esm/link-qg3yKAoS.js.map +1 -0
  230. package/dist/esm/{miscellaneous-CsGuJ6zr.js → miscellaneous-BJPX0Hs_.js} +23 -22
  231. package/dist/esm/miscellaneous-BJPX0Hs_.js.map +1 -0
  232. package/dist/esm/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.js.map +1 -1
  233. package/dist/esm/peculiar-attribute-certificate-viewer_4.entry.js +8 -16
  234. package/dist/esm/peculiar-attribute-certificate-viewer_4.entry.js.map +1 -1
  235. package/dist/esm/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.js.map +1 -1
  236. package/dist/esm/peculiar-button-menu_3.entry.js +5 -11
  237. package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -1
  238. package/dist/esm/peculiar-certificate-decoder.entry.js +12 -13
  239. package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -1
  240. package/dist/esm/peculiar-certificate-viewer.entry.js +5 -7
  241. package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -1
  242. package/dist/esm/peculiar-certificates-viewer.entry.js +47 -46
  243. package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -1
  244. package/dist/esm/peculiar-text-hider.entry.js +2 -2
  245. package/dist/esm/peculiar-text-hider.entry.js.map +1 -1
  246. package/dist/esm/{pkcs10_certificate_request-Cn7_Z7a1.js → pkcs10_certificate_request-SQcYKma2.js} +3 -3
  247. package/dist/esm/pkcs10_certificate_request-SQcYKma2.js.map +1 -0
  248. package/dist/esm/read_file-F2F0McJX.js.map +1 -1
  249. package/dist/esm/{x509_certificate-ObET7_Te.js → x509_certificate-Dmgw53TR.js} +6 -9
  250. package/dist/esm/x509_certificate-Dmgw53TR.js.map +1 -0
  251. package/dist/esm/{x509_crl-CeW7yzP9.js → x509_crl-B5TRu79b.js} +6 -6
  252. package/dist/esm/x509_crl-B5TRu79b.js.map +1 -0
  253. package/dist/esm-es5/actions-DzoPRObK.js.map +1 -1
  254. package/dist/esm-es5/arrow_top-CF9pv-tQ.js.map +1 -1
  255. package/dist/esm-es5/{button-Djn8UI82.js → button-Do0R_8PZ.js} +2 -2
  256. package/dist/esm-es5/button-Do0R_8PZ.js.map +1 -0
  257. package/dist/esm-es5/{certification_request-Wtz6WM17.js → certification_request-DazysL_f.js} +15 -15
  258. package/dist/esm-es5/certification_request-DazysL_f.js.map +1 -0
  259. package/dist/esm-es5/cross-DdCuR1F2.js.map +1 -1
  260. package/dist/esm-es5/download-Cqfc-Sxf.js.map +1 -1
  261. package/dist/esm-es5/index.js +1 -1
  262. package/dist/esm-es5/{link-BfDk078v.js → link-qg3yKAoS.js} +3 -3
  263. package/dist/esm-es5/link-qg3yKAoS.js.map +1 -0
  264. package/dist/esm-es5/{miscellaneous-CsGuJ6zr.js → miscellaneous-BJPX0Hs_.js} +3 -3
  265. package/dist/esm-es5/miscellaneous-BJPX0Hs_.js.map +1 -0
  266. package/dist/esm-es5/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.js.map +1 -1
  267. package/dist/esm-es5/peculiar-attribute-certificate-viewer_4.entry.js +1 -1
  268. package/dist/esm-es5/peculiar-attribute-certificate-viewer_4.entry.js.map +1 -1
  269. package/dist/esm-es5/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.js.map +1 -1
  270. package/dist/esm-es5/peculiar-button-menu_3.entry.js +1 -1
  271. package/dist/esm-es5/peculiar-button-menu_3.entry.js.map +1 -1
  272. package/dist/esm-es5/peculiar-certificate-decoder.entry.js +1 -1
  273. package/dist/esm-es5/peculiar-certificate-decoder.entry.js.map +1 -1
  274. package/dist/esm-es5/peculiar-certificate-viewer.entry.js +1 -1
  275. package/dist/esm-es5/peculiar-certificate-viewer.entry.js.map +1 -1
  276. package/dist/esm-es5/peculiar-certificates-viewer.entry.js +2 -2
  277. package/dist/esm-es5/peculiar-certificates-viewer.entry.js.map +1 -1
  278. package/dist/esm-es5/peculiar-text-hider.entry.js +1 -1
  279. package/dist/esm-es5/peculiar-text-hider.entry.js.map +1 -1
  280. package/dist/esm-es5/{pkcs10_certificate_request-Cn7_Z7a1.js → pkcs10_certificate_request-SQcYKma2.js} +2 -2
  281. package/dist/esm-es5/pkcs10_certificate_request-SQcYKma2.js.map +1 -0
  282. package/dist/esm-es5/read_file-F2F0McJX.js.map +1 -1
  283. package/dist/esm-es5/{x509_certificate-ObET7_Te.js → x509_certificate-Dmgw53TR.js} +3 -3
  284. package/dist/esm-es5/x509_certificate-Dmgw53TR.js.map +1 -0
  285. package/dist/esm-es5/{x509_crl-CeW7yzP9.js → x509_crl-B5TRu79b.js} +4 -4
  286. package/dist/esm-es5/x509_crl-B5TRu79b.js.map +1 -0
  287. package/dist/peculiar/index.esm.js +1 -1
  288. package/dist/peculiar/p--Pej0I-A.system.js.map +1 -0
  289. package/dist/peculiar/{p-t-yLLnfF.js → p-0HZUc9Ix.js} +3 -3
  290. package/dist/peculiar/p-0HZUc9Ix.js.map +1 -0
  291. package/dist/peculiar/p-15c2b820.entry.js +5 -0
  292. package/dist/peculiar/{p-f4490197.entry.js.map → p-15c2b820.entry.js.map} +1 -1
  293. package/dist/peculiar/{p-5b829829.system.entry.js → p-16aa5600.system.entry.js} +2 -2
  294. package/dist/peculiar/p-16aa5600.system.entry.js.map +1 -0
  295. package/dist/peculiar/{p-3e4062f6.entry.js → p-1cbb0d6b.entry.js} +16 -16
  296. package/dist/peculiar/p-1cbb0d6b.entry.js.map +1 -0
  297. package/dist/peculiar/{p-7a3bf94e.entry.js → p-218364f2.entry.js} +2 -2
  298. package/dist/peculiar/p-218364f2.entry.js.map +1 -0
  299. package/dist/peculiar/{p-B3myni_G.js → p-3zhoLQno.js} +4 -4
  300. package/dist/peculiar/p-3zhoLQno.js.map +1 -0
  301. package/dist/peculiar/{p-63aa01ad.system.entry.js → p-44648a8e.system.entry.js} +3 -3
  302. package/dist/peculiar/p-44648a8e.system.entry.js.map +1 -0
  303. package/dist/peculiar/{p-5608ba3e.system.entry.js → p-52444a44.system.entry.js} +2 -2
  304. package/dist/peculiar/p-52444a44.system.entry.js.map +1 -0
  305. package/dist/peculiar/{p-69b461b4.entry.js → p-5b843427.entry.js} +3 -3
  306. package/dist/peculiar/p-5b843427.entry.js.map +1 -0
  307. package/dist/peculiar/{p-12d2e080.entry.js → p-7b0e7f43.entry.js} +2 -2
  308. package/dist/peculiar/p-7b0e7f43.entry.js.map +1 -0
  309. package/dist/peculiar/p-B2YrZuK2.system.js.map +1 -1
  310. package/dist/peculiar/p-BA8os2l6.system.js.map +1 -0
  311. package/dist/peculiar/p-BAB4EyrL.system.js.map +1 -0
  312. package/dist/peculiar/{p-DPre0WhP.system.js → p-BBZwtkNN.system.js} +4 -4
  313. package/dist/peculiar/p-BBZwtkNN.system.js.map +1 -0
  314. package/dist/peculiar/p-BBgwMHRZ.system.js.map +1 -1
  315. package/dist/peculiar/p-BHBizfwo.js.map +1 -1
  316. package/dist/peculiar/{p-CKoxwzVA.system.js → p-BKKflyKt.system.js} +5 -5
  317. package/dist/peculiar/p-BKKflyKt.system.js.map +1 -0
  318. package/dist/peculiar/p-BOSH9vjy.system.js.map +1 -1
  319. package/dist/peculiar/p-BP2bmYR2.system.js.map +1 -1
  320. package/dist/peculiar/p-BcFnjn1R.system.js.map +1 -0
  321. package/dist/peculiar/{p-uFLk5hDd.system.js → p-BmIps4bV.system.js} +18 -18
  322. package/dist/peculiar/p-BmIps4bV.system.js.map +1 -0
  323. package/dist/peculiar/{p-DgcB4Nqx.system.js → p-CDh6shXP.system.js} +9 -9
  324. package/dist/peculiar/p-CDh6shXP.system.js.map +1 -0
  325. package/dist/peculiar/{p-BisXzAqN.js → p-CEHpBNWe.js} +3 -3
  326. package/dist/peculiar/p-CEHpBNWe.js.map +1 -0
  327. package/dist/peculiar/{p-CttQwkXH.js → p-CJro0Exb.js} +10 -10
  328. package/dist/peculiar/p-CJro0Exb.js.map +1 -0
  329. package/dist/peculiar/p-CWs-Ocvt.system.js.map +1 -0
  330. package/dist/peculiar/p-CeKqQ13Z.js.map +1 -1
  331. package/dist/peculiar/{p-BCATfe_H.js → p-CkwiD_ia.js} +2 -2
  332. package/dist/peculiar/p-CkwiD_ia.js.map +1 -0
  333. package/dist/peculiar/{p-BRhx1gbw.system.js → p-Cm-ylIxb.system.js} +2 -2
  334. package/dist/peculiar/p-Cm-ylIxb.system.js.map +1 -0
  335. package/dist/peculiar/p-D2QB-8Q6.system.js.map +1 -1
  336. package/dist/peculiar/p-D5BWI7FK.system.js +1 -1
  337. package/dist/peculiar/p-DJRm54BZ.system.js.map +1 -0
  338. package/dist/peculiar/{p-L1KL0R34.system.js → p-DRoyzOgk.system.js} +3 -3
  339. package/dist/peculiar/p-DRoyzOgk.system.js.map +1 -0
  340. package/dist/peculiar/{p-Wtz6WM17.js → p-DazysL_f.js} +4 -4
  341. package/dist/peculiar/p-DazysL_f.js.map +1 -0
  342. package/dist/peculiar/p-DhdG07f8.js.map +1 -1
  343. package/dist/peculiar/p-DkAhB3Vy.js.map +1 -1
  344. package/dist/peculiar/{p-lNFxlG5A.js → p-DzItK48Y.js} +4 -4
  345. package/dist/peculiar/p-DzItK48Y.js.map +1 -0
  346. package/dist/peculiar/p-F2F0McJX.js.map +1 -1
  347. package/dist/peculiar/{p-CcANm2qm.system.js → p-YHrZ3f_s.system.js} +2 -2
  348. package/dist/peculiar/p-YHrZ3f_s.system.js.map +1 -0
  349. package/dist/peculiar/p-a3c0f753.system.entry.js +5 -0
  350. package/dist/peculiar/{p-cae95996.system.entry.js.map → p-a3c0f753.system.entry.js.map} +1 -1
  351. package/dist/peculiar/{p-0e8ab957.entry.js → p-ab6a8a44.entry.js} +2 -2
  352. package/dist/peculiar/p-ab6a8a44.entry.js.map +1 -0
  353. package/dist/peculiar/{p-1af57833.system.entry.js → p-d16ddef8.system.entry.js} +2 -2
  354. package/dist/peculiar/p-d16ddef8.system.entry.js.map +1 -0
  355. package/dist/peculiar/{p-bafc3336.system.entry.js → p-d9013293.system.entry.js} +16 -16
  356. package/dist/peculiar/p-d9013293.system.entry.js.map +1 -0
  357. package/dist/peculiar/{p-B859JpGw.system.js → p-wYK0iVYg.system.js} +2 -2
  358. package/dist/peculiar/p-wYK0iVYg.system.js.map +1 -0
  359. package/dist/peculiar/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.esm.js.map +1 -1
  360. package/dist/peculiar/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.esm.js.map +1 -1
  361. package/dist/peculiar/peculiar-certificate-decoder.entry.esm.js.map +1 -1
  362. package/dist/peculiar/peculiar-certificate-viewer.entry.esm.js.map +1 -1
  363. package/dist/peculiar/peculiar-certificates-viewer.entry.esm.js.map +1 -1
  364. package/dist/peculiar/peculiar-text-hider.entry.esm.js.map +1 -1
  365. package/dist/peculiar/peculiar.esm.js +1 -1
  366. package/dist/types/components/attribute-certificate-viewer/attribute-certificate-viewer.d.ts +3 -3
  367. package/dist/types/components/button/button.d.ts +2 -2
  368. package/dist/types/components/button/index.d.ts +1 -1
  369. package/dist/types/components/button-menu/button-menu.d.ts +5 -5
  370. package/dist/types/components/certificate-details-parts/miscellaneous.d.ts +2 -2
  371. package/dist/types/components/certificate-summary/certificate-summary.d.ts +2 -2
  372. package/dist/types/components/certificate-viewer/certificate-viewer.d.ts +3 -3
  373. package/dist/types/components/certificates-viewer/certificates-viewer.d.ts +3 -2
  374. package/dist/types/components/crl-viewer/crl-viewer.d.ts +3 -3
  375. package/dist/types/components/csr-viewer/csr-viewer.d.ts +3 -3
  376. package/dist/types/components/icons/actions.d.ts +2 -2
  377. package/dist/types/components/icons/arrow_bottom.d.ts +2 -2
  378. package/dist/types/components/icons/arrow_top.d.ts +2 -2
  379. package/dist/types/components/icons/cross.d.ts +2 -2
  380. package/dist/types/components/icons/details.d.ts +2 -2
  381. package/dist/types/components/icons/download.d.ts +2 -2
  382. package/dist/types/components/icons/link.d.ts +2 -2
  383. package/dist/types/components/link/link.d.ts +4 -4
  384. package/dist/types/components/typography/typography.d.ts +5 -5
  385. package/dist/types/components.d.ts +20 -20
  386. package/dist/types/constants/oids.d.ts +5 -0
  387. package/dist/types/crypto/asn_data.d.ts +1 -3
  388. package/dist/types/crypto/pem_converter.d.ts +7 -19
  389. package/dist/types/crypto/provider.d.ts +1 -6
  390. package/dist/types/interface.d.ts +3 -3
  391. package/dist/types/utils/l10n.d.ts +6 -6
  392. package/dist/types/utils/read_file.d.ts +7 -7
  393. package/hydrate/index.js +115 -120
  394. package/hydrate/index.mjs +115 -120
  395. package/package.json +2 -2
  396. package/dist/cjs/button-C5jDF-CZ.js.map +0 -1
  397. package/dist/cjs/certification_request-DS5FED4F.js.map +0 -1
  398. package/dist/cjs/link-CwLq-Nge.js.map +0 -1
  399. package/dist/cjs/miscellaneous-UxtK1SWb.js.map +0 -1
  400. package/dist/cjs/pkcs10_certificate_request-DaWYvR0i.js.map +0 -1
  401. package/dist/cjs/x509_certificate-DBpSGIUT.js.map +0 -1
  402. package/dist/cjs/x509_crl-BBnJqOIF.js.map +0 -1
  403. package/dist/esm/button-Djn8UI82.js.map +0 -1
  404. package/dist/esm/certification_request-Wtz6WM17.js.map +0 -1
  405. package/dist/esm/link-BfDk078v.js.map +0 -1
  406. package/dist/esm/miscellaneous-CsGuJ6zr.js.map +0 -1
  407. package/dist/esm/pkcs10_certificate_request-Cn7_Z7a1.js.map +0 -1
  408. package/dist/esm/x509_certificate-ObET7_Te.js.map +0 -1
  409. package/dist/esm/x509_crl-CeW7yzP9.js.map +0 -1
  410. package/dist/esm-es5/button-Djn8UI82.js.map +0 -1
  411. package/dist/esm-es5/certification_request-Wtz6WM17.js.map +0 -1
  412. package/dist/esm-es5/link-BfDk078v.js.map +0 -1
  413. package/dist/esm-es5/miscellaneous-CsGuJ6zr.js.map +0 -1
  414. package/dist/esm-es5/pkcs10_certificate_request-Cn7_Z7a1.js.map +0 -1
  415. package/dist/esm-es5/x509_certificate-ObET7_Te.js.map +0 -1
  416. package/dist/esm-es5/x509_crl-CeW7yzP9.js.map +0 -1
  417. package/dist/peculiar/p-0e8ab957.entry.js.map +0 -1
  418. package/dist/peculiar/p-12d2e080.entry.js.map +0 -1
  419. package/dist/peculiar/p-1af57833.system.entry.js.map +0 -1
  420. package/dist/peculiar/p-3e4062f6.entry.js.map +0 -1
  421. package/dist/peculiar/p-5608ba3e.system.entry.js.map +0 -1
  422. package/dist/peculiar/p-5b829829.system.entry.js.map +0 -1
  423. package/dist/peculiar/p-63aa01ad.system.entry.js.map +0 -1
  424. package/dist/peculiar/p-69b461b4.entry.js.map +0 -1
  425. package/dist/peculiar/p-7Nmqck4T.system.js.map +0 -1
  426. package/dist/peculiar/p-7a3bf94e.entry.js.map +0 -1
  427. package/dist/peculiar/p-B3myni_G.js.map +0 -1
  428. package/dist/peculiar/p-B859JpGw.system.js.map +0 -1
  429. package/dist/peculiar/p-BCATfe_H.js.map +0 -1
  430. package/dist/peculiar/p-BRhx1gbw.system.js.map +0 -1
  431. package/dist/peculiar/p-BX9qW3ww.system.js.map +0 -1
  432. package/dist/peculiar/p-BisXzAqN.js.map +0 -1
  433. package/dist/peculiar/p-CFhlbr47.system.js.map +0 -1
  434. package/dist/peculiar/p-CKoxwzVA.system.js.map +0 -1
  435. package/dist/peculiar/p-C_vT-OYk.system.js.map +0 -1
  436. package/dist/peculiar/p-CcANm2qm.system.js.map +0 -1
  437. package/dist/peculiar/p-CttQwkXH.js.map +0 -1
  438. package/dist/peculiar/p-DPre0WhP.system.js.map +0 -1
  439. package/dist/peculiar/p-DX5B2Msh.system.js.map +0 -1
  440. package/dist/peculiar/p-DgcB4Nqx.system.js.map +0 -1
  441. package/dist/peculiar/p-Dk86_qlM.system.js.map +0 -1
  442. package/dist/peculiar/p-L1KL0R34.system.js.map +0 -1
  443. package/dist/peculiar/p-Wtz6WM17.js.map +0 -1
  444. package/dist/peculiar/p-bafc3336.system.entry.js.map +0 -1
  445. package/dist/peculiar/p-cae95996.system.entry.js +0 -5
  446. package/dist/peculiar/p-f4490197.entry.js +0 -5
  447. package/dist/peculiar/p-lNFxlG5A.js.map +0 -1
  448. package/dist/peculiar/p-t-yLLnfF.js.map +0 -1
  449. package/dist/peculiar/p-uFLk5hDd.system.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BasicAttribute","props","children","attribute","h","RowValue","name","value","getStringByOID","asn","type","colSpan","class","NamePart","map","relativeDistinguishedName","attributeTypeAndValue","OIDs","toString","NameAttribute","ActivityDescriptionAttribute","camelCaseToWords","TableRowTable","GeneralNamePart","generalName","codeAuthority","getDNSNameLink","getIPAddressLink","codeId","shortName","shortDescription","WebGdprAttribute","assessmentAuthority","assessmentLocation","assessmentRef","dataStorageTerritory","description","InsuranceValueAttribute","base","degree","location","TypeRelationshipAttribute","Object","keys","keyName","toNumber","l10n","getString","getValueRank","ratio","ValuationRankingAttribute","values","AsStringAttribute","monospace","UnstructuredNameAttribute","utf8String","ChallengePasswordAttribute","Attributes","attributes","length","RowTitle","Name","ActivityDescription","WebGDPR","InsuranceValue","TypeRelationship","ValuationRanking","UnstructuredName","ChallengePassword","_a","console","error","RevokedCertificates","revokedCertificates","certificate","Convert","ToHex","userCertificate","dateShort","revocationDate","getTime","crlEntryExtensions","extension","CRLReason","extnID","toJSON","reason","InvalidityDate","CertificateIssuer","gn","extnValue","Holder","holder","baseCertificateID","objectDigestInfo","issuer","item","serial","digestAlgorithm","algorithm","objectDigest","digestedObjectType","Issuer","certificateViewerCss","AttributeCertificateViewer","constructor","hostRef","this","mobileMediaQueryString","mobileScreenView","isDecodeInProcess","getAuthKeyIdParentLink","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","handleMediaQueryChange","event","matches","componentWillLoad","decodeCertificate","mobileMediaQuery","window","matchMedia","addEventListener","bind","disconnectedCallback","removeEventListener","X509AttributeCertificate","certificateDecoded","parseExtensions","parseAttributes","getThumbprint","certificateDecodeError","watchCertificateAndDecode","newValue","oldValue","serialNumber","renderErrorState","Typography","renderEmptyState","render","Host","String","BasicInformation","assign","Signature","signature","Thumbprints","thumbprints","getLEILink","Extensions","extensions","download","Miscellaneous","certificateChainViewerCss","CertificateChainViewer","selectedCertificateIndex","certificates","role","Array","from","index","onClick","commonName","CrlViewer","X509Crl","getIssuerDnLink","issuerDnLink","IssuerName","CsrViewer","Pkcs10CertificateRequest","SubjectName","subject","PublicKey","publicKey","title"],"sources":["src/components/certificate-details-parts/attributes/basic_attribute.tsx","src/components/certificate-details-parts/attributes/name_part.tsx","src/components/certificate-details-parts/attributes/name_attribute.tsx","src/components/certificate-details-parts/attributes/activity_description_attribute.tsx","src/components/certificate-details-parts/attributes/web_gdpr_attribute.tsx","src/components/certificate-details-parts/attributes/insurance_value_attribute.tsx","src/components/certificate-details-parts/attributes/type_relationship_attribute.tsx","src/components/certificate-details-parts/attributes/valuation_ranking_attribute.tsx","src/components/certificate-details-parts/attributes/as_string_attribute.tsx","src/components/certificate-details-parts/attributes/unstructured_name_attribute.tsx","src/components/certificate-details-parts/attributes/challenge_password_attribute.tsx","src/components/certificate-details-parts/attributes/index.tsx","src/components/certificate-details-parts/revoked_certificates.tsx","src/components/certificate-details-parts/holder.tsx","src/components/certificate-details-parts/issuer.tsx","src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-attribute-certificate-viewer&encapsulation=shadow","src/components/attribute-certificate-viewer/attribute-certificate-viewer.tsx","src/components/certificate-chain-viewer/certificate-chain-viewer.scss?tag=peculiar-certificate-chain-viewer&encapsulation=shadow","src/components/certificate-chain-viewer/certificate-chain-viewer.tsx","src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-crl-viewer&encapsulation=shadow","src/components/crl-viewer/crl-viewer.tsx","src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-csr-viewer&encapsulation=shadow","src/components/csr-viewer/csr-viewer.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { Attribute, TAttributeValue } from '../../../crypto/attribute';\nimport { getStringByOID } from '../../../utils';\nimport { RowValue } from '../row';\n\ninterface IBasicAttributeProps {\n attribute: Attribute<TAttributeValue>;\n}\n\nexport const BasicAttribute: FunctionalComponent<IBasicAttributeProps> = (props, children) => {\n const { attribute } = props;\n\n return ([\n <RowValue\n name=\"Name\"\n value={getStringByOID(attribute.asn.type)}\n />,\n children,\n <tr>\n <td colSpan={2} class=\"divider\">\n <span />\n </td>\n </tr>,\n ]);\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { Name } from '@peculiar/asn1-x509';\nimport { OIDs } from '../../../constants/oids';\nimport { RowValue } from '../row';\n\ninterface INamePartProps {\n name: Name;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const NamePart: FunctionalComponent<INamePartProps> = (props): any[] => {\n const { name } = props;\n\n if (!name) {\n return null;\n }\n\n return name.map((relativeDistinguishedName) => (\n relativeDistinguishedName.map((attributeTypeAndValue) => (\n <RowValue\n name={OIDs[attributeTypeAndValue.type] || attributeTypeAndValue.type}\n value={attributeTypeAndValue.value.toString()}\n />\n ))\n ));\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { Name } from '@peculiar/asn1-x509';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { BasicAttribute } from './basic_attribute';\nimport { NamePart } from './name_part';\n\ninterface INameAttributeProps {\n attribute: Attribute<Name>;\n}\n\nexport const NameAttribute:\nFunctionalComponent<INameAttributeProps> = (props) => {\n const { attribute } = props;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <NamePart\n name={attribute.value}\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { ActivityDescription } from '@peculiar/asn1-ntqwac';\nimport { Attribute } from '../../../crypto/attribute';\nimport { camelCaseToWords } from '../../../utils';\nimport { GeneralNamePart } from '../extensions/general_name_part';\nimport { RowValue, TableRowTable } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface IActivityDescriptionAttributeProps {\n attribute: Attribute<ActivityDescription>;\n}\n\nexport const ActivityDescriptionAttribute:\nFunctionalComponent<IActivityDescriptionAttributeProps> = (props) => {\n const { attribute } = props;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <RowValue\n name={camelCaseToWords('codeAuthority')}\n value=\"\"\n />\n <TableRowTable>\n <GeneralNamePart\n generalName={attribute.value.codeAuthority}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n </TableRowTable>\n\n <RowValue\n name={camelCaseToWords('codeId')}\n value=\"\"\n />\n <TableRowTable>\n <GeneralNamePart\n generalName={attribute.value.codeId}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n </TableRowTable>\n\n <RowValue\n name={camelCaseToWords('shortName')}\n value={attribute.value.shortName}\n />\n <RowValue\n name={camelCaseToWords('shortDescription')}\n value={attribute.value.shortDescription}\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { WebGDPR } from '@peculiar/asn1-ntqwac';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { camelCaseToWords } from '../../../utils';\nimport { GeneralNamePart } from '../extensions/general_name_part';\nimport { RowValue, TableRowTable } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface IWebGdprAttributeProps {\n attribute: Attribute<WebGDPR>;\n}\n\nexport const WebGdprAttribute:\nFunctionalComponent<IWebGdprAttributeProps> = (props) => {\n const { attribute } = props;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <RowValue\n name={camelCaseToWords('assessmentAuthority')}\n value=\"\"\n />\n <TableRowTable>\n <GeneralNamePart\n generalName={attribute.value.assessmentAuthority}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n </TableRowTable>\n\n <RowValue\n name={camelCaseToWords('assessmentLocation')}\n value=\"\"\n />\n <TableRowTable>\n <GeneralNamePart\n generalName={attribute.value.assessmentLocation}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n </TableRowTable>\n\n <RowValue\n name={camelCaseToWords('assessmentRef')}\n value=\"\"\n />\n <TableRowTable>\n <GeneralNamePart\n generalName={attribute.value.assessmentRef}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n </TableRowTable>\n\n <RowValue\n name={camelCaseToWords('dataStorageTerritory')}\n value={attribute.value.dataStorageTerritory}\n />\n <RowValue\n name={camelCaseToWords('description')}\n value={attribute.value.description}\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { InsuranceValue } from '@peculiar/asn1-ntqwac';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { RowValue } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface IInsuranceValueAttributeProps {\n attribute: Attribute<InsuranceValue>;\n}\n\nexport const InsuranceValueAttribute:\nFunctionalComponent<IInsuranceValueAttributeProps> = (props) => {\n const { attribute } = props;\n const value = `${attribute.value.base} * 10^${attribute.value.degree} ${attribute.value.location}`;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <RowValue\n name=\"Value\"\n value={value}\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { TypeRelationship } from '@peculiar/asn1-ntqwac';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { l10n } from '../../../utils';\nimport { RowValue } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface ITypeRelationshipAttributeProps {\n attribute: Attribute<TypeRelationship>;\n}\n\nexport const TypeRelationshipAttribute:\nFunctionalComponent<ITypeRelationshipAttributeProps> = (props) => {\n const { attribute } = props;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n {Object.keys(attribute.value).map((keyName) => (\n <RowValue\n name={keyName}\n value={attribute.value[keyName].toNumber() ? l10n.getString('yes') : l10n.getString('no')}\n />\n ))}\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { ValuationRanking } from '@peculiar/asn1-ntqwac';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { RowValue } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface IValuationRankingAttributeProps {\n attribute: Attribute<ValuationRanking>;\n}\n\nconst getValueRank = (value: number): string => {\n let ratio = 1;\n\n if (value / 100 > 1) {\n ratio = 100;\n } else if (value / 10 > 1) {\n ratio = 10;\n }\n\n return `${value}/${5 * ratio}`;\n};\n\nexport const ValuationRankingAttribute:\nFunctionalComponent<IValuationRankingAttributeProps> = (props) => {\n const { attribute } = props;\n const values = Object.keys(attribute.value).map((keyName) => ([\n getValueRank(attribute.value[keyName]),\n <br />,\n ]));\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <RowValue\n name=\"Value\"\n value={values as unknown as string[]}\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { RowValue } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface IAsStringAttributeProps {\n attribute: Attribute<string>;\n}\n\nexport const AsStringAttribute:\nFunctionalComponent<IAsStringAttributeProps> = (props) => {\n const { attribute } = props;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <RowValue\n name=\"Value\"\n value={attribute.value}\n monospace\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { UnstructuredName } from '@peculiar/asn1-pkcs9';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { RowValue } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface IUnstructuredNameAttributeProps {\n attribute: Attribute<UnstructuredName>;\n}\n\nexport const UnstructuredNameAttribute:\nFunctionalComponent<IUnstructuredNameAttributeProps> = (props) => {\n const { attribute } = props;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <RowValue\n name=\"Value\"\n value={attribute.value.utf8String}\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { ChallengePassword } from '@peculiar/asn1-pkcs9';\nimport type { Attribute } from '../../../crypto/attribute';\nimport { RowValue } from '../row';\nimport { BasicAttribute } from './basic_attribute';\n\ninterface IChallengePasswordAttributeProps {\n attribute: Attribute<ChallengePassword>;\n}\n\nexport const ChallengePasswordAttribute:\nFunctionalComponent<IChallengePasswordAttributeProps> = (props) => {\n const { attribute } = props;\n\n return (\n <BasicAttribute\n attribute={attribute}\n >\n <RowValue\n name=\"Value\"\n value={attribute.value.toString()}\n />\n </BasicAttribute>\n );\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport { Name } from '@peculiar/asn1-x509';\nimport {\n TypeRelationship,\n ActivityDescription,\n WebGDPR,\n InsuranceValue,\n ValuationRanking,\n} from '@peculiar/asn1-ntqwac';\nimport {\n UnstructuredName,\n ChallengePassword,\n} from '@peculiar/asn1-pkcs9';\nimport type { Attribute, TAttributeValue } from '../../../crypto/attribute';\nimport { RowTitle } from '../row';\nimport { NameAttribute } from './name_attribute';\nimport { ActivityDescriptionAttribute } from './activity_description_attribute';\nimport { WebGdprAttribute } from './web_gdpr_attribute';\nimport { InsuranceValueAttribute } from './insurance_value_attribute';\nimport { TypeRelationshipAttribute } from './type_relationship_attribute';\nimport { ValuationRankingAttribute } from './valuation_ranking_attribute';\nimport { BasicAttribute } from './basic_attribute';\nimport { AsStringAttribute } from './as_string_attribute';\nimport { UnstructuredNameAttribute } from './unstructured_name_attribute';\nimport { ChallengePasswordAttribute } from './challenge_password_attribute';\n\ninterface IAttributesPtops extends\n IGeneralNameOptions,\n ILeiOptions,\n IAuthorityKeyIdentifierOptions,\n ISubjectKeyIdentifierOptions {\n attributes: Attribute<TAttributeValue>[];\n}\n\nexport const Attributes: FunctionalComponent<IAttributesPtops> = (props) => {\n const { attributes } = props;\n\n if (!attributes || !attributes.length) {\n return null;\n }\n\n return ([\n <RowTitle\n value=\"Attributes\"\n />,\n attributes.map((attribute) => {\n try {\n if (attribute.value instanceof Name) {\n return (\n <NameAttribute\n attribute={attribute as unknown as Attribute<Name>}\n />\n );\n }\n\n if (attribute.value instanceof ActivityDescription) {\n return (\n <ActivityDescriptionAttribute\n attribute={attribute as unknown as Attribute<ActivityDescription>}\n />\n );\n }\n\n if (attribute.value instanceof WebGDPR) {\n return (\n <WebGdprAttribute\n attribute={attribute as unknown as Attribute<WebGDPR>}\n />\n );\n }\n\n if (attribute.value instanceof InsuranceValue) {\n return (\n <InsuranceValueAttribute\n attribute={attribute as unknown as Attribute<InsuranceValue>}\n />\n );\n }\n\n if (attribute.value instanceof TypeRelationship) {\n return (\n <TypeRelationshipAttribute\n attribute={attribute as unknown as Attribute<TypeRelationship>}\n />\n );\n }\n\n if (attribute.value instanceof ValuationRanking) {\n return (\n <ValuationRankingAttribute\n attribute={attribute as unknown as Attribute<ValuationRanking>}\n />\n );\n }\n\n if (attribute.value instanceof UnstructuredName) {\n return (\n <UnstructuredNameAttribute\n attribute={attribute as unknown as Attribute<UnstructuredName>}\n />\n );\n }\n\n if (attribute.value instanceof ChallengePassword) {\n return (\n <ChallengePasswordAttribute\n attribute={attribute as unknown as Attribute<ChallengePassword>}\n />\n );\n }\n\n if (typeof attribute.value === 'string') {\n return (\n <AsStringAttribute\n attribute={attribute as unknown as Attribute<string>}\n />\n );\n }\n\n return (\n <BasicAttribute\n attribute={attribute}\n />\n );\n } catch {\n console.error('Error render attribute:', attribute.asn.type);\n\n return null;\n }\n }),\n ]);\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport {\n CRLReason, InvalidityDate, CertificateIssuer,\n} from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\nimport {\n dateShort, l10n, getStringByOID,\n} from '../../utils';\nimport { IRevokedCertificate } from '../../crypto';\nimport { GeneralNamePart } from './extensions/general_name_part';\nimport {\n RowTitle, RowValue, TableRowTable,\n} from './row';\n\ninterface IRevokedCertificatesProps extends IGeneralNameOptions {\n revokedCertificates: IRevokedCertificate[];\n}\n\nexport const RevokedCertificates: FunctionalComponent<IRevokedCertificatesProps> = (props) => {\n const {\n revokedCertificates,\n getDNSNameLink,\n getIPAddressLink,\n } = props;\n\n if (!revokedCertificates || !revokedCertificates.length) {\n return null;\n }\n\n return [\n <RowTitle\n value={l10n.getString('revokedCertificates')}\n />,\n revokedCertificates.map((certificate) => ([\n <RowValue\n name={l10n.getString('serialNumber')}\n value={Convert.ToHex(certificate.userCertificate)}\n monospace\n />,\n <RowValue\n name={l10n.getString('revocationDate')}\n value={dateShort(certificate.revocationDate.getTime())}\n />,\n (certificate.crlEntryExtensions && certificate.crlEntryExtensions.length && ([\n <RowValue\n name={`${l10n.getString('crlEntryExtensions')}:`}\n value=\"\"\n />,\n <TableRowTable>\n {\n certificate.crlEntryExtensions.map((extension) => {\n if (extension.value instanceof CRLReason) {\n return (\n <RowValue\n name={getStringByOID(extension.asn.extnID)}\n value={extension.value.toJSON() || extension.value.reason}\n />\n );\n }\n\n if (extension.value instanceof InvalidityDate) {\n return (\n <RowValue\n name={getStringByOID(extension.asn.extnID)}\n value={extension.value.value.getTime()}\n />\n );\n }\n\n if (extension.value instanceof CertificateIssuer && extension.value.length) {\n return ([\n <RowValue\n name={`${getStringByOID(extension.asn.extnID)}:`}\n value=\"\"\n />,\n extension.value.map((gn) => (\n <TableRowTable>\n <GeneralNamePart\n generalName={gn}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n />\n </TableRowTable>\n )),\n ]);\n }\n\n return (\n <RowValue\n name={getStringByOID(extension.asn.extnID)}\n value={Convert.ToHex(extension.asn.extnValue)}\n monospace\n />\n );\n })\n }\n </TableRowTable>,\n ])),\n <tr>\n <td colSpan={2} class=\"divider\">\n <span />\n </td>\n </tr>,\n ])),\n ];\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport { Convert } from 'pvtsutils';\nimport type { X509AttributeCertificate } from '../../crypto';\nimport { l10n, getStringByOID } from '../../utils';\nimport {\n RowTitle, RowValue, TableRowTable,\n} from './row';\nimport { GeneralNamePart } from './extensions/general_name_part';\n\ninterface IHolderProps {\n holder: X509AttributeCertificate['holder'];\n}\n\nexport const Holder: FunctionalComponent<IHolderProps> = (props) => {\n const { holder } = props;\n\n if (!holder) {\n return null;\n }\n\n const { baseCertificateID, objectDigestInfo } = holder;\n\n return [\n <RowTitle\n value={l10n.getString('holder')}\n />,\n baseCertificateID && ([\n baseCertificateID.issuer.map((item) => (\n <GeneralNamePart\n generalName={item}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n )),\n <tr>\n <td />\n <td />\n </tr>,\n <RowValue\n name={l10n.getString('serialNumber')}\n value={Convert.ToHex(baseCertificateID.serial)}\n monospace\n />,\n <tr>\n <td />\n <td />\n </tr>,\n ]),\n objectDigestInfo && ([\n <RowValue\n name={l10n.getString('digestInfo')}\n value=\"\"\n />,\n <TableRowTable>\n <RowValue\n name={l10n.getString('algorithm')}\n value={getStringByOID(objectDigestInfo.digestAlgorithm.algorithm)}\n />\n <RowValue\n name={l10n.getString('value')}\n value={Convert.ToHex(objectDigestInfo.objectDigest)}\n monospace\n />\n <RowValue\n name={l10n.getString('type')}\n value={objectDigestInfo.digestedObjectType}\n />\n </TableRowTable>,\n ]),\n ];\n};\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { h, FunctionalComponent } from '@stencil/core';\nimport type { X509AttributeCertificate } from '../../crypto';\nimport { l10n } from '../../utils';\nimport { RowTitle } from './row';\nimport { GeneralNamePart } from './extensions/general_name_part';\n\ninterface IIssuerProps {\n issuer: X509AttributeCertificate['issuer'];\n}\n\nexport const Issuer: FunctionalComponent<IIssuerProps> = (props) => {\n const { issuer } = props;\n\n if (!issuer) {\n return null;\n }\n\n return [\n <RowTitle\n value={l10n.getString('issuer')}\n />,\n issuer.map((item) => (\n <GeneralNamePart\n generalName={item}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n )),\n ];\n};\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n td {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: var(--pv-size-base-2) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: var(--pv-size-base-6);\n padding-bottom: var(--pv-size-base-2);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n\n &.title {\n padding-top: var(--pv-size-base-6);\n\n td {\n padding: 0 var(--pv-size-base-4);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-size-base-4);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Build,\n} from '@stencil/core';\nimport { X509AttributeCertificate } from '../../crypto';\nimport {\n getDNSNameLink, getIPAddressLink, getLEILink,\n} from '../../utils/third_party_links';\nimport {\n BasicInformation,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n Attributes,\n Holder,\n Issuer,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type TAttributeCertificateProp = string | X509AttributeCertificate;\n\n@Component({\n tag: 'peculiar-attribute-certificate-viewer',\n styleUrl: '../certificate-viewer/certificate-viewer.scss',\n shadow: true,\n})\nexport class AttributeCertificateViewer {\n private certificateDecoded: X509AttributeCertificate;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop() certificate: TAttributeCertificateProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop() download?: boolean;\n\n /**\n * Authority Key Identifier extension parent link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.subject_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdParentLink?: string;\n\n /**\n * Authority Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdSiblingsLink?: string;\n\n /**\n * Subject Key Identifier extension children link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdChildrenLink?: string;\n\n /**\n * Subject Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://some.com/{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdSiblingsLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView = false;\n\n @State() isDecodeInProcess = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: TAttributeCertificateProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof X509AttributeCertificate) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new X509AttributeCertificate(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseExtensions();\n this.certificateDecoded.parseAttributes();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(\n newValue: TAttributeCertificateProp,\n oldValue: TAttributeCertificateProp,\n ) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (\n newValue instanceof X509AttributeCertificate\n && oldValue instanceof X509AttributeCertificate\n ) {\n if (newValue.serialNumber !== oldValue.serialNumber) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private getAuthKeyIdParentLink = (value: string) => this.authKeyIdParentLink\n ?.replace('{{authKeyId}}', value);\n\n private getAuthKeyIdSiblingsLink = (value: string) => this.authKeyIdSiblingsLink\n ?.replace('{{authKeyId}}', value);\n\n private getSubjectKeyIdChildrenLink = (value: string) => this.subjectKeyIdChildrenLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getSubjectKeyIdSiblingsLink = (value: string) => this.subjectKeyIdSiblingsLink\n ?.replace('{{subjectKeyId}}', value);\n\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this attribute certificate.\n </Typography>\n </div>\n );\n }\n\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no attribute certificate available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <Issuer\n issuer={this.certificateDecoded.issuer}\n />\n\n <Holder\n holder={this.certificateDecoded.holder}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Attributes\n attributes={this.certificateDecoded.attributes}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n","@import '../../css/base.scss';\n@import '../certificate-viewer/certificate-viewer.scss';\n\n:host {\n display: block;\n width: 100%;\n}\n\n.tabs {\n white-space: nowrap;\n overflow-x: auto;\n border-bottom: 1px solid var(--pv-color-gray-4);\n padding: 0 var(--pv-size-base-4);\n margin-bottom: var(--pv-size-base-6);\n}\n\n.tab {\n font-family: inherit;\n outline: none;\n cursor: pointer;\n box-sizing: border-box;\n border: none;\n border-bottom: 3px solid transparent;\n min-height: var(--pv-size-base-12);\n height: 100%;\n padding: 0 var(--pv-size-base-3);\n background-color: transparent;\n transition: background-color 200ms, color 200ms, border-color 200ms;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n font-weight: var(--pv-text-s2-weight);\n font-size: var(--pv-text-s2-size);\n line-height: var(--pv-text-s2-height);\n letter-spacing: var(--pv-text-s2-spacing);\n color: var(--pv-color-gray-10);\n\n &:hover {\n background-color: var(--pv-color-secondary-tint-5);\n }\n\n &[aria-selected=\"true\"] {\n color: var(--pv-color-black);\n border-color: var(--pv-color-secondary);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Host,\n} from '@stencil/core';\nimport { X509Certificates } from '../../crypto';\nimport { Typography } from '../typography';\nimport { Miscellaneous } from '../certificate-details-parts';\n\n@Component({\n tag: 'peculiar-certificate-chain-viewer',\n styleUrl: 'certificate-chain-viewer.scss',\n shadow: true,\n})\nexport class CertificateChainViewer {\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificates: X509Certificates;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop({ reflect: true }) download?: boolean;\n\n @State() selectedCertificateIndex = 0;\n\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificates available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (!this.certificates) {\n return this.renderEmptyState();\n }\n\n return (\n <Host>\n <div\n role=\"tablist\"\n class=\"tabs\"\n >\n {Array.from(this.certificates).map((certificate, index) => (\n <button\n type=\"button\"\n role=\"tab\"\n class=\"tab\"\n aria-selected={index === this.selectedCertificateIndex ? 'true' : 'false'}\n onClick={() => {\n this.selectedCertificateIndex = index;\n }}\n >\n {certificate.commonName}\n </button>\n ))}\n </div>\n {Array.from(this.certificates).map((certificate, index) => {\n if (index === this.selectedCertificateIndex) {\n return (\n <peculiar-certificate-viewer\n certificate={certificate}\n download={false}\n />\n );\n }\n\n return null;\n })}\n\n <table>\n {this.download && (\n <Miscellaneous\n certificate={this.certificates}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n td {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: var(--pv-size-base-2) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: var(--pv-size-base-6);\n padding-bottom: var(--pv-size-base-2);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n\n &.title {\n padding-top: var(--pv-size-base-6);\n\n td {\n padding: 0 var(--pv-size-base-4);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-size-base-4);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Build,\n} from '@stencil/core';\nimport { X509Crl } from '../../crypto';\nimport {\n getDNSNameLink, getIPAddressLink, getLEILink,\n} from '../../utils/third_party_links';\nimport {\n BasicInformation,\n IssuerName,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n RevokedCertificates,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type TCrlProp = string | X509Crl;\n\n@Component({\n tag: 'peculiar-crl-viewer',\n styleUrl: '../certificate-viewer/certificate-viewer.scss',\n shadow: true,\n})\nexport class CrlViewer {\n private certificateDecoded: X509Crl;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificate: TCrlProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop() download?: boolean;\n\n /**\n * Authority Key Identifier extension parent link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.subject_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdParentLink?: string;\n\n /**\n * Authority Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdSiblingsLink?: string;\n\n /**\n * Issuer DN link.\n * **NOTE**: HTML component attribute must be `issuer-dn-link`.\n */\n @Prop({ reflect: true }) issuerDnLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView = false;\n\n @State() isDecodeInProcess = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: TCrlProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof X509Crl) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new X509Crl(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseExtensions();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n private getAuthKeyIdParentLink = (value: string) => this.authKeyIdParentLink\n ?.replace('{{authKeyId}}', value);\n\n private getAuthKeyIdSiblingsLink = (value: string) => this.authKeyIdSiblingsLink\n ?.replace('{{authKeyId}}', value);\n\n private getIssuerDnLink() {\n return this.issuerDnLink;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(\n newValue: TCrlProp,\n oldValue: TCrlProp,\n ) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (\n newValue instanceof X509Crl\n && oldValue instanceof X509Crl\n ) {\n if (newValue.commonName !== oldValue.commonName) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this certificate revocation list.\n </Typography>\n </div>\n );\n }\n\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificate revocation list available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <IssuerName\n name={this.certificateDecoded.issuer}\n issuerDnLink={this.getIssuerDnLink()}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n />\n\n <RevokedCertificates\n revokedCertificates={this.certificateDecoded.revokedCertificates}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n td {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: var(--pv-size-base-2) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: var(--pv-size-base-6);\n padding-bottom: var(--pv-size-base-2);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n\n &.title {\n padding-top: var(--pv-size-base-6);\n\n td {\n padding: 0 var(--pv-size-base-4);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-size-base-4);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Build,\n} from '@stencil/core';\nimport { Pkcs10CertificateRequest } from '../../crypto';\nimport {\n getDNSNameLink, getIPAddressLink, getLEILink,\n} from '../../utils/third_party_links';\nimport {\n BasicInformation,\n SubjectName,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n PublicKey,\n Attributes,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type TCsrProp = string | Pkcs10CertificateRequest;\n\n@Component({\n tag: 'peculiar-csr-viewer',\n styleUrl: '../certificate-viewer/certificate-viewer.scss',\n shadow: true,\n})\nexport class CsrViewer {\n private certificateDecoded: Pkcs10CertificateRequest;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificate: TCsrProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop() download?: boolean;\n\n /**\n * Subject Key Identifier extension children link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdChildrenLink?: string;\n\n /**\n * Subject Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://some.com/{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdSiblingsLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView = false;\n\n @State() isDecodeInProcess = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: TCsrProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof Pkcs10CertificateRequest) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new Pkcs10CertificateRequest(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseAttributes();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(\n newValue: TCsrProp,\n oldValue: TCsrProp,\n ) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (\n newValue instanceof Pkcs10CertificateRequest\n && oldValue instanceof Pkcs10CertificateRequest\n ) {\n if (newValue.commonName !== oldValue.commonName) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private getAuthKeyIdParentLink = (value: string) => value;\n\n private getAuthKeyIdSiblingsLink = (value: string) => value;\n\n private getSubjectKeyIdChildrenLink = (value: string) => this.subjectKeyIdChildrenLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getSubjectKeyIdSiblingsLink = (value: string) => this.subjectKeyIdSiblingsLink\n ?.replace('{{subjectKeyId}}', value);\n\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this certificate request.\n </Typography>\n </div>\n );\n }\n\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificate request available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <SubjectName\n name={this.certificateDecoded.subject}\n />\n\n <PublicKey\n publicKey={this.certificateDecoded.publicKey}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Attributes\n attributes={this.certificateDecoded.attributes}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n title=\"Extension Request\"\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
- import{r as t,h as e,H as r}from"./p-DDDrq3In.js";import{X as a}from"./p-t-yLLnfF.js";import"./p-Wtz6WM17.js";import{B as o,S as s,I as i,P as c,a as n,T as v,E as p,g as l,b as h,c as d,M as g}from"./p-CttQwkXH.js";import{T as b}from"./p-BCATfe_H.js";import"./p-BisXzAqN.js";import"./p-BHBizfwo.js";const y="*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:var(--pv-size-base-6);min-width:var(--pv-size-base-6);padding:0 var(--pv-size-base-2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--pv-size-base-2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%;position:relative;min-width:280px;min-height:300px;word-wrap:break-word;word-break:break-word}th,td{border:none}table{width:100%;border-spacing:0;border-collapse:collapse}table td{padding:var(--pv-size-base-2) var(--pv-size-base-4);vertical-align:top}table td:first-child{width:220px}table td:last-child{width:calc(100% - 220px)}table td.monospace{max-width:0}table td.divider{padding:var(--pv-size-base-2) 0}table td.divider span{height:1px;display:block;background-color:var(--pv-color-gray-4)}table .title td{padding-top:var(--pv-size-base-6);padding-bottom:var(--pv-size-base-2)}table table{border-left:1px solid var(--pv-color-gray-5)}.status_wrapper{min-height:inherit;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}:host([data-mobile-screen-view=true]) table,:host([data-mobile-screen-view=true]) tr,:host([data-mobile-screen-view=true]) td{display:block}:host([data-mobile-screen-view=true]) table tr{padding:var(--pv-size-base-2) 0}:host([data-mobile-screen-view=true]) table tr.title{padding-top:var(--pv-size-base-6)}:host([data-mobile-screen-view=true]) table tr.title td{padding:0 var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) table td{padding:0 var(--pv-size-base-4);width:100% !important;max-width:100% !important}:host([data-mobile-screen-view=true]) table td.divider{padding:0}";const w=class{constructor(e){t(this,e);this.mobileMediaQueryString="(max-width: 900px)";this.mobileScreenView=false;this.isDecodeInProcess=true;this.getAuthKeyIdParentLink=t=>{var e;return(e=this.authKeyIdParentLink)===null||e===void 0?void 0:e.replace("{{authKeyId}}",t)};this.getAuthKeyIdSiblingsLink=t=>{var e;return(e=this.authKeyIdSiblingsLink)===null||e===void 0?void 0:e.replace("{{authKeyId}}",t)};this.getSubjectKeyIdChildrenLink=t=>{var e;return(e=this.subjectKeyIdChildrenLink)===null||e===void 0?void 0:e.replace("{{subjectKeyId}}",t)};this.getSubjectKeyIdSiblingsLink=t=>{var e;return(e=this.subjectKeyIdSiblingsLink)===null||e===void 0?void 0:e.replace("{{subjectKeyId}}",t)}}handleMediaQueryChange(t){this.mobileScreenView=t.matches}componentWillLoad(){this.decodeCertificate(this.certificate);{this.mobileMediaQuery=window.matchMedia(this.mobileMediaQueryString);this.mobileMediaQuery.addEventListener("change",this.handleMediaQueryChange.bind(this));this.mobileScreenView=this.mobileMediaQuery.matches}}disconnectedCallback(){this.mobileMediaQuery.removeEventListener("change",this.handleMediaQueryChange.bind(this))}async decodeCertificate(t){this.isDecodeInProcess=true;try{if(t instanceof a){this.certificateDecoded=t}else if(typeof t==="string"){this.certificateDecoded=new a(t)}else{return}this.certificateDecoded.parseExtensions();await this.certificateDecoded.getThumbprint("SHA-1");await this.certificateDecoded.getThumbprint("SHA-256")}catch(t){this.certificateDecodeError=t;console.error("Error certificate parse:",t)}this.isDecodeInProcess=false}watchCertificateAndDecode(t,e){if(typeof t==="string"&&typeof e==="string"){if(t!==e){this.decodeCertificate(t)}return}if(t instanceof a&&e instanceof a){if(t.serialNumber!==e.serialNumber){this.decodeCertificate(t)}}}getIssuerDnLink(){return this.issuerDnLink}renderErrorState(){return e("div",{class:"status_wrapper"},e(b,null,"There was an error decoding this certificate."))}renderEmptyState(){return e("div",{class:"status_wrapper"},e(b,null,"There is no certificate available."))}render(){if(this.certificateDecodeError){return this.renderErrorState()}if(!this.certificateDecoded){return this.renderEmptyState()}return e(r,{"data-mobile-screen-view":String(this.mobileScreenView)},e("table",null,e(o,Object.assign({},this.certificateDecoded)),e(s,{name:this.certificateDecoded.subject}),e(i,{name:this.certificateDecoded.issuer,issuerDnLink:this.getIssuerDnLink()}),e(c,{publicKey:this.certificateDecoded.publicKey}),e(n,{signature:this.certificateDecoded.signature}),e(v,{thumbprints:this.certificateDecoded.thumbprints}),e(p,{extensions:this.certificateDecoded.extensions,getLEILink:d,getDNSNameLink:h,getIPAddressLink:l,getAuthKeyIdParentLink:this.getAuthKeyIdParentLink,getAuthKeyIdSiblingsLink:this.getAuthKeyIdSiblingsLink,getSubjectKeyIdChildrenLink:this.getSubjectKeyIdChildrenLink,getSubjectKeyIdSiblingsLink:this.getSubjectKeyIdSiblingsLink}),this.download&&e(g,{certificate:this.certificateDecoded})))}static get watchers(){return{certificate:["watchCertificateAndDecode"]}}};w.style=y;export{w as peculiar_certificate_viewer};
5
- //# sourceMappingURL=p-7a3bf94e.entry.js.map
4
+ import{r as t,h as e,H as r}from"./p-DDDrq3In.js";import{X as a}from"./p-0HZUc9Ix.js";import"./p-DazysL_f.js";import{B as o,S as s,I as i,P as c,a as n,T as v,E as p,g as l,b as h,c as d,M as g}from"./p-CJro0Exb.js";import{T as b}from"./p-CkwiD_ia.js";import"./p-CEHpBNWe.js";import"./p-BHBizfwo.js";const y="*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:var(--pv-size-base-6);min-width:var(--pv-size-base-6);padding:0 var(--pv-size-base-2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--pv-size-base-2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%;position:relative;min-width:280px;min-height:300px;word-wrap:break-word;word-break:break-word}th,td{border:none}table{width:100%;border-spacing:0;border-collapse:collapse}table td{padding:var(--pv-size-base-2) var(--pv-size-base-4);vertical-align:top}table td:first-child{width:220px}table td:last-child{width:calc(100% - 220px)}table td.monospace{max-width:0}table td.divider{padding:var(--pv-size-base-2) 0}table td.divider span{height:1px;display:block;background-color:var(--pv-color-gray-4)}table .title td{padding-top:var(--pv-size-base-6);padding-bottom:var(--pv-size-base-2)}table table{border-left:1px solid var(--pv-color-gray-5)}.status_wrapper{min-height:inherit;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}:host([data-mobile-screen-view=true]) table,:host([data-mobile-screen-view=true]) tr,:host([data-mobile-screen-view=true]) td{display:block}:host([data-mobile-screen-view=true]) table tr{padding:var(--pv-size-base-2) 0}:host([data-mobile-screen-view=true]) table tr.title{padding-top:var(--pv-size-base-6)}:host([data-mobile-screen-view=true]) table tr.title td{padding:0 var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) table td{padding:0 var(--pv-size-base-4);width:100% !important;max-width:100% !important}:host([data-mobile-screen-view=true]) table td.divider{padding:0}";const w=class{constructor(e){t(this,e);this.mobileMediaQueryString="(max-width: 900px)";this.mobileScreenView=false;this.isDecodeInProcess=true;this.getAuthKeyIdParentLink=t=>{var e;return(e=this.authKeyIdParentLink)===null||e===void 0?void 0:e.replace("{{authKeyId}}",t)};this.getAuthKeyIdSiblingsLink=t=>{var e;return(e=this.authKeyIdSiblingsLink)===null||e===void 0?void 0:e.replace("{{authKeyId}}",t)};this.getSubjectKeyIdChildrenLink=t=>{var e;return(e=this.subjectKeyIdChildrenLink)===null||e===void 0?void 0:e.replace("{{subjectKeyId}}",t)};this.getSubjectKeyIdSiblingsLink=t=>{var e;return(e=this.subjectKeyIdSiblingsLink)===null||e===void 0?void 0:e.replace("{{subjectKeyId}}",t)}}handleMediaQueryChange(t){this.mobileScreenView=t.matches}componentWillLoad(){this.decodeCertificate(this.certificate);{this.mobileMediaQuery=window.matchMedia(this.mobileMediaQueryString);this.mobileMediaQuery.addEventListener("change",this.handleMediaQueryChange.bind(this));this.mobileScreenView=this.mobileMediaQuery.matches}}disconnectedCallback(){this.mobileMediaQuery.removeEventListener("change",this.handleMediaQueryChange.bind(this))}async decodeCertificate(t){this.isDecodeInProcess=true;try{if(t instanceof a){this.certificateDecoded=t}else if(typeof t==="string"){this.certificateDecoded=new a(t)}else{return}this.certificateDecoded.parseExtensions();await this.certificateDecoded.getThumbprint("SHA-1");await this.certificateDecoded.getThumbprint("SHA-256")}catch(t){this.certificateDecodeError=t;console.error("Error certificate parse:",t)}this.isDecodeInProcess=false}watchCertificateAndDecode(t,e){if(typeof t==="string"&&typeof e==="string"){if(t!==e){this.decodeCertificate(t)}return}if(t instanceof a&&e instanceof a){if(t.serialNumber!==e.serialNumber){this.decodeCertificate(t)}}}getIssuerDnLink(){return this.issuerDnLink}renderErrorState(){return e("div",{class:"status_wrapper"},e(b,null,"There was an error decoding this certificate."))}renderEmptyState(){return e("div",{class:"status_wrapper"},e(b,null,"There is no certificate available."))}render(){if(this.certificateDecodeError){return this.renderErrorState()}if(!this.certificateDecoded){return this.renderEmptyState()}return e(r,{"data-mobile-screen-view":String(this.mobileScreenView)},e("table",null,e(o,Object.assign({},this.certificateDecoded)),e(s,{name:this.certificateDecoded.subject}),e(i,{name:this.certificateDecoded.issuer,issuerDnLink:this.getIssuerDnLink()}),e(c,{publicKey:this.certificateDecoded.publicKey}),e(n,{signature:this.certificateDecoded.signature}),e(v,{thumbprints:this.certificateDecoded.thumbprints}),e(p,{extensions:this.certificateDecoded.extensions,getLEILink:d,getDNSNameLink:h,getIPAddressLink:l,getAuthKeyIdParentLink:this.getAuthKeyIdParentLink,getAuthKeyIdSiblingsLink:this.getAuthKeyIdSiblingsLink,getSubjectKeyIdChildrenLink:this.getSubjectKeyIdChildrenLink,getSubjectKeyIdSiblingsLink:this.getSubjectKeyIdSiblingsLink}),this.download&&e(g,{certificate:this.certificateDecoded})))}static get watchers(){return{certificate:["watchCertificateAndDecode"]}}};w.style=y;export{w as peculiar_certificate_viewer};
5
+ //# sourceMappingURL=p-218364f2.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["certificateViewerCss","CertificateViewer","constructor","hostRef","this","mobileMediaQueryString","mobileScreenView","isDecodeInProcess","getAuthKeyIdParentLink","value","_a","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","handleMediaQueryChange","event","matches","componentWillLoad","decodeCertificate","certificate","mobileMediaQuery","window","matchMedia","addEventListener","bind","disconnectedCallback","removeEventListener","X509Certificate","certificateDecoded","parseExtensions","getThumbprint","error","certificateDecodeError","console","watchCertificateAndDecode","newValue","oldValue","serialNumber","getIssuerDnLink","issuerDnLink","renderErrorState","h","class","Typography","renderEmptyState","render","Host","String","BasicInformation","Object","assign","SubjectName","name","subject","IssuerName","issuer","PublicKey","publicKey","Signature","signature","Thumbprints","thumbprints","Extensions","extensions","getLEILink","getDNSNameLink","getIPAddressLink","download","Miscellaneous"],"sources":["src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-certificate-viewer&encapsulation=shadow","src/components/certificate-viewer/certificate-viewer.tsx"],"sourcesContent":["@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n td {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: var(--pv-size-base-2) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: var(--pv-size-base-6);\n padding-bottom: var(--pv-size-base-2);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n\n &.title {\n padding-top: var(--pv-size-base-6);\n\n td {\n padding: 0 var(--pv-size-base-4);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-size-base-4);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Build,\n} from '@stencil/core';\nimport { X509Certificate } from '../../crypto';\nimport {\n getDNSNameLink, getIPAddressLink, getLEILink,\n} from '../../utils/third_party_links';\nimport {\n BasicInformation,\n SubjectName,\n IssuerName,\n PublicKey,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type TCertificateProp = string | X509Certificate;\n\n@Component({\n tag: 'peculiar-certificate-viewer',\n styleUrl: 'certificate-viewer.scss',\n shadow: true,\n})\nexport class CertificateViewer {\n private certificateDecoded: X509Certificate;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificate: TCertificateProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop({ reflect: true }) download?: boolean;\n\n /**\n * Authority Key Identifier extension parent link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.subject_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdParentLink?: string;\n\n /**\n * Authority Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdSiblingsLink?: string;\n\n /**\n * Subject Key Identifier extension children link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdChildrenLink?: string;\n\n /**\n * Subject Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://some.com/{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdSiblingsLink?: string;\n\n /**\n * Issuer DN link.\n * **NOTE**: HTML component attribute must be `issuer-dn-link`.\n */\n @Prop({ reflect: true }) issuerDnLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView = false;\n\n @State() isDecodeInProcess = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: TCertificateProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof X509Certificate) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new X509Certificate(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseExtensions();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(newValue: TCertificateProp, oldValue: TCertificateProp) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (newValue instanceof X509Certificate && oldValue instanceof X509Certificate) {\n if (newValue.serialNumber !== oldValue.serialNumber) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private getAuthKeyIdParentLink = (value: string) => this.authKeyIdParentLink\n ?.replace('{{authKeyId}}', value);\n\n private getAuthKeyIdSiblingsLink = (value: string) => this.authKeyIdSiblingsLink\n ?.replace('{{authKeyId}}', value);\n\n private getSubjectKeyIdChildrenLink = (value: string) => this.subjectKeyIdChildrenLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getSubjectKeyIdSiblingsLink = (value: string) => this.subjectKeyIdSiblingsLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getIssuerDnLink() {\n return this.issuerDnLink;\n }\n\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this certificate.\n </Typography>\n </div>\n );\n }\n\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificate available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <SubjectName\n name={this.certificateDecoded.subject}\n />\n\n <IssuerName\n name={this.certificateDecoded.issuer}\n issuerDnLink={this.getIssuerDnLink()}\n />\n\n <PublicKey\n publicKey={this.certificateDecoded.publicKey}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,19 +1,19 @@
1
1
  /*!
2
2
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
3
  */
4
- import{A as t,c as s,o as i,P as e,b as r,a as n,E as a,e as o,n as h,D as c,p as u,N as l}from"./p-Wtz6WM17.js";import{A as m}from"./p-lNFxlG5A.js";
4
+ import{A as t,c as s,o as i,P as e,b as r,a as n,E as a,e as o,n as h,D as c,p as u,N as l}from"./p-DazysL_f.js";import{A as f}from"./p-DzItK48Y.js";
5
5
  /**
6
6
  * @license
7
7
  * Copyright (c) Peculiar Ventures, LLC.
8
8
  *
9
9
  * This source code is licensed under the MIT license found in the
10
10
  * LICENSE file in the root directory of this source tree.
11
- */class f extends t{constructor(t){var a;super(s(t),i);this.thumbprints={};this.type="X.509 Attribute Certificate";this.tag=e.AttributeCertificateTag;const{acinfo:o}=this.asn;this.serialNumber=r.Convert.ToHex(o.serialNumber);this.version=o.version;const h=o.attrCertValidityPeriod.notBeforeTime;if(!h){throw new Error("Cannot get 'notBefore' value")}this.notBefore=h;const c=o.attrCertValidityPeriod.notAfterTime;if(!c){throw new Error("Cannot get 'notAfter' value")}this.notAfter=c;this.validity=n(this.notBefore,this.notAfter);this.issuer=o.issuer.v1Form||((a=o.issuer.v2Form)===null||a===void 0?void 0:a.issuerName);this.holder=o.holder}get signature(){const{signatureValue:t,signatureAlgorithm:s}=this.asn;return{value:t,algorithm:s.algorithm}}parseExtensions(){const{acinfo:t}=this.asn;if(t.extensions){this.extensions=t.extensions.map((t=>new a(o.serialize(t))))}}parseAttributes(){const{acinfo:t}=this.asn;if(t.attributes){this.attributes=t.attributes.map((t=>new m(o.serialize(t))))}}async getThumbprint(t="SHA-1"){try{const s=await h(t,this.raw);if(s){this.thumbprints[t]=r.Convert.ToHex(s)}}catch(t){console.error("Error thumbprint get:",t)}}get commonName(){return`attribute-certificate-${this.thumbprints["SHA-1"]}`}toString(t="pem"){switch(t){case"pem":return e.encode(this.raw,this.tag);case"base64url":return r.Convert.ToBase64Url(this.raw);default:return r.Convert.ToBase64(this.raw)}}downloadAsPEM(t){c.attrCert.asPEM(this.toString("pem"),t||this.commonName)}downloadAsDER(t){c.attrCert.asDER(this.raw,t||this.commonName)}}
11
+ */class m extends t{constructor(t){var a;super(s(t),i);this.thumbprints={};this.type="X.509 Attribute Certificate";this.tag=e.AttributeCertificateTag;const{acinfo:o}=this.asn;this.serialNumber=r.Convert.ToHex(o.serialNumber);this.version=o.version;const h=o.attrCertValidityPeriod.notBeforeTime;if(!h){throw new Error("Cannot get 'notBefore' value")}this.notBefore=h;const c=o.attrCertValidityPeriod.notAfterTime;if(!c){throw new Error("Cannot get 'notAfter' value")}this.notAfter=c;this.validity=n(this.notBefore,this.notAfter);this.issuer=o.issuer.v1Form||((a=o.issuer.v2Form)===null||a===void 0?void 0:a.issuerName);this.holder=o.holder}get signature(){const{signatureValue:t,signatureAlgorithm:s}=this.asn;return{value:t,algorithm:s.algorithm}}parseExtensions(){const{acinfo:t}=this.asn;if(t.extensions){this.extensions=t.extensions.map((t=>new a(o.serialize(t))))}}parseAttributes(){const{acinfo:t}=this.asn;if(t.attributes){this.attributes=t.attributes.map((t=>new f(o.serialize(t))))}}async getThumbprint(t="SHA-1"){try{const s=await h(t,this.raw);if(s){this.thumbprints[t]=r.Convert.ToHex(s)}}catch(t){console.error("Error thumbprint get:",t)}}get commonName(){return`attribute-certificate-${this.thumbprints["SHA-1"]}`}toString(t="pem"){switch(t){case"pem":return e.encode(this.raw,this.tag);case"base64url":return r.Convert.ToBase64Url(this.raw);default:return r.Convert.ToBase64(this.raw)}}downloadAsPEM(t){c.attrCert.asPEM(this.toString("pem"),t||this.commonName)}downloadAsDER(t){c.attrCert.asDER(this.raw,t||this.commonName)}}
12
12
  /**
13
13
  * @license
14
14
  * Copyright (c) Peculiar Ventures, LLC.
15
15
  *
16
16
  * This source code is licensed under the MIT license found in the
17
17
  * LICENSE file in the root directory of this source tree.
18
- */class g extends t{constructor(t){super(s(t),u);this.thumbprints={};this.type="X.509 Certificate Revocation List";this.tag=e.CrlTag;const{tbsCertList:i}=this.asn;this.issuer=new l(i.issuer).toJSON();this.version=i.version+1;this.lastUpdate=i.thisUpdate.getTime();this.nextUpdate=i.nextUpdate.getTime();this.revokedCertificates=(i.revokedCertificates||[]).map((t=>{var s;return{revocationDate:t.revocationDate,userCertificate:t.userCertificate,crlEntryExtensions:(s=t.crlEntryExtensions)===null||s===void 0?void 0:s.map((t=>new a(o.serialize(t))))}}))}async getThumbprint(t="SHA-1"){try{const s=await h(t,this.raw);if(s){this.thumbprints[t]=r.Convert.ToHex(s)}}catch(t){console.error("Error thumbprint get:",t)}}get signature(){const{signature:t,signatureAlgorithm:s}=this.asn;return{value:t,algorithm:s.algorithm}}get commonName(){if(!this.issuer){return""}for(let t=0;t<this.issuer.length;t+=1){const s=this.issuer[t];if(s.shortName==="CN"||s.shortName==="E"||s.shortName==="O"){return s.value}}return""}parseExtensions(){const{tbsCertList:t}=this.asn;if(t.crlExtensions){this.extensions=t.crlExtensions.map((t=>new a(o.serialize(t))))}}toString(t="pem"){switch(t){case"pem":return e.encode(this.raw,this.tag);case"base64url":return r.Convert.ToBase64Url(this.raw);default:return r.Convert.ToBase64(this.raw)}}downloadAsPEM(t){c.crl.asPEM(this.toString("pem"),t||this.commonName)}downloadAsDER(t){c.crl.asDER(this.raw,t||this.commonName)}}export{f as X,g as a};
19
- //# sourceMappingURL=p-B3myni_G.js.map
18
+ */class g extends t{constructor(t){super(s(t),u);this.thumbprints={};this.type="X.509 Certificate Revocation List";this.tag=e.CrlTag;const{tbsCertList:i}=this.asn;this.issuer=new l(i.issuer).toJSON();this.version=i.version+1;this.lastUpdate=i.thisUpdate.getTime();this.nextUpdate=i.nextUpdate.getTime();this.revokedCertificates=(i.revokedCertificates||[]).map((t=>{var s;return{revocationDate:t.revocationDate,userCertificate:t.userCertificate,crlEntryExtensions:(s=t.crlEntryExtensions)===null||s===void 0?void 0:s.map((t=>new a(o.serialize(t))))}}))}async getThumbprint(t="SHA-1"){try{const s=await h(t,this.raw);if(s){this.thumbprints[t]=r.Convert.ToHex(s)}}catch(t){console.error("Error thumbprint get:",t)}}get signature(){const{signature:t,signatureAlgorithm:s}=this.asn;return{value:t,algorithm:s.algorithm}}get commonName(){if(!this.issuer){return""}for(let t=0;t<this.issuer.length;t+=1){const s=this.issuer[t];if(s.shortName==="CN"||s.shortName==="E"||s.shortName==="O"){return s.value}}return""}parseExtensions(){const{tbsCertList:t}=this.asn;if(t.crlExtensions){this.extensions=t.crlExtensions.map((t=>new a(o.serialize(t))))}}toString(t="pem"){switch(t){case"pem":return e.encode(this.raw,this.tag);case"base64url":return r.Convert.ToBase64Url(this.raw);default:return r.Convert.ToBase64(this.raw)}}downloadAsPEM(t){c.crl.asPEM(this.toString("pem"),t||this.commonName)}downloadAsDER(t){c.crl.asDER(this.raw,t||this.commonName)}}export{m as X,g as a};
19
+ //# sourceMappingURL=p-3zhoLQno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-3zhoLQno.js","sources":["src/crypto/x509_attribute_certificate.ts","src/crypto/x509_crl.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport type { GeneralName } from '@peculiar/asn1-x509';\nimport { AttributeCertificate, Holder } from '@peculiar/asn1-x509-attr';\nimport { Convert } from 'pvtsutils';\nimport { dateDiff, Download } from '../utils';\nimport { AsnData } from './asn_data';\nimport { Extension, TExtensionValue } from './extension';\nimport { Attribute, TAttributeValue } from './attribute';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport class X509AttributeCertificate extends AsnData<AttributeCertificate> {\n public readonly serialNumber: string;\n\n public readonly version: number;\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly issuer: GeneralName[];\n\n public holder: Holder;\n\n public readonly type = 'X.509 Attribute Certificate';\n\n public readonly tag = PemConverter.AttributeCertificateTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), AttributeCertificate);\n\n const { acinfo } = this.asn;\n\n this.serialNumber = Convert.ToHex(acinfo.serialNumber);\n this.version = acinfo.version;\n\n const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;\n\n if (!notBefore) {\n throw new Error('Cannot get \\'notBefore\\' value');\n }\n\n this.notBefore = notBefore;\n\n const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;\n\n if (!notAfter) {\n throw new Error('Cannot get \\'notAfter\\' value');\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n this.issuer = acinfo.issuer.v1Form || acinfo.issuer.v2Form?.issuerName;\n this.holder = acinfo.holder;\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n\n return {\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public parseExtensions() {\n const { acinfo } = this.asn;\n\n if (acinfo.extensions) {\n this.extensions = acinfo.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public parseAttributes() {\n const { acinfo } = this.asn;\n\n if (acinfo.attributes) {\n this.attributes = acinfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public async getThumbprint(\n algorithm = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get commonName(): string {\n return `attribute-certificate-${this.thumbprints['SHA-1']}`;\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return PemConverter.encode(this.raw, this.tag);\n case 'base64url':\n return Convert.ToBase64Url(this.raw);\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.attrCert.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.attrCert.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { CertificateList, Time } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\nimport { Download } from '../utils';\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { PemConverter } from './pem_converter';\nimport {\n certificateRawToBuffer,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport interface IRevokedCertificate {\n userCertificate: ArrayBuffer;\n revocationDate: Time;\n crlEntryExtensions?: Extension<TExtensionValue>[];\n}\n\nexport class X509Crl extends AsnData<CertificateList> {\n public readonly issuer: INameJSON[];\n\n public readonly version: number;\n\n public readonly lastUpdate: Date;\n\n public readonly nextUpdate: Date;\n\n public extensions: Extension<TExtensionValue>[];\n\n public revokedCertificates: IRevokedCertificate[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly type = 'X.509 Certificate Revocation List';\n\n public readonly tag = PemConverter.CrlTag;\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificateList);\n\n const { tbsCertList } = this.asn;\n\n this.issuer = new Name(tbsCertList.issuer).toJSON();\n this.version = tbsCertList.version + 1;\n this.lastUpdate = tbsCertList.thisUpdate.getTime();\n this.nextUpdate = tbsCertList.nextUpdate.getTime();\n\n this.revokedCertificates = (tbsCertList.revokedCertificates || [])\n .map((revokedCertificate) => ({\n revocationDate: revokedCertificate.revocationDate,\n userCertificate: revokedCertificate.userCertificate,\n crlEntryExtensions: revokedCertificate.crlEntryExtensions\n ?.map((e) => new Extension(AsnConvert.serialize(e))),\n }));\n }\n\n public async getThumbprint(\n algorithm = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public parseExtensions() {\n const { tbsCertList } = this.asn;\n\n if (tbsCertList.crlExtensions) {\n this.extensions = tbsCertList.crlExtensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public toString(format: 'pem' | 'base64' | 'base64url' = 'pem'): string {\n switch (format) {\n case 'pem':\n return PemConverter.encode(this.raw, this.tag);\n case 'base64url':\n return Convert.ToBase64Url(this.raw);\n default:\n return Convert.ToBase64(this.raw);\n }\n }\n\n public downloadAsPEM(name?: string) {\n Download.crl.asPEM(\n this.toString('pem'),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.crl.asDER(\n this.raw,\n name || this.commonName,\n );\n }\n}\n"],"names":["Convert"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  var __awaiter=this&&this.__awaiter||function(t,e,r,a){function o(t){return t instanceof r?t:new r((function(e){e(t)}))}return new(r||(r=Promise))((function(r,i){function n(t){try{c(a.next(t))}catch(t){i(t)}}function s(t){try{c(a["throw"](t))}catch(t){i(t)}}function c(t){t.done?r(t.value):o(t.value).then(n,s)}c((a=a.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,o,i,n;return n={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(n[Symbol.iterator]=function(){return this}),n;function s(t){return function(e){return c([t,e])}}function c(s){if(a)throw new TypeError("Generator is already executing.");while(n&&(n=0,s[0]&&(r=0)),r)try{if(a=1,o&&(i=s[0]&2?o["return"]:s[0]?o["throw"]||((i=o["return"])&&i.call(o),0):o.next)&&!(i=i.call(o,s[1])).done)return i;if(o=0,i)s=[s[0]&2,i.value];switch(s[0]){case 0:case 1:i=s;break;case 4:r.label++;return{value:s[1],done:false};case 5:r.label++;o=s[1];s=[0];continue;case 7:s=r.ops.pop();r.trys.pop();continue;default:if(!(i=r.trys,i=i.length>0&&i[i.length-1])&&(s[0]===6||s[0]===2)){r=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){r.label=s[1];break}if(s[0]===6&&r.label<i[1]){r.label=i[1];i=s;break}if(i&&r.label<i[2]){r.label=i[2];r.ops.push(s);break}if(i[2])r.ops.pop();r.trys.pop();continue}s=e.call(t,r)}catch(t){s=[6,t];o=0}finally{a=i=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var a=0,o=e.length,i;a<o;a++){if(i||!(a in e)){if(!i)i=Array.prototype.slice.call(e,0,a);i[a]=e[a]}}return t.concat(i||Array.prototype.slice.call(e))};
2
2
  /*!
3
3
  * © Peculiar Ventures https://peculiarventures.com/ - MIT License
4
- */System.register(["./p-BFenL1ap.system.js","./p-L1KL0R34.system.js","./p-DgcB4Nqx.system.js","./p-BRhx1gbw.system.js","./p-BBgwMHRZ.system.js","./p-BP2bmYR2.system.js","./p-B2YrZuK2.system.js"],(function(t){"use strict";var e,r,a,o,i,n,s,c,l,v,p,d,h,u,b,g;return{setters:[function(t){e=t.h;r=t.r;a=t.c;o=t.H},function(t){i=t.X},function(t){n=t.Y;s=t.Z;c=t._},function(t){l=t.T;v=t.B},function(t){p=t.D;d=t.L;h=t.C},function(t){u=t.D},function(t){b=t.a;g=t.A}],execute:function(){
4
+ */System.register(["./p-BFenL1ap.system.js","./p-DRoyzOgk.system.js","./p-CDh6shXP.system.js","./p-Cm-ylIxb.system.js","./p-BBgwMHRZ.system.js","./p-BP2bmYR2.system.js","./p-B2YrZuK2.system.js"],(function(t){"use strict";var e,r,a,o,i,n,s,c,l,v,p,d,h,b,u,g;return{setters:[function(t){e=t.h;r=t.r;a=t.c;o=t.H},function(t){i=t.X},function(t){n=t.Y;s=t.Z;c=t._},function(t){l=t.T;v=t.B},function(t){p=t.D;d=t.L;h=t.C},function(t){b=t.D},function(t){u=t.a;g=t.A}],execute:function(){
5
5
  /**
6
6
  * @license
7
7
  * Copyright (c) Peculiar Ventures, LLC.
@@ -9,5 +9,5 @@ var __awaiter=this&&this.__awaiter||function(t,e,r,a){function o(t){return t ins
9
9
  * This source code is licensed under the MIT license found in the
10
10
  * LICENSE file in the root directory of this source tree.
11
11
  */
12
- var f=function(t){var r=t.certificate,a=t.showIssuer;var o=function(t,r){return e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},t)),e("td",null,e(l,{variant:"b2",color:"black"},r)))};return e("table",null,e("tbody",null,o(n.getString("subjectName"),r.subjectToString()),a&&o(n.getString("issuerName"),r.issuerToString()),o(n.getString("serialNumber"),r.serialNumber),o(n.getString("version"),r.version),o(n.getString("validity"),r.validity),o(n.getString("issued"),s(r.notBefore)),o(n.getString("expired"),s(r.notAfter))))};var y="*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:var(--pv-size-base-6);min-width:var(--pv-size-base-6);padding:0 var(--pv-size-base-2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--pv-size-base-2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%;word-wrap:break-word;min-width:280px;overflow:auto;position:relative}.search_section{padding:var(--pv-size-base-4);border-bottom:1px solid var(--pv-color-gray-4)}.input_search{height:var(--pv-size-base-8);width:100%;outline:none;background-color:var(--pv-color-gray-1);padding:0 var(--pv-size-base-2);border:1px solid var(--pv-color-gray-7);border-radius:4px;-webkit-transition:background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s;transition:background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s}.input_search::-webkit-input-placeholder{color:var(--pv-color-gray-9)}.input_search::-moz-placeholder{color:var(--pv-color-gray-9)}.input_search:-ms-input-placeholder{color:var(--pv-color-gray-9)}.input_search::-ms-input-placeholder{color:var(--pv-color-gray-9)}.input_search::placeholder{color:var(--pv-color-gray-9)}table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}table td,table th{border-bottom:1px solid var(--pv-color-gray-4);vertical-align:top;text-align:left}table td:first-child,table th:first-child{padding-right:0;width:var(--pv-size-base-10)}table td:last-child,table th:last-child{padding-left:0;width:var(--pv-size-base-10)}table th{padding:var(--pv-size-base-2) var(--pv-size-base-4)}table th.col_action{padding:0}table td{padding:var(--pv-size-base-4)}table tr.m_expanded{background:var(--pv-color-gray-1)}table tr.m_expanded>td{border-bottom:none}table tr.expanded_summary{background:var(--pv-color-gray-1)}table tr.expanded_summary table{table-layout:initial}table tr.expanded_summary table td{border-bottom:none;padding:var(--pv-size-base-2)}table tr.expanded_summary table td:first-child{width:200px}table tr.expanded_summary table td:last-child{width:auto}.button_table_cell{margin-top:-3px}.status_wrapper{text-align:center;height:var(--pv-size-base-16);vertical-align:middle}.modal_wrapper{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-animation:fadeIn 200ms;animation:fadeIn 200ms;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.modal_backdrop{background:var(--pv-color-black);z-index:-1;position:fixed;top:0;right:0;bottom:0;left:0;opacity:0.5}.modal_container{background:var(--pv-color-white);width:100%;display:-ms-flexbox;display:flex;max-height:calc(100% - 60px);-ms-flex-direction:column;flex-direction:column;margin:var(--pv-size-base-6);position:relative;outline:none;-webkit-box-shadow:var(--pv-shadow-dark-hight);box-shadow:var(--pv-shadow-dark-hight);overflow:hidden;border:0px;padding:0px;max-width:640px;border-radius:4px}.modal_header{padding:var(--pv-size-base-3) var(--pv-size-base-4);display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:var(--pv-size-base-2);border-bottom:1px solid var(--pv-color-gray-5)}.modal_content{-ms-flex:1 1 auto;flex:1 1 auto;overflow:auto}:host([data-mobile-screen-view=true]) table,:host([data-mobile-screen-view=true]) tbody,:host([data-mobile-screen-view=true]) tr,:host([data-mobile-screen-view=true]) td{display:block;width:100% !important;padding:0;border:none}:host([data-mobile-screen-view=true]) thead{display:none}:host([data-mobile-screen-view=true]) table tr{padding:var(--pv-size-base-2) 0}:host([data-mobile-screen-view=true]) table .expanded_summary{padding:0}:host([data-mobile-screen-view=true]) table .certificate_row{border-bottom:1px solid var(--pv-color-gray-5);padding:var(--pv-size-base-2) var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) table .certificate_row_actions{padding-top:var(--pv-size-base-6)}:host([data-mobile-screen-view=true]) table .certificate_row_actions td{display:-ms-flexbox;display:flex;-ms-flex-pack:right;justify-content:right;gap:var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) .button_table_cell{margin-top:0}";var w=t("peculiar_certificates_viewer",function(){function t(t){var e=this;r(this,t);this.detailsOpen=a(this,"detailsOpen");this.detailsClose=a(this,"detailsClose");this.isHasRoots=false;this.certificates=[];this.filterWithSearch=true;this.highlightWithSearch=true;this.mobileMediaQueryString="(max-width: 900px)";this.mobileScreenView=false;this.search="";this.certificatesDecoded=[];this.isDecodeInProcess=true;this.handleClickDetails=function(t){e.certificateSelectedForDetails=t;e.detailsOpen.emit(t)};this.handleModalClose=function(){e.certificateSelectedForDetails=undefined;e.detailsClose.emit()};this.handleSearch=function(t){e.search=t.target.value.trim()}}t.prototype.handleMediaQueryChange=function(t){this.mobileScreenView=t.matches};t.prototype.componentWillLoad=function(){this.certificatesDecodeAndSet();{this.mobileMediaQuery=window.matchMedia(this.mobileMediaQueryString);this.mobileMediaQuery.addEventListener("change",this.handleMediaQueryChange.bind(this));this.mobileScreenView=this.mobileMediaQuery.matches}};t.prototype.disconnectedCallback=function(){this.mobileMediaQuery.removeEventListener("change",this.handleMediaQueryChange.bind(this))};t.prototype.watchCertificates=function(t,e){if(JSON.stringify(t)!==JSON.stringify(e)){this.certificatesDecodeAndSet()}};t.prototype.certificatesDecodeAndSet=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,r,a,o,n,s;return __generator(this,(function(c){switch(c.label){case 0:t=false;if(!Array.isArray(this.certificates)){return[2]}e=[];r=0,a=this.certificates;c.label=1;case 1:if(!(r<a.length))return[3,6];o=a[r];c.label=2;case 2:c.trys.push([2,4,,5]);n=new i(o.value);return[4,n.getThumbprint("SHA-1")];case 3:c.sent();e.push({body:n,tests:o.tests,name:o.name});if(!t&&n.isRoot){t=true}return[3,5];case 4:s=c.sent();console.error("Error certificate parse:",s);return[3,5];case 5:r++;return[3,1];case 6:this.isHasRoots=t;this.isDecodeInProcess=false;this.certificatesDecoded=e;return[2]}}))}))};t.prototype.handleClickDownloadAsPem=function(t){t.body.downloadAsPEM(t.name||t.body.commonName)};t.prototype.handleClickDownloadAsDer=function(t){t.body.downloadAsDER(t.name||t.body.commonName)};t.prototype.handleClickRow=function(t){var e=this.expandedRow===t;this.expandedRow=e?undefined:t};t.prototype.getMaxColSpanValue=function(){var t=5;if(!this.isHasRoots){t+=1}return t};t.prototype.renderCertificateButtonActions=function(t){var r=this;var a,o,i;var s=t.tests&&(t.tests.expired||t.tests.revoked||t.tests.valid);return e("peculiar-button-menu",{class:"button_table_cell",groups:__spreadArray([{title:n.getString("previewCertificate"),options:[{text:n.getString("viewDetails"),startIcon:e(p,null),onClick:function(){return r.handleClickDetails(t.body)}}]},{title:n.getString("downloadOptions"),options:[{text:n.getString("download.pem"),startIcon:e(u,null),onClick:function(){return r.handleClickDownloadAsPem(t)}},{text:n.getString("download.der"),startIcon:e(u,null),onClick:function(){return r.handleClickDownloadAsDer(t)}}]}],s?[{title:n.getString("testURLs"),options:__spreadArray(__spreadArray(__spreadArray([],((a=t.tests)===null||a===void 0?void 0:a.valid)?[{text:n.getString("valid"),href:t.tests.valid,startIcon:e(d,null)}]:[],true),((o=t.tests)===null||o===void 0?void 0:o.revoked)?[{text:n.getString("revoked"),href:t.tests.revoked,startIcon:e(d,null)}]:[],true),((i=t.tests)===null||i===void 0?void 0:i.expired)?[{text:n.getString("expired"),href:t.tests.expired,startIcon:e(d,null)}]:[],true)}]:[],true)})};t.prototype.renderExpandedRow=function(t){var r=this.getMaxColSpanValue()-2;return e("tr",{class:"expanded_summary"},e("td",null),e("td",{colSpan:r},e(f,{certificate:t,showIssuer:!t.isRoot})),e("td",null))};t.prototype.renderCertificatesRows=function(){var t=this;var r=this.highlightWithSearch?this.search:"";var a=[];this.certificatesDecoded.forEach((function(o,i){var s=i===t.expandedRow;var p=c[o.body.signature.algorithm]||o.body.signature.algorithm;if(t.filterWithSearch&&t.search){var d=[p,o.body.issuerCommonName,o.name,o.body.commonName,o.body.thumbprints["SHA-1"]].join(" ").toLowerCase();if(d.indexOf(t.search.toLowerCase())===-1){return}}if(t.mobileScreenView){a.push([e("tr",{class:{certificate_row:true,m_expanded:s},key:o.body.thumbprints["SHA-1"]},e("td",null,e("table",null,e("tbody",null,!t.isHasRoots&&e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("issuer"))),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},o.body.issuerCommonName)))),e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("name"))),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},o.name||o.body.commonName)))),e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("publicKey"))),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},p)))),e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("fingerprint"),"  (SHA-1)")),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},o.body.thumbprints["SHA-1"])))),s&&t.renderExpandedRow(o.body),e("tr",{class:"certificate_row_actions"},e("td",null,t.renderCertificateButtonActions(o),e(v,{onClick:t.handleClickRow.bind(t,i),startIcon:s?e(b,null):e(g,null)})))))))]);return}a.push([e("tr",{class:{m_expanded:s},key:o.body.thumbprints["SHA-1"]},e("td",null,e(v,{class:"button_table_cell",onClick:t.handleClickRow.bind(t,i),startIcon:s?e(b,null):e(g,null)})),!t.isHasRoots&&e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},o.body.issuerCommonName))),e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},o.name||o.body.commonName))),e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},p))),e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},o.body.thumbprints["SHA-1"]))),e("td",null,t.renderCertificateButtonActions(o))),s&&t.renderExpandedRow(o.body)])}));return a};t.prototype.renderCertificateDetailsModal=function(){if(!this.certificateSelectedForDetails){return null}return e("div",{class:"modal_wrapper",role:"presentation","aria-hidden":"false",part:"presentation"},e("div",{class:"modal_backdrop",onClick:this.handleModalClose,"aria-hidden":"true"}),e("div",{class:"modal_container",role:"dialog",part:"presentation_container"},e("header",{class:"modal_header"},e(l,{variant:"h4"},n.getString("certificateDetails")),e(v,{onClick:this.handleModalClose,startIcon:e(h,null)})),e("div",{class:"modal_content"},e("peculiar-certificate-viewer",{certificate:this.certificateSelectedForDetails,mobileMediaQueryString:this.mobileMediaQueryString}))))};t.prototype.renderSearch=function(){if(!this.filterWithSearch&&!this.highlightWithSearch){return null}return e("div",{class:"search_section"},e("input",{onInput:this.handleSearch,type:"search",value:"",class:"input_search t-b3 c-black",disabled:!this.certificatesDecoded.length,placeholder:"Search"}))};t.prototype.renderEmptyState=function(){var t=this.getMaxColSpanValue();return e("tr",null,e("td",{class:"status_wrapper",colSpan:t},e(l,{variant:"b1"},"There are no certificates available.")))};t.prototype.renderEmptySearchState=function(){var t=this.getMaxColSpanValue();return e("tr",null,e("td",{class:"status_wrapper",colSpan:t},e(l,{variant:"b1"},"No results found for “",this.search,"“")))};t.prototype.renderLoadingState=function(){return e("div",{class:"loading_container"},e("peculiar-circular-progress",null))};t.prototype.renderTableBody=function(){if(this.isDecodeInProcess){return null}if(!this.certificatesDecoded.length){return this.renderEmptyState()}var t=this.renderCertificatesRows();if(this.search&&!t.length){return this.renderEmptySearchState()}return t};t.prototype.render=function(){return e(o,{key:"e10ac3070a3cb75cb9a281a999fec42ef28d593d","data-mobile-screen-view":String(this.mobileScreenView)},this.renderSearch(),e("table",{key:"abc765a09c9537c36500143c6caffa688910483e"},!this.mobileScreenView&&e("thead",{key:"c948fc3f9929deda81bfe9f1205b5c6f6032d256"},e("tr",{key:"7deae387a944910a82588698b61d55c0ba64ff55"},e("th",{key:"70927a2c00545a1c500e4312ed30022dc24df23a"}),!this.isHasRoots&&e("th",{key:"af4811bbd78a46f4ab1e96d9a2f3251e59d5d773",class:"col_issuer"},e(l,{key:"11064fc9659acfb8856ad96aba1192972b27e0e3",variant:"s2"},n.getString("issuer"))),e("th",{key:"7898e55528b973f8dddebff2e86763fc4f0ad013",class:"col_name"},e(l,{key:"e5bae939345bce44423efaaee774678a163d51a6",variant:"s2"},n.getString("name"))),e("th",{key:"83128f3a2812996df534b95690d6268bf0f096ec",class:"col_public_key"},e(l,{key:"05e7f862d2336e2144ddd9438bb2636625abed36",variant:"s2"},n.getString("publicKey"))),e("th",{key:"1387d00b085a524bd97d96e68e07f3e82ee57796",class:"col_fingerprint"},e(l,{key:"393eac698d27bb9a17a2ae5cec18a0658f510f78",variant:"s2"},n.getString("fingerprint"),"  (SHA-1)")),e("th",{key:"ffdba17371ff65a6df244edefe55bb81a9e821c8"}))),e("tbody",{key:"8e44c28a8d4bc64fe76c73d67054df3dcef7a7c1"},this.renderTableBody())),this.renderCertificateDetailsModal(),this.isDecodeInProcess&&this.renderLoadingState())};Object.defineProperty(t,"watchers",{get:function(){return{certificates:["watchCertificates"]}},enumerable:false,configurable:true});return t}());w.style=y}}}));
13
- //# sourceMappingURL=p-63aa01ad.system.entry.js.map
12
+ var f=function(t){var r=t.certificate,a=t.showIssuer;var o=function(t,r){return e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},t)),e("td",null,e(l,{variant:"b2",color:"black"},r)))};return e("table",null,e("tbody",null,o(n.getString("subjectName"),r.subjectToString()),a&&o(n.getString("issuerName"),r.issuerToString()),o(n.getString("serialNumber"),r.serialNumber),o(n.getString("version"),r.version),o(n.getString("validity"),r.validity),o(n.getString("issued"),s(r.notBefore)),o(n.getString("expired"),s(r.notAfter))))};var y="*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:var(--pv-size-base-6);min-width:var(--pv-size-base-6);padding:0 var(--pv-size-base-2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--pv-size-base-2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%;word-wrap:break-word;min-width:280px;overflow:auto;position:relative}.search_section{padding:var(--pv-size-base-4);border-bottom:1px solid var(--pv-color-gray-4)}.input_search{height:var(--pv-size-base-8);width:100%;outline:none;background-color:var(--pv-color-gray-1);padding:0 var(--pv-size-base-2);border:1px solid var(--pv-color-gray-7);border-radius:4px;-webkit-transition:background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s;transition:background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s}.input_search::-webkit-input-placeholder{color:var(--pv-color-gray-9)}.input_search::-moz-placeholder{color:var(--pv-color-gray-9)}.input_search:-ms-input-placeholder{color:var(--pv-color-gray-9)}.input_search::-ms-input-placeholder{color:var(--pv-color-gray-9)}.input_search::placeholder{color:var(--pv-color-gray-9)}table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}table td,table th{border-bottom:1px solid var(--pv-color-gray-4);vertical-align:top;text-align:left}table td:first-child,table th:first-child{padding-right:0;width:var(--pv-size-base-10)}table td:last-child,table th:last-child{padding-left:0;width:var(--pv-size-base-10)}table th{padding:var(--pv-size-base-2) var(--pv-size-base-4)}table th.col_action{padding:0}table td{padding:var(--pv-size-base-4)}table tr.m_expanded{background:var(--pv-color-gray-1)}table tr.m_expanded>td{border-bottom:none}table tr.expanded_summary{background:var(--pv-color-gray-1)}table tr.expanded_summary table{table-layout:initial}table tr.expanded_summary table td{border-bottom:none;padding:var(--pv-size-base-2)}table tr.expanded_summary table td:first-child{width:200px}table tr.expanded_summary table td:last-child{width:auto}.button_table_cell{margin-top:-3px}.status_wrapper{text-align:center;height:var(--pv-size-base-16);vertical-align:middle}.modal_wrapper{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-animation:fadeIn 200ms;animation:fadeIn 200ms;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.modal_backdrop{background:var(--pv-color-black);z-index:-1;position:fixed;top:0;right:0;bottom:0;left:0;opacity:0.5}.modal_container{background:var(--pv-color-white);width:100%;display:-ms-flexbox;display:flex;max-height:calc(100% - 60px);-ms-flex-direction:column;flex-direction:column;margin:var(--pv-size-base-6);position:relative;outline:none;-webkit-box-shadow:var(--pv-shadow-dark-hight);box-shadow:var(--pv-shadow-dark-hight);overflow:hidden;border:0px;padding:0px;max-width:640px;border-radius:4px}.modal_header{padding:var(--pv-size-base-3) var(--pv-size-base-4);display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:var(--pv-size-base-2);border-bottom:1px solid var(--pv-color-gray-5)}.modal_content{-ms-flex:1 1 auto;flex:1 1 auto;overflow:auto}:host([data-mobile-screen-view=true]) table,:host([data-mobile-screen-view=true]) tbody,:host([data-mobile-screen-view=true]) tr,:host([data-mobile-screen-view=true]) td{display:block;width:100% !important;padding:0;border:none}:host([data-mobile-screen-view=true]) thead{display:none}:host([data-mobile-screen-view=true]) table tr{padding:var(--pv-size-base-2) 0}:host([data-mobile-screen-view=true]) table .expanded_summary{padding:0}:host([data-mobile-screen-view=true]) table .certificate_row{border-bottom:1px solid var(--pv-color-gray-5);padding:var(--pv-size-base-2) var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) table .certificate_row_actions{padding-top:var(--pv-size-base-6)}:host([data-mobile-screen-view=true]) table .certificate_row_actions td{display:-ms-flexbox;display:flex;-ms-flex-pack:right;justify-content:right;gap:var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) .button_table_cell{margin-top:0}";var m=t("peculiar_certificates_viewer",function(){function t(t){var e=this;r(this,t);this.detailsOpen=a(this,"detailsOpen");this.detailsClose=a(this,"detailsClose");this.isHasRoots=false;this.certificates=[];this.filterWithSearch=true;this.highlightWithSearch=true;this.mobileMediaQueryString="(max-width: 900px)";this.mobileScreenView=false;this.search="";this.certificatesDecoded=[];this.isDecodeInProcess=true;this.handleClickDetails=function(t){e.certificateSelectedForDetails=t;e.detailsOpen.emit(t)};this.handleModalClose=function(){e.certificateSelectedForDetails=undefined;e.detailsClose.emit()};this.handleSearch=function(t){var r=t.target;e.search=r.value.trim()}}t.prototype.handleMediaQueryChange=function(t){this.mobileScreenView=t.matches};t.prototype.componentWillLoad=function(){this.certificatesDecodeAndSet();{this.mobileMediaQuery=window.matchMedia(this.mobileMediaQueryString);this.mobileMediaQuery.addEventListener("change",this.handleMediaQueryChange.bind(this));this.mobileScreenView=this.mobileMediaQuery.matches}};t.prototype.disconnectedCallback=function(){this.mobileMediaQuery.removeEventListener("change",this.handleMediaQueryChange.bind(this))};t.prototype.watchCertificates=function(t,e){if(JSON.stringify(t)!==JSON.stringify(e)){this.certificatesDecodeAndSet()}};t.prototype.certificatesDecodeAndSet=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,r,a,o,n,s;return __generator(this,(function(c){switch(c.label){case 0:t=false;if(!Array.isArray(this.certificates)){return[2]}e=[];r=0,a=this.certificates;c.label=1;case 1:if(!(r<a.length))return[3,6];o=a[r];c.label=2;case 2:c.trys.push([2,4,,5]);n=new i(o.value);return[4,n.getThumbprint("SHA-1")];case 3:c.sent();e.push({body:n,tests:o.tests,name:o.name});if(!t&&n.isRoot){t=true}return[3,5];case 4:s=c.sent();console.error("Error certificate parse:",s);return[3,5];case 5:r++;return[3,1];case 6:this.isHasRoots=t;this.isDecodeInProcess=false;this.certificatesDecoded=e;return[2]}}))}))};t.prototype.getCertificateName=function(t){if(typeof t.name==="function"){return t.name(t.body)}return t.name||t.body.commonName};t.prototype.handleClickDownloadAsPem=function(t){t.body.downloadAsPEM(this.getCertificateName(t))};t.prototype.handleClickDownloadAsDer=function(t){t.body.downloadAsDER(this.getCertificateName(t))};t.prototype.handleClickRow=function(t){var e=this.expandedRow===t;this.expandedRow=e?undefined:t};t.prototype.getMaxColSpanValue=function(){var t=5;if(!this.isHasRoots){t+=1}return t};t.prototype.renderCertificateButtonActions=function(t){var r=this;var a,o,i;var s=t.tests&&(t.tests.expired||t.tests.revoked||t.tests.valid);return e("peculiar-button-menu",{class:"button_table_cell",groups:__spreadArray([{title:n.getString("previewCertificate"),options:[{text:n.getString("viewDetails"),startIcon:e(p,null),onClick:function(){return r.handleClickDetails(t.body)}}]},{title:n.getString("downloadOptions"),options:[{text:n.getString("download.pem"),startIcon:e(b,null),onClick:function(){return r.handleClickDownloadAsPem(t)}},{text:n.getString("download.der"),startIcon:e(b,null),onClick:function(){return r.handleClickDownloadAsDer(t)}}]}],s?[{title:n.getString("testURLs"),options:__spreadArray(__spreadArray(__spreadArray([],((a=t.tests)===null||a===void 0?void 0:a.valid)?[{text:n.getString("valid"),href:t.tests.valid,startIcon:e(d,null)}]:[],true),((o=t.tests)===null||o===void 0?void 0:o.revoked)?[{text:n.getString("revoked"),href:t.tests.revoked,startIcon:e(d,null)}]:[],true),((i=t.tests)===null||i===void 0?void 0:i.expired)?[{text:n.getString("expired"),href:t.tests.expired,startIcon:e(d,null)}]:[],true)}]:[],true)})};t.prototype.renderExpandedRow=function(t){var r=this.getMaxColSpanValue()-2;return e("tr",{class:"expanded_summary"},e("td",null),e("td",{colSpan:r},e(f,{certificate:t,showIssuer:!t.isRoot})),e("td",null))};t.prototype.renderCertificatesRows=function(){var t=this;var r=this.highlightWithSearch?this.search:"";var a=[];this.certificatesDecoded.forEach((function(o,i){var s=i===t.expandedRow;var p=c[o.body.signature.algorithm]||o.body.signature.algorithm;if(t.filterWithSearch&&t.search){var d=[p,o.body.issuerCommonName,t.getCertificateName(o),o.body.thumbprints["SHA-1"]].join(" ").toLowerCase();if(d.indexOf(t.search.toLowerCase())===-1){return}}if(t.mobileScreenView){a.push([e("tr",{class:{certificate_row:true,m_expanded:s},key:o.body.thumbprints["SHA-1"]},e("td",null,e("table",null,e("tbody",null,!t.isHasRoots&&e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("issuer"))),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},o.body.issuerCommonName)))),e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("name"))),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},t.getCertificateName(o))))),e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("publicKey"))),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},p)))),e("tr",null,e("td",null,e(l,{variant:"b2",color:"gray-9"},n.getString("fingerprint"),"  (SHA-1)")),e("td",null,e(l,{variant:"b2",color:"black"},e("peculiar-highlight-words",{search:r},o.body.thumbprints["SHA-1"])))),s&&t.renderExpandedRow(o.body),e("tr",{class:"certificate_row_actions"},e("td",null,t.renderCertificateButtonActions(o),e(v,{startIcon:s?e(u,null):e(g,null),onClick:t.handleClickRow.bind(t,i)})))))))]);return}a.push([e("tr",{class:{m_expanded:s},key:o.body.thumbprints["SHA-1"]},e("td",null,e(v,{startIcon:s?e(u,null):e(g,null),class:"button_table_cell",onClick:t.handleClickRow.bind(t,i)})),!t.isHasRoots&&e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},o.body.issuerCommonName))),e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},t.getCertificateName(o)))),e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},p))),e("td",null,e(l,null,e("peculiar-highlight-words",{search:r},o.body.thumbprints["SHA-1"]))),e("td",null,t.renderCertificateButtonActions(o))),s&&t.renderExpandedRow(o.body)])}));return a};t.prototype.renderCertificateDetailsModal=function(){if(!this.certificateSelectedForDetails){return null}return e("div",{class:"modal_wrapper",role:"presentation","aria-hidden":"false",part:"presentation"},e("div",{class:"modal_backdrop","aria-hidden":"true",onClick:this.handleModalClose}),e("div",{class:"modal_container",role:"dialog",part:"presentation_container"},e("header",{class:"modal_header"},e(l,{variant:"h4"},n.getString("certificateDetails")),e(v,{startIcon:e(h,null),onClick:this.handleModalClose})),e("div",{class:"modal_content"},e("peculiar-certificate-viewer",{certificate:this.certificateSelectedForDetails,mobileMediaQueryString:this.mobileMediaQueryString}))))};t.prototype.renderSearch=function(){if(!this.filterWithSearch&&!this.highlightWithSearch){return null}return e("div",{class:"search_section"},e("input",{type:"search",value:"",class:"input_search t-b3 c-black",disabled:!this.certificatesDecoded.length,placeholder:"Search",onInput:this.handleSearch}))};t.prototype.renderEmptyState=function(){var t=this.getMaxColSpanValue();return e("tr",null,e("td",{class:"status_wrapper",colSpan:t},e(l,{variant:"b1"},"There are no certificates available.")))};t.prototype.renderEmptySearchState=function(){var t=this.getMaxColSpanValue();return e("tr",null,e("td",{class:"status_wrapper",colSpan:t},e(l,{variant:"b1"},"No results found for “",this.search,"“")))};t.prototype.renderLoadingState=function(){return e("div",{class:"loading_container"},e("peculiar-circular-progress",null))};t.prototype.renderTableBody=function(){if(this.isDecodeInProcess){return null}if(!this.certificatesDecoded.length){return this.renderEmptyState()}var t=this.renderCertificatesRows();if(this.search&&!t.length){return this.renderEmptySearchState()}return t};t.prototype.render=function(){return e(o,{key:"894edb33a53c1128d812c2fd7a5b230a4b13493c","data-mobile-screen-view":String(this.mobileScreenView)},this.renderSearch(),e("table",{key:"998d37ab98be6743f1564fafb4ce9fc70b79e358"},!this.mobileScreenView&&e("thead",{key:"4728e09450b6285cbc2f69cf0a0e06135910558f"},e("tr",{key:"70bf5be60e50b9d7109e27128b661044778e0ded"},e("th",{key:"cf0fef5df1b42d0bce49d3bf0af2d91b82de6d05"}),!this.isHasRoots&&e("th",{key:"59f00d345883dfb3c81a97278583821543ce6808",class:"col_issuer"},e(l,{key:"54ce8fba1ab5355ac1f82ccc3aa62945351a3632",variant:"s2"},n.getString("issuer"))),e("th",{key:"9aea7911edafca1482f31e2ca3316d2cde40fd78",class:"col_name"},e(l,{key:"2a0145b0cc56543ed4b5170a8773c3c43e5e64f9",variant:"s2"},n.getString("name"))),e("th",{key:"9eab414d9b1558d6a5b9938f55165aeca5baa54e",class:"col_public_key"},e(l,{key:"cbdcb1013bbf12ac88e63ca2d268c55854803297",variant:"s2"},n.getString("publicKey"))),e("th",{key:"06adb89146693583a0dad86644b2c8b399e25c0e",class:"col_fingerprint"},e(l,{key:"eca0440721f16953219f014edb8d3742f312f704",variant:"s2"},n.getString("fingerprint"),"  (SHA-1)")),e("th",{key:"56b7fdf83f5c45cf524a8cce81dbca584b9b5fa8"}))),e("tbody",{key:"01ccda1abfa846a8b0cdc00588b106398358ed88"},this.renderTableBody())),this.renderCertificateDetailsModal(),this.isDecodeInProcess&&this.renderLoadingState())};Object.defineProperty(t,"watchers",{get:function(){return{certificates:["watchCertificates"]}},enumerable:false,configurable:true});return t}());m.style=y}}}));
13
+ //# sourceMappingURL=p-44648a8e.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CertificateSummary","props","certificate","showIssuer","renderRow","name","value","h","Typography","variant","color","l10n","getString","subjectToString","issuerToString","serialNumber","version","validity","dateShort","notBefore","notAfter","certificatesViewerCss","CertificatesViewer","exports","class_1","hostRef","_this","this","isHasRoots","certificates","filterWithSearch","highlightWithSearch","mobileMediaQueryString","mobileScreenView","search","certificatesDecoded","isDecodeInProcess","handleClickDetails","certificateSelectedForDetails","detailsOpen","emit","handleModalClose","undefined","detailsClose","handleSearch","event","target","trim","prototype","handleMediaQueryChange","matches","componentWillLoad","certificatesDecodeAndSet","mobileMediaQuery","window","matchMedia","addEventListener","bind","disconnectedCallback","removeEventListener","watchCertificates","newValue","oldValue","JSON","stringify","hasRoots","Array","isArray","data","_d","_i","length","decoded","X509Certificate","getThumbprint","_e","sent","push","body","tests","isRoot","console","error","error_1","getCertificateName","commonName","handleClickDownloadAsPem","downloadAsPEM","handleClickDownloadAsDer","downloadAsDER","handleClickRow","index","isExpandedRowClicked","expandedRow","getMaxColSpanValue","colSpan","renderCertificateButtonActions","isHasTestURLs","expired","revoked","valid","class","groups","__spreadArray","title","options","text","startIcon","DetailsIcon","onClick","DownloadIcon","_a","href","LinkIcon","_b","_c","renderExpandedRow","renderCertificatesRows","searchHighlight","content","forEach","isExpandedRow","publicKeyValue","OIDs","signature","algorithm","certificateStringForSearch","issuerCommonName","thumbprints","join","toLowerCase","indexOf","certificate_row","m_expanded","key","Button","ArrowTopIcon","ArrowBottomIcon","renderCertificateDetailsModal","role","part","CrossIcon","renderSearch","type","disabled","placeholder","onInput","renderEmptyState","renderEmptySearchState","renderLoadingState","renderTableBody","certificatesRows","render","Host","String"],"sources":["src/components/certificate-summary/certificate-summary.tsx","src/components/certificates-viewer/certificates-viewer.scss?tag=peculiar-certificates-viewer&encapsulation=shadow","src/components/certificates-viewer/certificates-viewer.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { FunctionalComponent, h } from '@stencil/core';\nimport type { X509Certificate } from '../../crypto';\nimport { dateShort, l10n } from '../../utils';\nimport { Typography } from '../typography';\n\ninterface ICertificateSummaryProps {\n certificate: X509Certificate;\n showIssuer?: boolean;\n}\n\nexport const CertificateSummary: FunctionalComponent<ICertificateSummaryProps> = (props) => {\n const {\n certificate,\n showIssuer,\n } = props;\n\n const renderRow = (name: string | string[], value: string | number) => (\n <tr>\n <td>\n <Typography\n variant=\"b2\"\n color=\"gray-9\"\n >\n {name}\n </Typography>\n </td>\n <td>\n <Typography\n variant=\"b2\"\n color=\"black\"\n >\n {value}\n </Typography>\n </td>\n </tr>\n );\n\n return (\n <table>\n <tbody>\n {renderRow(\n l10n.getString('subjectName'),\n certificate.subjectToString(),\n )}\n {showIssuer && renderRow(\n l10n.getString('issuerName'),\n certificate.issuerToString(),\n )}\n\n {renderRow(\n l10n.getString('serialNumber'),\n certificate.serialNumber,\n )}\n {renderRow(\n l10n.getString('version'),\n certificate.version,\n )}\n {renderRow(\n l10n.getString('validity'),\n certificate.validity,\n )}\n {renderRow(\n l10n.getString('issued'),\n dateShort(certificate.notBefore),\n )}\n {renderRow(\n l10n.getString('expired'),\n dateShort(certificate.notAfter),\n )}\n </tbody>\n </table>\n );\n};\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n min-width: 280px;\n overflow: auto;\n position: relative;\n}\n\n.search_section {\n padding: var(--pv-size-base-4);\n border-bottom: 1px solid var(--pv-color-gray-4);\n}\n\n.input_search {\n height: var(--pv-size-base-8);\n width: 100%;\n outline: none;\n background-color: var(--pv-color-gray-1);\n padding: 0 var(--pv-size-base-2);\n border: 1px solid var(--pv-color-gray-7);\n border-radius: 4px;\n transition: background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s;\n &::placeholder {\n color: var(--pv-color-gray-9);\n }\n}\n\ntable {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n td, th {\n border-bottom: 1px solid var(--pv-color-gray-4);\n vertical-align: top;\n text-align: left;\n\n &:first-child {\n padding-right: 0;\n width: var(--pv-size-base-10);\n }\n &:last-child {\n padding-left: 0;\n width: var(--pv-size-base-10);\n }\n }\n\n th {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n\n &.col_action {\n padding: 0;\n }\n }\n\n td {\n padding: var(--pv-size-base-4);\n }\n\n tr {\n &.m_expanded {\n background: var(--pv-color-gray-1);\n\n > td {\n border-bottom: none;\n }\n }\n\n &.expanded_summary {\n background: var(--pv-color-gray-1);\n\n table {\n table-layout: initial;\n\n td {\n border-bottom: none;\n padding: var(--pv-size-base-2);\n\n &:first-child {\n width: 200px;\n }\n\n &:last-child {\n width: auto;\n }\n }\n }\n }\n }\n}\n\n.button_table_cell {\n margin-top: -3px;\n}\n\n.status_wrapper {\n text-align: center;\n height: var(--pv-size-base-16);\n vertical-align: middle;\n}\n\n.modal_wrapper {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n animation: fadeIn 200ms;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.modal_backdrop {\n background: var(--pv-color-black);\n z-index: -1;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0.5;\n}\n\n.modal_container {\n background: var(--pv-color-white);\n width: 100%;\n display: flex;\n max-height: calc(100% - 60px);\n flex-direction: column;\n margin: var(--pv-size-base-6);\n position: relative;\n outline: none;\n box-shadow: var(--pv-shadow-dark-hight);\n overflow: hidden;\n border: 0px;\n padding: 0px;\n max-width: 640px;\n border-radius: 4px;\n}\n\n.modal_header {\n padding: var(--pv-size-base-3) var(--pv-size-base-4);\n display: flex;\n flex: 0 0 auto;\n -webkit-box-pack: justify;\n justify-content: space-between;\n gap: var(--pv-size-base-2);\n border-bottom: 1px solid var(--pv-color-gray-5);\n}\n\n.modal_content {\n flex: 1 1 auto;\n overflow: auto;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tbody, tr, td {\n display: block;\n width: 100% !important;\n padding: 0;\n border: none;\n }\n\n thead {\n display: none;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n }\n\n .expanded_summary {\n padding: 0;\n }\n\n .certificate_row {\n border-bottom: 1px solid var(--pv-color-gray-5);\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n }\n\n .certificate_row_actions {\n padding-top: var(--pv-size-base-6);\n\n td {\n display: flex;\n justify-content: right;\n gap: var(--pv-size-base-4);\n }\n }\n }\n\n .button_table_cell {\n margin-top: 0;\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Event,\n EventEmitter,\n Build,\n} from '@stencil/core';\nimport { X509Certificate } from '../../crypto';\nimport { OIDs } from '../../constants/oids';\nimport { l10n } from '../../utils';\nimport { Typography } from '../typography';\nimport { CertificateSummary } from '../certificate-summary';\nimport { Button } from '../button';\nimport {\n DownloadIcon,\n LinkIcon,\n DetailsIcon,\n ArrowBottomIcon,\n ArrowTopIcon,\n CrossIcon,\n} from '../icons';\n\nexport interface ICertificate {\n value: string;\n name?: string | ((certificate: X509Certificate) => string);\n tests?: {\n valid?: string;\n revoked?: string;\n expired?: string;\n };\n}\n\ninterface ICertificateDecoded {\n body: X509Certificate;\n tests?: ICertificate['tests'];\n name?: ICertificate['name'];\n}\n\n@Component({\n tag: 'peculiar-certificates-viewer',\n styleUrl: 'certificates-viewer.scss',\n shadow: true,\n})\nexport class CertificatesViewer {\n private isHasRoots = false;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * List of certificates values for decode and show in the list.\n * <br />\n * **NOTE**: If you do not provide a `name` value when\n * invocing the component it will take the first Subject CN value.\n * <br />\n * **NOTE**: If you do not provide a `tests` this column will be ommited from the rendered page.\n * <br />\n * **NOTE**: If the supplied certificates are self-signed the issuer column will be ommited.\n */\n @Prop() certificates: ICertificate[] = [];\n\n /**\n * Use filter in the list when search is changed.\n */\n @Prop() filterWithSearch = true;\n\n /**\n * Use highlight chapters in the list when search is changed.\n */\n @Prop() highlightWithSearch = true;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n /**\n * Emitted when the user open certificate details modal.\n */\n @Event() detailsOpen!: EventEmitter<X509Certificate>;\n\n /**\n * Emitted when the user close certificate details modal.\n */\n @Event() detailsClose!: EventEmitter<void>;\n\n @State() mobileScreenView = false;\n\n @State() search = '';\n\n @State() certificatesDecoded: ICertificateDecoded[] = [];\n\n @State() expandedRow?: number;\n\n @State() certificateSelectedForDetails?: X509Certificate;\n\n @State() isDecodeInProcess = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.certificatesDecodeAndSet();\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n @Watch('certificates')\n watchCertificates(newValue: ICertificate[], oldValue: ICertificate[]) {\n /**\n * Prevent rerender after set the same `certificates` prop.\n */\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n this.certificatesDecodeAndSet();\n }\n }\n\n async certificatesDecodeAndSet() {\n let hasRoots = false;\n\n if (!Array.isArray(this.certificates)) {\n return;\n }\n\n const data: ICertificateDecoded[] = [];\n\n for (const certificate of this.certificates) {\n try {\n const decoded = new X509Certificate(certificate.value);\n\n await decoded.getThumbprint('SHA-1');\n\n data.push({\n body: decoded,\n tests: certificate.tests,\n name: certificate.name,\n });\n\n if (!hasRoots && decoded.isRoot) {\n hasRoots = true;\n }\n } catch (error) {\n console.error('Error certificate parse:', error);\n }\n }\n\n this.isHasRoots = hasRoots;\n this.isDecodeInProcess = false;\n this.certificatesDecoded = data;\n }\n\n private getCertificateName(certificate: ICertificateDecoded) {\n if (typeof certificate.name === 'function') {\n return certificate.name(certificate.body);\n }\n\n return certificate.name || certificate.body.commonName;\n }\n\n private handleClickDownloadAsPem(certificate: ICertificateDecoded) {\n certificate.body.downloadAsPEM(this.getCertificateName(certificate));\n }\n\n private handleClickDownloadAsDer(certificate: ICertificateDecoded) {\n certificate.body.downloadAsDER(this.getCertificateName(certificate));\n }\n\n private handleClickDetails = (certificate: X509Certificate) => {\n this.certificateSelectedForDetails = certificate;\n this.detailsOpen.emit(certificate);\n };\n\n private handleModalClose = () => {\n this.certificateSelectedForDetails = undefined;\n\n this.detailsClose.emit();\n };\n\n private handleClickRow(index: number) {\n const isExpandedRowClicked = this.expandedRow === index;\n\n this.expandedRow = isExpandedRowClicked\n ? undefined\n : index;\n }\n\n private handleSearch = (event: Event) => {\n const target = event.target as HTMLInputElement;\n\n this.search = target.value.trim();\n };\n\n private getMaxColSpanValue() {\n let colSpan = 5;\n\n if (!this.isHasRoots) {\n colSpan += 1;\n }\n\n return colSpan;\n }\n\n private renderCertificateButtonActions(certificate: ICertificateDecoded) {\n const isHasTestURLs = certificate.tests\n && (certificate.tests.expired || certificate.tests.revoked || certificate.tests.valid);\n\n return (\n <peculiar-button-menu\n class=\"button_table_cell\"\n groups={[\n {\n title: l10n.getString('previewCertificate'),\n options: [\n {\n text: l10n.getString('viewDetails'),\n startIcon: <DetailsIcon />,\n onClick: () => this.handleClickDetails(certificate.body),\n },\n ],\n },\n {\n title: l10n.getString('downloadOptions'),\n options: [\n {\n text: l10n.getString('download.pem'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsPem(certificate),\n },\n {\n text: l10n.getString('download.der'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsDer(certificate),\n },\n ],\n },\n ...(isHasTestURLs\n ? [{\n title: l10n.getString('testURLs'),\n options: [\n ...(certificate.tests?.valid\n ? [{\n text: l10n.getString('valid'),\n href: certificate.tests.valid,\n startIcon: <LinkIcon />,\n }]\n : []),\n ...(certificate.tests?.revoked\n ? [{\n text: l10n.getString('revoked'),\n href: certificate.tests.revoked,\n startIcon: <LinkIcon />,\n }]\n : []),\n ...(certificate.tests?.expired\n ? [{\n text: l10n.getString('expired'),\n href: certificate.tests.expired,\n startIcon: <LinkIcon />,\n }]\n : []),\n ],\n }]\n : []),\n ]}\n />\n );\n }\n\n private renderExpandedRow(certificate: X509Certificate) {\n const colSpan = this.getMaxColSpanValue() - 2;\n\n return (\n <tr class=\"expanded_summary\">\n <td />\n <td colSpan={colSpan}>\n <CertificateSummary\n certificate={certificate}\n showIssuer={!certificate.isRoot}\n />\n </td>\n <td />\n </tr>\n );\n }\n\n private renderCertificatesRows() {\n const searchHighlight = this.highlightWithSearch\n ? this.search\n : '';\n const content = [];\n\n this.certificatesDecoded.forEach((certificate, index) => {\n const isExpandedRow = index === this.expandedRow;\n const publicKeyValue = OIDs[certificate.body.signature.algorithm]\n || certificate.body.signature.algorithm;\n\n if (this.filterWithSearch && this.search) {\n const certificateStringForSearch = [\n publicKeyValue,\n certificate.body.issuerCommonName,\n this.getCertificateName(certificate),\n certificate.body.thumbprints['SHA-1'],\n ]\n .join(' ')\n .toLowerCase();\n\n if (certificateStringForSearch.indexOf(this.search.toLowerCase()) === -1) {\n return;\n }\n }\n\n if (this.mobileScreenView) {\n content.push([\n <tr\n class={{\n certificate_row: true,\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <table>\n <tbody>\n {!this.isHasRoots && (\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('issuer')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n )}\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('name')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {this.getCertificateName(certificate)}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('publicKey')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('fingerprint')}\n &nbsp; (SHA-1)\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n {isExpandedRow && this.renderExpandedRow(certificate.body)}\n <tr class=\"certificate_row_actions\">\n <td>\n {this.renderCertificateButtonActions(certificate)}\n <Button\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n onClick={this.handleClickRow.bind(this, index)}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>,\n ]);\n\n return;\n }\n\n content.push([\n <tr\n class={{ m_expanded: isExpandedRow }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <Button\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n class=\"button_table_cell\"\n\n onClick={this.handleClickRow.bind(this, index)}\n />\n </td>\n {!this.isHasRoots && (\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n )}\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {this.getCertificateName(certificate)}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n {this.renderCertificateButtonActions(certificate)}\n </td>\n </tr>,\n isExpandedRow && this.renderExpandedRow(certificate.body),\n ]);\n });\n\n return content;\n }\n\n private renderCertificateDetailsModal() {\n if (!this.certificateSelectedForDetails) {\n return null;\n }\n\n return (\n <div\n class=\"modal_wrapper\"\n role=\"presentation\"\n aria-hidden=\"false\"\n part=\"presentation\"\n >\n <div\n class=\"modal_backdrop\"\n aria-hidden=\"true\"\n onClick={this.handleModalClose}\n />\n <div\n class=\"modal_container\"\n role=\"dialog\"\n part=\"presentation_container\"\n >\n <header class=\"modal_header\">\n <Typography\n variant=\"h4\"\n >\n {l10n.getString('certificateDetails')}\n </Typography>\n <Button\n startIcon={<CrossIcon />}\n onClick={this.handleModalClose}\n />\n </header>\n <div class=\"modal_content\">\n <peculiar-certificate-viewer\n certificate={this.certificateSelectedForDetails}\n mobileMediaQueryString={this.mobileMediaQueryString}\n />\n </div>\n </div>\n </div>\n );\n }\n\n private renderSearch() {\n if (!this.filterWithSearch && !this.highlightWithSearch) {\n return null;\n }\n\n return (\n <div class=\"search_section\">\n <input\n type=\"search\"\n value=\"\"\n class=\"input_search t-b3 c-black\"\n disabled={!this.certificatesDecoded.length}\n placeholder=\"Search\"\n onInput={this.handleSearch}\n />\n </div>\n );\n }\n\n private renderEmptyState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n There are no certificates available.\n </Typography>\n </td>\n </tr>\n );\n }\n\n private renderEmptySearchState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n No results found for &ldquo;\n {this.search}\n &ldquo;\n </Typography>\n </td>\n </tr>\n );\n }\n\n private renderLoadingState() {\n return (\n <div class=\"loading_container\">\n <peculiar-circular-progress />\n </div>\n );\n }\n\n private renderTableBody() {\n if (this.isDecodeInProcess) {\n return null;\n }\n\n if (!this.certificatesDecoded.length) {\n return this.renderEmptyState();\n }\n\n const certificatesRows = this.renderCertificatesRows();\n\n if (this.search && !certificatesRows.length) {\n return this.renderEmptySearchState();\n }\n\n return certificatesRows;\n }\n\n render() {\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n {this.renderSearch()}\n <table>\n {!this.mobileScreenView && (\n <thead>\n <tr>\n <th />\n {!this.isHasRoots && (\n <th class=\"col_issuer\">\n <Typography variant=\"s2\">\n {l10n.getString('issuer')}\n </Typography>\n </th>\n )}\n <th class=\"col_name\">\n <Typography variant=\"s2\">\n {l10n.getString('name')}\n </Typography>\n </th>\n <th class=\"col_public_key\">\n <Typography variant=\"s2\">\n {l10n.getString('publicKey')}\n </Typography>\n </th>\n <th class=\"col_fingerprint\">\n <Typography variant=\"s2\">\n {l10n.getString('fingerprint')}\n &nbsp; (SHA-1)\n </Typography>\n </th>\n <th />\n </tr>\n </thead>\n )}\n <tbody>\n {this.renderTableBody()}\n </tbody>\n </table>\n\n {this.renderCertificateDetailsModal()}\n {this.isDecodeInProcess && this.renderLoadingState()}\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAkBO,IAAMA,EAAoE,SAACC,GAE9E,IAAAC,EAEED,EAAKC,YADPC,EACEF,EAAKE,WAET,IAAMC,EAAY,SAACC,EAAyBC,GAAsB,OAChEC,EAAA,UACEA,EAAA,UACEA,EAACC,EAAU,CACTC,QAAQ,KACRC,MAAM,UAELL,IAGLE,EAAA,UACEA,EAACC,EAAU,CACTC,QAAQ,KACRC,MAAM,SAELJ,IAfyD,EAqBlE,OACEC,EAAA,aACEA,EAAA,aACGH,EACCO,EAAKC,UAAU,eACfV,EAAYW,mBAEbV,GAAcC,EACbO,EAAKC,UAAU,cACfV,EAAYY,kBAGbV,EACCO,EAAKC,UAAU,gBACfV,EAAYa,cAEbX,EACCO,EAAKC,UAAU,WACfV,EAAYc,SAEbZ,EACCO,EAAKC,UAAU,YACfV,EAAYe,UAEbb,EACCO,EAAKC,UAAU,UACfM,EAAUhB,EAAYiB,YAEvBf,EACCO,EAAKC,UAAU,WACfM,EAAUhB,EAAYkB,YAKhC,EChFA,IAAMC,EAAwB,2/W,ICuDjBC,EAAkBC,EAAA,0CAL/B,SAAAC,EAAAC,GAAA,IAAAC,EAAAC,K,0FAMUA,KAAUC,WAAG,MAcbD,KAAYE,aAAmB,GAK/BF,KAAgBG,iBAAG,KAKnBH,KAAmBI,oBAAG,KASJJ,KAAsBK,uBAAY,qBAYnDL,KAAgBM,iBAAG,MAEnBN,KAAMO,OAAG,GAETP,KAAmBQ,oBAA0B,GAM7CR,KAAiBS,kBAAG,KAgFrBT,KAAAU,mBAAqB,SAACnC,GAC5BwB,EAAKY,8BAAgCpC,EACrCwB,EAAKa,YAAYC,KAAKtC,EACxB,EAEQyB,KAAgBc,iBAAG,WACzBf,EAAKY,8BAAgCI,UAErChB,EAAKiB,aAAaH,MACpB,EAUQb,KAAAiB,aAAe,SAACC,GACtB,IAAMC,EAASD,EAAMC,OAErBpB,EAAKQ,OAASY,EAAOxC,MAAMyC,MAC7B,CA0bD,CA/hBSvB,EAAAwB,UAAAC,uBAAA,SAAuBJ,GAC7BlB,KAAKM,iBAAmBY,EAAMK,O,EAGhC1B,EAAAwB,UAAAG,kBAAA,WACExB,KAAKyB,2BAEgB,CACnBzB,KAAK0B,iBAAmBC,OAAOC,WAAW5B,KAAKK,wBAC/CL,KAAK0B,iBAAiBG,iBAAiB,SAAU7B,KAAKsB,uBAAuBQ,KAAK9B,OAClFA,KAAKM,iBAAmBN,KAAK0B,iBAAiBH,O,GAIlD1B,EAAAwB,UAAAU,qBAAA,WACE/B,KAAK0B,iBAAiBM,oBAAoB,SAAUhC,KAAKsB,uBAAuBQ,KAAK9B,M,EAIvFH,EAAAwB,UAAAY,kBAAA,SAAkBC,EAA0BC,GAI1C,GAAIC,KAAKC,UAAUH,KAAcE,KAAKC,UAAUF,GAAW,CACzDnC,KAAKyB,0B,GAIH5B,EAAAwB,UAAAI,yBAAN,W,8HACMa,EAAW,MAEf,IAAKC,MAAMC,QAAQxC,KAAKE,cAAe,CACrC,S,CAGIuC,EAA8B,G,IAEVC,EAAA1C,KAAKE,a,sBAALyC,EAAAD,EAAAE,QAAiB,YAAhCrE,EAAWmE,EAAAC,G,uCAEZE,EAAU,IAAIC,EAAgBvE,EAAYI,OAEhD,SAAMkE,EAAQE,cAAc,U,OAA5BC,EAAAC,OAEAR,EAAKS,KAAK,CACRC,KAAMN,EACNO,MAAO7E,EAAY6E,MACnB1E,KAAMH,EAAYG,OAGpB,IAAK4D,GAAYO,EAAQQ,OAAQ,CAC/Bf,EAAW,I,+BAGbgB,QAAQC,MAAM,2BAA4BC,G,mBAhBpBb,I,mBAoB1B3C,KAAKC,WAAaqC,EAClBtC,KAAKS,kBAAoB,MACzBT,KAAKQ,oBAAsBiC,E,kBAGrB5C,EAAAwB,UAAAoC,mBAAA,SAAmBlF,GACzB,UAAWA,EAAYG,OAAS,WAAY,CAC1C,OAAOH,EAAYG,KAAKH,EAAY4E,K,CAGtC,OAAO5E,EAAYG,MAAQH,EAAY4E,KAAKO,U,EAGtC7D,EAAAwB,UAAAsC,yBAAA,SAAyBpF,GAC/BA,EAAY4E,KAAKS,cAAc5D,KAAKyD,mBAAmBlF,G,EAGjDsB,EAAAwB,UAAAwC,yBAAA,SAAyBtF,GAC/BA,EAAY4E,KAAKW,cAAc9D,KAAKyD,mBAAmBlF,G,EAcjDsB,EAAAwB,UAAA0C,eAAA,SAAeC,GACrB,IAAMC,EAAuBjE,KAAKkE,cAAgBF,EAElDhE,KAAKkE,YAAcD,EACflD,UACAiD,C,EASEnE,EAAAwB,UAAA8C,mBAAA,WACN,IAAIC,EAAU,EAEd,IAAKpE,KAAKC,WAAY,CACpBmE,GAAW,C,CAGb,OAAOA,C,EAGDvE,EAAAwB,UAAAgD,+BAAA,SAA+B9F,GAA/B,IAAAwB,EAAAC,K,UACN,IAAMsE,EAAgB/F,EAAY6E,QAC5B7E,EAAY6E,MAAMmB,SAAWhG,EAAY6E,MAAMoB,SAAWjG,EAAY6E,MAAMqB,OAElF,OACE7F,EACE,wBAAA8F,MAAM,oBACNC,OAAMC,cAAA,CACJ,CACEC,MAAO7F,EAAKC,UAAU,sBACtB6F,QAAS,CACP,CACEC,KAAM/F,EAAKC,UAAU,eACrB+F,UAAWpG,EAACqG,EAAc,MAC1BC,QAAS,WAAM,OAAAnF,EAAKW,mBAAmBnC,EAAY4E,KAApC,KAIrB,CACE0B,MAAO7F,EAAKC,UAAU,mBACtB6F,QAAS,CACP,CACEC,KAAM/F,EAAKC,UAAU,gBACrB+F,UAAWpG,EAACuG,EAAe,MAC3BD,QAAS,WAAM,OAAAnF,EAAK4D,yBAAyBpF,EAA9B,GAEjB,CACEwG,KAAM/F,EAAKC,UAAU,gBACrB+F,UAAWpG,EAACuG,EAAe,MAC3BD,QAAS,WAAM,OAAAnF,EAAK8D,yBAAyBtF,EAA9B,MAIjB+F,EACA,CAAC,CACCO,MAAO7F,EAAKC,UAAU,YACtB6F,QAAOF,0CAAA,KACDQ,EAAA7G,EAAY6E,SAAK,MAAAgC,SAAA,SAAAA,EAAEX,OACnB,CAAC,CACCM,KAAM/F,EAAKC,UAAU,SACrBoG,KAAM9G,EAAY6E,MAAMqB,MACxBO,UAAWpG,EAAC0G,EAAW,QAEzB,GAAG,QACHC,EAAAhH,EAAY6E,SAAK,MAAAmC,SAAA,SAAAA,EAAEf,SACnB,CAAC,CACCO,KAAM/F,EAAKC,UAAU,WACrBoG,KAAM9G,EAAY6E,MAAMoB,QACxBQ,UAAWpG,EAAC0G,EAAW,QAEzB,GAAG,QACHE,EAAAjH,EAAY6E,SAAK,MAAAoC,SAAA,SAAAA,EAAEjB,SACnB,CAAC,CACCQ,KAAM/F,EAAKC,UAAU,WACrBoG,KAAM9G,EAAY6E,MAAMmB,QACxBS,UAAWpG,EAAC0G,EAAW,QAEzB,GAAG,QAGX,GAAG,O,EAMPzF,EAAAwB,UAAAoE,kBAAA,SAAkBlH,GACxB,IAAM6F,EAAUpE,KAAKmE,qBAAuB,EAE5C,OACEvF,EAAA,MAAI8F,MAAM,oBACR9F,EAAM,WACNA,EAAI,MAAAwF,QAASA,GACXxF,EAACP,EAAkB,CACjBE,YAAaA,EACbC,YAAaD,EAAY8E,UAG7BzE,EAAM,W,EAKJiB,EAAAwB,UAAAqE,uBAAA,eAAA3F,EAAAC,KACN,IAAM2F,EAAkB3F,KAAKI,oBACzBJ,KAAKO,OACL,GACJ,IAAMqF,EAAU,GAEhB5F,KAAKQ,oBAAoBqF,SAAQ,SAACtH,EAAayF,GAC7C,IAAM8B,EAAgB9B,IAAUjE,EAAKmE,YACrC,IAAM6B,EAAiBC,EAAKzH,EAAY4E,KAAK8C,UAAUC,YAClD3H,EAAY4E,KAAK8C,UAAUC,UAEhC,GAAInG,EAAKI,kBAAoBJ,EAAKQ,OAAQ,CACxC,IAAM4F,EAA6B,CACjCJ,EACAxH,EAAY4E,KAAKiD,iBACjBrG,EAAK0D,mBAAmBlF,GACxBA,EAAY4E,KAAKkD,YAAY,UAE5BC,KAAK,KACLC,cAEH,GAAIJ,EAA2BK,QAAQzG,EAAKQ,OAAOgG,kBAAmB,EAAI,CACxE,M,EAIJ,GAAIxG,EAAKO,iBAAkB,CACzBsF,EAAQ1C,KAAK,CACXtE,EAAA,MACE8F,MAAO,CACL+B,gBAAiB,KACjBC,WAAYZ,GAEda,IAAKpI,EAAY4E,KAAKkD,YAAY,UAElCzH,EAAA,UACEA,EAAA,aACEA,EAAA,cACImB,EAAKE,YACLrB,EAAA,UACEA,EAAA,UACEA,EAACC,EAAW,CAAAC,QAAQ,KAAKC,MAAM,UAC5BC,EAAKC,UAAU,YAGpBL,EAAA,UACEA,EAACC,EAAU,CAACC,QAAQ,KAAKC,MAAM,SAC7BH,EAAA,4BAA0B2B,OAAQoF,GAC/BpH,EAAY4E,KAAKiD,qBAM5BxH,EAAA,UACEA,EAAA,UACEA,EAACC,EAAW,CAAAC,QAAQ,KAAKC,MAAM,UAC5BC,EAAKC,UAAU,UAGpBL,EAAA,UACEA,EAACC,EAAU,CAACC,QAAQ,KAAKC,MAAM,SAC7BH,EAAA,4BAA0B2B,OAAQoF,GAC/B5F,EAAK0D,mBAAmBlF,OAKjCK,EAAA,UACEA,EAAA,UACEA,EAACC,EAAW,CAAAC,QAAQ,KAAKC,MAAM,UAC5BC,EAAKC,UAAU,eAGpBL,EAAA,UACEA,EAACC,EAAU,CAACC,QAAQ,KAAKC,MAAM,SAC7BH,EAA0B,4BAAA2B,OAAQoF,GAC/BI,MAKTnH,EAAA,UACEA,EAAA,UACEA,EAACC,EAAU,CAACC,QAAQ,KAAKC,MAAM,UAC5BC,EAAKC,UAAU,eAAc,cAIlCL,EAAA,UACEA,EAACC,EAAU,CAACC,QAAQ,KAAKC,MAAM,SAC7BH,EAAA,4BAA0B2B,OAAQoF,GAC/BpH,EAAY4E,KAAKkD,YAAY,aAKrCP,GAAiB/F,EAAK0F,kBAAkBlH,EAAY4E,MACrDvE,EAAI,MAAA8F,MAAM,2BACR9F,EAAA,UACGmB,EAAKsE,+BAA+B9F,GACrCK,EAACgI,EACC,CAAA5B,UAAWc,EAAgBlH,EAACiI,EAAY,MAAMjI,EAACkI,EAAkB,MACjE5B,QAASnF,EAAKgE,eAAejC,KAAK/B,EAAMiE,aAUxD,M,CAGF4B,EAAQ1C,KAAK,CACXtE,EAAA,MACE8F,MAAO,CAAEgC,WAAYZ,GACrBa,IAAKpI,EAAY4E,KAAKkD,YAAY,UAElCzH,EAAA,UACEA,EAACgI,EAAM,CACL5B,UAAWc,EAAgBlH,EAACiI,EAAe,MAAGjI,EAACkI,EAAe,MAC9DpC,MAAM,oBAENQ,QAASnF,EAAKgE,eAAejC,KAAK/B,EAAMiE,OAG1CjE,EAAKE,YACLrB,EAAA,UACEA,EAACC,EAAU,KACTD,EAAA,4BAA0B2B,OAAQoF,GAC/BpH,EAAY4E,KAAKiD,oBAK1BxH,EAAA,UACEA,EAACC,EAAU,KACTD,EAAA,4BAA0B2B,OAAQoF,GAC/B5F,EAAK0D,mBAAmBlF,MAI/BK,EAAA,UACEA,EAACC,EAAU,KACTD,EAAA,4BAA0B2B,OAAQoF,GAC/BI,KAIPnH,EAAA,UACEA,EAACC,EAAU,KACTD,EAAA,4BAA0B2B,OAAQoF,GAC/BpH,EAAY4E,KAAKkD,YAAY,YAIpCzH,EAAA,UACGmB,EAAKsE,+BAA+B9F,KAGzCuH,GAAiB/F,EAAK0F,kBAAkBlH,EAAY4E,OAExD,IAEA,OAAOyC,C,EAGD/F,EAAAwB,UAAA0F,8BAAA,WACN,IAAK/G,KAAKW,8BAA+B,CACvC,OAAO,I,CAGT,OACE/B,EAAA,OACE8F,MAAM,gBACNsC,KAAK,eACO,sBACZC,KAAK,gBAELrI,EACE,OAAA8F,MAAM,iBACM,qBACZQ,QAASlF,KAAKc,mBAEhBlC,EACE,OAAA8F,MAAM,kBACNsC,KAAK,SACLC,KAAK,0BAELrI,EAAQ,UAAA8F,MAAM,gBACZ9F,EAACC,EAAU,CACTC,QAAQ,MAEPE,EAAKC,UAAU,uBAElBL,EAACgI,EAAM,CACL5B,UAAWpG,EAACsI,EAAS,MACrBhC,QAASlF,KAAKc,oBAGlBlC,EAAK,OAAA8F,MAAM,iBACT9F,EAAA,+BACEL,YAAayB,KAAKW,8BAClBN,uBAAwBL,KAAKK,2B,EAQjCR,EAAAwB,UAAA8F,aAAA,WACN,IAAKnH,KAAKG,mBAAqBH,KAAKI,oBAAqB,CACvD,OAAO,I,CAGT,OACExB,EAAA,OAAK8F,MAAM,kBACT9F,EAAA,SACEwI,KAAK,SACLzI,MAAM,GACN+F,MAAM,4BACN2C,UAAWrH,KAAKQ,oBAAoBoC,OACpC0E,YAAY,SACZC,QAASvH,KAAKiB,e,EAMdpB,EAAAwB,UAAAmG,iBAAA,WACN,IAAMpD,EAAUpE,KAAKmE,qBAErB,OACEvF,EAAA,UACEA,EAAA,MACE8F,MAAM,iBACNN,QAASA,GAETxF,EAACC,EAAU,CACTC,QAAQ,MAGG,yC,EAMbe,EAAAwB,UAAAoG,uBAAA,WACN,IAAMrD,EAAUpE,KAAKmE,qBAErB,OACEvF,EAAA,UACEA,EAAA,MACE8F,MAAM,iBACNN,QAASA,GAETxF,EAACC,EAAU,CACTC,QAAQ,MAAI,yBAGXkB,KAAKO,OAAM,M,EAQdV,EAAAwB,UAAAqG,mBAAA,WACN,OACE9I,EAAA,OAAK8F,MAAM,qBACT9F,EAA8B,mC,EAK5BiB,EAAAwB,UAAAsG,gBAAA,WACN,GAAI3H,KAAKS,kBAAmB,CAC1B,OAAO,I,CAGT,IAAKT,KAAKQ,oBAAoBoC,OAAQ,CACpC,OAAO5C,KAAKwH,kB,CAGd,IAAMI,EAAmB5H,KAAK0F,yBAE9B,GAAI1F,KAAKO,SAAWqH,EAAiBhF,OAAQ,CAC3C,OAAO5C,KAAKyH,wB,CAGd,OAAOG,C,EAGT/H,EAAAwB,UAAAwG,OAAA,WACE,OACEjJ,EAACkJ,EAAI,CAAAnB,IAAA,qEACsBoB,OAAO/H,KAAKM,mBAEpCN,KAAKmH,eACNvI,EAAA,SAAA+H,IAAA,6CACI3G,KAAKM,kBACL1B,EAAA,SAAA+H,IAAA,4CACE/H,EAAA,MAAA+H,IAAA,4CACE/H,EAAM,MAAA+H,IAAA,8CACJ3G,KAAKC,YACLrB,EAAI,MAAA+H,IAAA,2CAAAjC,MAAM,cACR9F,EAACC,EAAU,CAAA8H,IAAA,2CAAC7H,QAAQ,MACjBE,EAAKC,UAAU,YAItBL,EAAI,MAAA+H,IAAA,2CAAAjC,MAAM,YACR9F,EAACC,EAAU,CAAA8H,IAAA,2CAAC7H,QAAQ,MACjBE,EAAKC,UAAU,UAGpBL,EAAI,MAAA+H,IAAA,2CAAAjC,MAAM,kBACR9F,EAACC,EAAU,CAAA8H,IAAA,2CAAC7H,QAAQ,MACjBE,EAAKC,UAAU,eAGpBL,EAAI,MAAA+H,IAAA,2CAAAjC,MAAM,mBACR9F,EAACC,EAAU,CAAA8H,IAAA,2CAAC7H,QAAQ,MACjBE,EAAKC,UAAU,eAAc,cAIlCL,EAAM,MAAA+H,IAAA,+CAIZ/H,EAAA,SAAA+H,IAAA,4CACG3G,KAAK2H,oBAIT3H,KAAK+G,gCACL/G,KAAKS,mBAAqBT,KAAK0H,qB,+IArlBT,I","ignoreList":[]}