@peculiar/certificates-viewer 3.9.0 → 3.10.1-alpha.12

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 (554) hide show
  1. package/components/arrow_top.js +34 -0
  2. package/components/arrow_top.js.map +1 -0
  3. package/components/attribute-certificate-viewer.js +281 -0
  4. package/components/attribute-certificate-viewer.js.map +1 -0
  5. package/components/button-menu.js +64 -0
  6. package/components/button-menu.js.map +1 -0
  7. package/components/button.js +74 -0
  8. package/components/button.js.map +1 -0
  9. package/components/certificate-viewer.js +300 -0
  10. package/components/certificate-viewer.js.map +1 -0
  11. package/components/circular-progress.js +48 -0
  12. package/components/circular-progress.js.map +1 -0
  13. package/components/crl-viewer.js +263 -0
  14. package/components/crl-viewer.js.map +1 -0
  15. package/components/csr-viewer.js +233 -0
  16. package/components/csr-viewer.js.map +1 -0
  17. package/components/custom-elements.d.ts +2 -0
  18. package/{dist/esm/download-91511aeb.js → components/download.js} +2 -0
  19. package/components/download.js.map +1 -0
  20. package/components/highlight-words.js +60 -0
  21. package/components/highlight-words.js.map +1 -0
  22. package/components/index.d.ts +33 -0
  23. package/components/index.js +7 -0
  24. package/components/index.js.map +1 -0
  25. package/components/index2.js +299 -0
  26. package/components/index2.js.map +1 -0
  27. package/components/issuer_name.js +26 -0
  28. package/components/issuer_name.js.map +1 -0
  29. package/components/miscellaneous.js +13420 -0
  30. package/components/miscellaneous.js.map +1 -0
  31. package/components/package.json +9 -0
  32. package/components/peculiar-attribute-certificate-viewer.d.ts +11 -0
  33. package/components/peculiar-attribute-certificate-viewer.js +11 -0
  34. package/components/peculiar-attribute-certificate-viewer.js.map +1 -0
  35. package/components/peculiar-button-menu.d.ts +11 -0
  36. package/components/peculiar-button-menu.js +11 -0
  37. package/components/peculiar-button-menu.js.map +1 -0
  38. package/components/peculiar-certificate-decoder.d.ts +11 -0
  39. package/components/peculiar-certificate-decoder.js +234 -0
  40. package/components/peculiar-certificate-decoder.js.map +1 -0
  41. package/components/peculiar-certificate-viewer.d.ts +11 -0
  42. package/components/peculiar-certificate-viewer.js +11 -0
  43. package/components/peculiar-certificate-viewer.js.map +1 -0
  44. package/components/peculiar-certificates-viewer.d.ts +11 -0
  45. package/components/peculiar-certificates-viewer.js +382 -0
  46. package/components/peculiar-certificates-viewer.js.map +1 -0
  47. package/components/peculiar-circular-progress.d.ts +11 -0
  48. package/components/peculiar-circular-progress.js +11 -0
  49. package/components/peculiar-circular-progress.js.map +1 -0
  50. package/components/peculiar-crl-viewer.d.ts +11 -0
  51. package/components/peculiar-crl-viewer.js +11 -0
  52. package/components/peculiar-crl-viewer.js.map +1 -0
  53. package/components/peculiar-csr-viewer.d.ts +11 -0
  54. package/components/peculiar-csr-viewer.js +11 -0
  55. package/components/peculiar-csr-viewer.js.map +1 -0
  56. package/components/peculiar-highlight-words.d.ts +11 -0
  57. package/components/peculiar-highlight-words.js +11 -0
  58. package/components/peculiar-highlight-words.js.map +1 -0
  59. package/components/peculiar-text-hider.d.ts +11 -0
  60. package/components/peculiar-text-hider.js +42 -0
  61. package/components/peculiar-text-hider.js.map +1 -0
  62. package/components/subject_name.js +71 -0
  63. package/components/subject_name.js.map +1 -0
  64. package/dist/cjs/arrow_top-834fb7ec.js +37 -0
  65. package/dist/cjs/arrow_top-834fb7ec.js.map +1 -0
  66. package/dist/cjs/button-14e2b73f.js +77 -0
  67. package/dist/cjs/button-14e2b73f.js.map +1 -0
  68. package/dist/cjs/{certification_request-b9ac73f2.js → certification_request-c0cafa72.js} +240 -73
  69. package/dist/cjs/certification_request-c0cafa72.js.map +1 -0
  70. package/dist/cjs/{crl-57727a07.js → crl-b4322166.js} +8 -7
  71. package/dist/cjs/crl-b4322166.js.map +1 -0
  72. package/dist/cjs/download-254ddc57.js +23 -0
  73. package/dist/cjs/download-254ddc57.js.map +1 -0
  74. package/dist/cjs/{download-93f7b773.js → download-972dda8a.js} +2 -0
  75. package/dist/cjs/download-972dda8a.js.map +1 -0
  76. package/dist/cjs/index-efd561e9.js +2477 -0
  77. package/dist/cjs/index-efd561e9.js.map +1 -0
  78. package/dist/cjs/index.cjs.js +3 -1
  79. package/dist/cjs/index.cjs.js.map +1 -0
  80. package/dist/cjs/loader.cjs.js +6 -12
  81. package/dist/cjs/loader.cjs.js.map +1 -0
  82. package/dist/cjs/{miscellaneous-07184a47.js → miscellaneous-806a04a5.js} +87 -71
  83. package/dist/cjs/miscellaneous-806a04a5.js.map +1 -0
  84. package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js +92 -35
  85. package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js.map +1 -0
  86. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +110 -0
  87. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -0
  88. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +30 -19
  89. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js.map +1 -0
  90. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +34 -11
  91. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js.map +1 -0
  92. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +183 -85
  93. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js.map +1 -0
  94. package/dist/cjs/peculiar-text-hider.cjs.entry.js +7 -13
  95. package/dist/cjs/peculiar-text-hider.cjs.entry.js.map +1 -0
  96. package/dist/cjs/peculiar.cjs.js +10 -57
  97. package/dist/cjs/peculiar.cjs.js.map +1 -0
  98. package/dist/cjs/{x509_certificate-da0fc87d.js → x509_certificate-989b1435.js} +5 -4
  99. package/dist/cjs/x509_certificate-989b1435.js.map +1 -0
  100. package/dist/collection/collection-manifest.json +12 -16
  101. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +189 -145
  102. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js.map +1 -0
  103. package/dist/collection/components/button/button.js +14 -126
  104. package/dist/collection/components/button/button.js.map +1 -0
  105. package/dist/collection/components/button/index.js +5 -0
  106. package/dist/collection/components/button/index.js.map +1 -0
  107. package/dist/collection/components/button-menu/button-menu.css +46 -0
  108. package/dist/collection/components/button-menu/button-menu.js +78 -0
  109. package/dist/collection/components/button-menu/button-menu.js.map +1 -0
  110. package/dist/collection/components/certificate-decoder/certificate-decoder.css +456 -44
  111. package/dist/collection/components/certificate-decoder/certificate-decoder.js +109 -101
  112. package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -0
  113. package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js +6 -11
  114. package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js.map +1 -0
  115. package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js +5 -5
  116. package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js.map +1 -0
  117. package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js +5 -6
  118. package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js.map +1 -0
  119. package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js +5 -5
  120. package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js.map +1 -0
  121. package/dist/collection/components/certificate-details-parts/attributes/index.js +16 -15
  122. package/dist/collection/components/certificate-details-parts/attributes/index.js.map +1 -0
  123. package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js +5 -5
  124. package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js.map +1 -0
  125. package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js +5 -5
  126. package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js.map +1 -0
  127. package/dist/collection/components/certificate-details-parts/attributes/name_part.js +4 -3
  128. package/dist/collection/components/certificate-details-parts/attributes/name_part.js.map +1 -0
  129. package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js +5 -4
  130. package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js.map +1 -0
  131. package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js +5 -5
  132. package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js.map +1 -0
  133. package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js +5 -5
  134. package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js.map +1 -0
  135. package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js +6 -13
  136. package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js.map +1 -0
  137. package/dist/collection/components/certificate-details-parts/basic_information.js +4 -3
  138. package/dist/collection/components/certificate-details-parts/basic_information.js.map +1 -0
  139. package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js +5 -5
  140. package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js.map +1 -0
  141. package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js +5 -5
  142. package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js.map +1 -0
  143. package/dist/collection/components/certificate-details-parts/extensions/attribute_value.js +2 -1
  144. package/dist/collection/components/certificate-details-parts/extensions/attribute_value.js.map +1 -0
  145. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js +10 -15
  146. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js.map +1 -0
  147. package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js +6 -7
  148. package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js.map +1 -0
  149. package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js +5 -6
  150. package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js.map +1 -0
  151. package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js +8 -12
  152. package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js.map +1 -0
  153. package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js +5 -6
  154. package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js.map +1 -0
  155. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js +26 -27
  156. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js.map +1 -0
  157. package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js +5 -7
  158. package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js.map +1 -0
  159. package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js +8 -13
  160. package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js.map +1 -0
  161. package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js +4 -3
  162. package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js.map +1 -0
  163. package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js +6 -6
  164. package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js.map +1 -0
  165. package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js +5 -5
  166. package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js.map +1 -0
  167. package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js +5 -5
  168. package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js.map +1 -0
  169. package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js +5 -6
  170. package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js.map +1 -0
  171. package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js +7 -7
  172. package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js.map +1 -0
  173. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js +8 -7
  174. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js.map +1 -0
  175. package/dist/collection/components/certificate-details-parts/extensions/index.js +46 -45
  176. package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -0
  177. package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js +8 -9
  178. package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js.map +1 -0
  179. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js +7 -11
  180. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js.map +1 -0
  181. package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js +5 -5
  182. package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js.map +1 -0
  183. package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js +5 -5
  184. package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js.map +1 -0
  185. package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js +5 -5
  186. package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js.map +1 -0
  187. package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js +8 -11
  188. package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js.map +1 -0
  189. package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js +4 -3
  190. package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js.map +1 -0
  191. package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js +5 -5
  192. package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js.map +1 -0
  193. package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js +5 -5
  194. package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js.map +1 -0
  195. package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js +6 -7
  196. package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js.map +1 -0
  197. package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js +5 -4
  198. package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js.map +1 -0
  199. package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js +6 -7
  200. package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js.map +1 -0
  201. package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js +13 -16
  202. package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js.map +1 -0
  203. package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js +4 -3
  204. package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js.map +1 -0
  205. package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js +8 -9
  206. package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js.map +1 -0
  207. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js +10 -15
  208. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js.map +1 -0
  209. package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js +7 -9
  210. package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js.map +1 -0
  211. package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js +4 -3
  212. package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js.map +1 -0
  213. package/dist/collection/components/certificate-details-parts/holder.js +8 -11
  214. package/dist/collection/components/certificate-details-parts/holder.js.map +1 -0
  215. package/dist/collection/components/certificate-details-parts/index.js +1 -0
  216. package/dist/collection/components/certificate-details-parts/index.js.map +1 -0
  217. package/dist/collection/components/certificate-details-parts/issuer.js +5 -4
  218. package/dist/collection/components/certificate-details-parts/issuer.js.map +1 -0
  219. package/dist/collection/components/certificate-details-parts/issuer_name.js +6 -4
  220. package/dist/collection/components/certificate-details-parts/issuer_name.js.map +1 -0
  221. package/dist/collection/components/certificate-details-parts/miscellaneous.js +8 -13
  222. package/dist/collection/components/certificate-details-parts/miscellaneous.js.map +1 -0
  223. package/dist/collection/components/certificate-details-parts/public_key.js +8 -7
  224. package/dist/collection/components/certificate-details-parts/public_key.js.map +1 -0
  225. package/dist/collection/components/certificate-details-parts/revoked_certificates.js +9 -11
  226. package/dist/collection/components/certificate-details-parts/revoked_certificates.js.map +1 -0
  227. package/dist/collection/components/certificate-details-parts/row.js +13 -18
  228. package/dist/collection/components/certificate-details-parts/row.js.map +1 -0
  229. package/dist/collection/components/certificate-details-parts/signature.js +5 -4
  230. package/dist/collection/components/certificate-details-parts/signature.js.map +1 -0
  231. package/dist/collection/components/certificate-details-parts/subject_name.js +4 -3
  232. package/dist/collection/components/certificate-details-parts/subject_name.js.map +1 -0
  233. package/dist/collection/components/certificate-details-parts/thumbprints.js +4 -3
  234. package/dist/collection/components/certificate-details-parts/thumbprints.js.map +1 -0
  235. package/dist/collection/components/certificate-summary/certificate-summary.js +9 -77
  236. package/dist/collection/components/certificate-summary/certificate-summary.js.map +1 -0
  237. package/dist/collection/components/certificate-summary/index.js +5 -0
  238. package/dist/collection/components/certificate-summary/index.js.map +1 -0
  239. package/dist/collection/components/certificate-viewer/certificate-viewer.css +470 -104
  240. package/dist/collection/components/certificate-viewer/certificate-viewer.js +206 -178
  241. package/dist/collection/components/certificate-viewer/certificate-viewer.js.map +1 -0
  242. package/dist/collection/components/certificates-viewer/certificates-viewer.css +540 -267
  243. package/dist/collection/components/certificates-viewer/certificates-viewer.js +261 -266
  244. package/dist/collection/components/certificates-viewer/certificates-viewer.js.map +1 -0
  245. package/dist/collection/components/circular-progress/circular-progress.css +2 -11
  246. package/dist/collection/components/circular-progress/circular-progress.js +60 -63
  247. package/dist/collection/components/circular-progress/circular-progress.js.map +1 -0
  248. package/dist/collection/components/crl-viewer/crl-viewer.js +166 -139
  249. package/dist/collection/components/crl-viewer/crl-viewer.js.map +1 -0
  250. package/dist/collection/components/csr-viewer/csr-viewer.js +149 -124
  251. package/dist/collection/components/csr-viewer/csr-viewer.js.map +1 -0
  252. package/dist/collection/components/highlight-words/highlight-words.css +1 -9
  253. package/dist/collection/components/highlight-words/highlight-words.js +35 -28
  254. package/dist/collection/components/highlight-words/highlight-words.js.map +1 -0
  255. package/dist/collection/components/icons/actions.js +16 -0
  256. package/dist/collection/components/icons/actions.js.map +1 -0
  257. package/dist/collection/components/icons/arrow_bottom.js +16 -0
  258. package/dist/collection/components/icons/arrow_bottom.js.map +1 -0
  259. package/dist/collection/components/icons/arrow_top.js +16 -0
  260. package/dist/collection/components/icons/arrow_top.js.map +1 -0
  261. package/dist/collection/components/icons/cross.js +16 -0
  262. package/dist/collection/components/icons/cross.js.map +1 -0
  263. package/dist/collection/components/icons/details.js +16 -0
  264. package/dist/collection/components/icons/details.js.map +1 -0
  265. package/dist/collection/components/icons/download.js +16 -0
  266. package/dist/collection/components/icons/download.js.map +1 -0
  267. package/dist/collection/components/icons/index.js +11 -0
  268. package/dist/collection/components/icons/index.js.map +1 -0
  269. package/dist/collection/components/icons/link.js +16 -0
  270. package/dist/collection/components/icons/link.js.map +1 -0
  271. package/dist/collection/components/link/index.js +5 -0
  272. package/dist/collection/components/link/index.js.map +1 -0
  273. package/dist/collection/components/link/link.js +9 -61
  274. package/dist/collection/components/link/link.js.map +1 -0
  275. package/dist/collection/components/text-hider/text-hider.css +9 -36
  276. package/dist/collection/components/text-hider/text-hider.js +21 -68
  277. package/dist/collection/components/text-hider/text-hider.js.map +1 -0
  278. package/dist/collection/components/typography/index.js +5 -0
  279. package/dist/collection/components/typography/index.js.map +1 -0
  280. package/dist/collection/components/typography/typography.js +39 -126
  281. package/dist/collection/components/typography/typography.js.map +1 -0
  282. package/dist/collection/constants/logs.js +1 -0
  283. package/dist/collection/constants/logs.js.map +1 -0
  284. package/dist/collection/constants/oids.js +5 -2
  285. package/dist/collection/constants/oids.js.map +1 -0
  286. package/dist/collection/crypto/asn_data.js +13 -7
  287. package/dist/collection/crypto/asn_data.js.map +1 -0
  288. package/dist/collection/crypto/attribute.js +11 -10
  289. package/dist/collection/crypto/attribute.js.map +1 -0
  290. package/dist/collection/crypto/crl.js +9 -8
  291. package/dist/collection/crypto/crl.js.map +1 -0
  292. package/dist/collection/crypto/csr.js +11 -10
  293. package/dist/collection/crypto/csr.js.map +1 -0
  294. package/dist/collection/crypto/extension.js +16 -15
  295. package/dist/collection/crypto/extension.js.map +1 -0
  296. package/dist/collection/crypto/index.js +1 -0
  297. package/dist/collection/crypto/index.js.map +1 -0
  298. package/dist/collection/crypto/name.js +15 -9
  299. package/dist/collection/crypto/name.js.map +1 -0
  300. package/dist/collection/crypto/provider.js +4 -3
  301. package/dist/collection/crypto/provider.js.map +1 -0
  302. package/dist/collection/crypto/utils.js +4 -3
  303. package/dist/collection/crypto/utils.js.map +1 -0
  304. package/dist/collection/crypto/x509_attribute_certificate.js +9 -8
  305. package/dist/collection/crypto/x509_attribute_certificate.js.map +1 -0
  306. package/dist/collection/crypto/x509_certificate.js +12 -11
  307. package/dist/collection/crypto/x509_certificate.js.map +1 -0
  308. package/dist/collection/index.js +1 -0
  309. package/dist/collection/index.js.map +1 -0
  310. package/dist/collection/locales/en.json +4 -3
  311. package/dist/collection/utils/date_formatter.js +3 -2
  312. package/dist/collection/utils/date_formatter.js.map +1 -0
  313. package/dist/collection/utils/download.js +3 -2
  314. package/dist/collection/utils/download.js.map +1 -0
  315. package/dist/collection/utils/download_from_buffer.js +1 -0
  316. package/dist/collection/utils/download_from_buffer.js.map +1 -0
  317. package/dist/collection/utils/get_string_by_oid.js +2 -1
  318. package/dist/collection/utils/get_string_by_oid.js.map +1 -0
  319. package/dist/collection/utils/index.js +2 -1
  320. package/dist/collection/utils/index.js.map +1 -0
  321. package/dist/collection/utils/is_link.js +1 -0
  322. package/dist/collection/utils/is_link.js.map +1 -0
  323. package/dist/collection/utils/l10n.js +2 -1
  324. package/dist/collection/utils/l10n.js.map +1 -0
  325. package/dist/collection/utils/read_file.js +1 -0
  326. package/dist/collection/utils/read_file.js.map +1 -0
  327. package/dist/collection/utils/third_party_links.js +1 -0
  328. package/dist/collection/utils/third_party_links.js.map +1 -0
  329. package/dist/collection/utils/validator.js +1 -0
  330. package/dist/collection/utils/validator.js.map +1 -0
  331. package/dist/collection/www-copy/index.js +138 -32
  332. package/dist/esm/arrow_top-efd3a56d.js +34 -0
  333. package/dist/esm/arrow_top-efd3a56d.js.map +1 -0
  334. package/dist/esm/button-35146bdd.js +74 -0
  335. package/dist/esm/button-35146bdd.js.map +1 -0
  336. package/dist/esm/{certification_request-db83dd19.js → certification_request-5cadde9f.js} +175 -11
  337. package/dist/esm/certification_request-5cadde9f.js.map +1 -0
  338. package/dist/esm/{crl-34288843.js → crl-11670c3e.js} +7 -6
  339. package/dist/esm/crl-11670c3e.js.map +1 -0
  340. package/dist/esm/download-0cc3077a.js +21 -0
  341. package/dist/esm/download-0cc3077a.js.map +1 -0
  342. package/dist/esm/download-57c5bf8f.js +470 -0
  343. package/dist/esm/download-57c5bf8f.js.map +1 -0
  344. package/dist/esm/index-4079bbb5.js +2448 -0
  345. package/dist/esm/index-4079bbb5.js.map +1 -0
  346. package/dist/esm/index.js +3 -1
  347. package/dist/esm/index.js.map +1 -0
  348. package/dist/esm/loader.js +6 -12
  349. package/dist/esm/loader.js.map +1 -0
  350. package/dist/esm/{miscellaneous-ee8e1994.js → miscellaneous-1d4e8b41.js} +54 -38
  351. package/dist/esm/miscellaneous-1d4e8b41.js.map +1 -0
  352. package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js +80 -23
  353. package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js.map +1 -0
  354. package/dist/esm/peculiar-button-menu_3.entry.js +104 -0
  355. package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -0
  356. package/dist/esm/peculiar-certificate-decoder.entry.js +30 -19
  357. package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -0
  358. package/dist/esm/peculiar-certificate-viewer.entry.js +34 -11
  359. package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -0
  360. package/dist/esm/peculiar-certificates-viewer.entry.js +183 -85
  361. package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -0
  362. package/dist/esm/peculiar-text-hider.entry.js +7 -13
  363. package/dist/esm/peculiar-text-hider.entry.js.map +1 -0
  364. package/dist/esm/peculiar.js +8 -58
  365. package/dist/esm/peculiar.js.map +1 -0
  366. package/dist/esm/{x509_certificate-1acb3564.js → x509_certificate-dfae6999.js} +4 -3
  367. package/dist/esm/x509_certificate-dfae6999.js.map +1 -0
  368. package/dist/esm-es5/arrow_top-efd3a56d.js +19 -0
  369. package/dist/esm-es5/arrow_top-efd3a56d.js.map +1 -0
  370. package/dist/esm-es5/button-35146bdd.js +19 -0
  371. package/dist/esm-es5/button-35146bdd.js.map +1 -0
  372. package/dist/esm-es5/certification_request-5cadde9f.js +97 -0
  373. package/dist/esm-es5/certification_request-5cadde9f.js.map +1 -0
  374. package/dist/esm-es5/crl-11670c3e.js +33 -0
  375. package/dist/esm-es5/crl-11670c3e.js.map +1 -0
  376. package/dist/esm-es5/download-0cc3077a.js +12 -0
  377. package/dist/esm-es5/download-0cc3077a.js.map +1 -0
  378. package/dist/esm-es5/download-57c5bf8f.js +19 -0
  379. package/dist/esm-es5/download-57c5bf8f.js.map +1 -0
  380. package/dist/esm-es5/index-4079bbb5.js +6 -0
  381. package/dist/esm-es5/index-4079bbb5.js.map +1 -0
  382. package/dist/esm-es5/index.js +5 -0
  383. package/dist/esm-es5/index.js.map +1 -0
  384. package/dist/esm-es5/loader.js +5 -0
  385. package/dist/esm-es5/loader.js.map +1 -0
  386. package/dist/esm-es5/miscellaneous-1d4e8b41.js +355 -0
  387. package/dist/esm-es5/miscellaneous-1d4e8b41.js.map +1 -0
  388. package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js +110 -0
  389. package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js.map +1 -0
  390. package/dist/esm-es5/peculiar-button-menu_3.entry.js +12 -0
  391. package/dist/esm-es5/peculiar-button-menu_3.entry.js.map +1 -0
  392. package/dist/esm-es5/peculiar-certificate-decoder.entry.js +12 -0
  393. package/dist/esm-es5/peculiar-certificate-decoder.entry.js.map +1 -0
  394. package/dist/esm-es5/peculiar-certificate-viewer.entry.js +5 -0
  395. package/dist/esm-es5/peculiar-certificate-viewer.entry.js.map +1 -0
  396. package/dist/esm-es5/peculiar-certificates-viewer.entry.js +33 -0
  397. package/dist/esm-es5/peculiar-certificates-viewer.entry.js.map +1 -0
  398. package/dist/esm-es5/peculiar-text-hider.entry.js +5 -0
  399. package/dist/esm-es5/peculiar-text-hider.entry.js.map +1 -0
  400. package/dist/esm-es5/peculiar.js +5 -0
  401. package/dist/esm-es5/peculiar.js.map +1 -0
  402. package/dist/esm-es5/x509_certificate-dfae6999.js +12 -0
  403. package/dist/esm-es5/x509_certificate-dfae6999.js.map +1 -0
  404. package/dist/index.js +1 -1
  405. package/dist/peculiar/index.esm.js +2 -1
  406. package/dist/peculiar/index.esm.js.map +1 -0
  407. package/dist/peculiar/locales/en.json +4 -3
  408. package/dist/peculiar/p-0b356bb5.js +6 -0
  409. package/dist/peculiar/p-0b356bb5.js.map +1 -0
  410. package/dist/peculiar/p-0bdcdbf7.system.js +355 -0
  411. package/dist/peculiar/p-0bdcdbf7.system.js.map +1 -0
  412. package/dist/peculiar/p-17e3c47b.js +12 -0
  413. package/dist/peculiar/p-17e3c47b.js.map +1 -0
  414. package/dist/peculiar/p-23555789.system.entry.js +34 -0
  415. package/dist/peculiar/p-23555789.system.entry.js.map +1 -0
  416. package/dist/peculiar/p-2fcad8cb.system.js +20 -0
  417. package/dist/peculiar/p-2fcad8cb.system.js.map +1 -0
  418. package/dist/peculiar/p-31586b23.system.js +13 -0
  419. package/dist/peculiar/p-31586b23.system.js.map +1 -0
  420. package/dist/peculiar/p-43eb3721.js +33 -0
  421. package/dist/peculiar/p-43eb3721.js.map +1 -0
  422. package/dist/peculiar/p-5823e6e8.entry.js +12 -0
  423. package/dist/peculiar/p-5823e6e8.entry.js.map +1 -0
  424. package/dist/peculiar/p-596836a7.entry.js +33 -0
  425. package/dist/peculiar/p-596836a7.entry.js.map +1 -0
  426. package/dist/peculiar/p-5aabeba7.system.js +6 -0
  427. package/dist/peculiar/p-5aabeba7.system.js.map +1 -0
  428. package/dist/peculiar/p-6667fe6e.system.js +34 -0
  429. package/dist/peculiar/p-6667fe6e.system.js.map +1 -0
  430. package/dist/peculiar/p-6e79b9c8.js +12 -0
  431. package/dist/peculiar/p-6e79b9c8.js.map +1 -0
  432. package/dist/peculiar/p-709994c1.js +19 -0
  433. package/dist/peculiar/p-709994c1.js.map +1 -0
  434. package/dist/peculiar/p-74c241e7.js +97 -0
  435. package/dist/peculiar/p-74c241e7.js.map +1 -0
  436. package/dist/peculiar/p-7f9beaa8.js +19 -0
  437. package/dist/peculiar/p-7f9beaa8.js.map +1 -0
  438. package/dist/peculiar/p-80832207.system.js +5 -0
  439. package/dist/peculiar/p-80832207.system.js.map +1 -0
  440. package/dist/peculiar/p-8748391f.system.entry.js +5 -0
  441. package/dist/peculiar/p-8748391f.system.entry.js.map +1 -0
  442. package/dist/peculiar/p-882e1281.entry.js +12 -0
  443. package/dist/peculiar/p-882e1281.entry.js.map +1 -0
  444. package/dist/peculiar/p-90459cec.entry.js +5 -0
  445. package/dist/peculiar/p-90459cec.entry.js.map +1 -0
  446. package/dist/peculiar/p-97688065.js +355 -0
  447. package/dist/peculiar/p-97688065.js.map +1 -0
  448. package/dist/peculiar/p-99e3aa0c.system.entry.js +111 -0
  449. package/dist/peculiar/p-99e3aa0c.system.entry.js.map +1 -0
  450. package/dist/peculiar/p-9b4a8101.system.entry.js +5 -0
  451. package/dist/peculiar/p-9b4a8101.system.entry.js.map +1 -0
  452. package/dist/peculiar/p-a053c132.js +19 -0
  453. package/dist/peculiar/p-a053c132.js.map +1 -0
  454. package/dist/peculiar/p-a41ecd82.entry.js +5 -0
  455. package/dist/peculiar/p-a41ecd82.entry.js.map +1 -0
  456. package/dist/peculiar/p-ae9189f6.system.js +19 -0
  457. package/dist/peculiar/p-ae9189f6.system.js.map +1 -0
  458. package/dist/peculiar/p-bd485115.system.entry.js +13 -0
  459. package/dist/peculiar/p-bd485115.system.entry.js.map +1 -0
  460. package/dist/peculiar/p-c0a298fd.system.js +97 -0
  461. package/dist/peculiar/p-c0a298fd.system.js.map +1 -0
  462. package/dist/peculiar/p-daf23673.system.js +20 -0
  463. package/dist/peculiar/p-daf23673.system.js.map +1 -0
  464. package/dist/peculiar/p-e1960173.system.js +5 -0
  465. package/dist/peculiar/p-e1960173.system.js.map +1 -0
  466. package/dist/peculiar/p-e2cc7410.entry.js +110 -0
  467. package/dist/peculiar/p-e2cc7410.entry.js.map +1 -0
  468. package/dist/peculiar/p-e39de121.system.entry.js +13 -0
  469. package/dist/peculiar/p-e39de121.system.entry.js.map +1 -0
  470. package/dist/peculiar/p-e6a3b4d4.system.js +13 -0
  471. package/dist/peculiar/p-e6a3b4d4.system.js.map +1 -0
  472. package/dist/peculiar/peculiar.css +1 -1
  473. package/dist/peculiar/peculiar.esm.js +2 -1
  474. package/dist/peculiar/peculiar.esm.js.map +1 -0
  475. package/dist/peculiar/peculiar.js +127 -0
  476. package/dist/types/components/attribute-certificate-viewer/attribute-certificate-viewer.d.ts +15 -3
  477. package/dist/types/components/button/button.d.ts +5 -16
  478. package/dist/types/components/button/index.d.ts +2 -0
  479. package/dist/types/components/button-menu/button-menu.d.ts +21 -0
  480. package/dist/types/components/certificate-decoder/certificate-decoder.d.ts +9 -6
  481. package/dist/types/components/certificate-details-parts/miscellaneous.d.ts +1 -1
  482. package/dist/types/components/certificate-summary/certificate-summary.d.ts +4 -3
  483. package/dist/types/components/certificate-summary/index.d.ts +1 -0
  484. package/dist/types/components/certificate-viewer/certificate-viewer.d.ts +13 -5
  485. package/dist/types/components/certificates-viewer/certificates-viewer.d.ts +22 -11
  486. package/dist/types/components/crl-viewer/crl-viewer.d.ts +13 -5
  487. package/dist/types/components/csr-viewer/csr-viewer.d.ts +13 -5
  488. package/dist/types/components/icons/actions.d.ts +12 -0
  489. package/dist/types/components/icons/arrow_bottom.d.ts +12 -0
  490. package/dist/types/components/icons/arrow_top.d.ts +12 -0
  491. package/dist/types/components/icons/cross.d.ts +12 -0
  492. package/dist/types/components/icons/details.d.ts +12 -0
  493. package/dist/types/components/icons/download.d.ts +12 -0
  494. package/dist/types/components/icons/index.d.ts +7 -0
  495. package/dist/types/components/icons/link.d.ts +12 -0
  496. package/dist/types/components/link/index.d.ts +1 -0
  497. package/dist/types/components/link/link.d.ts +6 -6
  498. package/dist/types/components/text-hider/text-hider.d.ts +0 -3
  499. package/dist/types/components/typography/index.d.ts +1 -0
  500. package/dist/types/components/typography/typography.d.ts +10 -20
  501. package/dist/types/components.d.ts +74 -175
  502. package/dist/types/constants/oids.d.ts +3 -1
  503. package/dist/types/crypto/attribute.d.ts +1 -1
  504. package/dist/types/crypto/extension.d.ts +1 -1
  505. package/dist/types/interface.d.ts +98 -6
  506. package/dist/types/stencil-public-runtime.d.ts +110 -23
  507. package/dist/types/utils/l10n.d.ts +5 -4
  508. package/dist/types/utils/read_file.d.ts +1 -1
  509. package/hydrate/index.d.ts +218 -0
  510. package/hydrate/index.js +22549 -0
  511. package/hydrate/package.json +6 -0
  512. package/loader/index.d.ts +10 -1
  513. package/loader/index.js +1 -1
  514. package/loader/package.json +1 -0
  515. package/package.json +6 -4
  516. package/dist/cjs/dom-f57e260e.js +0 -78
  517. package/dist/cjs/index-064e95c7.js +0 -1441
  518. package/dist/cjs/l10n-ddc7cff9.js +0 -169
  519. package/dist/cjs/peculiar-button-split_4.cjs.entry.js +0 -128
  520. package/dist/cjs/peculiar-button.cjs.entry.js +0 -40
  521. package/dist/cjs/peculiar-link.cjs.entry.js +0 -29
  522. package/dist/cjs/peculiar-typography.cjs.entry.js +0 -38
  523. package/dist/collection/components/button/button.css +0 -81
  524. package/dist/collection/components/button-split/button-split.css +0 -57
  525. package/dist/collection/components/button-split/button-split.js +0 -116
  526. package/dist/collection/components/certificate-summary/certificate-summary.css +0 -49
  527. package/dist/collection/components/link/link.css +0 -59
  528. package/dist/collection/components/typography/typography.css +0 -95
  529. package/dist/esm/dom-f1b08a97.js +0 -76
  530. package/dist/esm/index-bbd484d9.js +0 -1410
  531. package/dist/esm/l10n-d48f35ff.js +0 -165
  532. package/dist/esm/peculiar-button-split_4.entry.js +0 -121
  533. package/dist/esm/peculiar-button.entry.js +0 -36
  534. package/dist/esm/peculiar-link.entry.js +0 -25
  535. package/dist/esm/peculiar-typography.entry.js +0 -34
  536. package/dist/esm/polyfills/css-shim.js +0 -1
  537. package/dist/peculiar/p-08aba71b.js +0 -69
  538. package/dist/peculiar/p-0f7868b1.js +0 -11
  539. package/dist/peculiar/p-2f213160.entry.js +0 -11
  540. package/dist/peculiar/p-3c4e4245.js +0 -79
  541. package/dist/peculiar/p-48a620ff.js +0 -32
  542. package/dist/peculiar/p-57b89412.entry.js +0 -4
  543. package/dist/peculiar/p-610b85e3.entry.js +0 -4
  544. package/dist/peculiar/p-6d37c8b5.entry.js +0 -4
  545. package/dist/peculiar/p-711b4e1e.js +0 -18
  546. package/dist/peculiar/p-81ae1305.entry.js +0 -4
  547. package/dist/peculiar/p-81d33fb4.entry.js +0 -4
  548. package/dist/peculiar/p-918aeee4.entry.js +0 -4
  549. package/dist/peculiar/p-9bfd4f58.entry.js +0 -18
  550. package/dist/peculiar/p-9f4ee110.js +0 -22
  551. package/dist/peculiar/p-df53fbcc.entry.js +0 -4
  552. package/dist/peculiar/p-ec250cc4.js +0 -12
  553. package/dist/peculiar/p-f7683ba5.js +0 -5
  554. package/dist/types/components/button-split/button-split.d.ts +0 -21
