@peculiar/certificates-viewer 4.5.0 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/components/actions.js.map +1 -1
  2. package/components/arrow_top.js.map +1 -1
  3. package/components/attribute-certificate-viewer.js +2 -4
  4. package/components/attribute-certificate-viewer.js.map +1 -1
  5. package/components/attribute.js.map +1 -1
  6. package/components/button-menu.js +1 -3
  7. package/components/button-menu.js.map +1 -1
  8. package/components/button.js +2 -2
  9. package/components/button.js.map +1 -1
  10. package/components/certificate-chain-viewer.js +0 -1
  11. package/components/certificate-chain-viewer.js.map +1 -1
  12. package/components/certificate-viewer.js +3 -8
  13. package/components/certificate-viewer.js.map +1 -1
  14. package/components/circular-progress.js +2 -6
  15. package/components/circular-progress.js.map +1 -1
  16. package/components/crl-viewer.js +0 -2
  17. package/components/crl-viewer.js.map +1 -1
  18. package/components/cross.js.map +1 -1
  19. package/components/csr-viewer.js +0 -4
  20. package/components/csr-viewer.js.map +1 -1
  21. package/components/download.js +32 -19
  22. package/components/download.js.map +1 -1
  23. package/components/highlight-words.js +1 -1
  24. package/components/highlight-words.js.map +1 -1
  25. package/components/index2.js +2 -1
  26. package/components/index2.js.map +1 -1
  27. package/components/issuer_name.js +3 -1
  28. package/components/issuer_name.js.map +1 -1
  29. package/components/miscellaneous.js +15 -16
  30. package/components/miscellaneous.js.map +1 -1
  31. package/components/peculiar-certificate-decoder.js +7 -8
  32. package/components/peculiar-certificate-decoder.js.map +1 -1
  33. package/components/peculiar-certificates-viewer.js +44 -43
  34. package/components/peculiar-certificates-viewer.js.map +1 -1
  35. package/components/peculiar-text-hider.js +1 -1
  36. package/components/peculiar-text-hider.js.map +1 -1
  37. package/components/pkcs10_certificate_request.js.map +1 -1
  38. package/components/read_file.js.map +1 -1
  39. package/components/subject_name.js.map +1 -1
  40. package/dist/cjs/actions-Dl4HXXlI.js.map +1 -1
  41. package/dist/cjs/arrow_top-DBMPHVlB.js.map +1 -1
  42. package/dist/cjs/{button-C5jDF-CZ.js → button-B0CduHSE.js} +4 -4
  43. package/dist/cjs/button-B0CduHSE.js.map +1 -0
  44. package/dist/cjs/{certification_request-DS5FED4F.js → certification_request-DaJSDP3R.js} +33 -20
  45. package/dist/cjs/certification_request-DaJSDP3R.js.map +1 -0
  46. package/dist/cjs/cross-pi7K0cHC.js.map +1 -1
  47. package/dist/cjs/download-D9skkVoT.js.map +1 -1
  48. package/dist/cjs/index.cjs.js +4 -4
  49. package/dist/cjs/{link-CwLq-Nge.js → link-kgbgxxVh.js} +4 -4
  50. package/dist/cjs/link-kgbgxxVh.js.map +1 -0
  51. package/dist/cjs/{miscellaneous-UxtK1SWb.js → miscellaneous-Ce9aGjKB.js} +23 -22
  52. package/dist/cjs/miscellaneous-Ce9aGjKB.js.map +1 -0
  53. package/dist/cjs/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.cjs.js.map +1 -1
  54. package/dist/cjs/peculiar-attribute-certificate-viewer_4.cjs.entry.js +8 -16
  55. package/dist/cjs/peculiar-attribute-certificate-viewer_4.cjs.entry.js.map +1 -1
  56. package/dist/cjs/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.cjs.js.map +1 -1
  57. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +5 -11
  58. package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -1
  59. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +12 -13
  60. package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js.map +1 -1
  61. package/dist/cjs/peculiar-certificate-decoder.entry.cjs.js.map +1 -1
  62. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +5 -7
  63. package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js.map +1 -1
  64. package/dist/cjs/peculiar-certificate-viewer.entry.cjs.js.map +1 -1
  65. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +47 -46
  66. package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js.map +1 -1
  67. package/dist/cjs/peculiar-certificates-viewer.entry.cjs.js.map +1 -1
  68. package/dist/cjs/peculiar-text-hider.cjs.entry.js +2 -2
  69. package/dist/cjs/peculiar-text-hider.cjs.entry.js.map +1 -1
  70. package/dist/cjs/peculiar-text-hider.entry.cjs.js.map +1 -1
  71. package/dist/cjs/{pkcs10_certificate_request-DaWYvR0i.js → pkcs10_certificate_request-D13Ssi7Z.js} +3 -3
  72. package/dist/cjs/pkcs10_certificate_request-D13Ssi7Z.js.map +1 -0
  73. package/dist/cjs/read_file-DWtcn3zU.js.map +1 -1
  74. package/dist/cjs/{x509_certificate-DBpSGIUT.js → x509_certificate-h5GZArG6.js} +6 -9
  75. package/dist/cjs/x509_certificate-h5GZArG6.js.map +1 -0
  76. package/dist/cjs/{x509_crl-BBnJqOIF.js → x509_crl-CDPt6P1z.js} +6 -6
  77. package/dist/cjs/x509_crl-CDPt6P1z.js.map +1 -0
  78. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +4 -6
  79. package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js.map +1 -1
  80. package/dist/collection/components/button/button.js +3 -3
  81. package/dist/collection/components/button/button.js.map +1 -1
  82. package/dist/collection/components/button/index.js.map +1 -1
  83. package/dist/collection/components/button-menu/button-menu.js +5 -7
  84. package/dist/collection/components/button-menu/button-menu.js.map +1 -1
  85. package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js +1 -2
  86. package/dist/collection/components/certificate-chain-viewer/certificate-chain-viewer.js.map +1 -1
  87. package/dist/collection/components/certificate-decoder/certificate-decoder.js +4 -1
  88. package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -1
  89. package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js.map +1 -1
  90. package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js.map +1 -1
  91. package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js.map +1 -1
  92. package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js.map +1 -1
  93. package/dist/collection/components/certificate-details-parts/attributes/index.js +1 -1
  94. package/dist/collection/components/certificate-details-parts/attributes/index.js.map +1 -1
  95. package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js.map +1 -1
  96. package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js.map +1 -1
  97. package/dist/collection/components/certificate-details-parts/attributes/name_part.js +1 -0
  98. package/dist/collection/components/certificate-details-parts/attributes/name_part.js.map +1 -1
  99. package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js.map +1 -1
  100. package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js.map +1 -1
  101. package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js.map +1 -1
  102. package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js.map +1 -1
  103. package/dist/collection/components/certificate-details-parts/basic_information.js.map +1 -1
  104. package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js.map +1 -1
  105. package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js.map +1 -1
  106. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js +1 -1
  107. package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js.map +1 -1
  108. package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js.map +1 -1
  109. package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js.map +1 -1
  110. package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js.map +1 -1
  111. package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js.map +1 -1
  112. package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js +1 -1
  113. package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js.map +1 -1
  114. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js +1 -1
  115. package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js.map +1 -1
  116. package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js.map +1 -1
  117. package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js.map +1 -1
  118. package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js.map +1 -1
  119. package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js.map +1 -1
  120. package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js.map +1 -1
  121. package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js.map +1 -1
  122. package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js.map +1 -1
  123. package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js.map +1 -1
  124. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js +3 -3
  125. package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js.map +1 -1
  126. package/dist/collection/components/certificate-details-parts/extensions/index.js +2 -2
  127. package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -1
  128. package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js.map +1 -1
  129. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js +0 -1
  130. package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js.map +1 -1
  131. package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js +2 -2
  132. package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js.map +1 -1
  133. package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js.map +1 -1
  134. package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js.map +1 -1
  135. package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js.map +1 -1
  136. package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js.map +1 -1
  137. package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js.map +1 -1
  138. package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js.map +1 -1
  139. package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js.map +1 -1
  140. package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js.map +1 -1
  141. package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js.map +1 -1
  142. package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js.map +1 -1
  143. package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js.map +1 -1
  144. package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js.map +1 -1
  145. package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js.map +1 -1
  146. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js +1 -1
  147. package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js.map +1 -1
  148. package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js.map +1 -1
  149. package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js.map +1 -1
  150. package/dist/collection/components/certificate-details-parts/holder.js +1 -1
  151. package/dist/collection/components/certificate-details-parts/holder.js.map +1 -1
  152. package/dist/collection/components/certificate-details-parts/issuer.js.map +1 -1
  153. package/dist/collection/components/certificate-details-parts/issuer_name.js +3 -1
  154. package/dist/collection/components/certificate-details-parts/issuer_name.js.map +1 -1
  155. package/dist/collection/components/certificate-details-parts/miscellaneous.js +2 -2
  156. package/dist/collection/components/certificate-details-parts/miscellaneous.js.map +1 -1
  157. package/dist/collection/components/certificate-details-parts/public_key.js +1 -1
  158. package/dist/collection/components/certificate-details-parts/public_key.js.map +1 -1
  159. package/dist/collection/components/certificate-details-parts/revoked_certificates.js +3 -3
  160. package/dist/collection/components/certificate-details-parts/revoked_certificates.js.map +1 -1
  161. package/dist/collection/components/certificate-details-parts/row.js +3 -3
  162. package/dist/collection/components/certificate-details-parts/row.js.map +1 -1
  163. package/dist/collection/components/certificate-details-parts/signature.js +1 -1
  164. package/dist/collection/components/certificate-details-parts/signature.js.map +1 -1
  165. package/dist/collection/components/certificate-details-parts/subject_name.js.map +1 -1
  166. package/dist/collection/components/certificate-details-parts/thumbprints.js.map +1 -1
  167. package/dist/collection/components/certificate-summary/certificate-summary.js.map +1 -1
  168. package/dist/collection/components/certificate-viewer/certificate-viewer.js +5 -7
  169. package/dist/collection/components/certificate-viewer/certificate-viewer.js.map +1 -1
  170. package/dist/collection/components/certificates-viewer/certificates-viewer.js +44 -43
  171. package/dist/collection/components/certificates-viewer/certificates-viewer.js.map +1 -1
  172. package/dist/collection/components/circular-progress/circular-progress.js +2 -6
  173. package/dist/collection/components/circular-progress/circular-progress.js.map +1 -1
  174. package/dist/collection/components/crl-viewer/crl-viewer.js +4 -6
  175. package/dist/collection/components/crl-viewer/crl-viewer.js.map +1 -1
  176. package/dist/collection/components/csr-viewer/csr-viewer.js +4 -8
  177. package/dist/collection/components/csr-viewer/csr-viewer.js.map +1 -1
  178. package/dist/collection/components/highlight-words/highlight-words.js +1 -1
  179. package/dist/collection/components/highlight-words/highlight-words.js.map +1 -1
  180. package/dist/collection/components/icons/actions.js.map +1 -1
  181. package/dist/collection/components/icons/arrow_bottom.js.map +1 -1
  182. package/dist/collection/components/icons/arrow_top.js.map +1 -1
  183. package/dist/collection/components/icons/cross.js.map +1 -1
  184. package/dist/collection/components/icons/details.js.map +1 -1
  185. package/dist/collection/components/icons/download.js.map +1 -1
  186. package/dist/collection/components/icons/link.js.map +1 -1
  187. package/dist/collection/components/link/link.js +1 -1
  188. package/dist/collection/components/link/link.js.map +1 -1
  189. package/dist/collection/components/text-hider/text-hider.js +1 -1
  190. package/dist/collection/components/text-hider/text-hider.js.map +1 -1
  191. package/dist/collection/components/typography/typography.js.map +1 -1
  192. package/dist/collection/constants/oids.js +5 -0
  193. package/dist/collection/constants/oids.js.map +1 -1
  194. package/dist/collection/crypto/asn_data.js +1 -1
  195. package/dist/collection/crypto/asn_data.js.map +1 -1
  196. package/dist/collection/crypto/attribute.js.map +1 -1
  197. package/dist/collection/crypto/extension.js.map +1 -1
  198. package/dist/collection/crypto/name.js.map +1 -1
  199. package/dist/collection/crypto/pem_converter.js +13 -8
  200. package/dist/collection/crypto/pem_converter.js.map +1 -1
  201. package/dist/collection/crypto/pkcs10_certificate_request.js.map +1 -1
  202. package/dist/collection/crypto/provider.js +7 -3
  203. package/dist/collection/crypto/provider.js.map +1 -1
  204. package/dist/collection/crypto/utils.js.map +1 -1
  205. package/dist/collection/crypto/x509_attribute_certificate.js +2 -2
  206. package/dist/collection/crypto/x509_attribute_certificate.js.map +1 -1
  207. package/dist/collection/crypto/x509_certificate.js +3 -6
  208. package/dist/collection/crypto/x509_certificate.js.map +1 -1
  209. package/dist/collection/crypto/x509_certificates.js +3 -7
  210. package/dist/collection/crypto/x509_certificates.js.map +1 -1
  211. package/dist/collection/crypto/x509_crl.js.map +1 -1
  212. package/dist/collection/utils/download.js +1 -0
  213. package/dist/collection/utils/download.js.map +1 -1
  214. package/dist/collection/utils/download_from_buffer.js +3 -3
  215. package/dist/collection/utils/download_from_buffer.js.map +1 -1
  216. package/dist/collection/utils/l10n.js +1 -3
  217. package/dist/collection/utils/l10n.js.map +1 -1
  218. package/dist/collection/utils/read_file.js.map +1 -1
  219. package/dist/esm/actions-DzoPRObK.js.map +1 -1
  220. package/dist/esm/arrow_top-CF9pv-tQ.js.map +1 -1
  221. package/dist/esm/{button-Djn8UI82.js → button-Do0R_8PZ.js} +4 -4
  222. package/dist/esm/button-Do0R_8PZ.js.map +1 -0
  223. package/dist/esm/{certification_request-Wtz6WM17.js → certification_request-DazysL_f.js} +33 -20
  224. package/dist/esm/certification_request-DazysL_f.js.map +1 -0
  225. package/dist/esm/cross-DdCuR1F2.js.map +1 -1
  226. package/dist/esm/download-Cqfc-Sxf.js.map +1 -1
  227. package/dist/esm/index.js +4 -4
  228. package/dist/esm/{link-BfDk078v.js → link-qg3yKAoS.js} +4 -4
  229. package/dist/esm/link-qg3yKAoS.js.map +1 -0
  230. package/dist/esm/{miscellaneous-CsGuJ6zr.js → miscellaneous-BJPX0Hs_.js} +23 -22
  231. package/dist/esm/miscellaneous-BJPX0Hs_.js.map +1 -0
  232. package/dist/esm/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.js.map +1 -1
  233. package/dist/esm/peculiar-attribute-certificate-viewer_4.entry.js +8 -16
  234. package/dist/esm/peculiar-attribute-certificate-viewer_4.entry.js.map +1 -1
  235. package/dist/esm/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.js.map +1 -1
  236. package/dist/esm/peculiar-button-menu_3.entry.js +5 -11
  237. package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -1
  238. package/dist/esm/peculiar-certificate-decoder.entry.js +12 -13
  239. package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -1
  240. package/dist/esm/peculiar-certificate-viewer.entry.js +5 -7
  241. package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -1
  242. package/dist/esm/peculiar-certificates-viewer.entry.js +47 -46
  243. package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -1
  244. package/dist/esm/peculiar-text-hider.entry.js +2 -2
  245. package/dist/esm/peculiar-text-hider.entry.js.map +1 -1
  246. package/dist/esm/{pkcs10_certificate_request-Cn7_Z7a1.js → pkcs10_certificate_request-SQcYKma2.js} +3 -3
  247. package/dist/esm/pkcs10_certificate_request-SQcYKma2.js.map +1 -0
  248. package/dist/esm/read_file-F2F0McJX.js.map +1 -1
  249. package/dist/esm/{x509_certificate-ObET7_Te.js → x509_certificate-Dmgw53TR.js} +6 -9
  250. package/dist/esm/x509_certificate-Dmgw53TR.js.map +1 -0
  251. package/dist/esm/{x509_crl-CeW7yzP9.js → x509_crl-B5TRu79b.js} +6 -6
  252. package/dist/esm/x509_crl-B5TRu79b.js.map +1 -0
  253. package/dist/esm-es5/actions-DzoPRObK.js.map +1 -1
  254. package/dist/esm-es5/arrow_top-CF9pv-tQ.js.map +1 -1
  255. package/dist/esm-es5/{button-Djn8UI82.js → button-Do0R_8PZ.js} +2 -2
  256. package/dist/esm-es5/button-Do0R_8PZ.js.map +1 -0
  257. package/dist/esm-es5/{certification_request-Wtz6WM17.js → certification_request-DazysL_f.js} +15 -15
  258. package/dist/esm-es5/certification_request-DazysL_f.js.map +1 -0
  259. package/dist/esm-es5/cross-DdCuR1F2.js.map +1 -1
  260. package/dist/esm-es5/download-Cqfc-Sxf.js.map +1 -1
  261. package/dist/esm-es5/index.js +1 -1
  262. package/dist/esm-es5/{link-BfDk078v.js → link-qg3yKAoS.js} +3 -3
  263. package/dist/esm-es5/link-qg3yKAoS.js.map +1 -0
  264. package/dist/esm-es5/{miscellaneous-CsGuJ6zr.js → miscellaneous-BJPX0Hs_.js} +3 -3
  265. package/dist/esm-es5/miscellaneous-BJPX0Hs_.js.map +1 -0
  266. package/dist/esm-es5/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.js.map +1 -1
  267. package/dist/esm-es5/peculiar-attribute-certificate-viewer_4.entry.js +1 -1
  268. package/dist/esm-es5/peculiar-attribute-certificate-viewer_4.entry.js.map +1 -1
  269. package/dist/esm-es5/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.js.map +1 -1
  270. package/dist/esm-es5/peculiar-button-menu_3.entry.js +1 -1
  271. package/dist/esm-es5/peculiar-button-menu_3.entry.js.map +1 -1
  272. package/dist/esm-es5/peculiar-certificate-decoder.entry.js +1 -1
  273. package/dist/esm-es5/peculiar-certificate-decoder.entry.js.map +1 -1
  274. package/dist/esm-es5/peculiar-certificate-viewer.entry.js +1 -1
  275. package/dist/esm-es5/peculiar-certificate-viewer.entry.js.map +1 -1
  276. package/dist/esm-es5/peculiar-certificates-viewer.entry.js +2 -2
  277. package/dist/esm-es5/peculiar-certificates-viewer.entry.js.map +1 -1
  278. package/dist/esm-es5/peculiar-text-hider.entry.js +1 -1
  279. package/dist/esm-es5/peculiar-text-hider.entry.js.map +1 -1
  280. package/dist/esm-es5/{pkcs10_certificate_request-Cn7_Z7a1.js → pkcs10_certificate_request-SQcYKma2.js} +2 -2
  281. package/dist/esm-es5/pkcs10_certificate_request-SQcYKma2.js.map +1 -0
  282. package/dist/esm-es5/read_file-F2F0McJX.js.map +1 -1
  283. package/dist/esm-es5/{x509_certificate-ObET7_Te.js → x509_certificate-Dmgw53TR.js} +3 -3
  284. package/dist/esm-es5/x509_certificate-Dmgw53TR.js.map +1 -0
  285. package/dist/esm-es5/{x509_crl-CeW7yzP9.js → x509_crl-B5TRu79b.js} +4 -4
  286. package/dist/esm-es5/x509_crl-B5TRu79b.js.map +1 -0
  287. package/dist/peculiar/index.esm.js +1 -1
  288. package/dist/peculiar/p--Pej0I-A.system.js.map +1 -0
  289. package/dist/peculiar/{p-t-yLLnfF.js → p-0HZUc9Ix.js} +3 -3
  290. package/dist/peculiar/p-0HZUc9Ix.js.map +1 -0
  291. package/dist/peculiar/p-15c2b820.entry.js +5 -0
  292. package/dist/peculiar/{p-f4490197.entry.js.map → p-15c2b820.entry.js.map} +1 -1
  293. package/dist/peculiar/{p-5b829829.system.entry.js → p-16aa5600.system.entry.js} +2 -2
  294. package/dist/peculiar/p-16aa5600.system.entry.js.map +1 -0
  295. package/dist/peculiar/{p-3e4062f6.entry.js → p-1cbb0d6b.entry.js} +16 -16
  296. package/dist/peculiar/p-1cbb0d6b.entry.js.map +1 -0
  297. package/dist/peculiar/{p-7a3bf94e.entry.js → p-218364f2.entry.js} +2 -2
  298. package/dist/peculiar/p-218364f2.entry.js.map +1 -0
  299. package/dist/peculiar/{p-B3myni_G.js → p-3zhoLQno.js} +4 -4
  300. package/dist/peculiar/p-3zhoLQno.js.map +1 -0
  301. package/dist/peculiar/{p-63aa01ad.system.entry.js → p-44648a8e.system.entry.js} +3 -3
  302. package/dist/peculiar/p-44648a8e.system.entry.js.map +1 -0
  303. package/dist/peculiar/{p-5608ba3e.system.entry.js → p-52444a44.system.entry.js} +2 -2
  304. package/dist/peculiar/p-52444a44.system.entry.js.map +1 -0
  305. package/dist/peculiar/{p-69b461b4.entry.js → p-5b843427.entry.js} +3 -3
  306. package/dist/peculiar/p-5b843427.entry.js.map +1 -0
  307. package/dist/peculiar/{p-12d2e080.entry.js → p-7b0e7f43.entry.js} +2 -2
  308. package/dist/peculiar/p-7b0e7f43.entry.js.map +1 -0
  309. package/dist/peculiar/p-B2YrZuK2.system.js.map +1 -1
  310. package/dist/peculiar/p-BA8os2l6.system.js.map +1 -0
  311. package/dist/peculiar/p-BAB4EyrL.system.js.map +1 -0
  312. package/dist/peculiar/{p-DPre0WhP.system.js → p-BBZwtkNN.system.js} +4 -4
  313. package/dist/peculiar/p-BBZwtkNN.system.js.map +1 -0
  314. package/dist/peculiar/p-BBgwMHRZ.system.js.map +1 -1
  315. package/dist/peculiar/p-BHBizfwo.js.map +1 -1
  316. package/dist/peculiar/{p-CKoxwzVA.system.js → p-BKKflyKt.system.js} +5 -5
  317. package/dist/peculiar/p-BKKflyKt.system.js.map +1 -0
  318. package/dist/peculiar/p-BOSH9vjy.system.js.map +1 -1
  319. package/dist/peculiar/p-BP2bmYR2.system.js.map +1 -1
  320. package/dist/peculiar/p-BcFnjn1R.system.js.map +1 -0
  321. package/dist/peculiar/{p-uFLk5hDd.system.js → p-BmIps4bV.system.js} +18 -18
  322. package/dist/peculiar/p-BmIps4bV.system.js.map +1 -0
  323. package/dist/peculiar/{p-DgcB4Nqx.system.js → p-CDh6shXP.system.js} +9 -9
  324. package/dist/peculiar/p-CDh6shXP.system.js.map +1 -0
  325. package/dist/peculiar/{p-BisXzAqN.js → p-CEHpBNWe.js} +3 -3
  326. package/dist/peculiar/p-CEHpBNWe.js.map +1 -0
  327. package/dist/peculiar/{p-CttQwkXH.js → p-CJro0Exb.js} +10 -10
  328. package/dist/peculiar/p-CJro0Exb.js.map +1 -0
  329. package/dist/peculiar/p-CWs-Ocvt.system.js.map +1 -0
  330. package/dist/peculiar/p-CeKqQ13Z.js.map +1 -1
  331. package/dist/peculiar/{p-BCATfe_H.js → p-CkwiD_ia.js} +2 -2
  332. package/dist/peculiar/p-CkwiD_ia.js.map +1 -0
  333. package/dist/peculiar/{p-BRhx1gbw.system.js → p-Cm-ylIxb.system.js} +2 -2
  334. package/dist/peculiar/p-Cm-ylIxb.system.js.map +1 -0
  335. package/dist/peculiar/p-D2QB-8Q6.system.js.map +1 -1
  336. package/dist/peculiar/p-D5BWI7FK.system.js +1 -1
  337. package/dist/peculiar/p-DJRm54BZ.system.js.map +1 -0
  338. package/dist/peculiar/{p-L1KL0R34.system.js → p-DRoyzOgk.system.js} +3 -3
  339. package/dist/peculiar/p-DRoyzOgk.system.js.map +1 -0
  340. package/dist/peculiar/{p-Wtz6WM17.js → p-DazysL_f.js} +4 -4
  341. package/dist/peculiar/p-DazysL_f.js.map +1 -0
  342. package/dist/peculiar/p-DhdG07f8.js.map +1 -1
  343. package/dist/peculiar/p-DkAhB3Vy.js.map +1 -1
  344. package/dist/peculiar/{p-lNFxlG5A.js → p-DzItK48Y.js} +4 -4
  345. package/dist/peculiar/p-DzItK48Y.js.map +1 -0
  346. package/dist/peculiar/p-F2F0McJX.js.map +1 -1
  347. package/dist/peculiar/{p-CcANm2qm.system.js → p-YHrZ3f_s.system.js} +2 -2
  348. package/dist/peculiar/p-YHrZ3f_s.system.js.map +1 -0
  349. package/dist/peculiar/p-a3c0f753.system.entry.js +5 -0
  350. package/dist/peculiar/{p-cae95996.system.entry.js.map → p-a3c0f753.system.entry.js.map} +1 -1
  351. package/dist/peculiar/{p-0e8ab957.entry.js → p-ab6a8a44.entry.js} +2 -2
  352. package/dist/peculiar/p-ab6a8a44.entry.js.map +1 -0
  353. package/dist/peculiar/{p-1af57833.system.entry.js → p-d16ddef8.system.entry.js} +2 -2
  354. package/dist/peculiar/p-d16ddef8.system.entry.js.map +1 -0
  355. package/dist/peculiar/{p-bafc3336.system.entry.js → p-d9013293.system.entry.js} +16 -16
  356. package/dist/peculiar/p-d9013293.system.entry.js.map +1 -0
  357. package/dist/peculiar/{p-B859JpGw.system.js → p-wYK0iVYg.system.js} +2 -2
  358. package/dist/peculiar/p-wYK0iVYg.system.js.map +1 -0
  359. package/dist/peculiar/peculiar-attribute-certificate-viewer.peculiar-certificate-chain-viewer.peculiar-crl-viewer.peculiar-csr-viewer.entry.esm.js.map +1 -1
  360. package/dist/peculiar/peculiar-button-menu.peculiar-circular-progress.peculiar-highlight-words.entry.esm.js.map +1 -1
  361. package/dist/peculiar/peculiar-certificate-decoder.entry.esm.js.map +1 -1
  362. package/dist/peculiar/peculiar-certificate-viewer.entry.esm.js.map +1 -1
  363. package/dist/peculiar/peculiar-certificates-viewer.entry.esm.js.map +1 -1
  364. package/dist/peculiar/peculiar-text-hider.entry.esm.js.map +1 -1
  365. package/dist/peculiar/peculiar.esm.js +1 -1
  366. package/dist/types/components/attribute-certificate-viewer/attribute-certificate-viewer.d.ts +3 -3
  367. package/dist/types/components/button/button.d.ts +2 -2
  368. package/dist/types/components/button/index.d.ts +1 -1
  369. package/dist/types/components/button-menu/button-menu.d.ts +5 -5
  370. package/dist/types/components/certificate-details-parts/miscellaneous.d.ts +2 -2
  371. package/dist/types/components/certificate-summary/certificate-summary.d.ts +2 -2
  372. package/dist/types/components/certificate-viewer/certificate-viewer.d.ts +3 -3
  373. package/dist/types/components/certificates-viewer/certificates-viewer.d.ts +3 -2
  374. package/dist/types/components/crl-viewer/crl-viewer.d.ts +3 -3
  375. package/dist/types/components/csr-viewer/csr-viewer.d.ts +3 -3
  376. package/dist/types/components/icons/actions.d.ts +2 -2
  377. package/dist/types/components/icons/arrow_bottom.d.ts +2 -2
  378. package/dist/types/components/icons/arrow_top.d.ts +2 -2
  379. package/dist/types/components/icons/cross.d.ts +2 -2
  380. package/dist/types/components/icons/details.d.ts +2 -2
  381. package/dist/types/components/icons/download.d.ts +2 -2
  382. package/dist/types/components/icons/link.d.ts +2 -2
  383. package/dist/types/components/link/link.d.ts +4 -4
  384. package/dist/types/components/typography/typography.d.ts +5 -5
  385. package/dist/types/components.d.ts +20 -20
  386. package/dist/types/constants/oids.d.ts +5 -0
  387. package/dist/types/crypto/asn_data.d.ts +1 -3
  388. package/dist/types/crypto/pem_converter.d.ts +7 -19
  389. package/dist/types/crypto/provider.d.ts +1 -6
  390. package/dist/types/interface.d.ts +3 -3
  391. package/dist/types/utils/l10n.d.ts +6 -6
  392. package/dist/types/utils/read_file.d.ts +7 -7
  393. package/hydrate/index.js +115 -120
  394. package/hydrate/index.mjs +115 -120
  395. package/package.json +2 -2
  396. package/dist/cjs/button-C5jDF-CZ.js.map +0 -1
  397. package/dist/cjs/certification_request-DS5FED4F.js.map +0 -1
  398. package/dist/cjs/link-CwLq-Nge.js.map +0 -1
  399. package/dist/cjs/miscellaneous-UxtK1SWb.js.map +0 -1
  400. package/dist/cjs/pkcs10_certificate_request-DaWYvR0i.js.map +0 -1
  401. package/dist/cjs/x509_certificate-DBpSGIUT.js.map +0 -1
  402. package/dist/cjs/x509_crl-BBnJqOIF.js.map +0 -1
  403. package/dist/esm/button-Djn8UI82.js.map +0 -1
  404. package/dist/esm/certification_request-Wtz6WM17.js.map +0 -1
  405. package/dist/esm/link-BfDk078v.js.map +0 -1
  406. package/dist/esm/miscellaneous-CsGuJ6zr.js.map +0 -1
  407. package/dist/esm/pkcs10_certificate_request-Cn7_Z7a1.js.map +0 -1
  408. package/dist/esm/x509_certificate-ObET7_Te.js.map +0 -1
  409. package/dist/esm/x509_crl-CeW7yzP9.js.map +0 -1
  410. package/dist/esm-es5/button-Djn8UI82.js.map +0 -1
  411. package/dist/esm-es5/certification_request-Wtz6WM17.js.map +0 -1
  412. package/dist/esm-es5/link-BfDk078v.js.map +0 -1
  413. package/dist/esm-es5/miscellaneous-CsGuJ6zr.js.map +0 -1
  414. package/dist/esm-es5/pkcs10_certificate_request-Cn7_Z7a1.js.map +0 -1
  415. package/dist/esm-es5/x509_certificate-ObET7_Te.js.map +0 -1
  416. package/dist/esm-es5/x509_crl-CeW7yzP9.js.map +0 -1
  417. package/dist/peculiar/p-0e8ab957.entry.js.map +0 -1
  418. package/dist/peculiar/p-12d2e080.entry.js.map +0 -1
  419. package/dist/peculiar/p-1af57833.system.entry.js.map +0 -1
  420. package/dist/peculiar/p-3e4062f6.entry.js.map +0 -1
  421. package/dist/peculiar/p-5608ba3e.system.entry.js.map +0 -1
  422. package/dist/peculiar/p-5b829829.system.entry.js.map +0 -1
  423. package/dist/peculiar/p-63aa01ad.system.entry.js.map +0 -1
  424. package/dist/peculiar/p-69b461b4.entry.js.map +0 -1
  425. package/dist/peculiar/p-7Nmqck4T.system.js.map +0 -1
  426. package/dist/peculiar/p-7a3bf94e.entry.js.map +0 -1
  427. package/dist/peculiar/p-B3myni_G.js.map +0 -1
  428. package/dist/peculiar/p-B859JpGw.system.js.map +0 -1
  429. package/dist/peculiar/p-BCATfe_H.js.map +0 -1
  430. package/dist/peculiar/p-BRhx1gbw.system.js.map +0 -1
  431. package/dist/peculiar/p-BX9qW3ww.system.js.map +0 -1
  432. package/dist/peculiar/p-BisXzAqN.js.map +0 -1
  433. package/dist/peculiar/p-CFhlbr47.system.js.map +0 -1
  434. package/dist/peculiar/p-CKoxwzVA.system.js.map +0 -1
  435. package/dist/peculiar/p-C_vT-OYk.system.js.map +0 -1
  436. package/dist/peculiar/p-CcANm2qm.system.js.map +0 -1
  437. package/dist/peculiar/p-CttQwkXH.js.map +0 -1
  438. package/dist/peculiar/p-DPre0WhP.system.js.map +0 -1
  439. package/dist/peculiar/p-DX5B2Msh.system.js.map +0 -1
  440. package/dist/peculiar/p-DgcB4Nqx.system.js.map +0 -1
  441. package/dist/peculiar/p-Dk86_qlM.system.js.map +0 -1
  442. package/dist/peculiar/p-L1KL0R34.system.js.map +0 -1
  443. package/dist/peculiar/p-Wtz6WM17.js.map +0 -1
  444. package/dist/peculiar/p-bafc3336.system.entry.js.map +0 -1
  445. package/dist/peculiar/p-cae95996.system.entry.js +0 -5
  446. package/dist/peculiar/p-f4490197.entry.js +0 -5
  447. package/dist/peculiar/p-lNFxlG5A.js.map +0 -1
  448. package/dist/peculiar/p-t-yLLnfF.js.map +0 -1
  449. package/dist/peculiar/p-uFLk5hDd.system.js.map +0 -1
