@peculiar/certificates-viewer 3.10.1 → 4.0.2

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 (589) hide show
  1. package/README.md +40 -64
  2. package/components/actions.js +21 -0
  3. package/components/actions.js.map +1 -0
  4. package/components/arrow_top.js +34 -0
  5. package/components/arrow_top.js.map +1 -0
  6. package/components/attribute-certificate-viewer.js +281 -0
  7. package/components/attribute-certificate-viewer.js.map +1 -0
  8. package/components/button-menu.js +52 -0
  9. package/components/button-menu.js.map +1 -0
  10. package/components/button.js +74 -0
  11. package/components/button.js.map +1 -0
  12. package/components/certificate-viewer.js +300 -0
  13. package/components/certificate-viewer.js.map +1 -0
  14. package/components/circular-progress.js +48 -0
  15. package/components/circular-progress.js.map +1 -0
  16. package/components/crl-viewer.js +263 -0
  17. package/components/crl-viewer.js.map +1 -0
  18. package/components/cross.js +47 -0
  19. package/components/cross.js.map +1 -0
  20. package/components/csr-viewer.js +233 -0
  21. package/components/csr-viewer.js.map +1 -0
  22. package/components/custom-elements.d.ts +2 -0
  23. package/components/download.js +500 -0
  24. package/components/download.js.map +1 -0
  25. package/components/highlight-words.js +60 -0
  26. package/components/highlight-words.js.map +1 -0
  27. package/components/index.d.ts +33 -0
  28. package/components/index.js +11 -0
  29. package/components/index.js.map +1 -0
  30. package/components/index2.js +299 -0
  31. package/components/index2.js.map +1 -0
  32. package/components/issuer_name.js +26 -0
  33. package/components/issuer_name.js.map +1 -0
  34. package/components/miscellaneous.js +13393 -0
  35. package/components/miscellaneous.js.map +1 -0
  36. package/components/package.json +9 -0
  37. package/components/peculiar-attribute-certificate-viewer.d.ts +11 -0
  38. package/components/peculiar-attribute-certificate-viewer.js +11 -0
  39. package/components/peculiar-attribute-certificate-viewer.js.map +1 -0
  40. package/components/peculiar-button-menu.d.ts +11 -0
  41. package/components/peculiar-button-menu.js +11 -0
  42. package/components/peculiar-button-menu.js.map +1 -0
  43. package/components/peculiar-certificate-decoder.d.ts +11 -0
  44. package/components/peculiar-certificate-decoder.js +234 -0
  45. package/components/peculiar-certificate-decoder.js.map +1 -0
  46. package/components/peculiar-certificate-viewer.d.ts +11 -0
  47. package/components/peculiar-certificate-viewer.js +11 -0
  48. package/components/peculiar-certificate-viewer.js.map +1 -0
  49. package/components/peculiar-certificates-viewer.d.ts +11 -0
  50. package/components/peculiar-certificates-viewer.js +344 -0
  51. package/components/peculiar-certificates-viewer.js.map +1 -0
  52. package/components/peculiar-circular-progress.d.ts +11 -0
  53. package/components/peculiar-circular-progress.js +11 -0
  54. package/components/peculiar-circular-progress.js.map +1 -0
  55. package/components/peculiar-crl-viewer.d.ts +11 -0
  56. package/components/peculiar-crl-viewer.js +11 -0
  57. package/components/peculiar-crl-viewer.js.map +1 -0
  58. package/components/peculiar-csr-viewer.d.ts +11 -0
  59. package/components/peculiar-csr-viewer.js +11 -0
  60. package/components/peculiar-csr-viewer.js.map +1 -0
  61. package/components/peculiar-highlight-words.d.ts +11 -0
  62. package/components/peculiar-highlight-words.js +11 -0
  63. package/components/peculiar-highlight-words.js.map +1 -0
  64. package/components/peculiar-text-hider.d.ts +11 -0
  65. package/components/peculiar-text-hider.js +42 -0
  66. package/components/peculiar-text-hider.js.map +1 -0
  67. package/components/subject_name.js +71 -0
  68. package/components/subject_name.js.map +1 -0
  69. package/dist/cjs/actions-19013d4a.js +23 -0
  70. package/dist/cjs/actions-19013d4a.js.map +1 -0
  71. package/dist/cjs/arrow_top-834fb7ec.js +37 -0
  72. package/dist/cjs/arrow_top-834fb7ec.js.map +1 -0
  73. package/dist/cjs/button-14e2b73f.js +77 -0
  74. package/dist/cjs/button-14e2b73f.js.map +1 -0
  75. package/dist/cjs/{certification_request-d5c6e32d.js → certification_request-c0cafa72.js} +236 -71
  76. package/dist/cjs/certification_request-c0cafa72.js.map +1 -0
  77. package/dist/cjs/{crl-5bce64c4.js → crl-b4322166.js} +8 -7
  78. package/dist/cjs/crl-b4322166.js.map +1 -0
  79. package/dist/cjs/cross-9872c473.js +51 -0
  80. package/dist/cjs/cross-9872c473.js.map +1 -0
  81. package/dist/cjs/download-254ddc57.js +23 -0
  82. package/dist/cjs/download-254ddc57.js.map +1 -0
  83. package/dist/cjs/{download-93f7b773.js → download-972dda8a.js} +2 -0
  84. package/dist/cjs/download-972dda8a.js.map +1 -0
  85. package/dist/cjs/index-efd561e9.js +2477 -0
  86. package/dist/cjs/index-efd561e9.js.map +1 -0
  87. package/dist/cjs/index.cjs.js +20 -1
  88. package/dist/cjs/index.cjs.js.map +1 -0
  89. package/dist/cjs/link-6aea0be4.js +25 -0
  90. package/dist/cjs/link-6aea0be4.js.map +1 -0
  91. package/dist/cjs/loader.cjs.js +6 -12
  92. package/dist/cjs/loader.cjs.js.map +1 -0
  93. package/dist/cjs/{miscellaneous-cac1cd8b.js → miscellaneous-e43aaae5.js} +73 -70
  94. package/dist/cjs/miscellaneous-e43aaae5.js.map +1 -0
  95. package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js +93 -35
  96. package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js.map +1 -0
  97. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +98 -0
  98. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -0
  99. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +30 -19
  100. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js.map +1 -0
  101. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +35 -11
  102. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js.map +1 -0
  103. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +145 -85
  104. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js.map +1 -0
  105. package/dist/cjs/peculiar-text-hider.cjs.entry.js +7 -13
  106. package/dist/cjs/peculiar-text-hider.cjs.entry.js.map +1 -0
  107. package/dist/cjs/peculiar.cjs.js +10 -57
  108. package/dist/cjs/peculiar.cjs.js.map +1 -0
  109. package/dist/cjs/{x509_certificate-3760e0a8.js → x509_certificate-989b1435.js} +5 -4
  110. package/dist/cjs/x509_certificate-989b1435.js.map +1 -0
  111. package/dist/collection/collection-manifest.json +12 -16
  112. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +189 -145
  113. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js.map +1 -0
  114. package/dist/collection/components/button/button.js +14 -126
  115. package/dist/collection/components/button/button.js.map +1 -0
  116. package/dist/collection/components/button/index.js +5 -0
  117. package/dist/collection/components/button/index.js.map +1 -0
  118. package/dist/collection/components/button-menu/button-menu.css +46 -0
  119. package/dist/collection/components/button-menu/button-menu.js +78 -0
  120. package/dist/collection/components/button-menu/button-menu.js.map +1 -0
  121. package/dist/collection/components/certificate-decoder/certificate-decoder.css +456 -44
  122. package/dist/collection/components/certificate-decoder/certificate-decoder.js +109 -101
  123. package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -0
  124. package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js +6 -11
  125. package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js.map +1 -0
  126. package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js +5 -5
  127. package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js.map +1 -0
  128. package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js +5 -6
  129. package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js.map +1 -0
  130. package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js +5 -5
  131. package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js.map +1 -0
  132. package/dist/collection/components/certificate-details-parts/attributes/index.js +16 -15
  133. package/dist/collection/components/certificate-details-parts/attributes/index.js.map +1 -0
  134. package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js +5 -5
  135. package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js.map +1 -0
  136. package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js +5 -5
  137. package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js.map +1 -0
  138. package/dist/collection/components/certificate-details-parts/attributes/name_part.js +4 -3
  139. package/dist/collection/components/certificate-details-parts/attributes/name_part.js.map +1 -0
  140. package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js +5 -4
  141. package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js.map +1 -0
  142. package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js +5 -5
  143. package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js.map +1 -0
  144. package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js +5 -5
  145. package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js.map +1 -0
  146. package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js +6 -13
  147. package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js.map +1 -0
  148. package/dist/collection/components/certificate-details-parts/basic_information.js +4 -3
  149. package/dist/collection/components/certificate-details-parts/basic_information.js.map +1 -0
  150. package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js +5 -5
  151. package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js.map +1 -0
  152. package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js +5 -5
  153. package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js.map +1 -0
  154. package/dist/collection/components/certificate-details-parts/extensions/attribute_value.js +2 -1
  155. package/dist/collection/components/certificate-details-parts/extensions/attribute_value.js.map +1 -0
  156. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js +10 -15
  157. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js.map +1 -0
  158. package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js +6 -7
  159. package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js.map +1 -0
  160. package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js +5 -6
  161. package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js.map +1 -0
  162. package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js +8 -12
  163. package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js.map +1 -0
  164. package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js +5 -6
  165. package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js.map +1 -0
  166. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js +26 -27
  167. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js.map +1 -0
  168. package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js +5 -7
  169. package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js.map +1 -0
  170. package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js +8 -13
  171. package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js.map +1 -0
  172. package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js +4 -3
  173. package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js.map +1 -0
  174. package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js +6 -6
  175. package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js.map +1 -0
  176. package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js +5 -5
  177. package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js.map +1 -0
  178. package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js +5 -5
  179. package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js.map +1 -0
  180. package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js +5 -6
  181. package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js.map +1 -0
  182. package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js +7 -7
  183. package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js.map +1 -0
  184. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js +7 -6
  185. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js.map +1 -0
  186. package/dist/collection/components/certificate-details-parts/extensions/index.js +46 -45
  187. package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -0
  188. package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js +8 -9
  189. package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js.map +1 -0
  190. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js +7 -11
  191. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js.map +1 -0
  192. package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js +5 -5
  193. package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js.map +1 -0
  194. package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js +5 -5
  195. package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js.map +1 -0
  196. package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js +5 -5
  197. package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js.map +1 -0
  198. package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js +8 -11
  199. package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js.map +1 -0
  200. package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js +4 -3
  201. package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js.map +1 -0
  202. package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js +5 -5
  203. package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js.map +1 -0
  204. package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js +5 -5
  205. package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js.map +1 -0
  206. package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js +6 -7
  207. package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js.map +1 -0
  208. package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js +5 -4
  209. package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js.map +1 -0
  210. package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js +6 -7
  211. package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js.map +1 -0
  212. package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js +13 -16
  213. package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js.map +1 -0
  214. package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js +4 -3
  215. package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js.map +1 -0
  216. package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js +8 -9
  217. package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js.map +1 -0
  218. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js +10 -15
  219. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js.map +1 -0
  220. package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js +7 -9
  221. package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js.map +1 -0
  222. package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js +4 -3
  223. package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js.map +1 -0
  224. package/dist/collection/components/certificate-details-parts/holder.js +8 -11
  225. package/dist/collection/components/certificate-details-parts/holder.js.map +1 -0
  226. package/dist/collection/components/certificate-details-parts/index.js +1 -0
  227. package/dist/collection/components/certificate-details-parts/index.js.map +1 -0
  228. package/dist/collection/components/certificate-details-parts/issuer.js +5 -4
  229. package/dist/collection/components/certificate-details-parts/issuer.js.map +1 -0
  230. package/dist/collection/components/certificate-details-parts/issuer_name.js +6 -4
  231. package/dist/collection/components/certificate-details-parts/issuer_name.js.map +1 -0
  232. package/dist/collection/components/certificate-details-parts/miscellaneous.js +8 -13
  233. package/dist/collection/components/certificate-details-parts/miscellaneous.js.map +1 -0
  234. package/dist/collection/components/certificate-details-parts/public_key.js +8 -7
  235. package/dist/collection/components/certificate-details-parts/public_key.js.map +1 -0
  236. package/dist/collection/components/certificate-details-parts/revoked_certificates.js +9 -11
  237. package/dist/collection/components/certificate-details-parts/revoked_certificates.js.map +1 -0
  238. package/dist/collection/components/certificate-details-parts/row.js +13 -18
  239. package/dist/collection/components/certificate-details-parts/row.js.map +1 -0
  240. package/dist/collection/components/certificate-details-parts/signature.js +5 -4
  241. package/dist/collection/components/certificate-details-parts/signature.js.map +1 -0
  242. package/dist/collection/components/certificate-details-parts/subject_name.js +4 -3
  243. package/dist/collection/components/certificate-details-parts/subject_name.js.map +1 -0
  244. package/dist/collection/components/certificate-details-parts/thumbprints.js +4 -3
  245. package/dist/collection/components/certificate-details-parts/thumbprints.js.map +1 -0
  246. package/dist/collection/components/certificate-summary/certificate-summary.js +9 -77
  247. package/dist/collection/components/certificate-summary/certificate-summary.js.map +1 -0
  248. package/dist/collection/components/certificate-summary/index.js +5 -0
  249. package/dist/collection/components/certificate-summary/index.js.map +1 -0
  250. package/dist/collection/components/certificate-viewer/certificate-viewer.css +471 -104
  251. package/dist/collection/components/certificate-viewer/certificate-viewer.js +206 -178
  252. package/dist/collection/components/certificate-viewer/certificate-viewer.js.map +1 -0
  253. package/dist/collection/components/certificates-viewer/certificates-viewer.css +540 -267
  254. package/dist/collection/components/certificates-viewer/certificates-viewer.js +261 -266
  255. package/dist/collection/components/certificates-viewer/certificates-viewer.js.map +1 -0
  256. package/dist/collection/components/circular-progress/circular-progress.css +2 -11
  257. package/dist/collection/components/circular-progress/circular-progress.js +60 -63
  258. package/dist/collection/components/circular-progress/circular-progress.js.map +1 -0
  259. package/dist/collection/components/crl-viewer/crl-viewer.js +166 -139
  260. package/dist/collection/components/crl-viewer/crl-viewer.js.map +1 -0
  261. package/dist/collection/components/csr-viewer/csr-viewer.js +149 -124
  262. package/dist/collection/components/csr-viewer/csr-viewer.js.map +1 -0
  263. package/dist/collection/components/highlight-words/highlight-words.css +1 -9
  264. package/dist/collection/components/highlight-words/highlight-words.js +35 -28
  265. package/dist/collection/components/highlight-words/highlight-words.js.map +1 -0
  266. package/dist/collection/components/icons/actions.js +16 -0
  267. package/dist/collection/components/icons/actions.js.map +1 -0
  268. package/dist/collection/components/icons/arrow_bottom.js +16 -0
  269. package/dist/collection/components/icons/arrow_bottom.js.map +1 -0
  270. package/dist/collection/components/icons/arrow_top.js +16 -0
  271. package/dist/collection/components/icons/arrow_top.js.map +1 -0
  272. package/dist/collection/components/icons/cross.js +16 -0
  273. package/dist/collection/components/icons/cross.js.map +1 -0
  274. package/dist/collection/components/icons/details.js +16 -0
  275. package/dist/collection/components/icons/details.js.map +1 -0
  276. package/dist/collection/components/icons/download.js +16 -0
  277. package/dist/collection/components/icons/download.js.map +1 -0
  278. package/dist/collection/components/icons/index.js +11 -0
  279. package/dist/collection/components/icons/index.js.map +1 -0
  280. package/dist/collection/components/icons/link.js +16 -0
  281. package/dist/collection/components/icons/link.js.map +1 -0
  282. package/dist/collection/components/link/index.js +5 -0
  283. package/dist/collection/components/link/index.js.map +1 -0
  284. package/dist/collection/components/link/link.js +9 -61
  285. package/dist/collection/components/link/link.js.map +1 -0
  286. package/dist/collection/components/text-hider/text-hider.css +9 -36
  287. package/dist/collection/components/text-hider/text-hider.js +21 -68
  288. package/dist/collection/components/text-hider/text-hider.js.map +1 -0
  289. package/dist/collection/components/typography/index.js +5 -0
  290. package/dist/collection/components/typography/index.js.map +1 -0
  291. package/dist/collection/components/typography/typography.js +39 -126
  292. package/dist/collection/components/typography/typography.js.map +1 -0
  293. package/dist/collection/constants/logs.js +1 -0
  294. package/dist/collection/constants/logs.js.map +1 -0
  295. package/dist/collection/constants/oids.js +1 -0
  296. package/dist/collection/constants/oids.js.map +1 -0
  297. package/dist/collection/crypto/asn_data.js +13 -7
  298. package/dist/collection/crypto/asn_data.js.map +1 -0
  299. package/dist/collection/crypto/attribute.js +11 -10
  300. package/dist/collection/crypto/attribute.js.map +1 -0
  301. package/dist/collection/crypto/crl.js +9 -8
  302. package/dist/collection/crypto/crl.js.map +1 -0
  303. package/dist/collection/crypto/csr.js +11 -10
  304. package/dist/collection/crypto/csr.js.map +1 -0
  305. package/dist/collection/crypto/extension.js +16 -15
  306. package/dist/collection/crypto/extension.js.map +1 -0
  307. package/dist/collection/crypto/index.js +1 -0
  308. package/dist/collection/crypto/index.js.map +1 -0
  309. package/dist/collection/crypto/name.js +15 -9
  310. package/dist/collection/crypto/name.js.map +1 -0
  311. package/dist/collection/crypto/provider.js +4 -3
  312. package/dist/collection/crypto/provider.js.map +1 -0
  313. package/dist/collection/crypto/utils.js +4 -3
  314. package/dist/collection/crypto/utils.js.map +1 -0
  315. package/dist/collection/crypto/x509_attribute_certificate.js +9 -8
  316. package/dist/collection/crypto/x509_attribute_certificate.js.map +1 -0
  317. package/dist/collection/crypto/x509_certificate.js +12 -11
  318. package/dist/collection/crypto/x509_certificate.js.map +1 -0
  319. package/dist/collection/index.js +5 -0
  320. package/dist/collection/index.js.map +1 -0
  321. package/dist/collection/locales/en.json +4 -3
  322. package/dist/collection/utils/date_formatter.js +3 -2
  323. package/dist/collection/utils/date_formatter.js.map +1 -0
  324. package/dist/collection/utils/download.js +3 -2
  325. package/dist/collection/utils/download.js.map +1 -0
  326. package/dist/collection/utils/download_from_buffer.js +1 -0
  327. package/dist/collection/utils/download_from_buffer.js.map +1 -0
  328. package/dist/collection/utils/get_string_by_oid.js +2 -1
  329. package/dist/collection/utils/get_string_by_oid.js.map +1 -0
  330. package/dist/collection/utils/index.js +2 -1
  331. package/dist/collection/utils/index.js.map +1 -0
  332. package/dist/collection/utils/is_link.js +1 -0
  333. package/dist/collection/utils/is_link.js.map +1 -0
  334. package/dist/collection/utils/l10n.js +2 -1
  335. package/dist/collection/utils/l10n.js.map +1 -0
  336. package/dist/collection/utils/read_file.js +1 -0
  337. package/dist/collection/utils/read_file.js.map +1 -0
  338. package/dist/collection/utils/third_party_links.js +1 -0
  339. package/dist/collection/utils/third_party_links.js.map +1 -0
  340. package/dist/collection/utils/validator.js +1 -0
  341. package/dist/collection/utils/validator.js.map +1 -0
  342. package/dist/collection/www-copy/index.js +138 -32
  343. package/dist/esm/actions-8d745b2a.js +21 -0
  344. package/dist/esm/actions-8d745b2a.js.map +1 -0
  345. package/dist/esm/arrow_top-fc298828.js +34 -0
  346. package/dist/esm/arrow_top-fc298828.js.map +1 -0
  347. package/dist/esm/button-35146bdd.js +74 -0
  348. package/dist/esm/button-35146bdd.js.map +1 -0
  349. package/dist/esm/{certification_request-23cd5124.js → certification_request-5cadde9f.js} +171 -9
  350. package/dist/esm/certification_request-5cadde9f.js.map +1 -0
  351. package/dist/esm/{crl-7f23c111.js → crl-11670c3e.js} +7 -6
  352. package/dist/esm/crl-11670c3e.js.map +1 -0
  353. package/dist/esm/cross-9ec9a759.js +47 -0
  354. package/dist/esm/cross-9ec9a759.js.map +1 -0
  355. package/dist/esm/download-0cc3077a.js +21 -0
  356. package/dist/esm/download-0cc3077a.js.map +1 -0
  357. package/dist/esm/{download-91511aeb.js → download-57c5bf8f.js} +2 -0
  358. package/dist/esm/download-57c5bf8f.js.map +1 -0
  359. package/dist/esm/index-4079bbb5.js +2448 -0
  360. package/dist/esm/index-4079bbb5.js.map +1 -0
  361. package/dist/esm/index.js +10 -1
  362. package/dist/esm/index.js.map +1 -0
  363. package/dist/esm/link-ad24c3be.js +23 -0
  364. package/dist/esm/link-ad24c3be.js.map +1 -0
  365. package/dist/esm/loader.js +6 -12
  366. package/dist/esm/loader.js.map +1 -0
  367. package/dist/esm/{miscellaneous-c7c0d04a.js → miscellaneous-7793a310.js} +40 -37
  368. package/dist/esm/miscellaneous-7793a310.js.map +1 -0
  369. package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js +81 -23
  370. package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js.map +1 -0
  371. package/dist/esm/peculiar-button-menu_3.entry.js +92 -0
  372. package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -0
  373. package/dist/esm/peculiar-certificate-decoder.entry.js +30 -19
  374. package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -0
  375. package/dist/esm/peculiar-certificate-viewer.entry.js +35 -11
  376. package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -0
  377. package/dist/esm/peculiar-certificates-viewer.entry.js +145 -85
  378. package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -0
  379. package/dist/esm/peculiar-text-hider.entry.js +7 -13
  380. package/dist/esm/peculiar-text-hider.entry.js.map +1 -0
  381. package/dist/esm/peculiar.js +8 -58
  382. package/dist/esm/peculiar.js.map +1 -0
  383. package/dist/esm/{x509_certificate-d8e0af2d.js → x509_certificate-dfae6999.js} +4 -3
  384. package/dist/esm/x509_certificate-dfae6999.js.map +1 -0
  385. package/dist/esm-es5/actions-8d745b2a.js +12 -0
  386. package/dist/esm-es5/actions-8d745b2a.js.map +1 -0
  387. package/dist/esm-es5/arrow_top-fc298828.js +19 -0
  388. package/dist/esm-es5/arrow_top-fc298828.js.map +1 -0
  389. package/dist/esm-es5/button-35146bdd.js +19 -0
  390. package/dist/esm-es5/button-35146bdd.js.map +1 -0
  391. package/dist/esm-es5/certification_request-5cadde9f.js +97 -0
  392. package/dist/esm-es5/certification_request-5cadde9f.js.map +1 -0
  393. package/dist/esm-es5/crl-11670c3e.js +33 -0
  394. package/dist/esm-es5/crl-11670c3e.js.map +1 -0
  395. package/dist/esm-es5/cross-9ec9a759.js +26 -0
  396. package/dist/esm-es5/cross-9ec9a759.js.map +1 -0
  397. package/dist/esm-es5/download-0cc3077a.js +12 -0
  398. package/dist/esm-es5/download-0cc3077a.js.map +1 -0
  399. package/dist/esm-es5/download-57c5bf8f.js +19 -0
  400. package/dist/esm-es5/download-57c5bf8f.js.map +1 -0
  401. package/dist/esm-es5/index-4079bbb5.js +6 -0
  402. package/dist/esm-es5/index-4079bbb5.js.map +1 -0
  403. package/dist/esm-es5/index.js +5 -0
  404. package/dist/esm-es5/index.js.map +1 -0
  405. package/dist/esm-es5/link-ad24c3be.js +12 -0
  406. package/dist/esm-es5/link-ad24c3be.js.map +1 -0
  407. package/dist/esm-es5/loader.js +5 -0
  408. package/dist/esm-es5/loader.js.map +1 -0
  409. package/dist/esm-es5/miscellaneous-7793a310.js +348 -0
  410. package/dist/esm-es5/miscellaneous-7793a310.js.map +1 -0
  411. package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js +110 -0
  412. package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js.map +1 -0
  413. package/dist/esm-es5/peculiar-button-menu_3.entry.js +5 -0
  414. package/dist/esm-es5/peculiar-button-menu_3.entry.js.map +1 -0
  415. package/dist/esm-es5/peculiar-certificate-decoder.entry.js +12 -0
  416. package/dist/esm-es5/peculiar-certificate-decoder.entry.js.map +1 -0
  417. package/dist/esm-es5/peculiar-certificate-viewer.entry.js +5 -0
  418. package/dist/esm-es5/peculiar-certificate-viewer.entry.js.map +1 -0
  419. package/dist/esm-es5/peculiar-certificates-viewer.entry.js +12 -0
  420. package/dist/esm-es5/peculiar-certificates-viewer.entry.js.map +1 -0
  421. package/dist/esm-es5/peculiar-text-hider.entry.js +5 -0
  422. package/dist/esm-es5/peculiar-text-hider.entry.js.map +1 -0
  423. package/dist/esm-es5/peculiar.js +5 -0
  424. package/dist/esm-es5/peculiar.js.map +1 -0
  425. package/dist/esm-es5/x509_certificate-dfae6999.js +12 -0
  426. package/dist/esm-es5/x509_certificate-dfae6999.js.map +1 -0
  427. package/dist/index.js +1 -1
  428. package/dist/peculiar/index.esm.js +2 -1
  429. package/dist/peculiar/index.esm.js.map +1 -0
  430. package/dist/peculiar/locales/en.json +4 -3
  431. package/dist/peculiar/p-0b356bb5.js +6 -0
  432. package/dist/peculiar/p-0b356bb5.js.map +1 -0
  433. package/dist/peculiar/p-0b475f2a.system.entry.js +111 -0
  434. package/dist/peculiar/p-0b475f2a.system.entry.js.map +1 -0
  435. package/dist/peculiar/p-0fc2e2b4.js +19 -0
  436. package/dist/peculiar/p-0fc2e2b4.js.map +1 -0
  437. package/dist/peculiar/p-17e3c47b.js +12 -0
  438. package/dist/peculiar/p-17e3c47b.js.map +1 -0
  439. package/dist/peculiar/p-1844b807.system.entry.js +5 -0
  440. package/dist/peculiar/p-1844b807.system.entry.js.map +1 -0
  441. package/dist/peculiar/p-1ceb0fe3.js +12 -0
  442. package/dist/peculiar/p-1ceb0fe3.js.map +1 -0
  443. package/dist/peculiar/p-1de0381c.system.js +5 -0
  444. package/dist/peculiar/p-1de0381c.system.js.map +1 -0
  445. package/dist/peculiar/p-2fcad8cb.system.js +20 -0
  446. package/dist/peculiar/p-2fcad8cb.system.js.map +1 -0
  447. package/dist/peculiar/p-31586b23.system.js +13 -0
  448. package/dist/peculiar/p-31586b23.system.js.map +1 -0
  449. package/dist/peculiar/p-33196289.entry.js +5 -0
  450. package/dist/peculiar/p-33196289.entry.js.map +1 -0
  451. package/dist/peculiar/p-370cee20.js +26 -0
  452. package/dist/peculiar/p-370cee20.js.map +1 -0
  453. package/dist/peculiar/p-43eb3721.js +33 -0
  454. package/dist/peculiar/p-43eb3721.js.map +1 -0
  455. package/dist/peculiar/p-441109db.system.entry.js +13 -0
  456. package/dist/peculiar/p-441109db.system.entry.js.map +1 -0
  457. package/dist/peculiar/p-5151cb6f.system.entry.js +5 -0
  458. package/dist/peculiar/p-5151cb6f.system.entry.js.map +1 -0
  459. package/dist/peculiar/p-53784f15.system.entry.js +5 -0
  460. package/dist/peculiar/p-53784f15.system.entry.js.map +1 -0
  461. package/dist/peculiar/p-5aabeba7.system.js +6 -0
  462. package/dist/peculiar/p-5aabeba7.system.js.map +1 -0
  463. package/dist/peculiar/p-5ab007e9.entry.js +5 -0
  464. package/dist/peculiar/p-5ab007e9.entry.js.map +1 -0
  465. package/dist/peculiar/p-6667fe6e.system.js +34 -0
  466. package/dist/peculiar/p-6667fe6e.system.js.map +1 -0
  467. package/dist/peculiar/p-673336cf.entry.js +110 -0
  468. package/dist/peculiar/p-673336cf.entry.js.map +1 -0
  469. package/dist/peculiar/p-6cb88fd6.system.js +13 -0
  470. package/dist/peculiar/p-6cb88fd6.system.js.map +1 -0
  471. package/dist/peculiar/p-6e79b9c8.js +12 -0
  472. package/dist/peculiar/p-6e79b9c8.js.map +1 -0
  473. package/dist/peculiar/p-74c241e7.js +97 -0
  474. package/dist/peculiar/p-74c241e7.js.map +1 -0
  475. package/dist/peculiar/p-7f9beaa8.js +19 -0
  476. package/dist/peculiar/p-7f9beaa8.js.map +1 -0
  477. package/dist/peculiar/p-7f9fef87.entry.js +5 -0
  478. package/dist/peculiar/p-7f9fef87.entry.js.map +1 -0
  479. package/dist/peculiar/p-80832207.system.js +5 -0
  480. package/dist/peculiar/p-80832207.system.js.map +1 -0
  481. package/dist/peculiar/p-882e1281.entry.js +12 -0
  482. package/dist/peculiar/p-882e1281.entry.js.map +1 -0
  483. package/dist/peculiar/p-94a453d7.js +12 -0
  484. package/dist/peculiar/p-94a453d7.js.map +1 -0
  485. package/dist/peculiar/p-a053c132.js +19 -0
  486. package/dist/peculiar/p-a053c132.js.map +1 -0
  487. package/dist/peculiar/p-a6e2e335.js +348 -0
  488. package/dist/peculiar/p-a6e2e335.js.map +1 -0
  489. package/dist/peculiar/p-ae9189f6.system.js +19 -0
  490. package/dist/peculiar/p-ae9189f6.system.js.map +1 -0
  491. package/dist/peculiar/p-b313be9e.system.js +13 -0
  492. package/dist/peculiar/p-b313be9e.system.js.map +1 -0
  493. package/dist/peculiar/p-bcc86979.entry.js +12 -0
  494. package/dist/peculiar/p-bcc86979.entry.js.map +1 -0
  495. package/dist/peculiar/p-c0a298fd.system.js +97 -0
  496. package/dist/peculiar/p-c0a298fd.system.js.map +1 -0
  497. package/dist/peculiar/p-c362dc5e.system.js +348 -0
  498. package/dist/peculiar/p-c362dc5e.system.js.map +1 -0
  499. package/dist/peculiar/p-c99507d4.system.js +20 -0
  500. package/dist/peculiar/p-c99507d4.system.js.map +1 -0
  501. package/dist/peculiar/p-ddae2f8e.system.js +27 -0
  502. package/dist/peculiar/p-ddae2f8e.system.js.map +1 -0
  503. package/dist/peculiar/p-e39de121.system.entry.js +13 -0
  504. package/dist/peculiar/p-e39de121.system.entry.js.map +1 -0
  505. package/dist/peculiar/p-e6a3b4d4.system.js +13 -0
  506. package/dist/peculiar/p-e6a3b4d4.system.js.map +1 -0
  507. package/dist/peculiar/peculiar.css +1 -1
  508. package/dist/peculiar/peculiar.esm.js +2 -1
  509. package/dist/peculiar/peculiar.esm.js.map +1 -0
  510. package/dist/peculiar/peculiar.js +127 -0
  511. package/dist/types/components/attribute-certificate-viewer/attribute-certificate-viewer.d.ts +15 -3
  512. package/dist/types/components/button/button.d.ts +5 -16
  513. package/dist/types/components/button/index.d.ts +2 -0
  514. package/dist/types/components/button-menu/button-menu.d.ts +21 -0
  515. package/dist/types/components/certificate-decoder/certificate-decoder.d.ts +9 -6
  516. package/dist/types/components/certificate-details-parts/miscellaneous.d.ts +1 -1
  517. package/dist/types/components/certificate-summary/certificate-summary.d.ts +4 -3
  518. package/dist/types/components/certificate-summary/index.d.ts +1 -0
  519. package/dist/types/components/certificate-viewer/certificate-viewer.d.ts +13 -5
  520. package/dist/types/components/certificates-viewer/certificates-viewer.d.ts +22 -11
  521. package/dist/types/components/crl-viewer/crl-viewer.d.ts +13 -5
  522. package/dist/types/components/csr-viewer/csr-viewer.d.ts +13 -5
  523. package/dist/types/components/icons/actions.d.ts +12 -0
  524. package/dist/types/components/icons/arrow_bottom.d.ts +12 -0
  525. package/dist/types/components/icons/arrow_top.d.ts +12 -0
  526. package/dist/types/components/icons/cross.d.ts +12 -0
  527. package/dist/types/components/icons/details.d.ts +12 -0
  528. package/dist/types/components/icons/download.d.ts +12 -0
  529. package/dist/types/components/icons/index.d.ts +7 -0
  530. package/dist/types/components/icons/link.d.ts +12 -0
  531. package/dist/types/components/link/index.d.ts +1 -0
  532. package/dist/types/components/link/link.d.ts +6 -6
  533. package/dist/types/components/text-hider/text-hider.d.ts +0 -3
  534. package/dist/types/components/typography/index.d.ts +1 -0
  535. package/dist/types/components/typography/typography.d.ts +10 -20
  536. package/dist/types/components.d.ts +74 -175
  537. package/dist/types/crypto/attribute.d.ts +1 -1
  538. package/dist/types/crypto/extension.d.ts +1 -1
  539. package/dist/types/index.d.ts +4 -0
  540. package/dist/types/interface.d.ts +98 -6
  541. package/dist/types/stencil-public-runtime.d.ts +110 -23
  542. package/dist/types/utils/l10n.d.ts +5 -4
  543. package/dist/types/utils/read_file.d.ts +1 -1
  544. package/hydrate/index.d.ts +218 -0
  545. package/hydrate/index.js +22549 -0
  546. package/hydrate/package.json +6 -0
  547. package/loader/index.d.ts +10 -1
  548. package/loader/index.js +1 -1
  549. package/loader/package.json +1 -0
  550. package/package.json +6 -4
  551. package/dist/cjs/dom-f57e260e.js +0 -78
  552. package/dist/cjs/index-064e95c7.js +0 -1486
  553. package/dist/cjs/l10n-ddc7cff9.js +0 -169
  554. package/dist/cjs/peculiar-button-split_4.cjs.entry.js +0 -128
  555. package/dist/cjs/peculiar-button.cjs.entry.js +0 -40
  556. package/dist/cjs/peculiar-link.cjs.entry.js +0 -29
  557. package/dist/cjs/peculiar-typography.cjs.entry.js +0 -38
  558. package/dist/collection/components/button/button.css +0 -81
  559. package/dist/collection/components/button-split/button-split.css +0 -57
  560. package/dist/collection/components/button-split/button-split.js +0 -116
  561. package/dist/collection/components/certificate-summary/certificate-summary.css +0 -49
  562. package/dist/collection/components/link/link.css +0 -59
  563. package/dist/collection/components/typography/typography.css +0 -95
  564. package/dist/esm/dom-f1b08a97.js +0 -76
  565. package/dist/esm/index-bbd484d9.js +0 -1455
  566. package/dist/esm/l10n-d48f35ff.js +0 -165
  567. package/dist/esm/peculiar-button-split_4.entry.js +0 -121
  568. package/dist/esm/peculiar-button.entry.js +0 -36
  569. package/dist/esm/peculiar-link.entry.js +0 -25
  570. package/dist/esm/peculiar-typography.entry.js +0 -34
  571. package/dist/esm/polyfills/css-shim.js +0 -1
  572. package/dist/peculiar/p-01cea5c0.entry.js +0 -11
  573. package/dist/peculiar/p-3bfefa4a.entry.js +0 -18
  574. package/dist/peculiar/p-4e8169cb.entry.js +0 -4
  575. package/dist/peculiar/p-57b89412.entry.js +0 -4
  576. package/dist/peculiar/p-5b4eed12.entry.js +0 -4
  577. package/dist/peculiar/p-610b85e3.entry.js +0 -4
  578. package/dist/peculiar/p-6d37c8b5.entry.js +0 -4
  579. package/dist/peculiar/p-711b4e1e.js +0 -18
  580. package/dist/peculiar/p-81a88a33.js +0 -11
  581. package/dist/peculiar/p-918aeee4.entry.js +0 -4
  582. package/dist/peculiar/p-9f4ee110.js +0 -22
  583. package/dist/peculiar/p-a050e184.js +0 -69
  584. package/dist/peculiar/p-c24c26c2.js +0 -32
  585. package/dist/peculiar/p-df53fbcc.entry.js +0 -4
  586. package/dist/peculiar/p-ec250cc4.js +0 -12
  587. package/dist/peculiar/p-f7683ba5.js +0 -5
  588. package/dist/peculiar/p-fe05f51e.js +0 -79
  589. package/dist/types/components/button-split/button-split.d.ts +0 -21