@@ -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","GeneralNamePart","generalName","codeAuthority","getDNSNameLink","getIPAddressLink","codeId","shortName","shortDescription","WebGdprAttribute","assessmentAuthority","assessmentLocation","assessmentRef","dataStorageTerritory","description","InsuranceValueAttribute","concat","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","error","console","RevokedCertificates","revokedCertificates","certificate","Convert","ToHex","userCertificate","dateShort","revocationDate","getTime","crlEntryExtensions","TableRowTable","extension","CRLReason","extnID","toJSON","reason","InvalidityDate","CertificateIssuer","gn","extnValue","Holder","holder","baseCertificateID","objectDigestInfo","issuer","item","serial","digestAlgorithm","algorithm","objectDigest","digestedObjectType","Issuer","certificateViewerCss","AttributeCertificateViewer","exports","this","getAuthKeyIdParentLink","_a","_this","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","class_1","prototype","handleMediaQueryChange","event","mobileScreenView","matches","componentWillLoad","decodeCertificate","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","isDecodeInProcess","X509AttributeCertificate","certificateDecoded","parseExtensions","parseAttributes","getThumbprint","_b","sent","certificateDecodeError","error_1","watchCertificateAndDecode","newValue","oldValue","serialNumber","renderErrorState","Typography","renderEmptyState","render","Host","String","BasicInformation","assign","Signature","signature","Thumbprints","thumbprints","getLEILink","Extensions","extensions","download","Miscellaneous","CrlViewer","class_2","CRL","error_2","getIssuerDnLink","issuerDnLink","commonName","IssuerName","CsrViewer","class_3","CSR","error_3","getExtensionRequestAttribute","undefined","find","extensionRequestAttribute","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-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';\n\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';\n\nimport { OIDs } from '../../../constants/oids';\nimport { RowValue } from '../row';\n\ninterface INamePartProps {\n name: Name;\n}\n\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';\n\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';\n\nimport { Attribute } from '../../../crypto/attribute';\nimport { GeneralNamePart } from '../extensions/general_name_part';\nimport { RowValue } 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=\"Code Authority\"\n value=\"\"\n />\n <GeneralNamePart\n generalName={attribute.value.codeAuthority}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n\n <RowValue\n name=\"Code Id\"\n value=\"\"\n />\n <GeneralNamePart\n generalName={attribute.value.codeId}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n\n <RowValue\n name=\"Short Name\"\n value={attribute.value.shortName}\n />\n <RowValue\n name=\"Short Description\"\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';\n\nimport type { Attribute } from '../../../crypto/attribute';\nimport { GeneralNamePart } from '../extensions/general_name_part';\nimport { RowValue } 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=\"Assessment Authority\"\n value=\"\"\n />\n <GeneralNamePart\n generalName={attribute.value.assessmentAuthority}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n\n <RowValue\n name=\"Assessment Location\"\n value=\"\"\n />\n <GeneralNamePart\n generalName={attribute.value.assessmentLocation}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n\n <RowValue\n name=\"Assessment Ref\"\n value=\"\"\n />\n <GeneralNamePart\n generalName={attribute.value.assessmentRef}\n getDNSNameLink={() => ''}\n getIPAddressLink={() => ''}\n />\n\n <RowValue\n name=\"Data Storage Territory\"\n value={attribute.value.dataStorageTerritory}\n />\n <RowValue\n name=\"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';\n\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';\n\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';\n\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 any}\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';\n\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';\n\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';\n\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';\n\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 any}\n />\n );\n }\n\n if (attribute.value instanceof ActivityDescription) {\n return (\n <ActivityDescriptionAttribute\n attribute={attribute as any}\n />\n );\n }\n\n if (attribute.value instanceof WebGDPR) {\n return (\n <WebGdprAttribute\n attribute={attribute as any}\n />\n );\n }\n\n if (attribute.value instanceof InsuranceValue) {\n return (\n <InsuranceValueAttribute\n attribute={attribute as any}\n />\n );\n }\n\n if (attribute.value instanceof TypeRelationship) {\n return (\n <TypeRelationshipAttribute\n attribute={attribute as any}\n />\n );\n }\n\n if (attribute.value instanceof ValuationRanking) {\n return (\n <ValuationRankingAttribute\n attribute={attribute as any}\n />\n );\n }\n\n if (attribute.value instanceof UnstructuredName) {\n return (\n <UnstructuredNameAttribute\n attribute={attribute as any}\n />\n );\n }\n\n if (attribute.value instanceof ChallengePassword) {\n return (\n <ChallengePasswordAttribute\n attribute={attribute as any}\n />\n );\n }\n\n if (typeof attribute.value === 'string') {\n return (\n <AsStringAttribute\n attribute={attribute as any}\n />\n );\n }\n\n return (\n <BasicAttribute\n attribute={attribute}\n />\n );\n } catch (error) {\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 { CRLReason, InvalidityDate, CertificateIssuer } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { dateShort, l10n, getStringByOID } from '../../utils';\nimport { IRevokedCertificate } from '../../crypto';\nimport { GeneralNamePart } from './extensions/general_name_part';\nimport { RowTitle, RowValue, TableRowTable } 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';\n\nimport type { X509AttributeCertificate } from '../../crypto';\nimport { l10n, getStringByOID } from '../../utils';\nimport { RowTitle, RowValue } 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 <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 ]),\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';\n\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 'base';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n min-width: 280px;\n min-height: 300px;\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';\n\nimport { X509AttributeCertificate } from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } 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 AttributeCertificateProp = 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: AttributeCertificateProp;\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: boolean = false;\n\n @State() isDecodeInProcess: boolean = 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: AttributeCertificateProp) {\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: AttributeCertificateProp,\n oldValue: AttributeCertificateProp,\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 // eslint-disable-next-line class-methods-use-this\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 // eslint-disable-next-line class-methods-use-this\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 'base';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n min-width: 280px;\n min-height: 300px;\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';\n\nimport { CRL } from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } 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 CrlProp = string | CRL;\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: CRL;\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: CrlProp;\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: boolean = false;\n\n @State() isDecodeInProcess: boolean = 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: CrlProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof CRL) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new CRL(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: CrlProp,\n oldValue: CrlProp,\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 CRL\n && oldValue instanceof CRL\n ) {\n if (newValue.commonName !== oldValue.commonName) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\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 // eslint-disable-next-line class-methods-use-this\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 'base';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n min-width: 280px;\n min-height: 300px;\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';\n\nimport { CSR } from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } 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 CsrProp = string | CSR;\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: CSR;\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: CsrProp;\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: boolean = false;\n\n @State() isDecodeInProcess: boolean = 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: CsrProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof CSR) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new CSR(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: CsrProp,\n oldValue: CsrProp,\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 CSR\n && oldValue instanceof CSR\n ) {\n if (newValue.commonName !== oldValue.commonName) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n private getAuthKeyIdParentLink = (value: string) => value;\n\n // eslint-disable-next-line class-methods-use-this\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 // eslint-disable-next-line class-methods-use-this\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 // eslint-disable-next-line class-methods-use-this\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 private getExtensionRequestAttribute() {\n if (!this.certificateDecoded) {\n return undefined;\n }\n\n return this.certificateDecoded.attributes\n .find((attribute) => attribute.asn.type === '1.2.840.113549.1.9.14');\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 const extensionRequestAttribute = this.getExtensionRequestAttribute();\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={extensionRequestAttribute?.value as any}\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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"}
@@ -0,0 +1,5 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,t,r,a){function i(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,o){function n(e){try{c(a.next(e))}catch(e){o(e)}}function s(e){try{c(a["throw"](e))}catch(e){o(e)}}function c(e){e.done?r(e.value):i(e.value).then(n,s)}c((a=a.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},a,i,o,n;return n={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(n[Symbol.iterator]=function(){return this}),n;function s(e){return function(t){return c([e,t])}}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,i&&(o=s[0]&2?i["return"]:s[0]?i["throw"]||((o=i["return"])&&o.call(i),0):i.next)&&!(o=o.call(i,s[1])).done)return o;if(i=0,o)s=[s[0]&2,o.value];switch(s[0]){case 0:case 1:o=s;break;case 4:r.label++;return{value:s[1],done:false};case 5:r.label++;i=s[1];s=[0];continue;case 7:s=r.ops.pop();r.trys.pop();continue;default:if(!(o=r.trys,o=o.length>0&&o[o.length-1])&&(s[0]===6||s[0]===2)){r=0;continue}if(s[0]===3&&(!o||s[1]>o[0]&&s[1]<o[3])){r.label=s[1];break}if(s[0]===6&&r.label<o[1]){r.label=o[1];o=s;break}if(o&&r.label<o[2]){r.label=o[2];r.ops.push(s);break}if(o[2])r.ops.pop();r.trys.pop();continue}s=t.call(e,r)}catch(e){s=[6,e];i=0}finally{a=o=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};
2
+ /*!
3
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
4
+ */System.register(["./p-5aabeba7.system.js","./p-31586b23.system.js","./p-c0a298fd.system.js","./p-ae9189f6.system.js","./p-0bdcdbf7.system.js","./p-2fcad8cb.system.js","./p-e6a3b4d4.system.js"],(function(e){"use strict";var t,r,a,i,o,n,s,c,v,p,l,h,d,b,g,u;return{setters:[function(e){t=e.r;r=e.h;a=e.H},function(e){i=e.X},function(){},function(){},function(e){o=e.B;n=e.f;s=e.I;c=e.P;v=e.S;p=e.b;l=e.E;h=e.c;d=e.d;b=e.e;g=e.M},function(e){u=e.T},function(){}],execute:function(){var f="*{-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;position:relative;min-width:280px;min-height:300px}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}";var y=e("peculiar_certificate_viewer",function(){function e(e){var r=this;t(this,e);this.getAuthKeyIdParentLink=function(e){var t;return(t=r.authKeyIdParentLink)===null||t===void 0?void 0:t.replace("{{authKeyId}}",e)};this.getAuthKeyIdSiblingsLink=function(e){var t;return(t=r.authKeyIdSiblingsLink)===null||t===void 0?void 0:t.replace("{{authKeyId}}",e)};this.getSubjectKeyIdChildrenLink=function(e){var t;return(t=r.subjectKeyIdChildrenLink)===null||t===void 0?void 0:t.replace("{{subjectKeyId}}",e)};this.getSubjectKeyIdSiblingsLink=function(e){var t;return(t=r.subjectKeyIdSiblingsLink)===null||t===void 0?void 0:t.replace("{{subjectKeyId}}",e)};this.certificate=undefined;this.download=undefined;this.authKeyIdParentLink=undefined;this.authKeyIdSiblingsLink=undefined;this.subjectKeyIdChildrenLink=undefined;this.subjectKeyIdSiblingsLink=undefined;this.issuerDnLink=undefined;this.mobileMediaQueryString="(max-width: 900px)";this.mobileScreenView=false;this.isDecodeInProcess=true}e.prototype.handleMediaQueryChange=function(e){this.mobileScreenView=e.matches};e.prototype.componentWillLoad=function(){this.decodeCertificate(this.certificate);{this.mobileMediaQuery=window.matchMedia(this.mobileMediaQueryString);this.mobileMediaQuery.addEventListener("change",this.handleMediaQueryChange.bind(this));this.mobileScreenView=this.mobileMediaQuery.matches}};e.prototype.disconnectedCallback=function(){this.mobileMediaQuery.removeEventListener("change",this.handleMediaQueryChange.bind(this))};e.prototype.decodeCertificate=function(e){return __awaiter(this,void 0,void 0,(function(){var t;return __generator(this,(function(r){switch(r.label){case 0:this.isDecodeInProcess=true;r.label=1;case 1:r.trys.push([1,4,,5]);if(e instanceof i){this.certificateDecoded=e}else if(typeof e==="string"){this.certificateDecoded=new i(e)}else{return[2]}this.certificateDecoded.parseExtensions();return[4,this.certificateDecoded.getThumbprint("SHA-1")];case 2:r.sent();return[4,this.certificateDecoded.getThumbprint("SHA-256")];case 3:r.sent();return[3,5];case 4:t=r.sent();this.certificateDecodeError=t;console.error("Error certificate parse:",t);return[3,5];case 5:this.isDecodeInProcess=false;return[2]}}))}))};e.prototype.watchCertificateAndDecode=function(e,t){if(typeof e==="string"&&typeof t==="string"){if(e!==t){this.decodeCertificate(e)}return}if(e instanceof i&&t instanceof i){if(e.serialNumber!==t.serialNumber){this.decodeCertificate(e)}}};e.prototype.getIssuerDnLink=function(){return this.issuerDnLink};e.prototype.renderErrorState=function(){return r("div",{class:"status_wrapper"},r(u,null,"There was an error decoding this certificate."))};e.prototype.renderEmptyState=function(){return r("div",{class:"status_wrapper"},r(u,null,"There is no certificate available."))};e.prototype.render=function(){if(this.certificateDecodeError){return this.renderErrorState()}if(!this.certificateDecoded){return this.renderEmptyState()}return r(a,{"data-mobile-screen-view":String(this.mobileScreenView)},r("table",null,r(o,Object.assign({},this.certificateDecoded)),r(n,{name:this.certificateDecoded.subject}),r(s,{name:this.certificateDecoded.issuer,issuerDnLink:this.getIssuerDnLink()}),r(c,{publicKey:this.certificateDecoded.publicKey}),r(v,{signature:this.certificateDecoded.signature}),r(p,{thumbprints:this.certificateDecoded.thumbprints}),r(l,{extensions:this.certificateDecoded.extensions,getLEILink:h,getDNSNameLink:d,getIPAddressLink:b,getAuthKeyIdParentLink:this.getAuthKeyIdParentLink,getAuthKeyIdSiblingsLink:this.getAuthKeyIdSiblingsLink,getSubjectKeyIdChildrenLink:this.getSubjectKeyIdChildrenLink,getSubjectKeyIdSiblingsLink:this.getSubjectKeyIdSiblingsLink}),this.download&&r(g,{certificate:this.certificateDecoded})))};Object.defineProperty(e,"watchers",{get:function(){return{certificate:["watchCertificateAndDecode"]}},enumerable:false,configurable:true});return e}());y.style=f}}}));
5
+ //# sourceMappingURL=p-9b4a8101.system.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["certificateViewerCss","CertificateViewer","exports","this","getAuthKeyIdParentLink","value","_a","_this","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","class_1","prototype","handleMediaQueryChange","event","mobileScreenView","matches","componentWillLoad","decodeCertificate","certificate","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","isDecodeInProcess","X509Certificate","certificateDecoded","parseExtensions","getThumbprint","_b","sent","certificateDecodeError","error_1","console","error","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 'base';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n min-width: 280px;\n min-height: 300px;\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';\n\nimport {\n X509Certificate,\n} from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } 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 CertificateProp = 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: CertificateProp;\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: boolean = false;\n\n @State() isDecodeInProcess: boolean = 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: CertificateProp) {\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: CertificateProp, oldValue: CertificateProp) {\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 // eslint-disable-next-line class-methods-use-this\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 // eslint-disable-next-line class-methods-use-this\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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"}
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
+ */
4
+ /**
5
+ * @license
6
+ * Copyright (c) Peculiar Ventures, LLC.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */
11
+ function t(t,r,e,n="application/octet-stream"){const s=new Blob([t],{type:n});if(navigator.msSaveBlob){navigator.msSaveBlob(s,`${r}.${e}`);return new Promise((t=>{setTimeout(t,100)}))}const i=window.URL.createObjectURL(s);const o=document.createElement("a");const a=document.createElement("iframe");o.style.display="none";a.style.display="none";a.name=i;document.body.appendChild(a);o.href=i;o.target=i;o.download=`${r}.${e}`;document.body.appendChild(o);o.dispatchEvent(new MouseEvent("click"));document.body.removeChild(o);return new Promise((t=>{setTimeout((()=>{document.body.removeChild(a);t()}),100)}))}var r=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function e(t,r,e){return e={path:r,exports:{},require:function(t,r){return n()}},t(e,e.exports),e.exports}function n(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var s=e((function(t,r){Object.defineProperty(r,"__esModule",{value:true});const e="[object ArrayBuffer]";class n{static isArrayBuffer(t){return Object.prototype.toString.call(t)===e}static toArrayBuffer(t){if(this.isArrayBuffer(t)){return t}if(t.byteLength===t.buffer.byteLength){return t.buffer}return this.toUint8Array(t).slice().buffer}static toUint8Array(t){return this.toView(t,Uint8Array)}static toView(t,r){if(t.constructor===r){return t}if(this.isArrayBuffer(t)){return new r(t)}if(this.isArrayBufferView(t)){return new r(t.buffer,t.byteOffset,t.byteLength)}throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(t){return this.isArrayBufferView(t)||this.isArrayBuffer(t)}static isArrayBufferView(t){return ArrayBuffer.isView(t)||t&&this.isArrayBuffer(t.buffer)}static isEqual(t,r){const e=n.toUint8Array(t);const s=n.toUint8Array(r);if(e.length!==s.byteLength){return false}for(let t=0;t<e.length;t++){if(e[t]!==s[t]){return false}}return true}static concat(...t){if(Array.isArray(t[0])){const r=t[0];let e=0;for(const t of r){e+=t.byteLength}const n=new Uint8Array(e);let s=0;for(const t of r){const r=this.toUint8Array(t);n.set(r,s);s+=r.length}if(t[1]){return this.toView(n,t[1])}return n.buffer}else{return this.concat(t)}}}class s{static fromString(t){const r=unescape(encodeURIComponent(t));const e=new Uint8Array(r.length);for(let t=0;t<r.length;t++){e[t]=r.charCodeAt(t)}return e.buffer}static toString(t){const r=n.toUint8Array(t);let e="";for(let t=0;t<r.length;t++){e+=String.fromCharCode(r[t])}const s=decodeURIComponent(escape(e));return s}}class i{static toString(t,r=false){const e=n.toArrayBuffer(t);const s=new DataView(e);let i="";for(let t=0;t<e.byteLength;t+=2){const e=s.getUint16(t,r);i+=String.fromCharCode(e)}return i}static fromString(t,r=false){const e=new ArrayBuffer(t.length*2);const n=new DataView(e);for(let e=0;e<t.length;e++){n.setUint16(e*2,t.charCodeAt(e),r)}return e}}class o{static isHex(t){return typeof t==="string"&&/^[a-z0-9]+$/i.test(t)}static isBase64(t){return typeof t==="string"&&/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}static isBase64Url(t){return typeof t==="string"&&/^[a-zA-Z0-9-_]+$/i.test(t)}static ToString(t,r="utf8"){const e=n.toUint8Array(t);switch(r.toLowerCase()){case"utf8":return this.ToUtf8String(e);case"binary":return this.ToBinary(e);case"hex":return this.ToHex(e);case"base64":return this.ToBase64(e);case"base64url":return this.ToBase64Url(e);case"utf16le":return i.toString(e,true);case"utf16":case"utf16be":return i.toString(e);default:throw new Error(`Unknown type of encoding '${r}'`)}}static FromString(t,r="utf8"){if(!t){return new ArrayBuffer(0)}switch(r.toLowerCase()){case"utf8":return this.FromUtf8String(t);case"binary":return this.FromBinary(t);case"hex":return this.FromHex(t);case"base64":return this.FromBase64(t);case"base64url":return this.FromBase64Url(t);case"utf16le":return i.fromString(t,true);case"utf16":case"utf16be":return i.fromString(t);default:throw new Error(`Unknown type of encoding '${r}'`)}}static ToBase64(t){const r=n.toUint8Array(t);if(typeof btoa!=="undefined"){const t=this.ToString(r,"binary");return btoa(t)}else{return Buffer.from(r).toString("base64")}}static FromBase64(t){const r=this.formatString(t);if(!r){return new ArrayBuffer(0)}if(!o.isBase64(r)){throw new TypeError("Argument 'base64Text' is not Base64 encoded")}if(typeof atob!=="undefined"){return this.FromBinary(atob(r))}else{return new Uint8Array(Buffer.from(r,"base64")).buffer}}static FromBase64Url(t){const r=this.formatString(t);if(!r){return new ArrayBuffer(0)}if(!o.isBase64Url(r)){throw new TypeError("Argument 'base64url' is not Base64Url encoded")}return this.FromBase64(this.Base64Padding(r.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(t){return this.ToBase64(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(t,r=o.DEFAULT_UTF8_ENCODING){switch(r){case"ascii":return this.FromBinary(t);case"utf8":return s.fromString(t);case"utf16":case"utf16be":return i.fromString(t);case"utf16le":case"usc2":return i.fromString(t,true);default:throw new Error(`Unknown type of encoding '${r}'`)}}static ToUtf8String(t,r=o.DEFAULT_UTF8_ENCODING){switch(r){case"ascii":return this.ToBinary(t);case"utf8":return s.toString(t);case"utf16":case"utf16be":return i.toString(t);case"utf16le":case"usc2":return i.toString(t,true);default:throw new Error(`Unknown type of encoding '${r}'`)}}static FromBinary(t){const r=t.length;const e=new Uint8Array(r);for(let n=0;n<r;n++){e[n]=t.charCodeAt(n)}return e.buffer}static ToBinary(t){const r=n.toUint8Array(t);let e="";for(let t=0;t<r.length;t++){e+=String.fromCharCode(r[t])}return e}static ToHex(t){const r=n.toUint8Array(t);const e="";const s=[];const i=r.length;for(let t=0;t<i;t++){const e=r[t].toString(16).padStart(2,"0");s.push(e)}return s.join(e)}static FromHex(t){let r=this.formatString(t);if(!r){return new ArrayBuffer(0)}if(!o.isHex(r)){throw new TypeError("Argument 'hexString' is not HEX encoded")}if(r.length%2){r=`0${r}`}const e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t=t+2){const n=r.slice(t,t+2);e[t/2]=parseInt(n,16)}return e.buffer}static ToUtf16String(t,r=false){return i.toString(t,r)}static FromUtf16String(t,r=false){return i.fromString(t,r)}static Base64Padding(t){const r=4-t.length%4;if(r<4){for(let e=0;e<r;e++){t+="="}}return t}static formatString(t){return(t===null||t===void 0?void 0:t.replace(/[\n\r\t ]/g,""))||""}}o.DEFAULT_UTF8_ENCODING="utf8";function a(t,...r){const e=arguments[0];for(let t=1;t<arguments.length;t++){const r=arguments[t];for(const t in r){e[t]=r[t]}}return e}function c(...t){const r=t.map((t=>t.byteLength)).reduce(((t,r)=>t+r));const e=new Uint8Array(r);let n=0;t.map((t=>new Uint8Array(t))).forEach((t=>{for(const r of t){e[n++]=r}}));return e.buffer}function u(t,r){if(!(t&&r)){return false}if(t.byteLength!==r.byteLength){return false}const e=new Uint8Array(t);const n=new Uint8Array(r);for(let r=0;r<t.byteLength;r++){if(e[r]!==n[r]){return false}}return true}r.BufferSourceConverter=n;r.Convert=o;r.assign=a;r.combine=c;r.isEqual=u}));
12
+ /**
13
+ * @license
14
+ * Copyright (c) Peculiar Ventures, LLC.
15
+ *
16
+ * This source code is licensed under the MIT license found in the
17
+ * LICENSE file in the root directory of this source tree.
18
+ */class i{}i.cert={asPEM:(r,e)=>{t(s.Convert.FromString(r),e,"cer","application/pkix-cert")},asDER:(r,e)=>{t(s.Convert.FromString(r),e,"cer","application/pkix-cert")}};i.attrCert={asPEM:(r,e)=>{t(s.Convert.FromString(r),e,"cer","application/pkix-attr-cert")},asDER:(r,e)=>{t(s.Convert.FromString(r),e,"cer","application/pkix-attr-cert")}};i.csr={asPEM:(r,e)=>{t(s.Convert.FromString(r),e,"csr","application/pkcs10")},asDER:(r,e)=>{t(s.Convert.FromString(r),e,"csr","application/pkcs10")}};i.crl={asPEM:(r,e)=>{t(s.Convert.FromString(r),e,"crl","application/pkix-crl")},asDER:(r,e)=>{t(s.Convert.FromString(r),e,"crl","application/pkix-crl")}};export{i as D,r as a,s as b,e as c,t as d};
19
+ //# sourceMappingURL=p-a053c132.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["downloadFromBuffer","value","name","extension","mime","blob","Blob","type","navigator","msSaveBlob","Promise","resolve","setTimeout","blobURL","window","URL","createObjectURL","link","document","createElement","frame","style","display","body","appendChild","href","target","download","dispatchEvent","MouseEvent","removeChild","Object","defineProperty","exports","ARRAY_BUFFER_NAME","BufferSourceConverter","isArrayBuffer","data","prototype","toString","call","toArrayBuffer","this","byteLength","buffer","toUint8Array","slice","toView","Uint8Array","constructor","isArrayBufferView","byteOffset","TypeError","isBufferSource","ArrayBuffer","isView","isEqual","a","b","aView","bView","length","i","concat","args","Array","isArray","buffers","size","res","offset","view","set","Utf8Converter","fromString","text","s","unescape","encodeURIComponent","uintArray","charCodeAt","buf","encodedString","String","fromCharCode","decodedString","decodeURIComponent","escape","Utf16Converter","littleEndian","arrayBuffer","dataView","DataView","code","getUint16","setUint16","Convert","isHex","test","isBase64","isBase64Url","ToString","enc","toLowerCase","ToUtf8String","ToBinary","ToHex","ToBase64","ToBase64Url","Error","FromString","str","FromUtf8String","FromBinary","FromHex","FromBase64","FromBase64Url","btoa","binary","Buffer","from","base64","formatted","formatString","atob","base64url","Base64Padding","replace","encoding","DEFAULT_UTF8_ENCODING","stringLength","resultView","splitter","len","char","padStart","push","join","hexString","c","parseInt","ToUtf16String","FromUtf16String","padCount","assign","sources","arguments","obj","prop","combine","totalByteLength","map","item","reduce","prev","cur","currentPos","forEach","arr","item2","bytes1","bytes2","b1","b2","Download","cert","asPEM","pem","asDER","hex","attrCert","csr","crl"],"sources":["src/utils/download_from_buffer.ts","../../node_modules/pvtsutils/build/index.js","src/utils/download.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\n/**\n * Download from buffer\n *\n * @example\n * ```js\n * import { downloadFromBuffer } from './utils';\n *\n * downloadFromBuffer(arrayBufferValue, 'myFile', 'pdf', 'applciation/pdf');\n * ```\n */\n\nexport function downloadFromBuffer(\n value: ArrayBuffer,\n name: string,\n extension: string,\n mime: string = 'application/octet-stream',\n) {\n const blob = new Blob([value], { type: mime });\n\n // @ts-ignore\n if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\n // @ts-ignore\n navigator.msSaveBlob(blob, `${name}.${extension}`);\n\n return new Promise((resolve) => {\n setTimeout(resolve, 100);\n });\n }\n\n const blobURL = window.URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n const frame = document.createElement('iframe');\n\n link.style.display = 'none';\n frame.style.display = 'none';\n\n frame.name = blobURL;\n document.body.appendChild(frame);\n\n link.href = blobURL;\n link.target = blobURL;\n link.download = `${name}.${extension}`;\n document.body.appendChild(link);\n link.dispatchEvent(new MouseEvent('click'));\n document.body.removeChild(link);\n\n return new Promise<void>((resolve) => {\n setTimeout(\n () => {\n document.body.removeChild(frame);\n resolve();\n },\n 100,\n );\n });\n}\n","/*!\n * MIT License\n * \n * Copyright (c) 2017-2022 Peculiar Ventures, LLC\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\r\nclass BufferSourceConverter {\r\n static isArrayBuffer(data) {\r\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\r\n }\r\n static toArrayBuffer(data) {\r\n if (this.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (data.byteLength === data.buffer.byteLength) {\r\n return data.buffer;\r\n }\r\n return this.toUint8Array(data).slice().buffer;\r\n }\r\n static toUint8Array(data) {\r\n return this.toView(data, Uint8Array);\r\n }\r\n static toView(data, type) {\r\n if (data.constructor === type) {\r\n return data;\r\n }\r\n if (this.isArrayBuffer(data)) {\r\n return new type(data);\r\n }\r\n if (this.isArrayBufferView(data)) {\r\n return new type(data.buffer, data.byteOffset, data.byteLength);\r\n }\r\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\r\n }\r\n static isBufferSource(data) {\r\n return this.isArrayBufferView(data)\r\n || this.isArrayBuffer(data);\r\n }\r\n static isArrayBufferView(data) {\r\n return ArrayBuffer.isView(data)\r\n || (data && this.isArrayBuffer(data.buffer));\r\n }\r\n static isEqual(a, b) {\r\n const aView = BufferSourceConverter.toUint8Array(a);\r\n const bView = BufferSourceConverter.toUint8Array(b);\r\n if (aView.length !== bView.byteLength) {\r\n return false;\r\n }\r\n for (let i = 0; i < aView.length; i++) {\r\n if (aView[i] !== bView[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n static concat(...args) {\r\n if (Array.isArray(args[0])) {\r\n const buffers = args[0];\r\n let size = 0;\r\n for (const buffer of buffers) {\r\n size += buffer.byteLength;\r\n }\r\n const res = new Uint8Array(size);\r\n let offset = 0;\r\n for (const buffer of buffers) {\r\n const view = this.toUint8Array(buffer);\r\n res.set(view, offset);\r\n offset += view.length;\r\n }\r\n if (args[1]) {\r\n return this.toView(res, args[1]);\r\n }\r\n return res.buffer;\r\n }\r\n else {\r\n return this.concat(args);\r\n }\r\n }\r\n}\n\nclass Utf8Converter {\r\n static fromString(text) {\r\n const s = unescape(encodeURIComponent(text));\r\n const uintArray = new Uint8Array(s.length);\r\n for (let i = 0; i < s.length; i++) {\r\n uintArray[i] = s.charCodeAt(i);\r\n }\r\n return uintArray.buffer;\r\n }\r\n static toString(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n let encodedString = \"\";\r\n for (let i = 0; i < buf.length; i++) {\r\n encodedString += String.fromCharCode(buf[i]);\r\n }\r\n const decodedString = decodeURIComponent(escape(encodedString));\r\n return decodedString;\r\n }\r\n}\r\nclass Utf16Converter {\r\n static toString(buffer, littleEndian = false) {\r\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\r\n const dataView = new DataView(arrayBuffer);\r\n let res = \"\";\r\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\r\n const code = dataView.getUint16(i, littleEndian);\r\n res += String.fromCharCode(code);\r\n }\r\n return res;\r\n }\r\n static fromString(text, littleEndian = false) {\r\n const res = new ArrayBuffer(text.length * 2);\r\n const dataView = new DataView(res);\r\n for (let i = 0; i < text.length; i++) {\r\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\r\n }\r\n return res;\r\n }\r\n}\r\nclass Convert {\r\n static isHex(data) {\r\n return typeof data === \"string\"\r\n && /^[a-z0-9]+$/i.test(data);\r\n }\r\n static isBase64(data) {\r\n return typeof data === \"string\"\r\n && /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(data);\r\n }\r\n static isBase64Url(data) {\r\n return typeof data === \"string\"\r\n && /^[a-zA-Z0-9-_]+$/i.test(data);\r\n }\r\n static ToString(buffer, enc = \"utf8\") {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n switch (enc.toLowerCase()) {\r\n case \"utf8\":\r\n return this.ToUtf8String(buf);\r\n case \"binary\":\r\n return this.ToBinary(buf);\r\n case \"hex\":\r\n return this.ToHex(buf);\r\n case \"base64\":\r\n return this.ToBase64(buf);\r\n case \"base64url\":\r\n return this.ToBase64Url(buf);\r\n case \"utf16le\":\r\n return Utf16Converter.toString(buf, true);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.toString(buf);\r\n default:\r\n throw new Error(`Unknown type of encoding '${enc}'`);\r\n }\r\n }\r\n static FromString(str, enc = \"utf8\") {\r\n if (!str) {\r\n return new ArrayBuffer(0);\r\n }\r\n switch (enc.toLowerCase()) {\r\n case \"utf8\":\r\n return this.FromUtf8String(str);\r\n case \"binary\":\r\n return this.FromBinary(str);\r\n case \"hex\":\r\n return this.FromHex(str);\r\n case \"base64\":\r\n return this.FromBase64(str);\r\n case \"base64url\":\r\n return this.FromBase64Url(str);\r\n case \"utf16le\":\r\n return Utf16Converter.fromString(str, true);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.fromString(str);\r\n default:\r\n throw new Error(`Unknown type of encoding '${enc}'`);\r\n }\r\n }\r\n static ToBase64(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n if (typeof btoa !== \"undefined\") {\r\n const binary = this.ToString(buf, \"binary\");\r\n return btoa(binary);\r\n }\r\n else {\r\n return Buffer.from(buf).toString(\"base64\");\r\n }\r\n }\r\n static FromBase64(base64) {\r\n const formatted = this.formatString(base64);\r\n if (!formatted) {\r\n return new ArrayBuffer(0);\r\n }\r\n if (!Convert.isBase64(formatted)) {\r\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\r\n }\r\n if (typeof atob !== \"undefined\") {\r\n return this.FromBinary(atob(formatted));\r\n }\r\n else {\r\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\r\n }\r\n }\r\n static FromBase64Url(base64url) {\r\n const formatted = this.formatString(base64url);\r\n if (!formatted) {\r\n return new ArrayBuffer(0);\r\n }\r\n if (!Convert.isBase64Url(formatted)) {\r\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\r\n }\r\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\r\n }\r\n static ToBase64Url(data) {\r\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\r\n }\r\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\r\n switch (encoding) {\r\n case \"ascii\":\r\n return this.FromBinary(text);\r\n case \"utf8\":\r\n return Utf8Converter.fromString(text);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.fromString(text);\r\n case \"utf16le\":\r\n case \"usc2\":\r\n return Utf16Converter.fromString(text, true);\r\n default:\r\n throw new Error(`Unknown type of encoding '${encoding}'`);\r\n }\r\n }\r\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\r\n switch (encoding) {\r\n case \"ascii\":\r\n return this.ToBinary(buffer);\r\n case \"utf8\":\r\n return Utf8Converter.toString(buffer);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.toString(buffer);\r\n case \"utf16le\":\r\n case \"usc2\":\r\n return Utf16Converter.toString(buffer, true);\r\n default:\r\n throw new Error(`Unknown type of encoding '${encoding}'`);\r\n }\r\n }\r\n static FromBinary(text) {\r\n const stringLength = text.length;\r\n const resultView = new Uint8Array(stringLength);\r\n for (let i = 0; i < stringLength; i++) {\r\n resultView[i] = text.charCodeAt(i);\r\n }\r\n return resultView.buffer;\r\n }\r\n static ToBinary(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n let res = \"\";\r\n for (let i = 0; i < buf.length; i++) {\r\n res += String.fromCharCode(buf[i]);\r\n }\r\n return res;\r\n }\r\n static ToHex(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n const splitter = \"\";\r\n const res = [];\r\n const len = buf.length;\r\n for (let i = 0; i < len; i++) {\r\n const char = buf[i].toString(16).padStart(2, \"0\");\r\n res.push(char);\r\n }\r\n return res.join(splitter);\r\n }\r\n static FromHex(hexString) {\r\n let formatted = this.formatString(hexString);\r\n if (!formatted) {\r\n return new ArrayBuffer(0);\r\n }\r\n if (!Convert.isHex(formatted)) {\r\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\r\n }\r\n if (formatted.length % 2) {\r\n formatted = `0${formatted}`;\r\n }\r\n const res = new Uint8Array(formatted.length / 2);\r\n for (let i = 0; i < formatted.length; i = i + 2) {\r\n const c = formatted.slice(i, i + 2);\r\n res[i / 2] = parseInt(c, 16);\r\n }\r\n return res.buffer;\r\n }\r\n static ToUtf16String(buffer, littleEndian = false) {\r\n return Utf16Converter.toString(buffer, littleEndian);\r\n }\r\n static FromUtf16String(text, littleEndian = false) {\r\n return Utf16Converter.fromString(text, littleEndian);\r\n }\r\n static Base64Padding(base64) {\r\n const padCount = 4 - (base64.length % 4);\r\n if (padCount < 4) {\r\n for (let i = 0; i < padCount; i++) {\r\n base64 += \"=\";\r\n }\r\n }\r\n return base64;\r\n }\r\n static formatString(data) {\r\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\r\n }\r\n}\r\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\r\n const res = arguments[0];\r\n for (let i = 1; i < arguments.length; i++) {\r\n const obj = arguments[i];\r\n for (const prop in obj) {\r\n res[prop] = obj[prop];\r\n }\r\n }\r\n return res;\r\n}\r\nfunction combine(...buf) {\r\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\r\n const res = new Uint8Array(totalByteLength);\r\n let currentPos = 0;\r\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\r\n for (const item2 of arr) {\r\n res[currentPos++] = item2;\r\n }\r\n });\r\n return res.buffer;\r\n}\r\nfunction isEqual(bytes1, bytes2) {\r\n if (!(bytes1 && bytes2)) {\r\n return false;\r\n }\r\n if (bytes1.byteLength !== bytes2.byteLength) {\r\n return false;\r\n }\r\n const b1 = new Uint8Array(bytes1);\r\n const b2 = new Uint8Array(bytes2);\r\n for (let i = 0; i < bytes1.byteLength; i++) {\r\n if (b1[i] !== b2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\n\nexports.BufferSourceConverter = BufferSourceConverter;\nexports.Convert = Convert;\nexports.assign = assign;\nexports.combine = combine;\nexports.isEqual = isEqual;\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 { Convert } from 'pvtsutils';\n\nimport { downloadFromBuffer } from './download_from_buffer';\n\nexport class Download {\n public static cert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n };\n\n public static attrCert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n };\n\n public static csr = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n };\n\n public static crl = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
+ */
4
+ import{r as t,h as e,H as r}from"./p-0b356bb5.js";import{X as a}from"./p-6e79b9c8.js";import"./p-74c241e7.js";import"./p-a053c132.js";import{B as o,f as s,I as i,P as c,S as n,b as v,E as p,c as l,d as h,e as d,M as b}from"./p-97688065.js";import{T as g}from"./p-7f9beaa8.js";import"./p-17e3c47b.js";const u="*{-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;position:relative;min-width:280px;min-height:300px}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 y=class{constructor(e){t(this,e);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)};this.certificate=undefined;this.download=undefined;this.authKeyIdParentLink=undefined;this.authKeyIdSiblingsLink=undefined;this.subjectKeyIdChildrenLink=undefined;this.subjectKeyIdSiblingsLink=undefined;this.issuerDnLink=undefined;this.mobileMediaQueryString="(max-width: 900px)";this.mobileScreenView=false;this.isDecodeInProcess=true}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(g,null,"There was an error decoding this certificate."))}renderEmptyState(){return e("div",{class:"status_wrapper"},e(g,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:l,getDNSNameLink:h,getIPAddressLink:d,getAuthKeyIdParentLink:this.getAuthKeyIdParentLink,getAuthKeyIdSiblingsLink:this.getAuthKeyIdSiblingsLink,getSubjectKeyIdChildrenLink:this.getSubjectKeyIdChildrenLink,getSubjectKeyIdSiblingsLink:this.getSubjectKeyIdSiblingsLink}),this.download&&e(b,{certificate:this.certificateDecoded})))}static get watchers(){return{certificate:["watchCertificateAndDecode"]}}};y.style=u;export{y as peculiar_certificate_viewer};
5
+ //# sourceMappingURL=p-a41ecd82.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["certificateViewerCss","CertificateViewer","this","getAuthKeyIdParentLink","value","_a","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","handleMediaQueryChange","event","mobileScreenView","matches","componentWillLoad","decodeCertificate","certificate","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","isDecodeInProcess","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 'base';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n position: relative;\n min-width: 280px;\n min-height: 300px;\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';\n\nimport {\n X509Certificate,\n} from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } 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 CertificateProp = 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: CertificateProp;\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: boolean = false;\n\n @State() isDecodeInProcess: boolean = 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: CertificateProp) {\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: CertificateProp, oldValue: CertificateProp) {\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 // eslint-disable-next-line class-methods-use-this\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 // eslint-disable-next-line class-methods-use-this\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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"}
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
+ */
4
+ System.register([],(function(r){"use strict";return{execute:function(){r({c:n,d:t});
5
+ /**
6
+ * @license
7
+ * Copyright (c) Peculiar Ventures, LLC.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */function t(r,t,e,n){if(n===void 0){n="application/octet-stream"}var i=new Blob([r],{type:n});if(navigator.msSaveBlob){navigator.msSaveBlob(i,"".concat(t,".").concat(e));return new Promise((function(r){setTimeout(r,100)}))}var o=window.URL.createObjectURL(i);var a=document.createElement("a");var f=document.createElement("iframe");a.style.display="none";f.style.display="none";f.name=o;document.body.appendChild(f);a.href=o;a.target=o;a.download="".concat(t,".").concat(e);document.body.appendChild(a);a.dispatchEvent(new MouseEvent("click"));document.body.removeChild(a);return new Promise((function(r){setTimeout((function(){document.body.removeChild(f);r()}),100)}))}var e=r("a",typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{});function n(r,t,e){return e={path:t,exports:{},require:function(r,t){return i()}},r(e,e.exports),e.exports}function i(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var o=r("b",n((function(r,t){Object.defineProperty(t,"__esModule",{value:true});var e="[object ArrayBuffer]";var n=function(){function r(){}r.isArrayBuffer=function(r){return Object.prototype.toString.call(r)===e};r.toArrayBuffer=function(r){if(this.isArrayBuffer(r)){return r}if(r.byteLength===r.buffer.byteLength){return r.buffer}return this.toUint8Array(r).slice().buffer};r.toUint8Array=function(r){return this.toView(r,Uint8Array)};r.toView=function(r,t){if(r.constructor===t){return r}if(this.isArrayBuffer(r)){return new t(r)}if(this.isArrayBufferView(r)){return new t(r.buffer,r.byteOffset,r.byteLength)}throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")};r.isBufferSource=function(r){return this.isArrayBufferView(r)||this.isArrayBuffer(r)};r.isArrayBufferView=function(r){return ArrayBuffer.isView(r)||r&&this.isArrayBuffer(r.buffer)};r.isEqual=function(t,e){var n=r.toUint8Array(t);var i=r.toUint8Array(e);if(n.length!==i.byteLength){return false}for(var o=0;o<n.length;o++){if(n[o]!==i[o]){return false}}return true};r.concat=function(){var r=[];for(var t=0;t<arguments.length;t++){r[t]=arguments[t]}if(Array.isArray(r[0])){var e=r[0];var n=0;for(var i=0,o=e;i<o.length;i++){var a=o[i];n+=a.byteLength}var f=new Uint8Array(n);var u=0;for(var c=0,s=e;c<s.length;c++){var a=s[c];var l=this.toUint8Array(a);f.set(l,u);u+=l.length}if(r[1]){return this.toView(f,r[1])}return f.buffer}else{return this.concat(r)}};return r}();var i=function(){function r(){}r.fromString=function(r){var t=unescape(encodeURIComponent(r));var e=new Uint8Array(t.length);for(var n=0;n<t.length;n++){e[n]=t.charCodeAt(n)}return e.buffer};r.toString=function(r){var t=n.toUint8Array(r);var e="";for(var i=0;i<t.length;i++){e+=String.fromCharCode(t[i])}var o=decodeURIComponent(escape(e));return o};return r}();var o=function(){function r(){}r.toString=function(r,t){if(t===void 0){t=false}var e=n.toArrayBuffer(r);var i=new DataView(e);var o="";for(var a=0;a<e.byteLength;a+=2){var f=i.getUint16(a,t);o+=String.fromCharCode(f)}return o};r.fromString=function(r,t){if(t===void 0){t=false}var e=new ArrayBuffer(r.length*2);var n=new DataView(e);for(var i=0;i<r.length;i++){n.setUint16(i*2,r.charCodeAt(i),t)}return e};return r}();var a=function(){function r(){}r.isHex=function(r){return typeof r==="string"&&/^[a-z0-9]+$/i.test(r)};r.isBase64=function(r){return typeof r==="string"&&/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(r)};r.isBase64Url=function(r){return typeof r==="string"&&/^[a-zA-Z0-9-_]+$/i.test(r)};r.ToString=function(r,t){if(t===void 0){t="utf8"}var e=n.toUint8Array(r);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(e);case"binary":return this.ToBinary(e);case"hex":return this.ToHex(e);case"base64":return this.ToBase64(e);case"base64url":return this.ToBase64Url(e);case"utf16le":return o.toString(e,true);case"utf16":case"utf16be":return o.toString(e);default:throw new Error("Unknown type of encoding '".concat(t,"'"))}};r.FromString=function(r,t){if(t===void 0){t="utf8"}if(!r){return new ArrayBuffer(0)}switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(r);case"binary":return this.FromBinary(r);case"hex":return this.FromHex(r);case"base64":return this.FromBase64(r);case"base64url":return this.FromBase64Url(r);case"utf16le":return o.fromString(r,true);case"utf16":case"utf16be":return o.fromString(r);default:throw new Error("Unknown type of encoding '".concat(t,"'"))}};r.ToBase64=function(r){var t=n.toUint8Array(r);if(typeof btoa!=="undefined"){var e=this.ToString(t,"binary");return btoa(e)}else{return Buffer.from(t).toString("base64")}};r.FromBase64=function(t){var e=this.formatString(t);if(!e){return new ArrayBuffer(0)}if(!r.isBase64(e)){throw new TypeError("Argument 'base64Text' is not Base64 encoded")}if(typeof atob!=="undefined"){return this.FromBinary(atob(e))}else{return new Uint8Array(Buffer.from(e,"base64")).buffer}};r.FromBase64Url=function(t){var e=this.formatString(t);if(!e){return new ArrayBuffer(0)}if(!r.isBase64Url(e)){throw new TypeError("Argument 'base64url' is not Base64Url encoded")}return this.FromBase64(this.Base64Padding(e.replace(/\-/g,"+").replace(/\_/g,"/")))};r.ToBase64Url=function(r){return this.ToBase64(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};r.FromUtf8String=function(t,e){if(e===void 0){e=r.DEFAULT_UTF8_ENCODING}switch(e){case"ascii":return this.FromBinary(t);case"utf8":return i.fromString(t);case"utf16":case"utf16be":return o.fromString(t);case"utf16le":case"usc2":return o.fromString(t,true);default:throw new Error("Unknown type of encoding '".concat(e,"'"))}};r.ToUtf8String=function(t,e){if(e===void 0){e=r.DEFAULT_UTF8_ENCODING}switch(e){case"ascii":return this.ToBinary(t);case"utf8":return i.toString(t);case"utf16":case"utf16be":return o.toString(t);case"utf16le":case"usc2":return o.toString(t,true);default:throw new Error("Unknown type of encoding '".concat(e,"'"))}};r.FromBinary=function(r){var t=r.length;var e=new Uint8Array(t);for(var n=0;n<t;n++){e[n]=r.charCodeAt(n)}return e.buffer};r.ToBinary=function(r){var t=n.toUint8Array(r);var e="";for(var i=0;i<t.length;i++){e+=String.fromCharCode(t[i])}return e};r.ToHex=function(r){var t=n.toUint8Array(r);var e="";var i=[];var o=t.length;for(var a=0;a<o;a++){var f=t[a].toString(16).padStart(2,"0");i.push(f)}return i.join(e)};r.FromHex=function(t){var e=this.formatString(t);if(!e){return new ArrayBuffer(0)}if(!r.isHex(e)){throw new TypeError("Argument 'hexString' is not HEX encoded")}if(e.length%2){e="0".concat(e)}var n=new Uint8Array(e.length/2);for(var i=0;i<e.length;i=i+2){var o=e.slice(i,i+2);n[i/2]=parseInt(o,16)}return n.buffer};r.ToUtf16String=function(r,t){if(t===void 0){t=false}return o.toString(r,t)};r.FromUtf16String=function(r,t){if(t===void 0){t=false}return o.fromString(r,t)};r.Base64Padding=function(r){var t=4-r.length%4;if(t<4){for(var e=0;e<t;e++){r+="="}}return r};r.formatString=function(r){return(r===null||r===void 0?void 0:r.replace(/[\n\r\t ]/g,""))||""};return r}();a.DEFAULT_UTF8_ENCODING="utf8";function f(r){var t=[];for(var e=1;e<arguments.length;e++){t[e-1]=arguments[e]}var n=arguments[0];for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var a in o){n[a]=o[a]}}return n}function u(){var r=[];for(var t=0;t<arguments.length;t++){r[t]=arguments[t]}var e=r.map((function(r){return r.byteLength})).reduce((function(r,t){return r+t}));var n=new Uint8Array(e);var i=0;r.map((function(r){return new Uint8Array(r)})).forEach((function(r){for(var t=0,e=r;t<e.length;t++){var o=e[t];n[i++]=o}}));return n.buffer}function c(r,t){if(!(r&&t)){return false}if(r.byteLength!==t.byteLength){return false}var e=new Uint8Array(r);var n=new Uint8Array(t);for(var i=0;i<r.byteLength;i++){if(e[i]!==n[i]){return false}}return true}t.BufferSourceConverter=n;t.Convert=a;t.assign=f;t.combine=u;t.isEqual=c})));
12
+ /**
13
+ * @license
14
+ * Copyright (c) Peculiar Ventures, LLC.
15
+ *
16
+ * This source code is licensed under the MIT license found in the
17
+ * LICENSE file in the root directory of this source tree.
18
+ */var a=function(){function r(){}return r}();r("D",a);a.cert={asPEM:function(r,e){t(o.Convert.FromString(r),e,"cer","application/pkix-cert")},asDER:function(r,e){t(o.Convert.FromString(r),e,"cer","application/pkix-cert")}};a.attrCert={asPEM:function(r,e){t(o.Convert.FromString(r),e,"cer","application/pkix-attr-cert")},asDER:function(r,e){t(o.Convert.FromString(r),e,"cer","application/pkix-attr-cert")}};a.csr={asPEM:function(r,e){t(o.Convert.FromString(r),e,"csr","application/pkcs10")},asDER:function(r,e){t(o.Convert.FromString(r),e,"csr","application/pkcs10")}};a.crl={asPEM:function(r,e){t(o.Convert.FromString(r),e,"crl","application/pkix-crl")},asDER:function(r,e){t(o.Convert.FromString(r),e,"crl","application/pkix-crl")}}}}}));
19
+ //# sourceMappingURL=p-ae9189f6.system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["downloadFromBuffer","value","name","extension","mime","blob","Blob","type","navigator","msSaveBlob","concat","Promise","resolve","setTimeout","blobURL","window","URL","createObjectURL","link","document","createElement","frame","style","display","body","appendChild","href","target","download","dispatchEvent","MouseEvent","removeChild","Object","defineProperty","exports","ARRAY_BUFFER_NAME","BufferSourceConverter","isArrayBuffer","data","prototype","toString","call","toArrayBuffer","this","byteLength","buffer","toUint8Array","slice","toView","Uint8Array","constructor","isArrayBufferView","byteOffset","TypeError","isBufferSource","ArrayBuffer","isView","isEqual","a","b","aView","bView","length","i","args","_i","arguments","Array","isArray","buffers","size","_a","buffers_1","res","offset","_b","buffers_2","view","set","Utf8Converter","fromString","text","s","unescape","encodeURIComponent","uintArray","charCodeAt","buf","encodedString","String","fromCharCode","decodedString","decodeURIComponent","escape","Utf16Converter","littleEndian","arrayBuffer","dataView","DataView","code","getUint16","setUint16","Convert","isHex","test","isBase64","isBase64Url","ToString","enc","toLowerCase","ToUtf8String","ToBinary","ToHex","ToBase64","ToBase64Url","Error","FromString","str","FromUtf8String","FromBinary","FromHex","FromBase64","FromBase64Url","btoa","binary","Buffer","from","base64","formatted","formatString","atob","base64url","Base64Padding","replace","encoding","DEFAULT_UTF8_ENCODING","stringLength","resultView","splitter","len","char","padStart","push","join","hexString","c","parseInt","ToUtf16String","FromUtf16String","padCount","assign","sources","obj","prop","combine","totalByteLength","map","item","reduce","prev","cur","currentPos","forEach","arr","arr_1","item2","bytes1","bytes2","b1","b2","Download","cert","asPEM","pem","asDER","hex","attrCert","csr","crl"],"sources":["src/utils/download_from_buffer.ts","../../node_modules/pvtsutils/build/index.js","src/utils/download.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\n/**\n * Download from buffer\n *\n * @example\n * ```js\n * import { downloadFromBuffer } from './utils';\n *\n * downloadFromBuffer(arrayBufferValue, 'myFile', 'pdf', 'applciation/pdf');\n * ```\n */\n\nexport function downloadFromBuffer(\n value: ArrayBuffer,\n name: string,\n extension: string,\n mime: string = 'application/octet-stream',\n) {\n const blob = new Blob([value], { type: mime });\n\n // @ts-ignore\n if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\n // @ts-ignore\n navigator.msSaveBlob(blob, `${name}.${extension}`);\n\n return new Promise((resolve) => {\n setTimeout(resolve, 100);\n });\n }\n\n const blobURL = window.URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n const frame = document.createElement('iframe');\n\n link.style.display = 'none';\n frame.style.display = 'none';\n\n frame.name = blobURL;\n document.body.appendChild(frame);\n\n link.href = blobURL;\n link.target = blobURL;\n link.download = `${name}.${extension}`;\n document.body.appendChild(link);\n link.dispatchEvent(new MouseEvent('click'));\n document.body.removeChild(link);\n\n return new Promise<void>((resolve) => {\n setTimeout(\n () => {\n document.body.removeChild(frame);\n resolve();\n },\n 100,\n );\n });\n}\n","/*!\n * MIT License\n * \n * Copyright (c) 2017-2022 Peculiar Ventures, LLC\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\r\nclass BufferSourceConverter {\r\n static isArrayBuffer(data) {\r\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\r\n }\r\n static toArrayBuffer(data) {\r\n if (this.isArrayBuffer(data)) {\r\n return data;\r\n }\r\n if (data.byteLength === data.buffer.byteLength) {\r\n return data.buffer;\r\n }\r\n return this.toUint8Array(data).slice().buffer;\r\n }\r\n static toUint8Array(data) {\r\n return this.toView(data, Uint8Array);\r\n }\r\n static toView(data, type) {\r\n if (data.constructor === type) {\r\n return data;\r\n }\r\n if (this.isArrayBuffer(data)) {\r\n return new type(data);\r\n }\r\n if (this.isArrayBufferView(data)) {\r\n return new type(data.buffer, data.byteOffset, data.byteLength);\r\n }\r\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\r\n }\r\n static isBufferSource(data) {\r\n return this.isArrayBufferView(data)\r\n || this.isArrayBuffer(data);\r\n }\r\n static isArrayBufferView(data) {\r\n return ArrayBuffer.isView(data)\r\n || (data && this.isArrayBuffer(data.buffer));\r\n }\r\n static isEqual(a, b) {\r\n const aView = BufferSourceConverter.toUint8Array(a);\r\n const bView = BufferSourceConverter.toUint8Array(b);\r\n if (aView.length !== bView.byteLength) {\r\n return false;\r\n }\r\n for (let i = 0; i < aView.length; i++) {\r\n if (aView[i] !== bView[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n static concat(...args) {\r\n if (Array.isArray(args[0])) {\r\n const buffers = args[0];\r\n let size = 0;\r\n for (const buffer of buffers) {\r\n size += buffer.byteLength;\r\n }\r\n const res = new Uint8Array(size);\r\n let offset = 0;\r\n for (const buffer of buffers) {\r\n const view = this.toUint8Array(buffer);\r\n res.set(view, offset);\r\n offset += view.length;\r\n }\r\n if (args[1]) {\r\n return this.toView(res, args[1]);\r\n }\r\n return res.buffer;\r\n }\r\n else {\r\n return this.concat(args);\r\n }\r\n }\r\n}\n\nclass Utf8Converter {\r\n static fromString(text) {\r\n const s = unescape(encodeURIComponent(text));\r\n const uintArray = new Uint8Array(s.length);\r\n for (let i = 0; i < s.length; i++) {\r\n uintArray[i] = s.charCodeAt(i);\r\n }\r\n return uintArray.buffer;\r\n }\r\n static toString(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n let encodedString = \"\";\r\n for (let i = 0; i < buf.length; i++) {\r\n encodedString += String.fromCharCode(buf[i]);\r\n }\r\n const decodedString = decodeURIComponent(escape(encodedString));\r\n return decodedString;\r\n }\r\n}\r\nclass Utf16Converter {\r\n static toString(buffer, littleEndian = false) {\r\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\r\n const dataView = new DataView(arrayBuffer);\r\n let res = \"\";\r\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\r\n const code = dataView.getUint16(i, littleEndian);\r\n res += String.fromCharCode(code);\r\n }\r\n return res;\r\n }\r\n static fromString(text, littleEndian = false) {\r\n const res = new ArrayBuffer(text.length * 2);\r\n const dataView = new DataView(res);\r\n for (let i = 0; i < text.length; i++) {\r\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\r\n }\r\n return res;\r\n }\r\n}\r\nclass Convert {\r\n static isHex(data) {\r\n return typeof data === \"string\"\r\n && /^[a-z0-9]+$/i.test(data);\r\n }\r\n static isBase64(data) {\r\n return typeof data === \"string\"\r\n && /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(data);\r\n }\r\n static isBase64Url(data) {\r\n return typeof data === \"string\"\r\n && /^[a-zA-Z0-9-_]+$/i.test(data);\r\n }\r\n static ToString(buffer, enc = \"utf8\") {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n switch (enc.toLowerCase()) {\r\n case \"utf8\":\r\n return this.ToUtf8String(buf);\r\n case \"binary\":\r\n return this.ToBinary(buf);\r\n case \"hex\":\r\n return this.ToHex(buf);\r\n case \"base64\":\r\n return this.ToBase64(buf);\r\n case \"base64url\":\r\n return this.ToBase64Url(buf);\r\n case \"utf16le\":\r\n return Utf16Converter.toString(buf, true);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.toString(buf);\r\n default:\r\n throw new Error(`Unknown type of encoding '${enc}'`);\r\n }\r\n }\r\n static FromString(str, enc = \"utf8\") {\r\n if (!str) {\r\n return new ArrayBuffer(0);\r\n }\r\n switch (enc.toLowerCase()) {\r\n case \"utf8\":\r\n return this.FromUtf8String(str);\r\n case \"binary\":\r\n return this.FromBinary(str);\r\n case \"hex\":\r\n return this.FromHex(str);\r\n case \"base64\":\r\n return this.FromBase64(str);\r\n case \"base64url\":\r\n return this.FromBase64Url(str);\r\n case \"utf16le\":\r\n return Utf16Converter.fromString(str, true);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.fromString(str);\r\n default:\r\n throw new Error(`Unknown type of encoding '${enc}'`);\r\n }\r\n }\r\n static ToBase64(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n if (typeof btoa !== \"undefined\") {\r\n const binary = this.ToString(buf, \"binary\");\r\n return btoa(binary);\r\n }\r\n else {\r\n return Buffer.from(buf).toString(\"base64\");\r\n }\r\n }\r\n static FromBase64(base64) {\r\n const formatted = this.formatString(base64);\r\n if (!formatted) {\r\n return new ArrayBuffer(0);\r\n }\r\n if (!Convert.isBase64(formatted)) {\r\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\r\n }\r\n if (typeof atob !== \"undefined\") {\r\n return this.FromBinary(atob(formatted));\r\n }\r\n else {\r\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\r\n }\r\n }\r\n static FromBase64Url(base64url) {\r\n const formatted = this.formatString(base64url);\r\n if (!formatted) {\r\n return new ArrayBuffer(0);\r\n }\r\n if (!Convert.isBase64Url(formatted)) {\r\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\r\n }\r\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\r\n }\r\n static ToBase64Url(data) {\r\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\r\n }\r\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\r\n switch (encoding) {\r\n case \"ascii\":\r\n return this.FromBinary(text);\r\n case \"utf8\":\r\n return Utf8Converter.fromString(text);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.fromString(text);\r\n case \"utf16le\":\r\n case \"usc2\":\r\n return Utf16Converter.fromString(text, true);\r\n default:\r\n throw new Error(`Unknown type of encoding '${encoding}'`);\r\n }\r\n }\r\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\r\n switch (encoding) {\r\n case \"ascii\":\r\n return this.ToBinary(buffer);\r\n case \"utf8\":\r\n return Utf8Converter.toString(buffer);\r\n case \"utf16\":\r\n case \"utf16be\":\r\n return Utf16Converter.toString(buffer);\r\n case \"utf16le\":\r\n case \"usc2\":\r\n return Utf16Converter.toString(buffer, true);\r\n default:\r\n throw new Error(`Unknown type of encoding '${encoding}'`);\r\n }\r\n }\r\n static FromBinary(text) {\r\n const stringLength = text.length;\r\n const resultView = new Uint8Array(stringLength);\r\n for (let i = 0; i < stringLength; i++) {\r\n resultView[i] = text.charCodeAt(i);\r\n }\r\n return resultView.buffer;\r\n }\r\n static ToBinary(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n let res = \"\";\r\n for (let i = 0; i < buf.length; i++) {\r\n res += String.fromCharCode(buf[i]);\r\n }\r\n return res;\r\n }\r\n static ToHex(buffer) {\r\n const buf = BufferSourceConverter.toUint8Array(buffer);\r\n const splitter = \"\";\r\n const res = [];\r\n const len = buf.length;\r\n for (let i = 0; i < len; i++) {\r\n const char = buf[i].toString(16).padStart(2, \"0\");\r\n res.push(char);\r\n }\r\n return res.join(splitter);\r\n }\r\n static FromHex(hexString) {\r\n let formatted = this.formatString(hexString);\r\n if (!formatted) {\r\n return new ArrayBuffer(0);\r\n }\r\n if (!Convert.isHex(formatted)) {\r\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\r\n }\r\n if (formatted.length % 2) {\r\n formatted = `0${formatted}`;\r\n }\r\n const res = new Uint8Array(formatted.length / 2);\r\n for (let i = 0; i < formatted.length; i = i + 2) {\r\n const c = formatted.slice(i, i + 2);\r\n res[i / 2] = parseInt(c, 16);\r\n }\r\n return res.buffer;\r\n }\r\n static ToUtf16String(buffer, littleEndian = false) {\r\n return Utf16Converter.toString(buffer, littleEndian);\r\n }\r\n static FromUtf16String(text, littleEndian = false) {\r\n return Utf16Converter.fromString(text, littleEndian);\r\n }\r\n static Base64Padding(base64) {\r\n const padCount = 4 - (base64.length % 4);\r\n if (padCount < 4) {\r\n for (let i = 0; i < padCount; i++) {\r\n base64 += \"=\";\r\n }\r\n }\r\n return base64;\r\n }\r\n static formatString(data) {\r\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\r\n }\r\n}\r\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\r\n const res = arguments[0];\r\n for (let i = 1; i < arguments.length; i++) {\r\n const obj = arguments[i];\r\n for (const prop in obj) {\r\n res[prop] = obj[prop];\r\n }\r\n }\r\n return res;\r\n}\r\nfunction combine(...buf) {\r\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\r\n const res = new Uint8Array(totalByteLength);\r\n let currentPos = 0;\r\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\r\n for (const item2 of arr) {\r\n res[currentPos++] = item2;\r\n }\r\n });\r\n return res.buffer;\r\n}\r\nfunction isEqual(bytes1, bytes2) {\r\n if (!(bytes1 && bytes2)) {\r\n return false;\r\n }\r\n if (bytes1.byteLength !== bytes2.byteLength) {\r\n return false;\r\n }\r\n const b1 = new Uint8Array(bytes1);\r\n const b2 = new Uint8Array(bytes2);\r\n for (let i = 0; i < bytes1.byteLength; i++) {\r\n if (b1[i] !== b2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\n\nexports.BufferSourceConverter = BufferSourceConverter;\nexports.Convert = Convert;\nexports.assign = assign;\nexports.combine = combine;\nexports.isEqual = isEqual;\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 { Convert } from 'pvtsutils';\n\nimport { downloadFromBuffer } from './download_from_buffer';\n\nexport class Download {\n public static cert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n };\n\n public static attrCert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n };\n\n public static csr = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n };\n\n public static crl = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n };\n}\n"],"mappings":";;;;;;;;;;kBAmBgBA,EACdC,EACAC,EACAC,EACAC,GAAA,GAAAA,SAAA,GAAAA,EAAA,0BAAyC,CAEzC,IAAMC,EAAO,IAAIC,KAAK,CAACL,GAAQ,CAAEM,KAAMH,IAGvC,GAAII,UAAUC,WAAY,CAExBD,UAAUC,WAAWJ,EAAM,GAAAK,OAAGR,EAAI,KAAAQ,OAAIP,IAEtC,OAAO,IAAIQ,SAAQ,SAACC,GAClBC,WAAWD,EAAS,I,IAIxB,IAAME,EAAUC,OAAOC,IAAIC,gBAAgBZ,GAE3C,IAAMa,EAAOC,SAASC,cAAc,KACpC,IAAMC,EAAQF,SAASC,cAAc,UAErCF,EAAKI,MAAMC,QAAU,OACrBF,EAAMC,MAAMC,QAAU,OAEtBF,EAAMnB,KAAOY,EACbK,SAASK,KAAKC,YAAYJ,GAE1BH,EAAKQ,KAAOZ,EACZI,EAAKS,OAASb,EACdI,EAAKU,SAAW,GAAAlB,OAAGR,EAAI,KAAAQ,OAAIP,GAC3BgB,SAASK,KAAKC,YAAYP,GAC1BA,EAAKW,cAAc,IAAIC,WAAW,UAClCX,SAASK,KAAKO,YAAYb,GAE1B,OAAO,IAAIP,SAAc,SAACC,GACxBC,YACE,WACEM,SAASK,KAAKO,YAAYV,GAC1BT,G,GAEF,I,GAGN,C,+YCrCAoB,OAAOC,eAAeC,EAAS,aAAc,CAAEjC,MAAO,OAEtD,IAAMkC,EAAoB,uBAC1B,IAAAC,EAAA,oBAAAA,IAwEA,CAvEWA,EAAAC,cAAP,SAAqBC,GACjB,OAAON,OAAOO,UAAUC,SAASC,KAAKH,KAAUH,CACxD,EACWC,EAAAM,cAAP,SAAqBJ,GACjB,GAAIK,KAAKN,cAAcC,GAAO,CAC1B,OAAOA,C,CAEX,GAAIA,EAAKM,aAAeN,EAAKO,OAAOD,WAAY,CAC5C,OAAON,EAAKO,M,CAEhB,OAAOF,KAAKG,aAAaR,GAAMS,QAAQF,MAC/C,EACWT,EAAAU,aAAP,SAAoBR,GAChB,OAAOK,KAAKK,OAAOV,EAAMW,WACjC,EACWb,EAAAY,OAAP,SAAcV,EAAM/B,GAChB,GAAI+B,EAAKY,cAAgB3C,EAAM,CAC3B,OAAO+B,C,CAEX,GAAIK,KAAKN,cAAcC,GAAO,CAC1B,OAAO,IAAI/B,EAAK+B,E,CAEpB,GAAIK,KAAKQ,kBAAkBb,GAAO,CAC9B,OAAO,IAAI/B,EAAK+B,EAAKO,OAAQP,EAAKc,WAAYd,EAAKM,W,CAEvD,MAAM,IAAIS,UAAU,uEAC5B,EACWjB,EAAAkB,eAAP,SAAsBhB,GAClB,OAAOK,KAAKQ,kBAAkBb,IACvBK,KAAKN,cAAcC,EAClC,EACWF,EAAAe,kBAAP,SAAyBb,GACrB,OAAOiB,YAAYC,OAAOlB,IAClBA,GAAQK,KAAKN,cAAcC,EAAKO,OAChD,EACWT,EAAAqB,QAAP,SAAeC,EAAGC,GACd,IAAMC,EAAQxB,EAAsBU,aAAaY,GACjD,IAAMG,EAAQzB,EAAsBU,aAAaa,GACjD,GAAIC,EAAME,SAAWD,EAAMjB,WAAY,CACnC,OAAO,K,CAEX,IAAK,IAAImB,EAAI,EAAGA,EAAIH,EAAME,OAAQC,IAAK,CACnC,GAAIH,EAAMG,KAAOF,EAAME,GAAI,CACvB,OAAO,K,EAGf,OAAO,IACf,EACW3B,EAAA1B,OAAP,WAAc,IAAAsD,EAAA,G,IAAA,IAAAC,EAAA,EAAAA,EAAAC,UAAAJ,OAAAG,IAAO,CAAPD,EAAAC,GAAAC,UAAAD,E,CACV,GAAIE,MAAMC,QAAQJ,EAAK,IAAK,CACxB,IAAMK,EAAUL,EAAK,GACrB,IAAIM,EAAO,EACX,IAAqB,IAAAC,EAAA,EAAAC,EAAAH,EAAAE,EAAAC,EAAAV,OAAAS,IAAS,CAAzB,IAAM1B,EAAM2B,EAAAD,GACbD,GAAQzB,EAAOD,U,CAEnB,IAAM6B,EAAM,IAAIxB,WAAWqB,GAC3B,IAAII,EAAS,EACb,IAAqB,IAAAC,EAAA,EAAAC,EAAAP,EAAAM,EAAAC,EAAAd,OAAAa,IAAS,CAAzB,IAAM9B,EAAM+B,EAAAD,GACb,IAAME,EAAOlC,KAAKG,aAAaD,GAC/B4B,EAAIK,IAAID,EAAMH,GACdA,GAAUG,EAAKf,M,CAEnB,GAAIE,EAAK,GAAI,CACT,OAAOrB,KAAKK,OAAOyB,EAAKT,EAAK,G,CAEjC,OAAOS,EAAI5B,M,KAEV,CACD,OAAOF,KAAKjC,OAAOsD,E,CAE/B,EACA,OAAA5B,CAAA,CAxEA,GA0EA,IAAA2C,EAAA,oBAAAA,IAkBA,CAjBWA,EAAAC,WAAP,SAAkBC,GACd,IAAMC,EAAIC,SAASC,mBAAmBH,IACtC,IAAMI,EAAY,IAAIpC,WAAWiC,EAAEpB,QACnC,IAAK,IAAIC,EAAI,EAAGA,EAAImB,EAAEpB,OAAQC,IAAK,CAC/BsB,EAAUtB,GAAKmB,EAAEI,WAAWvB,E,CAEhC,OAAOsB,EAAUxC,MACzB,EACWkC,EAAAvC,SAAP,SAAgBK,GACZ,IAAM0C,EAAMnD,EAAsBU,aAAaD,GAC/C,IAAI2C,EAAgB,GACpB,IAAK,IAAIzB,EAAI,EAAGA,EAAIwB,EAAIzB,OAAQC,IAAK,CACjCyB,GAAiBC,OAAOC,aAAaH,EAAIxB,G,CAE7C,IAAM4B,EAAgBC,mBAAmBC,OAAOL,IAChD,OAAOG,CACf,EACA,OAAAZ,CAAA,CAlBA,GAmBA,IAAAe,EAAA,oBAAAA,IAmBA,CAlBWA,EAAAtD,SAAP,SAAgBK,EAAQkD,GAAA,GAAAA,SAAA,GAAAA,EAAA,KAAoB,CACxC,IAAMC,EAAc5D,EAAsBM,cAAcG,GACxD,IAAMoD,EAAW,IAAIC,SAASF,GAC9B,IAAIvB,EAAM,GACV,IAAK,IAAIV,EAAI,EAAGA,EAAIiC,EAAYpD,WAAYmB,GAAK,EAAG,CAChD,IAAMoC,EAAOF,EAASG,UAAUrC,EAAGgC,GACnCtB,GAAOgB,OAAOC,aAAaS,E,CAE/B,OAAO1B,CACf,EACWqB,EAAAd,WAAP,SAAkBC,EAAMc,GAAA,GAAAA,SAAA,GAAAA,EAAA,KAAoB,CACxC,IAAMtB,EAAM,IAAIlB,YAAY0B,EAAKnB,OAAS,GAC1C,IAAMmC,EAAW,IAAIC,SAASzB,GAC9B,IAAK,IAAIV,EAAI,EAAGA,EAAIkB,EAAKnB,OAAQC,IAAK,CAClCkC,EAASI,UAAUtC,EAAI,EAAGkB,EAAKK,WAAWvB,GAAIgC,E,CAElD,OAAOtB,CACf,EACA,OAAAqB,CAAA,CAnBA,GAoBA,IAAAQ,EAAA,oBAAAA,IAgMA,CA/LWA,EAAAC,MAAP,SAAajE,GACT,cAAcA,IAAS,UAChB,eAAekE,KAAKlE,EACnC,EACWgE,EAAAG,SAAP,SAAgBnE,GACZ,cAAcA,IAAS,UAChB,mEAAmEkE,KAAKlE,EACvF,EACWgE,EAAAI,YAAP,SAAmBpE,GACf,cAAcA,IAAS,UAChB,oBAAoBkE,KAAKlE,EACxC,EACWgE,EAAAK,SAAP,SAAgB9D,EAAQ+D,GAAA,GAAAA,SAAA,GAAAA,EAAA,MAAY,CAChC,IAAMrB,EAAMnD,EAAsBU,aAAaD,GAC/C,OAAQ+D,EAAIC,eACR,IAAK,OACD,OAAOlE,KAAKmE,aAAavB,GAC7B,IAAK,SACD,OAAO5C,KAAKoE,SAASxB,GACzB,IAAK,MACD,OAAO5C,KAAKqE,MAAMzB,GACtB,IAAK,SACD,OAAO5C,KAAKsE,SAAS1B,GACzB,IAAK,YACD,OAAO5C,KAAKuE,YAAY3B,GAC5B,IAAK,UACD,OAAOO,EAAetD,SAAS+C,EAAK,MACxC,IAAK,QACL,IAAK,UACD,OAAOO,EAAetD,SAAS+C,GACnC,QACI,MAAM,IAAI4B,MAAM,6BAAAzG,OAA6BkG,EAAG,MAEhE,EACWN,EAAAc,WAAP,SAAkBC,EAAKT,GAAA,GAAAA,SAAA,GAAAA,EAAA,MAAY,CAC/B,IAAKS,EAAK,CACN,OAAO,IAAI9D,YAAY,E,CAE3B,OAAQqD,EAAIC,eACR,IAAK,OACD,OAAOlE,KAAK2E,eAAeD,GAC/B,IAAK,SACD,OAAO1E,KAAK4E,WAAWF,GAC3B,IAAK,MACD,OAAO1E,KAAK6E,QAAQH,GACxB,IAAK,SACD,OAAO1E,KAAK8E,WAAWJ,GAC3B,IAAK,YACD,OAAO1E,KAAK+E,cAAcL,GAC9B,IAAK,UACD,OAAOvB,EAAed,WAAWqC,EAAK,MAC1C,IAAK,QACL,IAAK,UACD,OAAOvB,EAAed,WAAWqC,GACrC,QACI,MAAM,IAAIF,MAAM,6BAAAzG,OAA6BkG,EAAG,MAEhE,EACWN,EAAAW,SAAP,SAAgBpE,GACZ,IAAM0C,EAAMnD,EAAsBU,aAAaD,GAC/C,UAAW8E,OAAS,YAAa,CAC7B,IAAMC,EAASjF,KAAKgE,SAASpB,EAAK,UAClC,OAAOoC,KAAKC,E,KAEX,CACD,OAAOC,OAAOC,KAAKvC,GAAK/C,SAAS,S,CAE7C,EACW8D,EAAAmB,WAAP,SAAkBM,GACd,IAAMC,EAAYrF,KAAKsF,aAAaF,GACpC,IAAKC,EAAW,CACZ,OAAO,IAAIzE,YAAY,E,CAE3B,IAAK+C,EAAQG,SAASuB,GAAY,CAC9B,MAAM,IAAI3E,UAAU,8C,CAExB,UAAW6E,OAAS,YAAa,CAC7B,OAAOvF,KAAK4E,WAAWW,KAAKF,G,KAE3B,CACD,OAAO,IAAI/E,WAAW4E,OAAOC,KAAKE,EAAW,WAAWnF,M,CAEpE,EACWyD,EAAAoB,cAAP,SAAqBS,GACjB,IAAMH,EAAYrF,KAAKsF,aAAaE,GACpC,IAAKH,EAAW,CACZ,OAAO,IAAIzE,YAAY,E,CAE3B,IAAK+C,EAAQI,YAAYsB,GAAY,CACjC,MAAM,IAAI3E,UAAU,gD,CAExB,OAAOV,KAAK8E,WAAW9E,KAAKyF,cAAcJ,EAAUK,QAAQ,MAAO,KAAKA,QAAQ,MAAO,MAC/F,EACW/B,EAAAY,YAAP,SAAmB5E,GACf,OAAOK,KAAKsE,SAAS3E,GAAM+F,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAAKA,QAAQ,MAAO,GAC1F,EACW/B,EAAAgB,eAAP,SAAsBrC,EAAMqD,GAAA,GAAAA,SAAA,GAAAA,EAAWhC,EAAQiC,qBAAqB,CAChE,OAAQD,GACJ,IAAK,QACD,OAAO3F,KAAK4E,WAAWtC,GAC3B,IAAK,OACD,OAAOF,EAAcC,WAAWC,GACpC,IAAK,QACL,IAAK,UACD,OAAOa,EAAed,WAAWC,GACrC,IAAK,UACL,IAAK,OACD,OAAOa,EAAed,WAAWC,EAAM,MAC3C,QACI,MAAM,IAAIkC,MAAM,6BAAAzG,OAA6B4H,EAAQ,MAErE,EACWhC,EAAAQ,aAAP,SAAoBjE,EAAQyF,GAAA,GAAAA,SAAA,GAAAA,EAAWhC,EAAQiC,qBAAqB,CAChE,OAAQD,GACJ,IAAK,QACD,OAAO3F,KAAKoE,SAASlE,GACzB,IAAK,OACD,OAAOkC,EAAcvC,SAASK,GAClC,IAAK,QACL,IAAK,UACD,OAAOiD,EAAetD,SAASK,GACnC,IAAK,UACL,IAAK,OACD,OAAOiD,EAAetD,SAASK,EAAQ,MAC3C,QACI,MAAM,IAAIsE,MAAM,6BAAAzG,OAA6B4H,EAAQ,MAErE,EACWhC,EAAAiB,WAAP,SAAkBtC,GACd,IAAMuD,EAAevD,EAAKnB,OAC1B,IAAM2E,EAAa,IAAIxF,WAAWuF,GAClC,IAAK,IAAIzE,EAAI,EAAGA,EAAIyE,EAAczE,IAAK,CACnC0E,EAAW1E,GAAKkB,EAAKK,WAAWvB,E,CAEpC,OAAO0E,EAAW5F,MAC1B,EACWyD,EAAAS,SAAP,SAAgBlE,GACZ,IAAM0C,EAAMnD,EAAsBU,aAAaD,GAC/C,IAAI4B,EAAM,GACV,IAAK,IAAIV,EAAI,EAAGA,EAAIwB,EAAIzB,OAAQC,IAAK,CACjCU,GAAOgB,OAAOC,aAAaH,EAAIxB,G,CAEnC,OAAOU,CACf,EACW6B,EAAAU,MAAP,SAAanE,GACT,IAAM0C,EAAMnD,EAAsBU,aAAaD,GAC/C,IAAM6F,EAAW,GACjB,IAAMjE,EAAM,GACZ,IAAMkE,EAAMpD,EAAIzB,OAChB,IAAK,IAAIC,EAAI,EAAGA,EAAI4E,EAAK5E,IAAK,CAC1B,IAAM6E,EAAOrD,EAAIxB,GAAGvB,SAAS,IAAIqG,SAAS,EAAG,KAC7CpE,EAAIqE,KAAKF,E,CAEb,OAAOnE,EAAIsE,KAAKL,EACxB,EACWpC,EAAAkB,QAAP,SAAewB,GACX,IAAIhB,EAAYrF,KAAKsF,aAAae,GAClC,IAAKhB,EAAW,CACZ,OAAO,IAAIzE,YAAY,E,CAE3B,IAAK+C,EAAQC,MAAMyB,GAAY,CAC3B,MAAM,IAAI3E,UAAU,0C,CAExB,GAAI2E,EAAUlE,OAAS,EAAG,CACtBkE,EAAY,IAAAtH,OAAIsH,E,CAEpB,IAAMvD,EAAM,IAAIxB,WAAW+E,EAAUlE,OAAS,GAC9C,IAAK,IAAIC,EAAI,EAAGA,EAAIiE,EAAUlE,OAAQC,EAAIA,EAAI,EAAG,CAC7C,IAAMkF,EAAIjB,EAAUjF,MAAMgB,EAAGA,EAAI,GACjCU,EAAIV,EAAI,GAAKmF,SAASD,EAAG,G,CAE7B,OAAOxE,EAAI5B,MACnB,EACWyD,EAAA6C,cAAP,SAAqBtG,EAAQkD,GAAA,GAAAA,SAAA,GAAAA,EAAA,KAAoB,CAC7C,OAAOD,EAAetD,SAASK,EAAQkD,EAC/C,EACWO,EAAA8C,gBAAP,SAAuBnE,EAAMc,GAAA,GAAAA,SAAA,GAAAA,EAAA,KAAoB,CAC7C,OAAOD,EAAed,WAAWC,EAAMc,EAC/C,EACWO,EAAA8B,cAAP,SAAqBL,GACjB,IAAMsB,EAAW,EAAKtB,EAAOjE,OAAS,EACtC,GAAIuF,EAAW,EAAG,CACd,IAAK,IAAItF,EAAI,EAAGA,EAAIsF,EAAUtF,IAAK,CAC/BgE,GAAU,G,EAGlB,OAAOA,CACf,EACWzB,EAAA2B,aAAP,SAAoB3F,GAChB,OAAQA,IAAS,MAAQA,SAAc,OAAS,EAAIA,EAAK+F,QAAQ,aAAc,MAAQ,EAC/F,EACA,OAAA/B,CAAA,CAhMA,GAiMAA,EAAQiC,sBAAwB,OAEhC,SAASe,EAAO3H,GAAQ,IAAA4H,EAAA,G,IAAA,IAAAtF,EAAA,EAAAA,EAAAC,UAAAJ,OAAAG,IAAU,CAAVsF,EAAAtF,EAAA,GAAAC,UAAAD,E,CACpB,IAAMQ,EAAMP,UAAU,GACtB,IAAK,IAAIH,EAAI,EAAGA,EAAIG,UAAUJ,OAAQC,IAAK,CACvC,IAAMyF,EAAMtF,UAAUH,GACtB,IAAK,IAAM0F,KAAQD,EAAK,CACpB/E,EAAIgF,GAAQD,EAAIC,E,EAGxB,OAAOhF,CACX,CACA,SAASiF,IAAQ,IAAAnE,EAAA,G,IAAA,IAAAtB,EAAA,EAAAA,EAAAC,UAAAJ,OAAAG,IAAM,CAANsB,EAAAtB,GAAAC,UAAAD,E,CACb,IAAM0F,EAAkBpE,EAAIqE,KAAI,SAACC,GAAS,OAAAA,EAAKjH,UAAL,IAAiBkH,QAAO,SAACC,EAAMC,GAAQ,OAAAD,EAAOC,CAAP,IACjF,IAAMvF,EAAM,IAAIxB,WAAW0G,GAC3B,IAAIM,EAAa,EACjB1E,EAAIqE,KAAI,SAACC,GAAS,WAAI5G,WAAW4G,EAAf,IAAsBK,SAAQ,SAACC,GAC7C,IAAoB,IAAAlG,EAAA,EAAAmG,EAAAD,EAAAlG,EAAAmG,EAAAtG,OAAAG,IAAK,CAApB,IAAMoG,EAAKD,EAAAnG,GACZQ,EAAIwF,KAAgBI,C,CAEhC,IACI,OAAO5F,EAAI5B,MACf,CACA,SAASY,EAAQ6G,EAAQC,GACrB,KAAMD,GAAUC,GAAS,CACrB,OAAO,K,CAEX,GAAID,EAAO1H,aAAe2H,EAAO3H,WAAY,CACzC,OAAO,K,CAEX,IAAM4H,EAAK,IAAIvH,WAAWqH,GAC1B,IAAMG,EAAK,IAAIxH,WAAWsH,GAC1B,IAAK,IAAIxG,EAAI,EAAGA,EAAIuG,EAAO1H,WAAYmB,IAAK,CACxC,GAAIyG,EAAGzG,KAAO0G,EAAG1G,GAAI,CACjB,OAAO,K,EAGf,OAAO,IACX,CAEA7B,EAAAE,sBAAgCA,EAChCF,EAAAoE,QAAkBA,EAClBpE,EAAAoH,OAAiBA,EACjBpH,EAAAwH,QAAkBA,EAClBxH,EAAAuB,QAAkBA,C;;;;;;;6DC/WFiH,EAAAC,KAAO,CACnBC,MAAO,SAACC,EAAa3K,GACnBF,EACEsG,UAAQc,WAAWyD,GACnB3K,EACA,MACA,wB,EAIJ4K,MAAO,SAACC,EAAa7K,GACnBF,EACEsG,UAAQc,WAAW2D,GACnB7K,EACA,MACA,wB,GAKQwK,EAAAM,SAAW,CACvBJ,MAAO,SAACC,EAAa3K,GACnBF,EACEsG,UAAQc,WAAWyD,GACnB3K,EACA,MACA,6B,EAIJ4K,MAAO,SAACC,EAAa7K,GACnBF,EACEsG,UAAQc,WAAW2D,GACnB7K,EACA,MACA,6B,GAKQwK,EAAAO,IAAM,CAClBL,MAAO,SAACC,EAAa3K,GACnBF,EACEsG,UAAQc,WAAWyD,GACnB3K,EACA,MACA,qB,EAIJ4K,MAAO,SAACC,EAAa7K,GACnBF,EACEsG,UAAQc,WAAW2D,GACnB7K,EACA,MACA,qB,GAKQwK,EAAAQ,IAAM,CAClBN,MAAO,SAACC,EAAa3K,GACnBF,EACEsG,UAAQc,WAAWyD,GACnB3K,EACA,MACA,uB,EAIJ4K,MAAO,SAACC,EAAa7K,GACnBF,EACEsG,UAAQc,WAAW2D,GACnB7K,EACA,MACA,uB"}
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * © Peculiar Ventures https://peculiarventures.com/ - MIT License
3
+ */
4
+ System.register(["./p-5aabeba7.system.js","./p-2fcad8cb.system.js"],(function(t){"use strict";var r,e,o,i,s,a;return{setters:[function(t){r=t.h;e=t.r;o=t.H;i=t.g},function(t){s=t.T;a=t.B}],execute:function(){
5
+ /**
6
+ * @license
7
+ * Copyright (c) Peculiar Ventures, LLC.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ var n=function(t){var e=t.color,o=e===void 0?"gray-10":e;return r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"30",height:"31",fill:"none"},r("path",{fill:"var(--pv-color-".concat(o,")"),d:"M15 13.5a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm-7 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm14 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"}))};var c='.sc-peculiar-button-menu-h{display:-ms-inline-flexbox;display:inline-flex;position:relative}.is_shown.sc-peculiar-button-menu-h .button_popover.sc-peculiar-button-menu:before{position:fixed;width:100%;height:100%;top:0;left:0;content:""}.is_shown.sc-peculiar-button-menu-h .popover.sc-peculiar-button-menu{display:block}.popover.sc-peculiar-button-menu{min-width:200px;position:absolute;top:100%;right:0;border-radius:4px;z-index:1;-webkit-box-shadow:var(--pv-shadow-light-medium);box-shadow:var(--pv-shadow-light-medium);background:var(--pv-color-white);padding:var(--pv-size-base-2) 0;margin:var(--pv-size-base) 0;display:none}.button_option.sc-peculiar-button-menu{width:100%;-ms-flex-pack:start;justify-content:flex-start;border-radius:0}.group.sc-peculiar-button-menu:not(:last-child){border-bottom:1px solid var(--pv-color-gray-5);padding-bottom:var(--pv-size-base-2);margin-bottom:var(--pv-size-base)}.group_title.sc-peculiar-button-menu{line-height:var(--pv-size-base-6);padding:0 var(--pv-size-base-2)}';var l=t("peculiar_button_menu",function(){function t(t){var r=this;e(this,t);this.handleClick=function(){r.open=!r.open};this.groups=[];this.open=false}t.prototype.render=function(){var t=this;return r(o,{class:{is_shown:this.open}},r(a,{class:"button_popover",onClick:this.handleClick,startIcon:r(n,null)}),r("div",{role:"dialog",tabIndex:-1,class:"popover","aria-hidden":String(this.open)},this.groups.map((function(e){return r("div",{class:"group"},r(s,{variant:"c2",color:"gray-9",class:"group_title"},e.title),e.options.map((function(e){return r(a,{class:"button_option",startIcon:e.startIcon,href:e.href,onClick:function(r){r.stopPropagation();t.handleClick();if(e.onClick){e.onClick(r)}}},e.text)})))}))))};return t}());l.style=c;var h=":host{display:block;width:100%}@-webkit-keyframes circular-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes circular-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes circular-dash{0%{stroke-dasharray:1, 200;stroke-dashoffset:0}50%{stroke-dasharray:100, 200;stroke-dashoffset:-15}to{stroke-dasharray:100, 200;stroke-dashoffset:-120}}@keyframes circular-dash{0%{stroke-dasharray:1, 200;stroke-dashoffset:0}50%{stroke-dasharray:100, 200;stroke-dashoffset:-15}to{stroke-dasharray:100, 200;stroke-dashoffset:-120}}.circle_progress{margin:0 auto}.circle_progress_svg{-webkit-animation:circular-rotate 1.4s linear infinite;animation:circular-rotate 1.4s linear infinite}.circle_progress_circle{stroke-linecap:round;-webkit-animation:circular-dash 1.4s ease-in-out infinite;animation:circular-dash 1.4s ease-in-out infinite;stroke-dasharray:80, 200;stroke-dashoffset:0;stroke:var(--pv-color-secondary)}.circle_progress_backdrop{stroke:var(--pv-color-gray-3)}";var p=t("peculiar_circular_progress",function(){function t(t){e(this,t);this.box=50;this.size=24;this.width=4}t.prototype.render=function(){return r(o,null,r("div",{class:"circle_progress",style:{width:"".concat(this.size,"px"),height:"".concat(this.size,"px")}},r("svg",{class:"circle_progress_svg",viewBox:"0 0 ".concat(this.box," ").concat(this.box)},r("circle",{class:"circle_progress_backdrop",cx:this.box/2,cy:this.box/2,r:this.box/2-5,fill:"none",style:{strokeWidth:"".concat(this.width,"px")}}),r("circle",{class:"circle_progress_circle",cx:this.box/2,cy:this.box/2,r:this.box/2-5,fill:"none",style:{strokeWidth:"".concat(this.width,"px")}}))))};return t}());p.style=h;var u=":host{display:inline}::slotted(mark){background-color:var(--pv-color-attention-tint-4)}";var d=t("peculiar_highlight_words",function(){function t(t){e(this,t);this.tag="mark";this.search=undefined}t.prototype.componentDidLoad=function(){this.handleHighlightSearch()};t.prototype.componentDidUpdate=function(){this.handleHighlightSearch()};t.prototype.handleHighlightSearch=function(){var t=this.resetHighlightSearch(this.host.innerHTML);var r=t;if(this.search){var e=new RegExp("(".concat(this.search,")"),"gi");r=t.replace(e,"<".concat(this.tag,">$1</").concat(this.tag,">"))}this.host.innerHTML=r};t.prototype.resetHighlightSearch=function(t){var r=new RegExp("</?".concat(this.tag,">"),"g");return t.replace(r,"")};t.prototype.render=function(){return r(o,null,r("slot",null))};Object.defineProperty(t.prototype,"host",{get:function(){return i(this)},enumerable:false,configurable:true});return t}());d.style=u}}}));
13
+ //# sourceMappingURL=p-bd485115.system.entry.js.map