package/hydrate/index.mjs CHANGED
@@ -9542,9 +9542,7 @@ var en = {
9542
9542
  * This source code is licensed under the MIT license found in the
9543
9543
  * LICENSE file in the root directory of this source tree.
9544
9544
  */
9545
- const MESSAGES_ALL = {
9546
- en,
9547
- };
9545
+ const MESSAGES_ALL = { en };
9548
9546
  class Localization {
9549
9547
  constructor() {
9550
9548
  this.setLocale = (locale) => {
@@ -9594,9 +9592,9 @@ const l10n = new Localization();
9594
9592
  */
9595
9593
  function downloadFromBuffer(value, name, extension, mime = 'application/octet-stream') {
9596
9594
  const blob = new Blob([value], { type: mime });
9597
- // @ts-ignore
9598
- if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)
9599
- // @ts-ignore
9595
+ // @ts-expect-error - IE10+ : (has Blob, but not a[download] or URL)
9596
+ if (navigator.msSaveBlob) {
9597
+ // @ts-expect-error - IE10+ : (has Blob, but not a[download] or URL)
9600
9598
  navigator.msSaveBlob(blob, `${name}.${extension}`);
9601
9599
  return new Promise((resolve) => {
9602
9600
  setTimeout(resolve, 100);
@@ -9630,6 +9628,7 @@ function downloadFromBuffer(value, name, extension, mime = 'application/octet-st
9630
9628
  * This source code is licensed under the MIT license found in the
9631
9629
  * LICENSE file in the root directory of this source tree.
9632
9630
  */
9631
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
9633
9632
  class Download {
9634
9633
  }
9635
9634
  Download.cert = {
@@ -10913,6 +10912,7 @@ const OIDs = {
10913
10912
  '1.3.6.1.4.1.40869.1.1.22.3': 'TWCAEV policy',
10914
10913
  '1.3.6.1.4.1.13177.10.1.2.2': 'Corporate certificates for Natural Person',
10915
10914
  '1.3.6.1.4.1.37476.9000.64.1': 'Smallstep CA Provisioner ID',
10915
+ '1.3.6.1.5.2.3.4': 'KP Client Authentication',
10916
10916
  '1.3.6.1.5.2.3.5': 'KCD Authentication',
10917
10917
  '1.3.6.1.5.5.7': 'PKIX',
10918
10918
  '1.3.6.1.5.5.7.0.12': 'Attribute Cert',
@@ -10949,6 +10949,7 @@ const OIDs = {
10949
10949
  '1.3.6.1.5.5.7.3.11': 'Sbgp Cert AA Server Auth',
10950
10950
  '1.3.6.1.5.5.7.3.13': 'Eap Over PPP',
10951
10951
  '1.3.6.1.5.5.7.3.14': 'Eap Over LAN',
10952
+ '1.3.6.1.5.5.7.3.21': 'Secure Shell Client',
10952
10953
  '1.3.6.1.5.5.7.3.31': 'Brand Indicator for Message Identification',
10953
10954
  '1.3.6.1.5.5.7.3.46': 'Document Signing',
10954
10955
  '1.3.6.1.5.5.7.4': 'Cmp Information Types',
@@ -11681,6 +11682,7 @@ const OIDs = {
11681
11682
  '2.16.840.1.101.3.2.1.3.3': 'FBCA Medium Policy',
11682
11683
  '2.16.840.1.101.3.2.1.3.4': 'FBCA High Policy',
11683
11684
  '2.16.840.1.101.3.2.1.3.12': 'FBCA Medium Hardware Policy',
11685
+ '2.16.840.1.101.3.2.1.3.13': 'FPKI Common Authentication Policy',
11684
11686
  '2.16.840.1.101.3.2.1.48.1': 'Nist Test Policy1',
11685
11687
  '2.16.840.1.101.3.2.1.48.2': 'Nist Test Policy2',
11686
11688
  '2.16.840.1.101.3.2.1.48.3': 'Nist Test Policy3',
@@ -11729,6 +11731,8 @@ const OIDs = {
11729
11731
  '2.16.840.1.101.3.4.2.4': 'SHA-224',
11730
11732
  '2.16.840.1.101.3.4.3.1': 'DSA with Sha224',
11731
11733
  '2.16.840.1.101.3.4.3.2': 'DSA with Sha256',
11734
+ '2.16.840.1.101.3.6.9.1': 'Personal Identity Verification (PIV) National Agency Check with Inquiries (NACI) indicator',
11735
+ '2.16.840.1.101.3.6.6': 'FASC-N',
11732
11736
  '2.16.840.1.113719.1.2.8': 'Novell Algorithm',
11733
11737
  '2.16.840.1.113719.1.2.8.22': 'DES Cbc IV8',
11734
11738
  '2.16.840.1.113719.1.2.8.23': 'DES Cbc Pad IV8',
@@ -13665,12 +13669,12 @@ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) ||
13665
13669
  };
13666
13670
  var _AsnData_asn, _AsnData_raw;
13667
13671
  class AsnData {
13672
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13668
13673
  constructor(...args) {
13669
13674
  _AsnData_asn.set(this, void 0);
13670
13675
  _AsnData_raw.set(this, void 0);
13671
13676
  if (args.length === 1) {
13672
13677
  // asn
13673
- // eslint-disable-next-line prefer-destructuring
13674
13678
  __classPrivateFieldSet(this, _AsnData_asn, args[0], "f");
13675
13679
  __classPrivateFieldSet(this, _AsnData_raw, AsnConvert.serialize(__classPrivateFieldGet(this, _AsnData_asn, "f")), "f");
13676
13680
  }
@@ -13785,13 +13789,13 @@ const rPem = `${rBeginTag}${rEolGroup}(?:((?:${rHeaderKey}: ${rHeaderValue})+))?
13785
13789
  /**
13786
13790
  * Represents PEM Converter.
13787
13791
  */
13792
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
13788
13793
  class PemConverter {
13789
13794
  static isPem(data) {
13790
13795
  return typeof data === 'string'
13791
- && new RegExp(rPem, 'g').test(data);
13796
+ && new RegExp(rPem, 'g').test(data.replace(/\r/g, ''));
13792
13797
  }
13793
13798
  static decodeWithHeaders(pem) {
13794
- // eslint-disable-next-line no-param-reassign
13795
13799
  pem = pem.replace(/\r/g, ''); // CRLF -> LF
13796
13800
  const pattern = new RegExp(rPem, 'g');
13797
13801
  const res = [];
@@ -13811,7 +13815,6 @@ class PemConverter {
13811
13815
  if (headersString) {
13812
13816
  const headers = headersString.split(new RegExp(rEolGroup, 'g'));
13813
13817
  let lastHeader = null;
13814
- // eslint-disable-next-line no-restricted-syntax
13815
13818
  for (const header of headers) {
13816
13819
  const [key, value] = header.split(/:(.*)/);
13817
13820
  if (value === undefined) {
@@ -13826,7 +13829,9 @@ class PemConverter {
13826
13829
  if (lastHeader) {
13827
13830
  pemStruct.headers.push(lastHeader);
13828
13831
  }
13829
- lastHeader = { key, value: value.trim() };
13832
+ lastHeader = {
13833
+ key, value: value.trim(),
13834
+ };
13830
13835
  }
13831
13836
  }
13832
13837
  // add last header
@@ -13846,6 +13851,11 @@ class PemConverter {
13846
13851
  const blocks = this.decodeWithHeaders(pem);
13847
13852
  return blocks.map((o) => o.rawData);
13848
13853
  }
13854
+ /**
13855
+ * Encodes a list of raws in PEM format
13856
+ * @param raws A list of raws
13857
+ * @param tag PEM tag
13858
+ */
13849
13859
  static encode(rawData, tag) {
13850
13860
  if (Array.isArray(rawData)) {
13851
13861
  const raws = new Array();
@@ -13862,10 +13872,10 @@ class PemConverter {
13862
13872
  });
13863
13873
  }
13864
13874
  else {
13865
- // encode PemStruct[]
13875
+ // encode IPemStruct[]
13866
13876
  rawData.forEach((element) => {
13867
13877
  if (!('type' in element)) {
13868
- throw new TypeError('Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut');
13878
+ throw new TypeError('Cannot encode array of IPemStruct in PEM format. Not all items of the array are PemStrut');
13869
13879
  }
13870
13880
  raws.push(this.encodeStruct(element));
13871
13881
  });
@@ -13873,7 +13883,7 @@ class PemConverter {
13873
13883
  return raws.join('\n');
13874
13884
  }
13875
13885
  if (!tag) {
13876
- throw new Error("Required argument 'tag' is missed");
13886
+ throw new Error('Required argument \'tag\' is missed');
13877
13887
  }
13878
13888
  return this.encodeStruct({
13879
13889
  type: tag,
@@ -13891,7 +13901,6 @@ class PemConverter {
13891
13901
  const res = [];
13892
13902
  res.push(`-----BEGIN ${upperCaseType}-----`);
13893
13903
  if ((_a = pem.headers) === null || _a === void 0 ? void 0 : _a.length) {
13894
- // eslint-disable-next-line no-restricted-syntax
13895
13904
  for (const header of pem.headers) {
13896
13905
  res.push(`${header.key}: ${header.value}`);
13897
13906
  }
@@ -13938,16 +13947,20 @@ PemConverter.AttributeCertificateTag = 'ATTRIBUTE CERTIFICATE';
13938
13947
  */
13939
13948
  class CryptoProvider {
13940
13949
  static isCryptoKeyPair(data) {
13941
- return data && data.privateKey && data.publicKey;
13950
+ return data && typeof data === 'object' && 'privateKey' in data && 'publicKey' in data;
13942
13951
  }
13943
13952
  constructor() {
13944
13953
  this.providers = new Map();
13945
- // @ts-ignore
13954
+ // @ts-expect-error - window.crypto is not typed
13946
13955
  const crypto = window.crypto || window.msCrypto;
13947
13956
  if (typeof crypto !== 'undefined') {
13948
13957
  this.set(CryptoProvider.DEFAULT, crypto);
13949
13958
  }
13950
13959
  }
13960
+ /**
13961
+ * Returns crypto by name
13962
+ * @param key Crypto name
13963
+ */
13951
13964
  get(key = CryptoProvider.DEFAULT) {
13952
13965
  const crypto = this.providers.get(key.toLowerCase());
13953
13966
  if (!crypto) {
@@ -13958,7 +13971,7 @@ class CryptoProvider {
13958
13971
  set(key, value) {
13959
13972
  if (typeof key === 'string') {
13960
13973
  if (!value) {
13961
- throw new TypeError("Argument 'value' is required");
13974
+ throw new TypeError('Argument \'value\' is required');
13962
13975
  }
13963
13976
  this.providers.set(key.toLowerCase(), value);
13964
13977
  }
@@ -14022,13 +14035,13 @@ class X509Certificate extends AsnData {
14022
14035
  const notBefore = tbsCertificate.validity.notBefore.utcTime
14023
14036
  || tbsCertificate.validity.notBefore.generalTime;
14024
14037
  if (!notBefore) {
14025
- throw new Error("Cannot get 'notBefore' value");
14038
+ throw new Error('Cannot get \'notBefore\' value');
14026
14039
  }
14027
14040
  this.notBefore = notBefore;
14028
14041
  const notAfter = tbsCertificate.validity.notAfter.utcTime
14029
14042
  || tbsCertificate.validity.notAfter.generalTime;
14030
14043
  if (!notAfter) {
14031
- throw new Error("Cannot get 'notAfter' value");
14044
+ throw new Error('Cannot get \'notAfter\' value');
14032
14045
  }
14033
14046
  this.notAfter = notAfter;
14034
14047
  this.validity = dateDiff(this.notBefore, this.notAfter);
@@ -14106,10 +14119,7 @@ class X509Certificate extends AsnData {
14106
14119
  }
14107
14120
  for (let i = 0; i < this.issuer.length; i += 1) {
14108
14121
  const name = this.issuer[i];
14109
- if (name.shortName === 'CN') {
14110
- return name.value;
14111
- }
14112
- if (name.shortName === 'E') {
14122
+ if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {
14113
14123
  return name.value;
14114
14124
  }
14115
14125
  }
@@ -15767,12 +15777,12 @@ class X509AttributeCertificate extends AsnData {
15767
15777
  this.version = acinfo.version;
15768
15778
  const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;
15769
15779
  if (!notBefore) {
15770
- throw new Error("Cannot get 'notBefore' value");
15780
+ throw new Error('Cannot get \'notBefore\' value');
15771
15781
  }
15772
15782
  this.notBefore = notBefore;
15773
15783
  const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;
15774
15784
  if (!notAfter) {
15775
- throw new Error("Cannot get 'notAfter' value");
15785
+ throw new Error('Cannot get \'notAfter\' value');
15776
15786
  }
15777
15787
  this.notAfter = notAfter;
15778
15788
  this.validity = dateDiff(this.notBefore, this.notAfter);
@@ -16068,7 +16078,6 @@ class X509Certificates extends Array {
16068
16078
  if (rawItems.length < 2) {
16069
16079
  throw new Error('Unable to parse string. The array of elements is less than 2');
16070
16080
  }
16071
- // eslint-disable-next-line no-restricted-syntax
16072
16081
  for (const item of rawItems) {
16073
16082
  this.push(new X509Certificate(item));
16074
16083
  }
@@ -16082,12 +16091,9 @@ class X509Certificates extends Array {
16082
16091
  const signedData = new SignedData();
16083
16092
  signedData.version = 1;
16084
16093
  signedData.encapContentInfo.eContentType = id_data;
16085
- signedData.encapContentInfo.eContent = new EncapsulatedContent({
16086
- single: new OctetString(),
16087
- });
16088
- signedData.certificates = new CertificateSet(Array.from(this).map((o) => new CertificateChoices({
16089
- certificate: AsnConvert.parse(o.raw, Certificate),
16090
- })));
16094
+ signedData.encapContentInfo.eContent = new EncapsulatedContent({ single: new OctetString() });
16095
+ signedData.certificates = new CertificateSet(Array.from(this)
16096
+ .map((o) => new CertificateChoices({ certificate: AsnConvert.parse(o.raw, Certificate) })));
16091
16097
  const cms = new ContentInfo({
16092
16098
  contentType: id_signedData,
16093
16099
  content: AsnConvert.serialize(signedData),
@@ -16195,7 +16201,7 @@ const Typography = (props, children) => {
16195
16201
  const Link = (props, children) => {
16196
16202
  const { href, variant, } = props;
16197
16203
  return (hAsync(Typography, { component: "a", variant: variant, color: "secondary",
16198
- // @ts-ignore
16204
+ // @ts-expect-error - href is a string
16199
16205
  href: href, target: "_blank", rel: "noreferrer noopener" }, children));
16200
16206
  };
16201
16207
 
@@ -16242,11 +16248,11 @@ const RowValue = (props) => {
16242
16248
  return (hAsync("tr", null,
16243
16249
  hAsync("td", { colSpan: hasValue ? 1 : 2 },
16244
16250
  hAsync(Typography, { variant: "b2", color: "gray-9" }, name)),
16245
- hasValue && (hAsync("td", { class: {
16246
- monospace,
16247
- } }, (isLink(value.toString()) || href) ? (hAsync(Link, { variant: "b2", href: href || value.toString() }, value)) : (hAsync(Typography, { variant: "b2", color: "black" },
16248
- elementValue,
16249
- extraValue))))));
16251
+ hasValue && (hAsync("td", { class: { monospace } }, (isLink(value.toString()) || href)
16252
+ ? (hAsync(Link, { variant: "b2", href: href || value.toString() }, value))
16253
+ : (hAsync(Typography, { variant: "b2", color: "black" },
16254
+ elementValue,
16255
+ extraValue))))));
16250
16256
  };
16251
16257
 
16252
16258
  /**
@@ -16343,7 +16349,9 @@ const IssuerName = (props) => {
16343
16349
  const { name, issuerDnLink } = props;
16344
16350
  const title = l10n.getString('issuerName');
16345
16351
  return [
16346
- hAsync(RowTitle, { value: issuerDnLink ? (hAsync(Link, { href: issuerDnLink }, title)) : title }),
16352
+ hAsync(RowTitle, { value: issuerDnLink
16353
+ ? (hAsync(Link, { href: issuerDnLink }, title))
16354
+ : title }),
16347
16355
  name.map((n) => (hAsync(RowValue, { name: n.name || n.type, value: n.value }))),
16348
16356
  ];
16349
16357
  };
@@ -16465,7 +16473,7 @@ const ExtendedKeyUsageExtension = (props) => {
16465
16473
  * LICENSE file in the root directory of this source tree.
16466
16474
  */
16467
16475
  const SubjectKeyIdentifierExtension = (props) => {
16468
- const { extension, getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink } = props;
16476
+ const { extension, getSubjectKeyIdChildrenLink, getSubjectKeyIdSiblingsLink, } = props;
16469
16477
  const keyId = Convert.ToHex(extension.value.buffer);
16470
16478
  const childrenLink = getSubjectKeyIdChildrenLink(keyId);
16471
16479
  const siblingsLink = getSubjectKeyIdSiblingsLink(keyId);
@@ -16490,7 +16498,7 @@ const SubjectKeyIdentifierExtension = (props) => {
16490
16498
  * LICENSE file in the root directory of this source tree.
16491
16499
  */
16492
16500
  const AuthorityKeyIdentifierExtension = (props) => {
16493
- const { extension, getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink } = props;
16501
+ const { extension, getAuthKeyIdParentLink, getAuthKeyIdSiblingsLink, } = props;
16494
16502
  const keyId = Convert.ToHex(extension.value.keyIdentifier.buffer);
16495
16503
  const parentLink = getAuthKeyIdParentLink(keyId);
16496
16504
  const siblingsLink = getAuthKeyIdSiblingsLink(keyId);
@@ -16526,7 +16534,7 @@ const names = {
16526
16534
  registeredID: 'Registered ID',
16527
16535
  };
16528
16536
  const GeneralNamePart = (props) => {
16529
- const { generalName, getDNSNameLink, getIPAddressLink } = props;
16537
+ const { generalName, getDNSNameLink, getIPAddressLink, } = props;
16530
16538
  if (!generalName) {
16531
16539
  return null;
16532
16540
  }
@@ -16543,7 +16551,7 @@ const GeneralNamePart = (props) => {
16543
16551
  const text = AsnParser.parse(value.value, DisplayText);
16544
16552
  return (hAsync(RowValue, { name: OIDs[value.typeId] || value.typeId, value: text.toString() }));
16545
16553
  }
16546
- catch (error) {
16554
+ catch (_a) {
16547
16555
  //
16548
16556
  }
16549
16557
  try {
@@ -16552,7 +16560,7 @@ const GeneralNamePart = (props) => {
16552
16560
  return (hAsync(RowValue, { name: OIDs[value.typeId] || value.typeId, value: text.explicitText.toString() }));
16553
16561
  }
16554
16562
  }
16555
- catch (error) {
16563
+ catch (_b) {
16556
16564
  //
16557
16565
  }
16558
16566
  return (hAsync(RowValue, { name: OIDs[value.typeId] || value.typeId, value: Convert.ToHex(value.value), monospace: true }));
@@ -17282,7 +17290,6 @@ const CRLNumberExtension = (props) => {
17282
17290
  * This source code is licensed under the MIT license found in the
17283
17291
  * LICENSE file in the root directory of this source tree.
17284
17292
  */
17285
- // eslint-disable-next-line max-len
17286
17293
  const IssuingDistributionPointExtension = (props) => {
17287
17294
  var _a;
17288
17295
  const { extension } = props;
@@ -17340,14 +17347,14 @@ const KeyDescriptionExtension = (props) => {
17340
17347
  ];
17341
17348
  }
17342
17349
  }
17343
- catch (error) {
17350
+ catch (_a) {
17344
17351
  //
17345
17352
  }
17346
17353
  }
17347
17354
  try {
17348
17355
  value = Convert.ToString(keyValue);
17349
17356
  }
17350
- catch (error) {
17357
+ catch (_b) {
17351
17358
  value = Convert.ToHex(keyValue);
17352
17359
  }
17353
17360
  break;
@@ -17510,7 +17517,7 @@ const Extensions = (props) => {
17510
17517
  }
17511
17518
  return (hAsync(BasicExtension, { extension: extension }));
17512
17519
  }
17513
- catch (error) {
17520
+ catch (_a) {
17514
17521
  console.error('Error render extension:', extension.asn.extnID);
17515
17522
  return null;
17516
17523
  }
@@ -17543,6 +17550,7 @@ const BasicAttribute = (props, children) => {
17543
17550
  * This source code is licensed under the MIT license found in the
17544
17551
  * LICENSE file in the root directory of this source tree.
17545
17552
  */
17553
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17546
17554
  const NamePart = (props) => {
17547
17555
  const { name } = props;
17548
17556
  if (!name) {
@@ -17744,7 +17752,7 @@ const Attributes = (props) => {
17744
17752
  }
17745
17753
  return (hAsync(BasicAttribute, { attribute: attribute }));
17746
17754
  }
17747
- catch (error) {
17755
+ catch (_a) {
17748
17756
  console.error('Error render attribute:', attribute.asn.type);
17749
17757
  return null;
17750
17758
  }
@@ -17763,12 +17771,12 @@ const Button = (props, children) => {
17763
17771
  const { href, class: classProp, startIcon, onClick, } = props;
17764
17772
  const isLink = !!href;
17765
17773
  const TagType = isLink ? 'a' : 'button';
17766
- return (hAsync(TagType, { type: !isLink && 'button', href: isLink && href, target: isLink && '_blank', rel: isLink && 'noreferrer noopener', onClick: onClick, class: {
17774
+ return (hAsync(TagType, { type: !isLink && 'button', href: isLink && href, target: isLink && '_blank', rel: isLink && 'noreferrer noopener', class: {
17767
17775
  button: true,
17768
17776
  // eslint-disable-next-line react/destructuring-assignment
17769
17777
  m_no_padding: children.length === 0,
17770
17778
  [classProp]: Boolean(classProp),
17771
- } },
17779
+ }, onClick: onClick },
17772
17780
  startIcon,
17773
17781
  children.length > 0 && (hAsync(Typography, { variant: "b3", color: "black", component: "span" }, children))));
17774
17782
  };
@@ -17877,10 +17885,10 @@ const Miscellaneous = (props) => {
17877
17885
  hAsync(RowTitle, { value: l10n.getString('miscellaneous') }),
17878
17886
  hAsync("tr", null,
17879
17887
  hAsync("td", null,
17880
- hAsync(Button, { onClick: () => certificate.downloadAsPEM(), startIcon: hAsync(DownloadIcon, null) }, l10n.getString('download.pem')))),
17888
+ hAsync(Button, { startIcon: hAsync(DownloadIcon, null), onClick: () => certificate.downloadAsPEM() }, l10n.getString('download.pem')))),
17881
17889
  hAsync("tr", null,
17882
17890
  hAsync("td", null,
17883
- hAsync(Button, { onClick: () => certificate.downloadAsDER(), startIcon: hAsync(DownloadIcon, null) }, l10n.getString('download.der')))),
17891
+ hAsync(Button, { startIcon: hAsync(DownloadIcon, null), onClick: () => certificate.downloadAsDER() }, l10n.getString('download.der')))),
17884
17892
  ];
17885
17893
  };
17886
17894
 
@@ -18061,11 +18069,9 @@ class AttributeCertificateViewer {
18061
18069
  }
18062
18070
  }
18063
18071
  }
18064
- // eslint-disable-next-line class-methods-use-this
18065
18072
  renderErrorState() {
18066
18073
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There was an error decoding this attribute certificate.")));
18067
18074
  }
18068
- // eslint-disable-next-line class-methods-use-this
18069
18075
  renderEmptyState() {
18070
18076
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There is no attribute certificate available.")));
18071
18077
  }
@@ -18114,9 +18120,7 @@ class ButtonMenu {
18114
18120
  };
18115
18121
  }
18116
18122
  render() {
18117
- return (hAsync(Host, { key: '484c56eb147ee97b4be9d9c0c324a6192be5d1b4', class: {
18118
- is_shown: this.open,
18119
- } }, hAsync(Button, { key: '00b7864c569169633c30a69f26185891ba9c39d1', class: "button_popover", onClick: this.handleClick, startIcon: hAsync(ActionsIcon, null) }), hAsync("div", { key: 'afe0500732f053c8b22c65ec11bd2010546fc5e6', role: "dialog", tabIndex: -1, class: "popover", "aria-hidden": String(this.open) }, this.groups.map((group) => (hAsync("div", { class: "group" }, hAsync(Typography, { variant: "c2", color: "gray-9", class: "group_title" }, group.title), group.options.map((option) => (hAsync(Button, { class: "button_option", startIcon: option.startIcon, href: option.href, onClick: (event) => {
18123
+ return (hAsync(Host, { key: '66dd03eaa8d6e1f6dee3d9782390e094c5804b4a', class: { is_shown: this.open } }, hAsync(Button, { key: 'ba4e5601321b4e778937f6386a8a5220e28f5809', class: "button_popover", startIcon: hAsync(ActionsIcon, null), onClick: this.handleClick }), hAsync("div", { key: 'ed4d374f4a4982a24665e1cb60eaa57428ba0e4e', role: "dialog", tabIndex: -1, class: "popover", "aria-hidden": String(this.open) }, this.groups.map((group) => (hAsync("div", { class: "group" }, hAsync(Typography, { variant: "c2", color: "gray-9", class: "group_title" }, group.title), group.options.map((option) => (hAsync(Button, { class: "button_option", startIcon: option.startIcon, href: option.href, onClick: (event) => {
18120
18124
  event.stopPropagation();
18121
18125
  this.handleClick();
18122
18126
  if (option.onClick) {
@@ -18145,7 +18149,6 @@ class CertificateChainViewer {
18145
18149
  registerInstance(this, hostRef);
18146
18150
  this.selectedCertificateIndex = 0;
18147
18151
  }
18148
- // eslint-disable-next-line class-methods-use-this
18149
18152
  renderEmptyState() {
18150
18153
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There is no certificates available.")));
18151
18154
  }
@@ -18193,6 +18196,7 @@ class CertificateDecoder {
18193
18196
  this.handleClickClear = () => {
18194
18197
  this.clearValue();
18195
18198
  };
18199
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18196
18200
  this.handleChangeInputFile = async (event) => {
18197
18201
  const element = event.target;
18198
18202
  if (element.files) {
@@ -18203,6 +18207,7 @@ class CertificateDecoder {
18203
18207
  element.value = '';
18204
18208
  }
18205
18209
  };
18210
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18206
18211
  this.handleChangeExample = (event) => {
18207
18212
  if (event.target.value) {
18208
18213
  this.decode(event.target.value);
@@ -18211,6 +18216,7 @@ class CertificateDecoder {
18211
18216
  this.clearValue();
18212
18217
  }
18213
18218
  };
18219
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18214
18220
  this.handleDropFile = async (event) => {
18215
18221
  event.stopPropagation();
18216
18222
  event.preventDefault();
@@ -18275,7 +18281,7 @@ class CertificateDecoder {
18275
18281
  }
18276
18282
  render() {
18277
18283
  var _a;
18278
- return (hAsync(Host, { key: '466ae73c347d305938c8b5f7a9ca0fcc8ec000eb' }, hAsync("textarea", { key: '00d3552d847823c1e4e10162c5ac22de48062c47', placeholder: "Certificate DER or PEM", class: "textarea t-b2 c-black", ref: (el) => { this.inputPaste = el; }, onDrop: this.handleDropFile }), hAsync("div", { key: '2b45a534e3db2d4c879efcc849f439d494ad5adc', class: "controls" }, hAsync("div", { key: 'c78db2ec219c7417c10c8aa4b99e72e1fc16499d', class: "control_row" }, hAsync(Typography, { key: '9e72c34b567870083b68fdaf082aae28f8899b24', variant: "b3", color: "secondary-tint-2" }, "Drag or load file:"), hAsync("input", { key: '7069e5db2f0de85126b4fdcace19e181ab407a16', type: "file", accept: "application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl,.csr,.req,.crl", onChange: this.handleChangeInputFile, value: "" })), ((_a = this.certificateExamples) === null || _a === void 0 ? void 0 : _a.length) && (hAsync("div", { key: 'e184a0864d8432e1f0aa26788e58f3c336abc598', class: "control_row" }, hAsync(Typography, { key: '19e3213a14ef0b24bb110df7a4e943bf1f2a8ebf', variant: "b3", color: "secondary-tint-2" }, "Load examples:"), hAsync("select", { key: '79082619d5d4bc82cf90afddf58ec58a5ae232b7', onChange: this.handleChangeExample }, hAsync("option", { key: 'add23975d376914239389b621bd956bcd4fb52eb', value: "" }, "None"), this.certificateExamples.map((example) => (hAsync("option", { value: example.value }, example.title)))))), hAsync("div", { key: '876ccefd3125618d5c1e7c83e277349fa78da802', class: "control_row" }, hAsync(Button, { key: 'bb890810c0895ba3fdcc22695e72cd8c2cf9645d', onClick: this.handleClickDecode }, "Decode"), hAsync(Button, { key: 'dadc94b3e9e2e7211d993d99c127abfc8e593545', onClick: this.handleClickClear }, "Clear"))), this.renderCertificate()));
18284
+ return (hAsync(Host, { key: '2c4ec8c59145c494dee26f7e6eae99b10481f091' }, hAsync("textarea", { key: '88129c0b5c56b2458c4af2df6d746c25d4252fd2', placeholder: "Certificate DER or PEM", class: "textarea t-b2 c-black", ref: (el) => { this.inputPaste = el; }, onDrop: this.handleDropFile }), hAsync("div", { key: '3730b1bade8d27bb9bc1617018dc5bf01f9277ef', class: "controls" }, hAsync("div", { key: 'b803986ab6d5bfaf5e61cd9df57428e6bff6bb55', class: "control_row" }, hAsync(Typography, { key: 'e6ed2ea27f11d0957da4109e19483cd040febb01', variant: "b3", color: "secondary-tint-2" }, "Drag or load file:"), hAsync("input", { key: '898d0fdd1de5f204337ab8bf77ad1dafd25da882', type: "file", accept: "application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl,.csr,.req,.crl", value: "", onChange: this.handleChangeInputFile })), ((_a = this.certificateExamples) === null || _a === void 0 ? void 0 : _a.length) && (hAsync("div", { key: 'd6cf99bfc145f44fdfef32e52eb6afa8ec3836cf', class: "control_row" }, hAsync(Typography, { key: '4f7ff1b34fe34837909e328afdf401a5826d89f5', variant: "b3", color: "secondary-tint-2" }, "Load examples:"), hAsync("select", { key: '47c7433eefc2e82fb5dd9a30f062cc71104f7f5b', onChange: this.handleChangeExample }, hAsync("option", { key: '667a68723f7a22b954c1c89e1e86b85ddc6b4fd5', value: "" }, "None"), this.certificateExamples.map((example) => (hAsync("option", { value: example.value }, example.title)))))), hAsync("div", { key: 'e1fc1f00e7bb998d26a818fee955df9561f8e6c0', class: "control_row" }, hAsync(Button, { key: '254fdd5ff25e644ba5d233d9cec2508a28e023c9', onClick: this.handleClickDecode }, "Decode"), hAsync(Button, { key: '594d6e51c56a1b51440f6495eb85af0eda75bcef', onClick: this.handleClickClear }, "Clear"))), this.renderCertificate()));
18279
18285
  }
18280
18286
  static get style() { return certificateDecoderCss; }
18281
18287
  static get cmpMeta() { return {
@@ -18374,11 +18380,9 @@ class CertificateViewer {
18374
18380
  getIssuerDnLink() {
18375
18381
  return this.issuerDnLink;
18376
18382
  }
18377
- // eslint-disable-next-line class-methods-use-this
18378
18383
  renderErrorState() {
18379
18384
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There was an error decoding this certificate.")));
18380
18385
  }
18381
- // eslint-disable-next-line class-methods-use-this
18382
18386
  renderEmptyState() {
18383
18387
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There is no certificate available.")));
18384
18388
  }
@@ -18489,7 +18493,8 @@ class CertificatesViewer {
18489
18493
  this.detailsClose.emit();
18490
18494
  };
18491
18495
  this.handleSearch = (event) => {
18492
- this.search = event.target.value.trim();
18496
+ const target = event.target;
18497
+ this.search = target.value.trim();
18493
18498
  };
18494
18499
  }
18495
18500
  handleMediaQueryChange(event) {
@@ -18515,7 +18520,6 @@ class CertificatesViewer {
18515
18520
  return;
18516
18521
  }
18517
18522
  const data = [];
18518
- // eslint-disable-next-line no-restricted-syntax
18519
18523
  for (const certificate of this.certificates) {
18520
18524
  try {
18521
18525
  const decoded = new X509Certificate(certificate.value);
@@ -18537,13 +18541,17 @@ class CertificatesViewer {
18537
18541
  this.isDecodeInProcess = false;
18538
18542
  this.certificatesDecoded = data;
18539
18543
  }
18540
- // eslint-disable-next-line class-methods-use-this
18544
+ getCertificateName(certificate) {
18545
+ if (typeof certificate.name === 'function') {
18546
+ return certificate.name(certificate.body);
18547
+ }
18548
+ return certificate.name || certificate.body.commonName;
18549
+ }
18541
18550
  handleClickDownloadAsPem(certificate) {
18542
- certificate.body.downloadAsPEM(certificate.name || certificate.body.commonName);
18551
+ certificate.body.downloadAsPEM(this.getCertificateName(certificate));
18543
18552
  }
18544
- // eslint-disable-next-line class-methods-use-this
18545
18553
  handleClickDownloadAsDer(certificate) {
18546
- certificate.body.downloadAsDER(certificate.name || certificate.body.commonName);
18554
+ certificate.body.downloadAsDER(this.getCertificateName(certificate));
18547
18555
  }
18548
18556
  handleClickRow(index) {
18549
18557
  const isExpandedRowClicked = this.expandedRow === index;
@@ -18588,26 +18596,34 @@ class CertificatesViewer {
18588
18596
  },
18589
18597
  ],
18590
18598
  },
18591
- ...(isHasTestURLs ? [{
18592
- title: l10n.getString('testURLs'),
18593
- options: [
18594
- ...(((_a = certificate.tests) === null || _a === void 0 ? void 0 : _a.valid) ? [{
18595
- text: l10n.getString('valid'),
18596
- href: certificate.tests.valid,
18597
- startIcon: hAsync(LinkIcon, null),
18598
- }] : []),
18599
- ...(((_b = certificate.tests) === null || _b === void 0 ? void 0 : _b.revoked) ? [{
18600
- text: l10n.getString('revoked'),
18601
- href: certificate.tests.revoked,
18602
- startIcon: hAsync(LinkIcon, null),
18603
- }] : []),
18604
- ...(((_c = certificate.tests) === null || _c === void 0 ? void 0 : _c.expired) ? [{
18605
- text: l10n.getString('expired'),
18606
- href: certificate.tests.expired,
18607
- startIcon: hAsync(LinkIcon, null),
18608
- }] : []),
18609
- ],
18610
- }] : []),
18599
+ ...(isHasTestURLs
18600
+ ? [{
18601
+ title: l10n.getString('testURLs'),
18602
+ options: [
18603
+ ...(((_a = certificate.tests) === null || _a === void 0 ? void 0 : _a.valid)
18604
+ ? [{
18605
+ text: l10n.getString('valid'),
18606
+ href: certificate.tests.valid,
18607
+ startIcon: hAsync(LinkIcon, null),
18608
+ }]
18609
+ : []),
18610
+ ...(((_b = certificate.tests) === null || _b === void 0 ? void 0 : _b.revoked)
18611
+ ? [{
18612
+ text: l10n.getString('revoked'),
18613
+ href: certificate.tests.revoked,
18614
+ startIcon: hAsync(LinkIcon, null),
18615
+ }]
18616
+ : []),
18617
+ ...(((_c = certificate.tests) === null || _c === void 0 ? void 0 : _c.expired)
18618
+ ? [{
18619
+ text: l10n.getString('expired'),
18620
+ href: certificate.tests.expired,
18621
+ startIcon: hAsync(LinkIcon, null),
18622
+ }]
18623
+ : []),
18624
+ ],
18625
+ }]
18626
+ : []),
18611
18627
  ] }));
18612
18628
  }
18613
18629
  renderExpandedRow(certificate) {
@@ -18627,8 +18643,7 @@ class CertificatesViewer {
18627
18643
  const certificateStringForSearch = [
18628
18644
  publicKeyValue,
18629
18645
  certificate.body.issuerCommonName,
18630
- certificate.name,
18631
- certificate.body.commonName,
18646
+ this.getCertificateName(certificate),
18632
18647
  certificate.body.thumbprints['SHA-1'],
18633
18648
  ]
18634
18649
  .join(' ')
@@ -18642,21 +18657,12 @@ class CertificatesViewer {
18642
18657
  hAsync("tr", { class: {
18643
18658
  certificate_row: true,
18644
18659
  m_expanded: isExpandedRow,
18645
- }, key: certificate.body.thumbprints['SHA-1'] }, hAsync("td", null, hAsync("table", null, hAsync("tbody", null, !this.isHasRoots && (hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('issuer'))), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.issuerCommonName))))), hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('name'))), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.name || certificate.body.commonName)))), hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('publicKey'))), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, publicKeyValue)))), hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('fingerprint'), "\u00A0 (SHA-1)")), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.thumbprints['SHA-1'])))), isExpandedRow && this.renderExpandedRow(certificate.body), hAsync("tr", { class: "certificate_row_actions" }, hAsync("td", null, this.renderCertificateButtonActions(certificate), hAsync(Button
18646
- // eslint-disable-next-line react/jsx-no-bind
18647
- , {
18648
- // eslint-disable-next-line react/jsx-no-bind
18649
- onClick: this.handleClickRow.bind(this, index), startIcon: isExpandedRow ? hAsync(ArrowTopIcon, null) : hAsync(ArrowBottomIcon, null)
18650
- }))))))),
18660
+ }, key: certificate.body.thumbprints['SHA-1'] }, hAsync("td", null, hAsync("table", null, hAsync("tbody", null, !this.isHasRoots && (hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('issuer'))), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.issuerCommonName))))), hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('name'))), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, this.getCertificateName(certificate))))), hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('publicKey'))), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, publicKeyValue)))), hAsync("tr", null, hAsync("td", null, hAsync(Typography, { variant: "b2", color: "gray-9" }, l10n.getString('fingerprint'), "\u00A0 (SHA-1)")), hAsync("td", null, hAsync(Typography, { variant: "b2", color: "black" }, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.thumbprints['SHA-1'])))), isExpandedRow && this.renderExpandedRow(certificate.body), hAsync("tr", { class: "certificate_row_actions" }, hAsync("td", null, this.renderCertificateButtonActions(certificate), hAsync(Button, { startIcon: isExpandedRow ? hAsync(ArrowTopIcon, null) : hAsync(ArrowBottomIcon, null), onClick: this.handleClickRow.bind(this, index) }))))))),
18651
18661
  ]);
18652
18662
  return;
18653
18663
  }
18654
18664
  content.push([
18655
- hAsync("tr", { class: {
18656
- m_expanded: isExpandedRow,
18657
- }, key: certificate.body.thumbprints['SHA-1'] }, hAsync("td", null, hAsync(Button, { class: "button_table_cell",
18658
- // eslint-disable-next-line react/jsx-no-bind
18659
- onClick: this.handleClickRow.bind(this, index), startIcon: isExpandedRow ? hAsync(ArrowTopIcon, null) : hAsync(ArrowBottomIcon, null) })), !this.isHasRoots && (hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.issuerCommonName)))), hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.name || certificate.body.commonName))), hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, publicKeyValue))), hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.thumbprints['SHA-1']))), hAsync("td", null, this.renderCertificateButtonActions(certificate))),
18665
+ hAsync("tr", { class: { m_expanded: isExpandedRow }, key: certificate.body.thumbprints['SHA-1'] }, hAsync("td", null, hAsync(Button, { startIcon: isExpandedRow ? hAsync(ArrowTopIcon, null) : hAsync(ArrowBottomIcon, null), class: "button_table_cell", onClick: this.handleClickRow.bind(this, index) })), !this.isHasRoots && (hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.issuerCommonName)))), hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, this.getCertificateName(certificate)))), hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, publicKeyValue))), hAsync("td", null, hAsync(Typography, null, hAsync("peculiar-highlight-words", { search: searchHighlight }, certificate.body.thumbprints['SHA-1']))), hAsync("td", null, this.renderCertificateButtonActions(certificate))),
18660
18666
  isExpandedRow && this.renderExpandedRow(certificate.body),
18661
18667
  ]);
18662
18668
  });
@@ -18666,13 +18672,13 @@ class CertificatesViewer {
18666
18672
  if (!this.certificateSelectedForDetails) {
18667
18673
  return null;
18668
18674
  }
18669
- return (hAsync("div", { class: "modal_wrapper", role: "presentation", "aria-hidden": "false", part: "presentation" }, hAsync("div", { class: "modal_backdrop", onClick: this.handleModalClose, "aria-hidden": "true" }), hAsync("div", { class: "modal_container", role: "dialog", part: "presentation_container" }, hAsync("header", { class: "modal_header" }, hAsync(Typography, { variant: "h4" }, l10n.getString('certificateDetails')), hAsync(Button, { onClick: this.handleModalClose, startIcon: hAsync(CrossIcon, null) })), hAsync("div", { class: "modal_content" }, hAsync("peculiar-certificate-viewer", { certificate: this.certificateSelectedForDetails, mobileMediaQueryString: this.mobileMediaQueryString })))));
18675
+ return (hAsync("div", { class: "modal_wrapper", role: "presentation", "aria-hidden": "false", part: "presentation" }, hAsync("div", { class: "modal_backdrop", "aria-hidden": "true", onClick: this.handleModalClose }), hAsync("div", { class: "modal_container", role: "dialog", part: "presentation_container" }, hAsync("header", { class: "modal_header" }, hAsync(Typography, { variant: "h4" }, l10n.getString('certificateDetails')), hAsync(Button, { startIcon: hAsync(CrossIcon, null), onClick: this.handleModalClose })), hAsync("div", { class: "modal_content" }, hAsync("peculiar-certificate-viewer", { certificate: this.certificateSelectedForDetails, mobileMediaQueryString: this.mobileMediaQueryString })))));
18670
18676
  }
18671
18677
  renderSearch() {
18672
18678
  if (!this.filterWithSearch && !this.highlightWithSearch) {
18673
18679
  return null;
18674
18680
  }
18675
- return (hAsync("div", { class: "search_section" }, hAsync("input", { onInput: this.handleSearch, type: "search", value: "", class: "input_search t-b3 c-black", disabled: !this.certificatesDecoded.length, placeholder: "Search" })));
18681
+ return (hAsync("div", { class: "search_section" }, hAsync("input", { type: "search", value: "", class: "input_search t-b3 c-black", disabled: !this.certificatesDecoded.length, placeholder: "Search", onInput: this.handleSearch })));
18676
18682
  }
18677
18683
  renderEmptyState() {
18678
18684
  const colSpan = this.getMaxColSpanValue();
@@ -18682,7 +18688,6 @@ class CertificatesViewer {
18682
18688
  const colSpan = this.getMaxColSpanValue();
18683
18689
  return (hAsync("tr", null, hAsync("td", { class: "status_wrapper", colSpan: colSpan }, hAsync(Typography, { variant: "b1" }, "No results found for \u201C", this.search, "\u201C"))));
18684
18690
  }
18685
- // eslint-disable-next-line class-methods-use-this
18686
18691
  renderLoadingState() {
18687
18692
  return (hAsync("div", { class: "loading_container" }, hAsync("peculiar-circular-progress", null)));
18688
18693
  }
@@ -18700,7 +18705,7 @@ class CertificatesViewer {
18700
18705
  return certificatesRows;
18701
18706
  }
18702
18707
  render() {
18703
- return (hAsync(Host, { key: 'e10ac3070a3cb75cb9a281a999fec42ef28d593d', "data-mobile-screen-view": String(this.mobileScreenView) }, this.renderSearch(), hAsync("table", { key: 'abc765a09c9537c36500143c6caffa688910483e' }, !this.mobileScreenView && (hAsync("thead", { key: 'c948fc3f9929deda81bfe9f1205b5c6f6032d256' }, hAsync("tr", { key: '7deae387a944910a82588698b61d55c0ba64ff55' }, hAsync("th", { key: '70927a2c00545a1c500e4312ed30022dc24df23a' }), !this.isHasRoots && (hAsync("th", { key: 'af4811bbd78a46f4ab1e96d9a2f3251e59d5d773', class: "col_issuer" }, hAsync(Typography, { key: '11064fc9659acfb8856ad96aba1192972b27e0e3', variant: "s2" }, l10n.getString('issuer')))), hAsync("th", { key: '7898e55528b973f8dddebff2e86763fc4f0ad013', class: "col_name" }, hAsync(Typography, { key: 'e5bae939345bce44423efaaee774678a163d51a6', variant: "s2" }, l10n.getString('name'))), hAsync("th", { key: '83128f3a2812996df534b95690d6268bf0f096ec', class: "col_public_key" }, hAsync(Typography, { key: '05e7f862d2336e2144ddd9438bb2636625abed36', variant: "s2" }, l10n.getString('publicKey'))), hAsync("th", { key: '1387d00b085a524bd97d96e68e07f3e82ee57796', class: "col_fingerprint" }, hAsync(Typography, { key: '393eac698d27bb9a17a2ae5cec18a0658f510f78', variant: "s2" }, l10n.getString('fingerprint'), "\u00A0 (SHA-1)")), hAsync("th", { key: 'ffdba17371ff65a6df244edefe55bb81a9e821c8' })))), hAsync("tbody", { key: '8e44c28a8d4bc64fe76c73d67054df3dcef7a7c1' }, this.renderTableBody())), this.renderCertificateDetailsModal(), this.isDecodeInProcess && this.renderLoadingState()));
18708
+ return (hAsync(Host, { key: '894edb33a53c1128d812c2fd7a5b230a4b13493c', "data-mobile-screen-view": String(this.mobileScreenView) }, this.renderSearch(), hAsync("table", { key: '998d37ab98be6743f1564fafb4ce9fc70b79e358' }, !this.mobileScreenView && (hAsync("thead", { key: '4728e09450b6285cbc2f69cf0a0e06135910558f' }, hAsync("tr", { key: '70bf5be60e50b9d7109e27128b661044778e0ded' }, hAsync("th", { key: 'cf0fef5df1b42d0bce49d3bf0af2d91b82de6d05' }), !this.isHasRoots && (hAsync("th", { key: '59f00d345883dfb3c81a97278583821543ce6808', class: "col_issuer" }, hAsync(Typography, { key: '54ce8fba1ab5355ac1f82ccc3aa62945351a3632', variant: "s2" }, l10n.getString('issuer')))), hAsync("th", { key: '9aea7911edafca1482f31e2ca3316d2cde40fd78', class: "col_name" }, hAsync(Typography, { key: '2a0145b0cc56543ed4b5170a8773c3c43e5e64f9', variant: "s2" }, l10n.getString('name'))), hAsync("th", { key: '9eab414d9b1558d6a5b9938f55165aeca5baa54e', class: "col_public_key" }, hAsync(Typography, { key: 'cbdcb1013bbf12ac88e63ca2d268c55854803297', variant: "s2" }, l10n.getString('publicKey'))), hAsync("th", { key: '06adb89146693583a0dad86644b2c8b399e25c0e', class: "col_fingerprint" }, hAsync(Typography, { key: 'eca0440721f16953219f014edb8d3742f312f704', variant: "s2" }, l10n.getString('fingerprint'), "\u00A0 (SHA-1)")), hAsync("th", { key: '56b7fdf83f5c45cf524a8cce81dbca584b9b5fa8' })))), hAsync("tbody", { key: '01ccda1abfa846a8b0cdc00588b106398358ed88' }, this.renderTableBody())), this.renderCertificateDetailsModal(), this.isDecodeInProcess && this.renderLoadingState()));
18704
18709
  }
18705
18710
  static get watchers() { return {
18706
18711
  "certificates": ["watchCertificates"]
@@ -18743,14 +18748,10 @@ class CircularProgress {
18743
18748
  this.box = 50;
18744
18749
  }
18745
18750
  render() {
18746
- return (hAsync(Host, { key: 'c71275c96a3abcd67c09448bbcd2bcc541500805' }, hAsync("div", { key: 'f2deb4e8dc2878d0975ca9a7da9c5481e7ed01a7', class: "circle_progress", style: {
18751
+ return (hAsync(Host, { key: '0a7d6a83e20839fb324b3f24c7e8b1074775c6a3' }, hAsync("div", { key: '88111c52129ca2806ab67f7862ccdbec0e55e68f', class: "circle_progress", style: {
18747
18752
  width: `${this.size}px`,
18748
18753
  height: `${this.size}px`,
18749
- } }, hAsync("svg", { key: '3968a506d8e670a5199497ee42ae3ec99fb65de7', class: "circle_progress_svg", viewBox: `0 0 ${this.box} ${this.box}` }, hAsync("circle", { key: '55d8b2592fb6614c38841706bd7e55ec3912b88c', class: "circle_progress_backdrop", cx: this.box / 2, cy: this.box / 2, r: (this.box / 2) - 5, fill: "none", style: {
18750
- strokeWidth: `${this.width}px`,
18751
- } }), hAsync("circle", { key: 'f61b2daa3fad404e325b787d3be59c8d7f04c118', class: "circle_progress_circle", cx: this.box / 2, cy: this.box / 2, r: (this.box / 2) - 5, fill: "none", style: {
18752
- strokeWidth: `${this.width}px`,
18753
- } })))));
18754
+ } }, hAsync("svg", { key: '73b6d9ef7d0b5d09049f8b0c3477e633fa6ee8a3', class: "circle_progress_svg", viewBox: `0 0 ${this.box} ${this.box}` }, hAsync("circle", { key: '764d4d27927cd961c84631ac2d9bf2d0ca3e542f', class: "circle_progress_backdrop", cx: this.box / 2, cy: this.box / 2, r: (this.box / 2) - 5, fill: "none", style: { strokeWidth: `${this.width}px` } }), hAsync("circle", { key: 'b24985974a66d754514f5a82b06fa6e7cae77133', class: "circle_progress_circle", cx: this.box / 2, cy: this.box / 2, r: (this.box / 2) - 5, fill: "none", style: { strokeWidth: `${this.width}px` } })))));
18754
18755
  }
18755
18756
  static get style() { return circularProgressCss; }
18756
18757
  static get cmpMeta() { return {
@@ -18841,11 +18842,9 @@ class CrlViewer {
18841
18842
  }
18842
18843
  }
18843
18844
  }
18844
- // eslint-disable-next-line class-methods-use-this
18845
18845
  renderErrorState() {
18846
18846
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There was an error decoding this certificate revocation list.")));
18847
18847
  }
18848
- // eslint-disable-next-line class-methods-use-this
18849
18848
  renderEmptyState() {
18850
18849
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There is no certificate revocation list available.")));
18851
18850
  }
@@ -18896,9 +18895,7 @@ class CsrViewer {
18896
18895
  this.mobileMediaQueryString = '(max-width: 900px)';
18897
18896
  this.mobileScreenView = false;
18898
18897
  this.isDecodeInProcess = true;
18899
- // eslint-disable-next-line class-methods-use-this
18900
18898
  this.getAuthKeyIdParentLink = (value) => value;
18901
- // eslint-disable-next-line class-methods-use-this
18902
18899
  this.getAuthKeyIdSiblingsLink = (value) => value;
18903
18900
  this.getSubjectKeyIdChildrenLink = (value) => {
18904
18901
  var _a;
@@ -18957,11 +18954,9 @@ class CsrViewer {
18957
18954
  }
18958
18955
  }
18959
18956
  }
18960
- // eslint-disable-next-line class-methods-use-this
18961
18957
  renderErrorState() {
18962
18958
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There was an error decoding this certificate request.")));
18963
18959
  }
18964
- // eslint-disable-next-line class-methods-use-this
18965
18960
  renderEmptyState() {
18966
18961
  return (hAsync("div", { class: "status_wrapper" }, hAsync(Typography, null, "There is no certificate request available.")));
18967
18962
  }
@@ -19024,7 +19019,7 @@ class HighlightWords {
19024
19019
  return source.replace(substring, '');
19025
19020
  }
19026
19021
  render() {
19027
- return (hAsync(Host, { key: '353abad7e2fc43ea4af75ec025e08d2ff3159ee6' }, hAsync("slot", { key: '9ac44c0a2b95ea7a778e2d6a2909c797f8c17b6d' })));
19022
+ return (hAsync(Host, { key: '95b1cef18522eabfb495710d6756d8eee86dfa73' }, hAsync("slot", { key: '360e1c4d7121833dbfccdd6e1021d2030017373b' })));
19028
19023
  }
19029
19024
  get host() { return getElement(this); }
19030
19025
  static get style() { return highlightWordsCss; }
@@ -19048,7 +19043,7 @@ class TextHider {
19048
19043
  this.opened = false;
19049
19044
  }
19050
19045
  render() {
19051
- return (hAsync(Host, { key: '8e4789c87df5e4b37a5fdce7b9489e1f26d52fd9', "aria-expanded": String(this.opened) }, hAsync("div", { key: 'd98c5a205b320e9590953cf1e66ef7087413c24c', class: "content" }, hAsync("slot", { key: 'c20480b3144c9b05a719d3bd33a9569a937f176d' })), hAsync(Button, { key: 'a1913fb7cb9a79437e3c84553d38a7245824211a', class: "action", onClick: () => { this.opened = !this.opened; }, startIcon: this.opened ? hAsync(ArrowTopIcon, { color: "secondary" }) : hAsync(ArrowBottomIcon, { color: "secondary" }) })));
19046
+ return (hAsync(Host, { key: 'e62e0ae5bad2145d9d0f8e47493d89f1c9bdd559', "aria-expanded": String(this.opened) }, hAsync("div", { key: 'ee6a5b678e4ff568d017fde3168a37c818c241da', class: "content" }, hAsync("slot", { key: 'b9d073a716fec21e5e9c1dadc66da3fef292d00b' })), hAsync(Button, { key: '398b81d7ec84ccac8803f46dd4d78104a86b9be7', class: "action", startIcon: this.opened ? hAsync(ArrowTopIcon, { color: "secondary" }) : hAsync(ArrowBottomIcon, { color: "secondary" }), onClick: () => { this.opened = !this.opened; } })));
19052
19047
  }
19053
19048
  static get style() { return textHiderCss; }
19054
19049
  static get cmpMeta() { return {