@@ -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","this","isHasRoots","handleClickDetails","certificateSelectedForDetails","detailsOpen","emit","handleModalClose","undefined","detailsClose","handleSearch","event","search","target","trim","handleMediaQueryChange","mobileScreenView","matches","componentWillLoad","certificatesDecodeAndSet","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","watchCertificates","newValue","oldValue","JSON","stringify","hasRoots","Array","isArray","certificates","data","decoded","X509Certificate","getThumbprint","push","body","tests","isRoot","error","console","isDecodeInProcess","certificatesDecoded","handleClickDownloadAsPem","downloadAsPEM","commonName","handleClickDownloadAsDer","downloadAsDER","handleClickRow","index","isExpandedRowClicked","expandedRow","getMaxColSpanValue","colSpan","renderCertificateButtonActions","isHasTestURLs","expired","revoked","valid","class","groups","title","options","text","startIcon","DetailsIcon","onClick","DownloadIcon","_a","href","LinkIcon","_b","_c","renderExpandedRow","renderCertificatesRows","searchHighlight","highlightWithSearch","content","forEach","isExpandedRow","publicKeyValue","OIDs","signature","algorithm","filterWithSearch","certificateStringForSearch","issuerCommonName","thumbprints","join","toLowerCase","indexOf","certificate_row","m_expanded","key","Button","ArrowTopIcon","ArrowBottomIcon","renderCertificateDetailsModal","role","part","CrossIcon","renderSearch","onInput","type","disabled","length","placeholder","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 CertificateSummaryProps {\n certificate: X509Certificate;\n showIssuer?: boolean;\n}\n\nexport const CertificateSummary: FunctionalComponent<CertificateSummaryProps> = (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';\n\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;\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?: string;\n}\n\n@Component({\n tag: 'peculiar-certificates-viewer',\n styleUrl: 'certificates-viewer.scss',\n shadow: true,\n})\nexport class CertificatesViewer {\n private isHasRoots: boolean = 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: boolean = true;\n\n /**\n * Use highlight chapters in the list when search is changed.\n */\n @Prop() highlightWithSearch: boolean = 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: boolean = false;\n\n @State() search: string = '';\n\n @State() certificatesDecoded: ICertificateDecoded[] = [];\n\n @State() expandedRow?: number;\n\n @State() certificateSelectedForDetails?: X509Certificate;\n\n @State() isDecodeInProcess: boolean = 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 // eslint-disable-next-line no-restricted-syntax\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 // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsPem(certificate: ICertificateDecoded) {\n certificate.body.downloadAsPEM(certificate.name || certificate.body.commonName);\n }\n\n // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsDer(certificate: ICertificateDecoded) {\n certificate.body.downloadAsDER(certificate.name || certificate.body.commonName);\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: any) => {\n this.search = event.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 title: l10n.getString('testURLs'),\n options: [\n ...(certificate.tests?.valid ? [{\n text: l10n.getString('valid'),\n href: certificate.tests.valid,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.revoked ? [{\n text: l10n.getString('revoked'),\n href: certificate.tests.revoked,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.expired ? [{\n text: l10n.getString('expired'),\n href: certificate.tests.expired,\n startIcon: <LinkIcon />,\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 certificate.name,\n certificate.body.commonName,\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 {certificate.name || certificate.body.commonName}\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 // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\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={{\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <Button\n class=\"button_table_cell\"\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\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 {certificate.name || certificate.body.commonName}\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 onClick={this.handleModalClose}\n aria-hidden=\"true\"\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 onClick={this.handleModalClose}\n startIcon={<CrossIcon />}\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 onInput={this.handleSearch}\n type=\"search\"\n value=\"\"\n class=\"input_search t-b3 c-black\"\n disabled={!this.certificatesDecoded.length}\n placeholder=\"Search\"\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 // eslint-disable-next-line class-methods-use-this\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 {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\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 {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\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":"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"}