@peculiar/certificates-viewer 4.2.0 → 4.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/actions.js +3 -3
- package/components/actions.js.map +1 -1
- package/components/arrow_top.js +6 -6
- package/components/arrow_top.js.map +1 -1
- package/components/attribute-certificate-viewer.js +227 -222
- package/components/attribute-certificate-viewer.js.map +1 -1
- package/components/attribute.js +53 -0
- package/components/attribute.js.map +1 -0
- package/components/button-menu.js +36 -35
- package/components/button-menu.js.map +1 -1
- package/components/button.js +42 -42
- package/components/button.js.map +1 -1
- package/components/certificate-viewer.js +254 -251
- package/components/certificate-viewer.js.map +1 -1
- package/components/circular-progress.js +34 -33
- package/components/circular-progress.js.map +1 -1
- package/components/crl-viewer.js +219 -216
- package/components/crl-viewer.js.map +1 -1
- package/components/cross.js +9 -9
- package/components/cross.js.map +1 -1
- package/components/csr-viewer.js +117 -209
- package/components/csr-viewer.js.map +1 -1
- package/components/download.js +12578 -64
- package/components/download.js.map +1 -1
- package/components/highlight-words.js +45 -44
- package/components/highlight-words.js.map +1 -1
- package/components/index.js +2 -0
- package/components/index.js.map +1 -1
- package/components/index2.js +114 -169
- package/components/index2.js.map +1 -1
- package/components/issuer_name.js +8 -8
- package/components/issuer_name.js.map +1 -1
- package/components/miscellaneous.js +729 -13311
- package/components/miscellaneous.js.map +1 -1
- package/components/peculiar-attribute-certificate-viewer.d.ts +2 -2
- package/components/peculiar-button-menu.d.ts +2 -2
- package/components/peculiar-certificate-decoder.d.ts +2 -2
- package/components/peculiar-certificate-decoder.js +177 -207
- package/components/peculiar-certificate-decoder.js.map +1 -1
- package/components/peculiar-certificate-viewer.d.ts +2 -2
- package/components/peculiar-certificates-viewer.d.ts +2 -2
- package/components/peculiar-certificates-viewer.js +297 -297
- package/components/peculiar-certificates-viewer.js.map +1 -1
- package/components/peculiar-circular-progress.d.ts +2 -2
- package/components/peculiar-crl-viewer.d.ts +2 -2
- package/components/peculiar-crl-viewer.js +1 -1
- package/components/peculiar-csr-viewer.d.ts +2 -2
- package/components/peculiar-csr-viewer.js +1 -1
- package/components/peculiar-highlight-words.d.ts +2 -2
- package/components/peculiar-text-hider.d.ts +2 -2
- package/components/peculiar-text-hider.js +23 -22
- package/components/peculiar-text-hider.js.map +1 -1
- package/components/pkcs10_certificate_request.js +102 -0
- package/components/pkcs10_certificate_request.js.map +1 -0
- package/components/read_file.js +110 -0
- package/components/read_file.js.map +1 -0
- package/components/subject_name.js +36 -36
- package/components/subject_name.js.map +1 -1
- package/dist/cjs/actions-789906f5.js +23 -0
- package/dist/cjs/{actions-19013d4a.js.map → actions-789906f5.js.map} +1 -1
- package/dist/cjs/app-globals-c20ffa41.js +10 -0
- package/dist/cjs/app-globals-c20ffa41.js.map +1 -0
- package/dist/cjs/arrow_top-76e4261e.js +37 -0
- package/dist/cjs/{arrow_top-834fb7ec.js.map → arrow_top-76e4261e.js.map} +1 -1
- package/dist/cjs/button-87086210.js +77 -0
- package/dist/cjs/{button-14e2b73f.js.map → button-87086210.js.map} +1 -1
- package/dist/cjs/{certification_request-5672c667.js → certification_request-815ec558.js} +3284 -2888
- package/dist/cjs/certification_request-815ec558.js.map +1 -0
- package/dist/cjs/cross-bd099933.js +51 -0
- package/dist/cjs/{cross-9872c473.js.map → cross-bd099933.js.map} +1 -1
- package/dist/cjs/download-820d66ba.js +23 -0
- package/dist/cjs/{download-254ddc57.js.map → download-820d66ba.js.map} +1 -1
- package/dist/cjs/{index-efd561e9.js → index-e2ae280a.js} +398 -145
- package/dist/cjs/index-e2ae280a.js.map +1 -0
- package/dist/cjs/index.cjs.js +18 -11
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/link-a3d3799d.js +25 -0
- package/dist/cjs/{link-6aea0be4.js.map → link-a3d3799d.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +4 -2
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/miscellaneous-9a573276.js +1418 -0
- package/dist/cjs/miscellaneous-9a573276.js.map +1 -0
- package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js +481 -480
- package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +72 -69
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +142 -172
- package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +106 -106
- package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +257 -257
- package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-text-hider.cjs.entry.js +12 -11
- package/dist/cjs/peculiar-text-hider.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar.cjs.js +5 -3
- package/dist/cjs/peculiar.cjs.js.map +1 -1
- package/dist/cjs/pkcs10_certificate_request-0ebc0023.js +149 -0
- package/dist/cjs/pkcs10_certificate_request-0ebc0023.js.map +1 -0
- package/dist/cjs/read_file-2e22a97e.js +115 -0
- package/dist/cjs/read_file-2e22a97e.js.map +1 -0
- package/dist/cjs/x509_certificate-9914b149.js +161 -0
- package/dist/cjs/x509_certificate-9914b149.js.map +1 -0
- package/dist/cjs/x509_crl-86b6e71d.js +179 -0
- package/dist/cjs/x509_crl-86b6e71d.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js +259 -259
- package/dist/collection/components/attribute-certificate-viewer/attribute-certificate-viewer.js.map +1 -1
- package/dist/collection/components/button/button.js +9 -9
- package/dist/collection/components/button/button.js.map +1 -1
- package/dist/collection/components/button-menu/button-menu.js +60 -60
- package/dist/collection/components/button-menu/button-menu.js.map +1 -1
- package/dist/collection/components/certificate-decoder/certificate-decoder.js +212 -212
- package/dist/collection/components/certificate-decoder/certificate-decoder.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js +4 -3
- package/dist/collection/components/certificate-details-parts/attributes/activity_description_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js +2 -2
- package/dist/collection/components/certificate-details-parts/attributes/as_string_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js +6 -6
- package/dist/collection/components/certificate-details-parts/attributes/basic_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js +2 -2
- package/dist/collection/components/certificate-details-parts/attributes/challenge_password_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/index.js +42 -42
- package/dist/collection/components/certificate-details-parts/attributes/index.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js +3 -3
- package/dist/collection/components/certificate-details-parts/attributes/insurance_value_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js +2 -2
- package/dist/collection/components/certificate-details-parts/attributes/name_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/name_part.js +5 -5
- package/dist/collection/components/certificate-details-parts/attributes/name_part.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js +2 -2
- package/dist/collection/components/certificate-details-parts/attributes/type_relationship_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js +2 -2
- package/dist/collection/components/certificate-details-parts/attributes/unstructured_name_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js +14 -14
- package/dist/collection/components/certificate-details-parts/attributes/valuation_ranking_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js +4 -3
- package/dist/collection/components/certificate-details-parts/attributes/web_gdpr_attribute.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/basic_information.js +12 -12
- package/dist/collection/components/certificate-details-parts/basic_information.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/archive_rev_info_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/as_string_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/attribute_value.js +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/attribute_value.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js +8 -8
- package/dist/collection/components/certificate-details-parts/extensions/authority_key_identifier_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/basic_constraints_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js +7 -7
- package/dist/collection/components/certificate-details-parts/extensions/basic_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js +5 -5
- package/dist/collection/components/certificate-details-parts/extensions/biometric_syntax_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js +3 -3
- package/dist/collection/components/certificate-details-parts/extensions/ca_version_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/cabforganization_identifier_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js +23 -23
- package/dist/collection/components/certificate-details-parts/extensions/certificate_policies_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/certificate_template_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js +5 -5
- package/dist/collection/components/certificate-details-parts/extensions/certificate_transparency_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js +8 -8
- package/dist/collection/components/certificate-details-parts/extensions/crl_distribution_points_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/crl_number_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/crl_reason_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/enroll_cert_type_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/entrust_version_info_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js +5 -5
- package/dist/collection/components/certificate-details-parts/extensions/extended_key_usage_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js +52 -52
- package/dist/collection/components/certificate-details-parts/extensions/general_name_part.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/index.js +121 -121
- package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js +5 -5
- package/dist/collection/components/certificate-details-parts/extensions/info_access_syntax_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js +4 -4
- package/dist/collection/components/certificate-details-parts/extensions/issuing_distribution_point_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js +58 -58
- package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/key_usage_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/lei_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/lei_role_extennsion.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js +42 -42
- package/dist/collection/components/certificate-details-parts/extensions/logotype_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js +5 -5
- package/dist/collection/components/certificate-details-parts/extensions/name_constraints_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/netscape_cert_type_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/netscape_comment_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/policy_constraints_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js +6 -7
- package/dist/collection/components/certificate-details-parts/extensions/policy_mappings_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/private_key_usage_period_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js +29 -29
- package/dist/collection/components/certificate-details-parts/extensions/qc_statements_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/subject_alternative_name_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js +5 -5
- package/dist/collection/components/certificate-details-parts/extensions/subject_directory_attributes_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js +8 -8
- package/dist/collection/components/certificate-details-parts/extensions/subject_key_identifier_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js +2 -2
- package/dist/collection/components/certificate-details-parts/extensions/timestamp_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js +6 -8
- package/dist/collection/components/certificate-details-parts/extensions/tn_auth_list_extension.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/holder.js +19 -21
- package/dist/collection/components/certificate-details-parts/holder.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/issuer.js +8 -8
- package/dist/collection/components/certificate-details-parts/issuer.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/issuer_name.js +6 -6
- package/dist/collection/components/certificate-details-parts/issuer_name.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/miscellaneous.js +6 -6
- package/dist/collection/components/certificate-details-parts/miscellaneous.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/public_key.js +29 -29
- package/dist/collection/components/certificate-details-parts/public_key.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/revoked_certificates.js +30 -30
- package/dist/collection/components/certificate-details-parts/revoked_certificates.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/row.js +26 -26
- package/dist/collection/components/certificate-details-parts/row.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/signature.js +13 -13
- package/dist/collection/components/certificate-details-parts/signature.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/subject_name.js +5 -5
- package/dist/collection/components/certificate-details-parts/subject_name.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/thumbprints.js +12 -12
- package/dist/collection/components/certificate-details-parts/thumbprints.js.map +1 -1
- package/dist/collection/components/certificate-summary/certificate-summary.js +3 -3
- package/dist/collection/components/certificate-summary/certificate-summary.js.map +1 -1
- package/dist/collection/components/certificate-viewer/certificate-viewer.js +278 -278
- package/dist/collection/components/certificate-viewer/certificate-viewer.js.map +1 -1
- package/dist/collection/components/certificates-viewer/certificates-viewer.js +374 -374
- package/dist/collection/components/certificates-viewer/certificates-viewer.js.map +1 -1
- package/dist/collection/components/circular-progress/circular-progress.js +67 -67
- package/dist/collection/components/circular-progress/circular-progress.js.map +1 -1
- package/dist/collection/components/crl-viewer/crl-viewer.js +230 -230
- package/dist/collection/components/crl-viewer/crl-viewer.js.map +1 -1
- package/dist/collection/components/csr-viewer/csr-viewer.js +212 -220
- package/dist/collection/components/csr-viewer/csr-viewer.js.map +1 -1
- package/dist/collection/components/highlight-words/highlight-words.js +60 -60
- package/dist/collection/components/highlight-words/highlight-words.js.map +1 -1
- package/dist/collection/components/icons/actions.js +2 -2
- package/dist/collection/components/icons/actions.js.map +1 -1
- package/dist/collection/components/icons/arrow_bottom.js +2 -2
- package/dist/collection/components/icons/arrow_bottom.js.map +1 -1
- package/dist/collection/components/icons/arrow_top.js +2 -2
- package/dist/collection/components/icons/arrow_top.js.map +1 -1
- package/dist/collection/components/icons/cross.js +2 -2
- package/dist/collection/components/icons/cross.js.map +1 -1
- package/dist/collection/components/icons/details.js +2 -2
- package/dist/collection/components/icons/details.js.map +1 -1
- package/dist/collection/components/icons/download.js +2 -2
- package/dist/collection/components/icons/download.js.map +1 -1
- package/dist/collection/components/icons/link.js +2 -2
- package/dist/collection/components/icons/link.js.map +1 -1
- package/dist/collection/components/link/link.js +4 -4
- package/dist/collection/components/link/link.js.map +1 -1
- package/dist/collection/components/text-hider/text-hider.js +23 -23
- package/dist/collection/components/text-hider/text-hider.js.map +1 -1
- package/dist/collection/components/typography/typography.js +32 -32
- package/dist/collection/components/typography/typography.js.map +1 -1
- package/dist/collection/constants/logs.js +77 -77
- package/dist/collection/constants/logs.js.map +1 -1
- package/dist/collection/constants/oids.js +2334 -2334
- package/dist/collection/constants/oids.js.map +1 -1
- package/dist/collection/crypto/asn_data.js +31 -31
- package/dist/collection/crypto/asn_data.js.map +1 -1
- package/dist/collection/crypto/attribute.js +35 -51
- package/dist/collection/crypto/attribute.js.map +1 -1
- package/dist/collection/crypto/extension.js +63 -138
- package/dist/collection/crypto/extension.js.map +1 -1
- package/dist/collection/crypto/extensions/cabforganization_identifier.js +20 -15
- package/dist/collection/crypto/extensions/cabforganization_identifier.js.map +1 -1
- package/dist/collection/crypto/index.js +2 -2
- package/dist/collection/crypto/index.js.map +1 -1
- package/dist/collection/crypto/name.js +31 -31
- package/dist/collection/crypto/name.js.map +1 -1
- package/dist/collection/crypto/pkcs10_certificate_request.js +108 -0
- package/dist/collection/crypto/pkcs10_certificate_request.js.map +1 -0
- package/dist/collection/crypto/provider.js +26 -26
- package/dist/collection/crypto/provider.js.map +1 -1
- package/dist/collection/crypto/utils.js +23 -23
- package/dist/collection/crypto/utils.js.map +1 -1
- package/dist/collection/crypto/x509_attribute_certificate.js +68 -66
- package/dist/collection/crypto/x509_attribute_certificate.js.map +1 -1
- package/dist/collection/crypto/x509_certificate.js +127 -125
- package/dist/collection/crypto/x509_certificate.js.map +1 -1
- package/dist/collection/crypto/x509_crl.js +94 -0
- package/dist/collection/crypto/x509_crl.js.map +1 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/camel_case_to_words.js +2 -2
- package/dist/collection/utils/camel_case_to_words.js.map +1 -1
- package/dist/collection/utils/date_formatter.js +6 -6
- package/dist/collection/utils/date_formatter.js.map +1 -1
- package/dist/collection/utils/download.js +24 -24
- package/dist/collection/utils/download.js.map +1 -1
- package/dist/collection/utils/download_from_buffer.js +25 -25
- package/dist/collection/utils/download_from_buffer.js.map +1 -1
- package/dist/collection/utils/get_string_by_oid.js +5 -5
- package/dist/collection/utils/get_string_by_oid.js.map +1 -1
- package/dist/collection/utils/is_link.js +1 -1
- package/dist/collection/utils/is_link.js.map +1 -1
- package/dist/collection/utils/l10n.js +25 -25
- package/dist/collection/utils/l10n.js.map +1 -1
- package/dist/collection/utils/read_file.js +40 -40
- package/dist/collection/utils/read_file.js.map +1 -1
- package/dist/collection/utils/validator.js +13 -13
- package/dist/collection/utils/validator.js.map +1 -1
- package/dist/esm/actions-aebcbc9d.js +21 -0
- package/dist/esm/{actions-8d745b2a.js.map → actions-aebcbc9d.js.map} +1 -1
- package/dist/esm/app-globals-5e9b67e0.js +8 -0
- package/dist/esm/app-globals-5e9b67e0.js.map +1 -0
- package/dist/esm/arrow_top-aee1ee02.js +34 -0
- package/dist/esm/{arrow_top-fc298828.js.map → arrow_top-aee1ee02.js.map} +1 -1
- package/dist/esm/button-a2fabf9a.js +74 -0
- package/dist/esm/{button-35146bdd.js.map → button-a2fabf9a.js.map} +1 -1
- package/dist/esm/{certification_request-d5ea5973.js → certification_request-08b4deb8.js} +3227 -2835
- package/dist/esm/certification_request-08b4deb8.js.map +1 -0
- package/dist/esm/cross-1377606f.js +47 -0
- package/dist/esm/{cross-9ec9a759.js.map → cross-1377606f.js.map} +1 -1
- package/dist/esm/download-14dc1047.js +21 -0
- package/dist/esm/{download-0cc3077a.js.map → download-14dc1047.js.map} +1 -1
- package/dist/esm/{index-4079bbb5.js → index-ae188432.js} +398 -145
- package/dist/esm/index-ae188432.js.map +1 -0
- package/dist/esm/index.js +10 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/link-7e4e9060.js +23 -0
- package/dist/esm/{link-ad24c3be.js.map → link-7e4e9060.js.map} +1 -1
- package/dist/esm/loader.js +5 -3
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/miscellaneous-d4bbc6f2.js +1400 -0
- package/dist/esm/miscellaneous-d4bbc6f2.js.map +1 -0
- package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js +481 -480
- package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js.map +1 -1
- package/dist/esm/peculiar-button-menu_3.entry.js +72 -69
- package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-decoder.entry.js +142 -172
- package/dist/esm/peculiar-certificate-decoder.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-viewer.entry.js +106 -106
- package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-certificates-viewer.entry.js +257 -257
- package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-text-hider.entry.js +12 -11
- package/dist/esm/peculiar-text-hider.entry.js.map +1 -1
- package/dist/esm/peculiar.js +6 -4
- package/dist/esm/peculiar.js.map +1 -1
- package/dist/esm/pkcs10_certificate_request-3763c2af.js +146 -0
- package/dist/esm/pkcs10_certificate_request-3763c2af.js.map +1 -0
- package/dist/esm/read_file-bb0b1450.js +110 -0
- package/dist/esm/read_file-bb0b1450.js.map +1 -0
- package/dist/esm/x509_certificate-47b4c5ee.js +159 -0
- package/dist/esm/x509_certificate-47b4c5ee.js.map +1 -0
- package/dist/esm/x509_crl-ba76d3ed.js +176 -0
- package/dist/esm/x509_crl-ba76d3ed.js.map +1 -0
- package/dist/esm-es5/{actions-8d745b2a.js → actions-aebcbc9d.js} +2 -2
- package/dist/esm-es5/app-globals-5e9b67e0.js +5 -0
- package/dist/esm-es5/app-globals-5e9b67e0.js.map +1 -0
- package/dist/esm-es5/{arrow_top-fc298828.js → arrow_top-aee1ee02.js} +2 -2
- package/dist/esm-es5/button-a2fabf9a.js +19 -0
- package/dist/esm-es5/{certification_request-d5ea5973.js → certification_request-08b4deb8.js} +60 -22
- package/dist/esm-es5/certification_request-08b4deb8.js.map +1 -0
- package/dist/esm-es5/{cross-9ec9a759.js → cross-1377606f.js} +2 -2
- package/dist/esm-es5/{download-0cc3077a.js → download-14dc1047.js} +2 -2
- package/dist/esm-es5/index-ae188432.js +6 -0
- package/dist/esm-es5/index-ae188432.js.map +1 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/{link-ad24c3be.js → link-7e4e9060.js} +3 -3
- package/dist/esm-es5/loader.js +2 -2
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/{miscellaneous-cdfd8905.js → miscellaneous-d4bbc6f2.js} +51 -51
- package/dist/esm-es5/miscellaneous-d4bbc6f2.js.map +1 -0
- package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js +17 -17
- package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-button-menu_3.entry.js +1 -1
- package/dist/esm-es5/peculiar-button-menu_3.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificate-decoder.entry.js +2 -9
- package/dist/esm-es5/peculiar-certificate-decoder.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificate-viewer.entry.js +2 -2
- package/dist/esm-es5/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificates-viewer.entry.js +3 -3
- package/dist/esm-es5/peculiar-certificates-viewer.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-text-hider.entry.js +1 -1
- package/dist/esm-es5/peculiar-text-hider.entry.js.map +1 -1
- package/dist/esm-es5/peculiar.js +2 -2
- package/dist/esm-es5/peculiar.js.map +1 -1
- package/dist/esm-es5/pkcs10_certificate_request-3763c2af.js +19 -0
- package/dist/esm-es5/pkcs10_certificate_request-3763c2af.js.map +1 -0
- package/dist/esm-es5/read_file-bb0b1450.js +12 -0
- package/dist/esm-es5/read_file-bb0b1450.js.map +1 -0
- package/dist/esm-es5/x509_certificate-47b4c5ee.js +12 -0
- package/dist/esm-es5/x509_certificate-47b4c5ee.js.map +1 -0
- package/dist/esm-es5/x509_crl-ba76d3ed.js +19 -0
- package/dist/esm-es5/x509_crl-ba76d3ed.js.map +1 -0
- package/dist/peculiar/index.esm.js +1 -1
- package/dist/peculiar/{p-a67b8793.system.entry.js → p-0f3787cf.system.entry.js} +10 -10
- package/dist/peculiar/p-0f3787cf.system.entry.js.map +1 -0
- package/dist/peculiar/p-1818204e.system.js +13 -0
- package/dist/peculiar/p-1818204e.system.js.map +1 -0
- package/dist/peculiar/p-243244af.system.js +13 -0
- package/dist/peculiar/p-25a532a3.js +12 -0
- package/dist/peculiar/p-25a532a3.js.map +1 -0
- package/dist/peculiar/{p-0fc2e2b4.js → p-27ca6743.js} +2 -2
- package/dist/peculiar/p-28b4d316.system.js +5 -0
- package/dist/peculiar/p-30e18f2d.system.js +20 -0
- package/dist/peculiar/p-30e18f2d.system.js.map +1 -0
- package/dist/peculiar/p-31d5da39.js +12 -0
- package/dist/peculiar/p-31d5da39.js.map +1 -0
- package/dist/peculiar/p-364df80d.system.entry.js +111 -0
- package/dist/peculiar/p-364df80d.system.entry.js.map +1 -0
- package/dist/peculiar/p-3cb79cd9.js +6 -0
- package/dist/peculiar/p-3cb79cd9.js.map +1 -0
- package/dist/peculiar/p-4bc5ddbe.js +19 -0
- package/dist/peculiar/p-4ee5140c.system.js +19 -0
- package/dist/peculiar/p-4ee5140c.system.js.map +1 -0
- package/dist/peculiar/p-55303453.system.js +12 -0
- package/dist/peculiar/p-55303453.system.js.map +1 -0
- package/dist/peculiar/p-5a662d6f.system.js +13 -0
- package/dist/peculiar/p-6acca6ea.js +135 -0
- package/dist/peculiar/p-6acca6ea.js.map +1 -0
- package/dist/peculiar/p-713563fb.entry.js +5 -0
- package/dist/peculiar/p-713563fb.entry.js.map +1 -0
- package/dist/peculiar/p-78a6b479.js +19 -0
- package/dist/peculiar/p-78a6b479.js.map +1 -0
- package/dist/peculiar/p-82005297.system.entry.js +5 -0
- package/dist/peculiar/p-82005297.system.entry.js.map +1 -0
- package/dist/peculiar/p-821bdcdc.system.js +6 -0
- package/dist/peculiar/p-821bdcdc.system.js.map +1 -0
- package/dist/peculiar/p-82e4faf0.js +19 -0
- package/dist/peculiar/p-82e4faf0.js.map +1 -0
- package/dist/peculiar/p-8393399a.system.js +5 -0
- package/dist/peculiar/p-8393399a.system.js.map +1 -0
- package/dist/peculiar/p-84e3e94a.entry.js +110 -0
- package/dist/peculiar/p-84e3e94a.entry.js.map +1 -0
- package/dist/peculiar/p-8bbee8f4.system.js +13 -0
- package/dist/peculiar/p-8db3e1fd.system.entry.js +5 -0
- package/dist/peculiar/p-8db3e1fd.system.entry.js.map +1 -0
- package/dist/peculiar/p-9712b827.system.js +20 -0
- package/dist/peculiar/{p-2fcad8cb.system.js.map → p-9712b827.system.js.map} +1 -1
- package/dist/peculiar/{p-370cee20.js → p-99efefea.js} +2 -2
- package/dist/peculiar/p-9c8dc738.entry.js +5 -0
- package/dist/peculiar/p-9c8dc738.entry.js.map +1 -0
- package/dist/peculiar/{p-1ceb0fe3.js → p-a9487007.js} +2 -2
- package/dist/peculiar/{p-17e3c47b.js → p-ae91d778.js} +2 -2
- package/dist/peculiar/p-afbd1c8e.entry.js +5 -0
- package/dist/peculiar/p-afbd1c8e.entry.js.map +1 -0
- package/dist/peculiar/{p-67156853.js → p-b0c963b1.js} +26 -26
- package/dist/peculiar/p-b0c963b1.js.map +1 -0
- package/dist/peculiar/p-b5389885.system.entry.js +5 -0
- package/dist/peculiar/p-b5389885.system.entry.js.map +1 -0
- package/dist/peculiar/p-c10bfa6a.system.js +369 -0
- package/dist/peculiar/p-c10bfa6a.system.js.map +1 -0
- package/dist/peculiar/p-c241e4ba.system.js +20 -0
- package/dist/peculiar/{p-c99507d4.system.js.map → p-c241e4ba.system.js.map} +1 -1
- package/dist/peculiar/p-c2995a63.system.js +5 -0
- package/dist/peculiar/p-c2995a63.system.js.map +1 -0
- package/dist/peculiar/p-c3fce3f5.entry.js +5 -0
- package/dist/peculiar/p-c3fce3f5.entry.js.map +1 -0
- package/dist/peculiar/p-dac867e8.js +5 -0
- package/dist/peculiar/p-dac867e8.js.map +1 -0
- package/dist/peculiar/p-df2c8826.system.js +135 -0
- package/dist/peculiar/p-df2c8826.system.js.map +1 -0
- package/dist/peculiar/p-e4ad4f13.system.entry.js +5 -0
- package/dist/peculiar/p-e4ad4f13.system.entry.js.map +1 -0
- package/dist/peculiar/p-e6a6e602.js +12 -0
- package/dist/peculiar/p-eea904d7.system.js +27 -0
- package/dist/peculiar/{p-ddae2f8e.system.js.map → p-eea904d7.system.js.map} +1 -1
- package/dist/peculiar/{p-c35b180c.entry.js → p-f8efbe93.entry.js} +3 -3
- package/dist/peculiar/p-f8efbe93.entry.js.map +1 -0
- package/dist/peculiar/peculiar.esm.js +1 -1
- package/dist/peculiar/peculiar.esm.js.map +1 -1
- package/dist/peculiar/peculiar.js +15 -15
- package/dist/types/components/attribute-certificate-viewer/attribute-certificate-viewer.d.ts +68 -68
- package/dist/types/components/button/button.d.ts +4 -4
- package/dist/types/components/button-menu/button-menu.d.ts +7 -7
- package/dist/types/components/certificate-decoder/certificate-decoder.d.ts +32 -32
- package/dist/types/components/certificate-details-parts/attributes/activity_description_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/as_string_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/basic_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/challenge_password_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/index.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/insurance_value_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/name_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/name_part.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/type_relationship_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/unstructured_name_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/valuation_ranking_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/attributes/web_gdpr_attribute.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/basic_information.d.ts +8 -8
- package/dist/types/components/certificate-details-parts/extensions/archive_rev_info_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/as_string_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/authority_key_identifier_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/basic_constraints_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/basic_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/biometric_syntax_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/ca_version_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/cabforganization_identifier_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/certificate_policies_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/certificate_template_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/certificate_transparency_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/crl_distribution_points_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/crl_number_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/crl_reason_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/enroll_cert_type_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/entrust_version_info_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/extended_key_usage_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/general_name_part.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/index.d.ts +2 -2
- package/dist/types/components/certificate-details-parts/extensions/info_access_syntax_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/issuing_distribution_point_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/key_description_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/key_usage_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/lei_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/lei_role_extennsion.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/logotype_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/name_constraints_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/netscape_cert_type_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/netscape_comment_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/policy_constraints_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/policy_mappings_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/private_key_usage_period_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/qc_statements_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/subject_alternative_name_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/subject_directory_attributes_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/subject_key_identifier_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/timestamp_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/extensions/tn_auth_list_extension.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/holder.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/issuer.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/issuer_name.d.ts +2 -2
- package/dist/types/components/certificate-details-parts/miscellaneous.d.ts +3 -3
- package/dist/types/components/certificate-details-parts/public_key.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/revoked_certificates.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/row.d.ts +7 -7
- package/dist/types/components/certificate-details-parts/signature.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/subject_name.d.ts +1 -1
- package/dist/types/components/certificate-details-parts/thumbprints.d.ts +1 -1
- package/dist/types/components/certificate-summary/certificate-summary.d.ts +2 -2
- package/dist/types/components/certificate-viewer/certificate-viewer.d.ts +74 -74
- package/dist/types/components/certificates-viewer/certificates-viewer.d.ts +75 -75
- package/dist/types/components/circular-progress/circular-progress.d.ts +10 -10
- package/dist/types/components/crl-viewer/crl-viewer.d.ts +58 -58
- package/dist/types/components/csr-viewer/csr-viewer.d.ts +54 -55
- package/dist/types/components/highlight-words/highlight-words.d.ts +8 -8
- package/dist/types/components/icons/actions.d.ts +1 -1
- package/dist/types/components/icons/arrow_bottom.d.ts +1 -1
- package/dist/types/components/icons/arrow_top.d.ts +1 -1
- package/dist/types/components/icons/cross.d.ts +1 -1
- package/dist/types/components/icons/details.d.ts +1 -1
- package/dist/types/components/icons/download.d.ts +1 -1
- package/dist/types/components/icons/link.d.ts +1 -1
- package/dist/types/components/link/link.d.ts +2 -2
- package/dist/types/components/text-hider/text-hider.d.ts +2 -2
- package/dist/types/components/typography/typography.d.ts +4 -4
- package/dist/types/components.d.ts +24 -0
- package/dist/types/constants/logs.d.ts +77 -77
- package/dist/types/constants/oids.d.ts +2326 -2326
- package/dist/types/crypto/asn_data.d.ts +6 -6
- package/dist/types/crypto/attribute.d.ts +21 -6
- package/dist/types/crypto/extension.d.ts +51 -5
- package/dist/types/crypto/extensions/cabforganization_identifier.d.ts +5 -5
- package/dist/types/crypto/index.d.ts +2 -2
- package/dist/types/crypto/name.d.ts +7 -7
- package/dist/types/crypto/pkcs10_certificate_request.d.ts +42 -0
- package/dist/types/crypto/provider.d.ts +15 -15
- package/dist/types/crypto/x509_attribute_certificate.d.ts +23 -24
- package/dist/types/crypto/x509_certificate.d.ts +32 -33
- package/dist/types/crypto/x509_crl.d.ts +33 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/stencil-public-runtime.d.ts +29 -0
- package/dist/types/utils/download.d.ts +16 -16
- package/dist/types/utils/l10n.d.ts +56 -56
- package/dist/types/utils/read_file.d.ts +7 -7
- package/hydrate/index.d.ts +2 -2
- package/hydrate/index.js +11369 -9539
- package/package.json +21 -13
- package/dist/cjs/actions-19013d4a.js +0 -23
- package/dist/cjs/arrow_top-834fb7ec.js +0 -37
- package/dist/cjs/button-14e2b73f.js +0 -77
- package/dist/cjs/certification_request-5672c667.js.map +0 -1
- package/dist/cjs/crl-3f681d44.js +0 -322
- package/dist/cjs/crl-3f681d44.js.map +0 -1
- package/dist/cjs/cross-9872c473.js +0 -51
- package/dist/cjs/download-0fa5b33c.js +0 -476
- package/dist/cjs/download-0fa5b33c.js.map +0 -1
- package/dist/cjs/download-254ddc57.js +0 -23
- package/dist/cjs/index-efd561e9.js.map +0 -1
- package/dist/cjs/link-6aea0be4.js +0 -25
- package/dist/cjs/miscellaneous-905ec852.js +0 -1416
- package/dist/cjs/miscellaneous-905ec852.js.map +0 -1
- package/dist/cjs/x509_certificate-69764c52.js +0 -160
- package/dist/cjs/x509_certificate-69764c52.js.map +0 -1
- package/dist/collection/crypto/crl.js +0 -92
- package/dist/collection/crypto/crl.js.map +0 -1
- package/dist/collection/crypto/csr.js +0 -99
- package/dist/collection/crypto/csr.js.map +0 -1
- package/dist/esm/actions-8d745b2a.js +0 -21
- package/dist/esm/arrow_top-fc298828.js +0 -34
- package/dist/esm/button-35146bdd.js +0 -74
- package/dist/esm/certification_request-d5ea5973.js.map +0 -1
- package/dist/esm/crl-d13d9ec5.js +0 -318
- package/dist/esm/crl-d13d9ec5.js.map +0 -1
- package/dist/esm/cross-9ec9a759.js +0 -47
- package/dist/esm/download-0cc3077a.js +0 -21
- package/dist/esm/download-aacb6eff.js +0 -470
- package/dist/esm/download-aacb6eff.js.map +0 -1
- package/dist/esm/index-4079bbb5.js.map +0 -1
- package/dist/esm/link-ad24c3be.js +0 -23
- package/dist/esm/miscellaneous-cdfd8905.js +0 -1399
- package/dist/esm/miscellaneous-cdfd8905.js.map +0 -1
- package/dist/esm/x509_certificate-a9fcab55.js +0 -158
- package/dist/esm/x509_certificate-a9fcab55.js.map +0 -1
- package/dist/esm-es5/button-35146bdd.js +0 -19
- package/dist/esm-es5/certification_request-d5ea5973.js.map +0 -1
- package/dist/esm-es5/crl-d13d9ec5.js +0 -33
- package/dist/esm-es5/crl-d13d9ec5.js.map +0 -1
- package/dist/esm-es5/download-aacb6eff.js +0 -43
- package/dist/esm-es5/download-aacb6eff.js.map +0 -1
- package/dist/esm-es5/index-4079bbb5.js +0 -6
- package/dist/esm-es5/index-4079bbb5.js.map +0 -1
- package/dist/esm-es5/miscellaneous-cdfd8905.js.map +0 -1
- package/dist/esm-es5/x509_certificate-a9fcab55.js +0 -12
- package/dist/esm-es5/x509_certificate-a9fcab55.js.map +0 -1
- package/dist/peculiar/p-0b356bb5.js +0 -6
- package/dist/peculiar/p-0b356bb5.js.map +0 -1
- package/dist/peculiar/p-14f281b0.system.js +0 -43
- package/dist/peculiar/p-14f281b0.system.js.map +0 -1
- package/dist/peculiar/p-2fcad8cb.system.js +0 -20
- package/dist/peculiar/p-33196289.entry.js +0 -5
- package/dist/peculiar/p-33196289.entry.js.map +0 -1
- package/dist/peculiar/p-3b395604.system.entry.js +0 -5
- package/dist/peculiar/p-3b395604.system.entry.js.map +0 -1
- package/dist/peculiar/p-48474b8d.js +0 -12
- package/dist/peculiar/p-48474b8d.js.map +0 -1
- package/dist/peculiar/p-4a6ceeda.js +0 -97
- package/dist/peculiar/p-4a6ceeda.js.map +0 -1
- package/dist/peculiar/p-5151cb6f.system.entry.js +0 -5
- package/dist/peculiar/p-5151cb6f.system.entry.js.map +0 -1
- package/dist/peculiar/p-53784f15.system.entry.js +0 -5
- package/dist/peculiar/p-53784f15.system.entry.js.map +0 -1
- package/dist/peculiar/p-59e5ac12.js +0 -43
- package/dist/peculiar/p-59e5ac12.js.map +0 -1
- package/dist/peculiar/p-5aabeba7.system.js +0 -6
- package/dist/peculiar/p-5aabeba7.system.js.map +0 -1
- package/dist/peculiar/p-5ab007e9.entry.js +0 -5
- package/dist/peculiar/p-5ab007e9.entry.js.map +0 -1
- package/dist/peculiar/p-609ee9f0.entry.js +0 -5
- package/dist/peculiar/p-609ee9f0.entry.js.map +0 -1
- package/dist/peculiar/p-67156853.js.map +0 -1
- package/dist/peculiar/p-6cb88fd6.system.js +0 -13
- package/dist/peculiar/p-6daee4d7.system.js +0 -369
- package/dist/peculiar/p-6daee4d7.system.js.map +0 -1
- package/dist/peculiar/p-6e48afc4.system.js +0 -34
- package/dist/peculiar/p-6e48afc4.system.js.map +0 -1
- package/dist/peculiar/p-718982f4.system.entry.js +0 -111
- package/dist/peculiar/p-718982f4.system.entry.js.map +0 -1
- package/dist/peculiar/p-7f9beaa8.js +0 -19
- package/dist/peculiar/p-80832207.system.js +0 -5
- package/dist/peculiar/p-80832207.system.js.map +0 -1
- package/dist/peculiar/p-8fac1d56.js +0 -33
- package/dist/peculiar/p-8fac1d56.js.map +0 -1
- package/dist/peculiar/p-94a453d7.js +0 -12
- package/dist/peculiar/p-a3eeb94b.system.js +0 -5
- package/dist/peculiar/p-a67b8793.system.entry.js.map +0 -1
- package/dist/peculiar/p-a720c0a5.system.entry.js +0 -13
- package/dist/peculiar/p-a720c0a5.system.entry.js.map +0 -1
- package/dist/peculiar/p-a7386b78.entry.js +0 -12
- package/dist/peculiar/p-a7386b78.entry.js.map +0 -1
- package/dist/peculiar/p-ab7dc738.system.js +0 -13
- package/dist/peculiar/p-ab7dc738.system.js.map +0 -1
- package/dist/peculiar/p-b313be9e.system.js +0 -13
- package/dist/peculiar/p-c35b180c.entry.js.map +0 -1
- package/dist/peculiar/p-c99507d4.system.js +0 -20
- package/dist/peculiar/p-ddae2f8e.system.js +0 -27
- package/dist/peculiar/p-e0f4bda5.system.js +0 -97
- package/dist/peculiar/p-e0f4bda5.system.js.map +0 -1
- package/dist/peculiar/p-e6a3b4d4.system.js +0 -13
- package/dist/peculiar/p-f86279f6.entry.js +0 -110
- package/dist/peculiar/p-f86279f6.entry.js.map +0 -1
- package/dist/types/crypto/crl.d.ts +0 -34
- package/dist/types/crypto/csr.d.ts +0 -41
- /package/dist/esm-es5/{actions-8d745b2a.js.map → actions-aebcbc9d.js.map} +0 -0
- /package/dist/esm-es5/{arrow_top-fc298828.js.map → arrow_top-aee1ee02.js.map} +0 -0
- /package/dist/esm-es5/{button-35146bdd.js.map → button-a2fabf9a.js.map} +0 -0
- /package/dist/esm-es5/{cross-9ec9a759.js.map → cross-1377606f.js.map} +0 -0
- /package/dist/esm-es5/{download-0cc3077a.js.map → download-14dc1047.js.map} +0 -0
- /package/dist/esm-es5/{link-ad24c3be.js.map → link-7e4e9060.js.map} +0 -0
- /package/dist/peculiar/{p-6cb88fd6.system.js.map → p-243244af.system.js.map} +0 -0
- /package/dist/peculiar/{p-0fc2e2b4.js.map → p-27ca6743.js.map} +0 -0
- /package/dist/peculiar/{p-a3eeb94b.system.js.map → p-28b4d316.system.js.map} +0 -0
- /package/dist/peculiar/{p-7f9beaa8.js.map → p-4bc5ddbe.js.map} +0 -0
- /package/dist/peculiar/{p-b313be9e.system.js.map → p-5a662d6f.system.js.map} +0 -0
- /package/dist/peculiar/{p-e6a3b4d4.system.js.map → p-8bbee8f4.system.js.map} +0 -0
- /package/dist/peculiar/{p-370cee20.js.map → p-99efefea.js.map} +0 -0
- /package/dist/peculiar/{p-1ceb0fe3.js.map → p-a9487007.js.map} +0 -0
- /package/dist/peculiar/{p-17e3c47b.js.map → p-ae91d778.js.map} +0 -0
- /package/dist/peculiar/{p-94a453d7.js.map → p-e6a6e602.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["CertificateSummary","props","certificate","showIssuer","renderRow","name","value","h","Typography","variant","color","l10n","getString","subjectToString","issuerToString","serialNumber","version","validity","dateShort","notBefore","notAfter","certificatesViewerCss","CertificatesViewer","exports","this","isHasRoots","handleClickDetails","_this","certificateSelectedForDetails","detailsOpen","emit","handleModalClose","undefined","detailsClose","handleSearch","event","search","target","trim","class_1","prototype","handleMediaQueryChange","mobileScreenView","matches","componentWillLoad","certificatesDecodeAndSet","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","watchCertificates","newValue","oldValue","JSON","stringify","hasRoots","Array","isArray","certificates","data","_d","_i","length","decoded","X509Certificate","getThumbprint","_e","sent","push","body","tests","isRoot","console","error","error_1","isDecodeInProcess","certificatesDecoded","handleClickDownloadAsPem","downloadAsPEM","commonName","handleClickDownloadAsDer","downloadAsDER","handleClickRow","index","isExpandedRowClicked","expandedRow","getMaxColSpanValue","colSpan","renderCertificateButtonActions","isHasTestURLs","expired","revoked","valid","class","groups","__spreadArray","title","options","text","startIcon","DetailsIcon","onClick","DownloadIcon","_a","href","LinkIcon","_b","_c","renderExpandedRow","renderCertificatesRows","searchHighlight","highlightWithSearch","content","forEach","isExpandedRow","publicKeyValue","OIDs","signature","algorithm","filterWithSearch","certificateStringForSearch","issuerCommonName","thumbprints","join","toLowerCase","indexOf","certificate_row","m_expanded","key","Button","ArrowTopIcon","ArrowBottomIcon","renderCertificateDetailsModal","role","part","CrossIcon","renderSearch","onInput","type","disabled","placeholder","renderEmptyState","renderEmptySearchState","renderLoadingState","renderTableBody","certificatesRows","render","Host","String"],"sources":["src/components/certificate-summary/certificate-summary.tsx","src/components/certificates-viewer/certificates-viewer.scss?tag=peculiar-certificates-viewer&encapsulation=shadow","src/components/certificates-viewer/certificates-viewer.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { FunctionalComponent, h } from '@stencil/core';\nimport type { X509Certificate } from '../../crypto';\nimport { dateShort, l10n } from '../../utils';\nimport { Typography } from '../typography';\n\ninterface CertificateSummaryProps {\n certificate: X509Certificate;\n showIssuer?: boolean;\n}\n\nexport const CertificateSummary: FunctionalComponent<CertificateSummaryProps> = (props) => {\n const {\n certificate,\n showIssuer,\n } = props;\n\n const renderRow = (name: string | string[], value: string | number) => (\n <tr>\n <td>\n <Typography\n variant=\"b2\"\n color=\"gray-9\"\n >\n {name}\n </Typography>\n </td>\n <td>\n <Typography\n variant=\"b2\"\n color=\"black\"\n >\n {value}\n </Typography>\n </td>\n </tr>\n );\n\n return (\n <table>\n <tbody>\n {renderRow(\n l10n.getString('subjectName'),\n certificate.subjectToString(),\n )}\n {showIssuer && renderRow(\n l10n.getString('issuerName'),\n certificate.issuerToString(),\n )}\n\n {renderRow(\n l10n.getString('serialNumber'),\n certificate.serialNumber,\n )}\n {renderRow(\n l10n.getString('version'),\n certificate.version,\n )}\n {renderRow(\n l10n.getString('validity'),\n certificate.validity,\n )}\n {renderRow(\n l10n.getString('issued'),\n dateShort(certificate.notBefore),\n )}\n {renderRow(\n l10n.getString('expired'),\n dateShort(certificate.notAfter),\n )}\n </tbody>\n </table>\n );\n};\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n min-width: 280px;\n overflow: auto;\n position: relative;\n}\n\n.search_section {\n padding: var(--pv-size-base-4);\n border-bottom: 1px solid var(--pv-color-gray-4);\n}\n\n.input_search {\n height: var(--pv-size-base-8);\n width: 100%;\n outline: none;\n background-color: var(--pv-color-gray-1);\n padding: 0 var(--pv-size-base-2);\n border: 1px solid var(--pv-color-gray-7);\n border-radius: 4px;\n transition: background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s;\n &::placeholder {\n color: var(--pv-color-gray-9);\n }\n}\n\ntable {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n td, th {\n border-bottom: 1px solid var(--pv-color-gray-4);\n vertical-align: top;\n text-align: left;\n\n &:first-child {\n padding-right: 0;\n width: var(--pv-size-base-10);\n }\n &:last-child {\n padding-left: 0;\n width: var(--pv-size-base-10);\n }\n }\n\n th {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n\n &.col_action {\n padding: 0;\n }\n }\n\n td {\n padding: var(--pv-size-base-4);\n }\n\n tr {\n &.m_expanded {\n background: var(--pv-color-gray-1);\n\n > td {\n border-bottom: none;\n }\n }\n\n &.expanded_summary {\n background: var(--pv-color-gray-1);\n\n table {\n table-layout: initial;\n\n td {\n border-bottom: none;\n padding: var(--pv-size-base-2);\n\n &:first-child {\n width: 200px;\n }\n\n &:last-child {\n width: auto;\n }\n }\n }\n }\n }\n}\n\n.button_table_cell {\n margin-top: -3px;\n}\n\n.status_wrapper {\n text-align: center;\n height: var(--pv-size-base-16);\n vertical-align: middle;\n}\n\n.modal_wrapper {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n animation: fadeIn 200ms;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.modal_backdrop {\n background: var(--pv-color-black);\n z-index: -1;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0.5;\n}\n\n.modal_container {\n background: var(--pv-color-white);\n width: 100%;\n display: flex;\n max-height: calc(100% - 60px);\n flex-direction: column;\n margin: var(--pv-size-base-6);\n position: relative;\n outline: none;\n box-shadow: var(--pv-shadow-dark-hight);\n overflow: hidden;\n border: 0px;\n padding: 0px;\n max-width: 640px;\n border-radius: 4px;\n}\n\n.modal_header {\n padding: var(--pv-size-base-3) var(--pv-size-base-4);\n display: flex;\n flex: 0 0 auto;\n -webkit-box-pack: justify;\n justify-content: space-between;\n gap: var(--pv-size-base-2);\n border-bottom: 1px solid var(--pv-color-gray-5);\n}\n\n.modal_content {\n flex: 1 1 auto;\n overflow: auto;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tbody, tr, td {\n display: block;\n width: 100% !important;\n padding: 0;\n border: none;\n }\n\n thead {\n display: none;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n }\n\n .expanded_summary {\n padding: 0;\n }\n\n .certificate_row {\n border-bottom: 1px solid var(--pv-color-gray-5);\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n }\n\n .certificate_row_actions {\n padding-top: var(--pv-size-base-6);\n\n td {\n display: flex;\n justify-content: right;\n gap: var(--pv-size-base-4);\n }\n }\n }\n\n .button_table_cell {\n margin-top: 0;\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Event,\n EventEmitter,\n Build,\n} from '@stencil/core';\n\nimport { X509Certificate } from '../../crypto';\nimport { OIDs } from '../../constants/oids';\nimport { l10n } from '../../utils';\nimport { Typography } from '../typography';\nimport { CertificateSummary } from '../certificate-summary';\nimport { Button } from '../button';\nimport {\n DownloadIcon,\n LinkIcon,\n DetailsIcon,\n ArrowBottomIcon,\n ArrowTopIcon,\n CrossIcon,\n} from '../icons';\n\nexport interface ICertificate {\n value: string;\n name?: string;\n tests?: {\n valid?: string;\n revoked?: string;\n expired?: string;\n };\n}\n\ninterface ICertificateDecoded {\n body: X509Certificate;\n tests?: ICertificate['tests'];\n name?: string;\n}\n\n@Component({\n tag: 'peculiar-certificates-viewer',\n styleUrl: 'certificates-viewer.scss',\n shadow: true,\n})\nexport class CertificatesViewer {\n private isHasRoots: boolean = false;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * List of certificates values for decode and show in the list.\n * <br />\n * **NOTE**: If you do not provide a `name` value when\n * invocing the component it will take the first Subject CN value.\n * <br />\n * **NOTE**: If you do not provide a `tests` this column will be ommited from the rendered page.\n * <br />\n * **NOTE**: If the supplied certificates are self-signed the issuer column will be ommited.\n */\n @Prop() certificates: ICertificate[] = [];\n\n /**\n * Use filter in the list when search is changed.\n */\n @Prop() filterWithSearch: boolean = true;\n\n /**\n * Use highlight chapters in the list when search is changed.\n */\n @Prop() highlightWithSearch: boolean = true;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n /**\n * Emitted when the user open certificate details modal.\n */\n @Event() detailsOpen!: EventEmitter<X509Certificate>;\n\n /**\n * Emitted when the user close certificate details modal.\n */\n @Event() detailsClose!: EventEmitter<void>;\n\n @State() mobileScreenView: boolean = false;\n\n @State() search: string = '';\n\n @State() certificatesDecoded: ICertificateDecoded[] = [];\n\n @State() expandedRow?: number;\n\n @State() certificateSelectedForDetails?: X509Certificate;\n\n @State() isDecodeInProcess: boolean = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.certificatesDecodeAndSet();\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n @Watch('certificates')\n watchCertificates(newValue: ICertificate[], oldValue: ICertificate[]) {\n /**\n * Prevent rerender after set the same `certificates` prop.\n */\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n this.certificatesDecodeAndSet();\n }\n }\n\n async certificatesDecodeAndSet() {\n let hasRoots = false;\n\n if (!Array.isArray(this.certificates)) {\n return;\n }\n\n const data: ICertificateDecoded[] = [];\n\n // eslint-disable-next-line no-restricted-syntax\n for (const certificate of this.certificates) {\n try {\n const decoded = new X509Certificate(certificate.value);\n\n await decoded.getThumbprint('SHA-1');\n\n data.push({\n body: decoded,\n tests: certificate.tests,\n name: certificate.name,\n });\n\n if (!hasRoots && decoded.isRoot) {\n hasRoots = true;\n }\n } catch (error) {\n console.error('Error certificate parse:', error);\n }\n }\n\n this.isHasRoots = hasRoots;\n this.isDecodeInProcess = false;\n this.certificatesDecoded = data;\n }\n\n // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsPem(certificate: ICertificateDecoded) {\n certificate.body.downloadAsPEM(certificate.name || certificate.body.commonName);\n }\n\n // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsDer(certificate: ICertificateDecoded) {\n certificate.body.downloadAsDER(certificate.name || certificate.body.commonName);\n }\n\n private handleClickDetails = (certificate: X509Certificate) => {\n this.certificateSelectedForDetails = certificate;\n this.detailsOpen.emit(certificate);\n };\n\n private handleModalClose = () => {\n this.certificateSelectedForDetails = undefined;\n\n this.detailsClose.emit();\n };\n\n private handleClickRow(index: number) {\n const isExpandedRowClicked = this.expandedRow === index;\n\n this.expandedRow = isExpandedRowClicked\n ? undefined\n : index;\n }\n\n private handleSearch = (event: any) => {\n this.search = event.target.value.trim();\n };\n\n private getMaxColSpanValue() {\n let colSpan = 5;\n\n if (!this.isHasRoots) {\n colSpan += 1;\n }\n\n return colSpan;\n }\n\n private renderCertificateButtonActions(certificate: ICertificateDecoded) {\n const isHasTestURLs = certificate.tests\n && (certificate.tests.expired || certificate.tests.revoked || certificate.tests.valid);\n\n return (\n <peculiar-button-menu\n class=\"button_table_cell\"\n groups={[\n {\n title: l10n.getString('previewCertificate'),\n options: [\n {\n text: l10n.getString('viewDetails'),\n startIcon: <DetailsIcon />,\n onClick: () => this.handleClickDetails(certificate.body),\n },\n ],\n },\n {\n title: l10n.getString('downloadOptions'),\n options: [\n {\n text: l10n.getString('download.pem'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsPem(certificate),\n },\n {\n text: l10n.getString('download.der'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsDer(certificate),\n },\n ],\n },\n ...(isHasTestURLs ? [{\n title: l10n.getString('testURLs'),\n options: [\n ...(certificate.tests?.valid ? [{\n text: l10n.getString('valid'),\n href: certificate.tests.valid,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.revoked ? [{\n text: l10n.getString('revoked'),\n href: certificate.tests.revoked,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.expired ? [{\n text: l10n.getString('expired'),\n href: certificate.tests.expired,\n startIcon: <LinkIcon />,\n }] : []),\n ],\n }] : []),\n ]}\n />\n );\n }\n\n private renderExpandedRow(certificate: X509Certificate) {\n const colSpan = this.getMaxColSpanValue() - 2;\n\n return (\n <tr class=\"expanded_summary\">\n <td />\n <td colSpan={colSpan}>\n <CertificateSummary\n certificate={certificate}\n showIssuer={!certificate.isRoot}\n />\n </td>\n <td />\n </tr>\n );\n }\n\n private renderCertificatesRows() {\n const searchHighlight = this.highlightWithSearch\n ? this.search\n : '';\n const content = [];\n\n this.certificatesDecoded.forEach((certificate, index) => {\n const isExpandedRow = index === this.expandedRow;\n const publicKeyValue = OIDs[certificate.body.signature.algorithm]\n || certificate.body.signature.algorithm;\n\n if (this.filterWithSearch && this.search) {\n const certificateStringForSearch = [\n publicKeyValue,\n certificate.body.issuerCommonName,\n certificate.name,\n certificate.body.commonName,\n certificate.body.thumbprints['SHA-1'],\n ]\n .join(' ')\n .toLowerCase();\n\n if (certificateStringForSearch.indexOf(this.search.toLowerCase()) === -1) {\n return;\n }\n }\n\n if (this.mobileScreenView) {\n content.push([\n <tr\n class={{\n certificate_row: true,\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <table>\n <tbody>\n {!this.isHasRoots && (\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('issuer')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n )}\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('name')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.name || certificate.body.commonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('publicKey')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('fingerprint')}\n (SHA-1)\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n {isExpandedRow && this.renderExpandedRow(certificate.body)}\n <tr class=\"certificate_row_actions\">\n <td>\n {this.renderCertificateButtonActions(certificate)}\n <Button\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>,\n ]);\n\n return;\n }\n\n content.push([\n <tr\n class={{\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <Button\n class=\"button_table_cell\"\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n />\n </td>\n {!this.isHasRoots && (\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n )}\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.name || certificate.body.commonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n {this.renderCertificateButtonActions(certificate)}\n </td>\n </tr>,\n isExpandedRow && this.renderExpandedRow(certificate.body),\n ]);\n });\n\n return content;\n }\n\n private renderCertificateDetailsModal() {\n if (!this.certificateSelectedForDetails) {\n return null;\n }\n\n return (\n <div\n class=\"modal_wrapper\"\n role=\"presentation\"\n aria-hidden=\"false\"\n part=\"presentation\"\n >\n <div\n class=\"modal_backdrop\"\n onClick={this.handleModalClose}\n aria-hidden=\"true\"\n />\n <div\n class=\"modal_container\"\n role=\"dialog\"\n part=\"presentation_container\"\n >\n <header class=\"modal_header\">\n <Typography\n variant=\"h4\"\n >\n {l10n.getString('certificateDetails')}\n </Typography>\n <Button\n onClick={this.handleModalClose}\n startIcon={<CrossIcon />}\n />\n </header>\n <div class=\"modal_content\">\n <peculiar-certificate-viewer\n certificate={this.certificateSelectedForDetails}\n mobileMediaQueryString={this.mobileMediaQueryString}\n />\n </div>\n </div>\n </div>\n );\n }\n\n private renderSearch() {\n if (!this.filterWithSearch && !this.highlightWithSearch) {\n return null;\n }\n\n return (\n <div class=\"search_section\">\n <input\n onInput={this.handleSearch}\n type=\"search\"\n value=\"\"\n class=\"input_search t-b3 c-black\"\n disabled={!this.certificatesDecoded.length}\n placeholder=\"Search\"\n />\n </div>\n );\n }\n\n private renderEmptyState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n There are no certificates available.\n </Typography>\n </td>\n </tr>\n );\n }\n\n private renderEmptySearchState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n No results found for “\n {this.search}\n “\n </Typography>\n </td>\n </tr>\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n private renderLoadingState() {\n return (\n <div class=\"loading_container\">\n <peculiar-circular-progress />\n </div>\n );\n }\n\n private renderTableBody() {\n if (this.isDecodeInProcess) {\n return null;\n }\n\n if (!this.certificatesDecoded.length) {\n return this.renderEmptyState();\n }\n\n const certificatesRows = this.renderCertificatesRows();\n\n if (this.search && !certificatesRows.length) {\n return this.renderEmptySearchState();\n }\n\n return certificatesRows;\n }\n\n render() {\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n {this.renderSearch()}\n <table>\n {!this.mobileScreenView && (\n <thead>\n <tr>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <th />\n {!this.isHasRoots && (\n <th class=\"col_issuer\">\n <Typography variant=\"s2\">\n {l10n.getString('issuer')}\n </Typography>\n </th>\n )}\n <th class=\"col_name\">\n <Typography variant=\"s2\">\n {l10n.getString('name')}\n </Typography>\n </th>\n <th class=\"col_public_key\">\n <Typography variant=\"s2\">\n {l10n.getString('publicKey')}\n </Typography>\n </th>\n <th class=\"col_fingerprint\">\n <Typography variant=\"s2\">\n {l10n.getString('fingerprint')}\n (SHA-1)\n </Typography>\n </th>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <th />\n </tr>\n </thead>\n )}\n <tbody>\n {this.renderTableBody()}\n </tbody>\n </table>\n\n {this.renderCertificateDetailsModal()}\n {this.isDecodeInProcess && this.renderLoadingState()}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(e,t,r,a){function o(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function c(e){try{s(a.next(e))}catch(e){i(e)}}function n(e){try{s(a["throw"](e))}catch(e){i(e)}}function s(e){e.done?r(e.value):o(e.value).then(c,n)}s((a=a.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,o,i,c;return c={next:n(0),throw:n(1),return:n(2)},typeof Symbol==="function"&&(c[Symbol.iterator]=function(){return this}),c;function n(e){return function(t){return s([e,t])}}function s(n){if(a)throw new TypeError("Generator is already executing.");while(c&&(c=0,n[0]&&(r=0)),r)try{if(a=1,o&&(i=n[0]&2?o["return"]:n[0]?o["throw"]||((i=o["return"])&&i.call(o),0):o.next)&&!(i=i.call(o,n[1])).done)return i;if(o=0,i)n=[n[0]&2,i.value];switch(n[0]){case 0:case 1:i=n;break;case 4:r.label++;return{value:n[1],done:false};case 5:r.label++;o=n[1];n=[0];continue;case 7:n=r.ops.pop();r.trys.pop();continue;default:if(!(i=r.trys,i=i.length>0&&i[i.length-1])&&(n[0]===6||n[0]===2)){r=0;continue}if(n[0]===3&&(!i||n[1]>i[0]&&n[1]<i[3])){r.label=n[1];break}if(n[0]===6&&r.label<i[1]){r.label=i[1];i=n;break}if(i&&r.label<i[2]){r.label=i[2];r.ops.push(n);break}if(i[2])r.ops.pop();r.trys.pop();continue}n=t.call(e,r)}catch(e){n=[6,e];o=0}finally{a=i=0}if(n[0]&5)throw n[1];return{value:n[0]?n[1]:void 0,done:true}}};
|
|
2
|
-
/*!
|
|
3
|
-
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
4
|
-
*/System.register(["./p-5aabeba7.system.js","./p-e0f4bda5.system.js","./p-14f281b0.system.js","./p-ab7dc738.system.js","./p-6e48afc4.system.js","./p-2fcad8cb.system.js"],(function(e){"use strict";var t,r,a,o,i,c,n,s,v,l,p,h,d,u,f;return{setters:[function(e){t=e.r;r=e.c;a=e.h;o=e.H},function(e){i=e.i;c=e.a;n=e.b;s=e.c;v=e.d},function(){},function(e){l=e.X},function(e){p=e.X;h=e.C;d=e.a},function(e){u=e.T;f=e.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
|
-
function g(e){return new Promise((function(t,r){var a=new FileReader;a.onload=function(){return t({value:a.result,fileName:e.name,fileSize:e.size,sourceMime:e.type})};a.onerror=function(){return r(a.error)};a.readAsBinaryString(e)}))}var b="*{-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%}.textarea{min-height:300px;width:100%;border-radius:4px;border:1px solid var(--pv-color-gray-5);padding:14px;font-family:monospace;resize:vertical}.viewer{margin-top:var(--pv-size-base-12)}.controls{margin-top:var(--pv-size-base-2);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pv-size-base-2)}.control_row{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:var(--pv-size-base)}";var y=e("peculiar_certificate_decoder",function(){function e(e){var a=this;t(this,e);this.successParse=r(this,"successParse",7);this.clearCertificate=r(this,"clearCertificate",7);this.handleClickDecode=function(){var e=a.inputPaste.value;if(e){a.decode(e)}};this.handleClickClear=function(){a.clearValue()};this.handleChangeInputFile=function(e){return __awaiter(a,void 0,void 0,(function(){var t,r;return __generator(this,(function(a){switch(a.label){case 0:t=e.target;if(!t.files)return[3,2];return[4,g(t.files[0])];case 1:r=a.sent();if(typeof r.value==="string"){this.decode(r.value)}t.value="";a.label=2;case 2:return[2]}}))}))};this.handleChangeExample=function(e){if(e.target.value){a.decode(e.target.value)}else{a.clearValue()}};this.handleDropFile=function(e){return __awaiter(a,void 0,void 0,(function(){var t,r;return __generator(this,(function(a){switch(a.label){case 0:e.stopPropagation();e.preventDefault();t=e.dataTransfer;if(!t.files)return[3,2];return[4,g(t.files[0])];case 1:r=a.sent();if(typeof r.value==="string"){this.decode(r.value)}a.label=2;case 2:return[2]}}))}))};this.certificateExamples=undefined;this.defaultCertificate=undefined;this.certificateDecoded=undefined}e.prototype.componentDidLoad=function(){var e=this;if(this.defaultCertificate){setTimeout((function(){return e.decode(e.defaultCertificate)}),100)}};e.prototype.clearValue=function(){this.inputPaste.value="";this.certificateDecoded=null;this.clearCertificate.emit()};e.prototype.setValue=function(e){this.certificateDecoded=e;this.inputPaste.value=e.exportAsPemFormatted();this.successParse.emit(e.exportAsBase64())};e.prototype.decode=function(e){var t=i(e);var r=c(e);var a=n(e);var o=s(e);var u=v(e);var f;var g;if(t&&!(r||o||a||u)){this.clearValue();alert("Unsupported file type. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.");return}try{if(r){f=new l(e)}if(o){f=new p(e)}if(a){f=new h(e)}if(u){f=new d(e)}}catch(e){g=e}if(!f){try{f=new l(e)}catch(e){g=e}}if(!f){try{f=new p(e)}catch(e){g=e}}if(!f){try{f=new h(e)}catch(e){g=e}}if(!f){try{f=new d(e)}catch(e){g=e}}if(!f){this.clearValue();console.log(g);alert("Error decoding file. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.")}else{this.setValue(f)}};e.prototype.render=function(){var e=this;var t;return a(o,null,a("textarea",{placeholder:"Certificate DER or PEM",class:"textarea t-b2 c-black",ref:function(t){e.inputPaste=t},onDrop:this.handleDropFile}),a("div",{class:"controls"},a("div",{class:"control_row"},a(u,{variant:"b3",color:"secondary-tint-2"},"Drag or load file:"),a("input",{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:""})),((t=this.certificateExamples)===null||t===void 0?void 0:t.length)&&a("div",{class:"control_row"},a(u,{variant:"b3",color:"secondary-tint-2"},"Load examples:"),a("select",{onChange:this.handleChangeExample},a("option",{value:""},"None"),this.certificateExamples.map((function(e){return a("option",{value:e.value},e.title)})))),a("div",{class:"control_row"},a(f,{onClick:this.handleClickDecode},"Decode"),a(f,{onClick:this.handleClickClear},"Clear"))),this.certificateDecoded instanceof l&&a("peculiar-certificate-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}),this.certificateDecoded instanceof p&&a("peculiar-attribute-certificate-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}),this.certificateDecoded instanceof h&&a("peculiar-csr-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}),this.certificateDecoded instanceof d&&a("peculiar-crl-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}))};return e}());y.style=b}}}));
|
|
13
|
-
//# sourceMappingURL=p-a720c0a5.system.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["readAsBinaryString","file","Promise","resolve","reject","reader","FileReader","onload","value","result","fileName","name","fileSize","size","sourceMime","type","onerror","error","certificateDecoderCss","CertificateDecoder","exports","this","handleClickDecode","_this","inputPaste","decode","handleClickClear","clearValue","handleChangeInputFile","event","__awaiter","element","target","files","_b","sent","handleChangeExample","handleDropFile","stopPropagation","preventDefault","dataTransfer","class_1","prototype","componentDidLoad","defaultCertificate","setTimeout","certificateDecoded","clearCertificate","emit","setValue","exportAsPemFormatted","successParse","exportAsBase64","certificate","isPem","validator.isPem","isX509Pem","validator.isX509Pem","isPkcs10Pem","validator.isPkcs10Pem","isX509AttributePem","validator.isX509AttributePem","isX509CRLPem","validator.isX509CRLPem","decoded","decodeError","alert","X509Certificate","X509AttributeCertificate","CSR","CRL","console","log","render","h","Host","placeholder","class","ref","el","onDrop","Typography","variant","color","accept","onChange","_a","certificateExamples","length","map","example","title","Button","onClick","download"],"sources":["src/utils/read_file.ts","src/components/certificate-decoder/certificate-decoder.scss?tag=peculiar-certificate-decoder&encapsulation=shadow","src/components/certificate-decoder/certificate-decoder.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\nexport type FileValue = string | ArrayBuffer | null;\nexport interface IFileDataType extends Blob {\n name?: string;\n mimeType?: string;\n lastModified?: number;\n}\nexport interface IReadFileResult {\n value: FileValue;\n fileName: string | undefined;\n fileSize: number | undefined;\n sourceMime: string | undefined;\n}\n\n/**\n * Read file as Binary string\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsBinaryString(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsBinaryString(file: IFileDataType): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsBinaryString(file);\n });\n}\n\n/**\n * Read file as ArrayBuffer\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsArrayBuffer(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsArrayBuffer(file: IFileDataType): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsArrayBuffer(file);\n });\n}\n\n/**\n * Read file as Data URL\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsDataUrl(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsDataUrl(file: IFileDataType): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsDataURL(file);\n });\n}\n\n/**\n * Read file as Text\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsText(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsText(file: IFileDataType, options?: string): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsText(file, options);\n });\n}\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n}\n\n.textarea {\n min-height: 300px;\n width: 100%;\n border-radius: 4px;\n border: 1px solid var(--pv-color-gray-5);;\n padding: 14px;\n font-family: monospace;\n resize: vertical;\n}\n\n.viewer {\n margin-top: var(--pv-size-base-12);\n}\n\n.controls {\n margin-top: var(--pv-size-base-2);\n display: flex;\n flex-direction: column;\n gap: var(--pv-size-base-2);\n}\n\n.control_row {\n display: flex;\n align-items: center;\n gap: var(--pv-size-base);\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 State,\n Prop,\n Event,\n EventEmitter,\n} from '@stencil/core';\n\nimport { validator, readAsBinaryString } from '../../utils';\nimport {\n X509Certificate,\n X509AttributeCertificate,\n CSR,\n CRL,\n} from '../../crypto';\nimport { Button } from '../button';\nimport { Typography } from '../typography';\n\n@Component({\n tag: 'peculiar-certificate-decoder',\n styleUrl: 'certificate-decoder.scss',\n shadow: true,\n})\nexport class CertificateDecoder {\n private inputPaste?: HTMLTextAreaElement;\n\n /**\n * The example certificate value for decode and show details. Use PEM or DER.\n */\n @Prop() certificateExamples?: {\n title: string;\n value: string;\n }[];\n\n /**\n * The default certificate value for decode and show details. Use PEM or DER.\n */\n @Prop() defaultCertificate?: string;\n\n @State() certificateDecoded: X509Certificate | X509AttributeCertificate | CSR | CRL;\n\n /**\n * Emitted when the certificate has been successfully parsed.\n */\n @Event() successParse!: EventEmitter<string>;\n\n /**\n * Emitted when the certificate has been removed.\n */\n @Event() clearCertificate!: EventEmitter<void>;\n\n componentDidLoad() {\n if (this.defaultCertificate) {\n /**\n * Prevent Stencil warning about re-render\n */\n setTimeout(() => this.decode(this.defaultCertificate), 100);\n }\n }\n\n private handleClickDecode = () => {\n const { value } = this.inputPaste;\n\n if (value) {\n this.decode(value);\n }\n };\n\n private handleClickClear = () => {\n this.clearValue();\n };\n\n private handleChangeInputFile = async (event: any) => {\n const element = event.target;\n\n if (element.files) {\n const file = await readAsBinaryString(element.files[0]);\n\n if (typeof file.value === 'string') {\n this.decode(file.value);\n }\n\n element.value = '';\n }\n };\n\n private handleChangeExample = (event: any) => {\n if (event.target.value) {\n this.decode(event.target.value);\n } else {\n this.clearValue();\n }\n };\n\n private handleDropFile = async (event: any) => {\n event.stopPropagation();\n event.preventDefault();\n\n const element = event.dataTransfer;\n\n if (element.files) {\n const file = await readAsBinaryString(element.files[0]);\n\n if (typeof file.value === 'string') {\n this.decode(file.value);\n }\n }\n };\n\n clearValue() {\n this.inputPaste.value = '';\n this.certificateDecoded = null;\n this.clearCertificate.emit();\n }\n\n setValue(value: X509Certificate | X509AttributeCertificate | CSR | CRL) {\n this.certificateDecoded = value;\n this.inputPaste.value = value.exportAsPemFormatted();\n this.successParse.emit(value.exportAsBase64());\n }\n\n decode(certificate: string) {\n const isPem = validator.isPem(certificate);\n const isX509Pem = validator.isX509Pem(certificate);\n const isPkcs10Pem = validator.isPkcs10Pem(certificate);\n const isX509AttributePem = validator.isX509AttributePem(certificate);\n const isX509CRLPem = validator.isX509CRLPem(certificate);\n let decoded: X509Certificate | X509AttributeCertificate | CSR | CRL;\n let decodeError: Error;\n\n if (isPem && !(isX509Pem || isX509AttributePem || isPkcs10Pem || isX509CRLPem)) {\n this.clearValue();\n\n alert('Unsupported file type. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.');\n\n return;\n }\n\n try {\n if (isX509Pem) {\n decoded = new X509Certificate(certificate);\n }\n\n if (isX509AttributePem) {\n decoded = new X509AttributeCertificate(certificate);\n }\n\n if (isPkcs10Pem) {\n decoded = new CSR(certificate);\n }\n\n if (isX509CRLPem) {\n decoded = new CRL(certificate);\n }\n } catch (error) {\n decodeError = error;\n }\n\n if (!decoded) {\n try {\n decoded = new X509Certificate(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n try {\n decoded = new X509AttributeCertificate(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n try {\n decoded = new CSR(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n try {\n decoded = new CRL(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n this.clearValue();\n\n console.log(decodeError);\n alert('Error decoding file. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.');\n } else {\n this.setValue(decoded);\n }\n }\n\n render() {\n return (\n <Host>\n <textarea\n placeholder=\"Certificate DER or PEM\"\n class=\"textarea t-b2 c-black\"\n ref={(el) => { this.inputPaste = el; }}\n onDrop={this.handleDropFile}\n />\n <div class=\"controls\">\n <div class=\"control_row\">\n <Typography\n variant=\"b3\"\n color=\"secondary-tint-2\"\n >\n Drag or load file:\n </Typography>\n <input\n type=\"file\"\n accept=\"application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl,.csr,.req,.crl\"\n onChange={this.handleChangeInputFile}\n value=\"\"\n />\n </div>\n {this.certificateExamples?.length && (\n <div class=\"control_row\">\n <Typography\n variant=\"b3\"\n color=\"secondary-tint-2\"\n >\n Load examples:\n </Typography>\n <select onChange={this.handleChangeExample}>\n <option value=\"\">None</option>\n {this.certificateExamples.map((example) => (\n <option value={example.value}>\n {example.title}\n </option>\n ))}\n </select>\n </div>\n )}\n <div class=\"control_row\">\n <Button\n onClick={this.handleClickDecode}\n >\n Decode\n </Button>\n <Button\n onClick={this.handleClickClear}\n >\n Clear\n </Button>\n </div>\n </div>\n {this.certificateDecoded instanceof X509Certificate && (\n <peculiar-certificate-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n {this.certificateDecoded instanceof X509AttributeCertificate && (\n <peculiar-attribute-certificate-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n {this.certificateDecoded instanceof CSR && (\n <peculiar-csr-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n {this.certificateDecoded instanceof CRL && (\n <peculiar-crl-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as t,c as e,h as r,H as o}from"./p-0b356bb5.js";import{i as a,a as s,b as c,c as i,d as n}from"./p-4a6ceeda.js";import"./p-59e5ac12.js";import{X as v}from"./p-48474b8d.js";import{X as p,C as l,a as h}from"./p-8fac1d56.js";import{T as g,B as d}from"./p-7f9beaa8.js";
|
|
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 b(t){return new Promise(((e,r)=>{const o=new FileReader;o.onload=()=>e({value:o.result,fileName:t.name,fileSize:t.size,sourceMime:t.type});o.onerror=()=>r(o.error);o.readAsBinaryString(t)}))}const 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%}.textarea{min-height:300px;width:100%;border-radius:4px;border:1px solid var(--pv-color-gray-5);padding:14px;font-family:monospace;resize:vertical}.viewer{margin-top:var(--pv-size-base-12)}.controls{margin-top:var(--pv-size-base-2);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--pv-size-base-2)}.control_row{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:var(--pv-size-base)}";const y=class{constructor(r){t(this,r);this.successParse=e(this,"successParse",7);this.clearCertificate=e(this,"clearCertificate",7);this.handleClickDecode=()=>{const{value:t}=this.inputPaste;if(t){this.decode(t)}};this.handleClickClear=()=>{this.clearValue()};this.handleChangeInputFile=async t=>{const e=t.target;if(e.files){const t=await b(e.files[0]);if(typeof t.value==="string"){this.decode(t.value)}e.value=""}};this.handleChangeExample=t=>{if(t.target.value){this.decode(t.target.value)}else{this.clearValue()}};this.handleDropFile=async t=>{t.stopPropagation();t.preventDefault();const e=t.dataTransfer;if(e.files){const t=await b(e.files[0]);if(typeof t.value==="string"){this.decode(t.value)}}};this.certificateExamples=undefined;this.defaultCertificate=undefined;this.certificateDecoded=undefined}componentDidLoad(){if(this.defaultCertificate){setTimeout((()=>this.decode(this.defaultCertificate)),100)}}clearValue(){this.inputPaste.value="";this.certificateDecoded=null;this.clearCertificate.emit()}setValue(t){this.certificateDecoded=t;this.inputPaste.value=t.exportAsPemFormatted();this.successParse.emit(t.exportAsBase64())}decode(t){const e=a(t);const r=s(t);const o=c(t);const g=i(t);const d=n(t);let b;let f;if(e&&!(r||g||o||d)){this.clearValue();alert("Unsupported file type. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.");return}try{if(r){b=new v(t)}if(g){b=new p(t)}if(o){b=new l(t)}if(d){b=new h(t)}}catch(t){f=t}if(!b){try{b=new v(t)}catch(t){f=t}}if(!b){try{b=new p(t)}catch(t){f=t}}if(!b){try{b=new l(t)}catch(t){f=t}}if(!b){try{b=new h(t)}catch(t){f=t}}if(!b){this.clearValue();console.log(f);alert("Error decoding file. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.")}else{this.setValue(b)}}render(){var t;return r(o,null,r("textarea",{placeholder:"Certificate DER or PEM",class:"textarea t-b2 c-black",ref:t=>{this.inputPaste=t},onDrop:this.handleDropFile}),r("div",{class:"controls"},r("div",{class:"control_row"},r(g,{variant:"b3",color:"secondary-tint-2"},"Drag or load file:"),r("input",{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:""})),((t=this.certificateExamples)===null||t===void 0?void 0:t.length)&&r("div",{class:"control_row"},r(g,{variant:"b3",color:"secondary-tint-2"},"Load examples:"),r("select",{onChange:this.handleChangeExample},r("option",{value:""},"None"),this.certificateExamples.map((t=>r("option",{value:t.value},t.title))))),r("div",{class:"control_row"},r(d,{onClick:this.handleClickDecode},"Decode"),r(d,{onClick:this.handleClickClear},"Clear"))),this.certificateDecoded instanceof v&&r("peculiar-certificate-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}),this.certificateDecoded instanceof p&&r("peculiar-attribute-certificate-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}),this.certificateDecoded instanceof l&&r("peculiar-csr-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}),this.certificateDecoded instanceof h&&r("peculiar-crl-viewer",{certificate:this.certificateDecoded,class:"viewer",download:true}))}};y.style=f;export{y as peculiar_certificate_decoder};
|
|
12
|
-
//# sourceMappingURL=p-a7386b78.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["readAsBinaryString","file","Promise","resolve","reject","reader","FileReader","onload","value","result","fileName","name","fileSize","size","sourceMime","type","onerror","error","certificateDecoderCss","CertificateDecoder","this","handleClickDecode","inputPaste","decode","handleClickClear","clearValue","handleChangeInputFile","async","event","element","target","files","handleChangeExample","handleDropFile","stopPropagation","preventDefault","dataTransfer","componentDidLoad","defaultCertificate","setTimeout","certificateDecoded","clearCertificate","emit","setValue","exportAsPemFormatted","successParse","exportAsBase64","certificate","isPem","validator.isPem","isX509Pem","validator.isX509Pem","isPkcs10Pem","validator.isPkcs10Pem","isX509AttributePem","validator.isX509AttributePem","isX509CRLPem","validator.isX509CRLPem","decoded","decodeError","alert","X509Certificate","X509AttributeCertificate","CSR","CRL","console","log","render","h","Host","placeholder","class","ref","el","onDrop","Typography","variant","color","accept","onChange","_a","certificateExamples","length","map","example","title","Button","onClick","download"],"sources":["src/utils/read_file.ts","src/components/certificate-decoder/certificate-decoder.scss?tag=peculiar-certificate-decoder&encapsulation=shadow","src/components/certificate-decoder/certificate-decoder.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\nexport type FileValue = string | ArrayBuffer | null;\nexport interface IFileDataType extends Blob {\n name?: string;\n mimeType?: string;\n lastModified?: number;\n}\nexport interface IReadFileResult {\n value: FileValue;\n fileName: string | undefined;\n fileSize: number | undefined;\n sourceMime: string | undefined;\n}\n\n/**\n * Read file as Binary string\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsBinaryString(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsBinaryString(file: IFileDataType): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsBinaryString(file);\n });\n}\n\n/**\n * Read file as ArrayBuffer\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsArrayBuffer(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsArrayBuffer(file: IFileDataType): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsArrayBuffer(file);\n });\n}\n\n/**\n * Read file as Data URL\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsDataUrl(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsDataUrl(file: IFileDataType): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsDataURL(file);\n });\n}\n\n/**\n * Read file as Text\n *\n * @example\n * ```js\n * const file = new File(['file'], 'file.pdf', { type: 'text/plain' });\n * readAsText(file)\n * .then(result => console.log('Readed success', result))\n * .catch(err => console.log('An error occured when reading file', err));\n * ```\n */\n\nexport function readAsText(file: IFileDataType, options?: string): Promise<IReadFileResult> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = () => resolve({\n value: reader.result,\n fileName: file.name,\n fileSize: file.size,\n sourceMime: file.type,\n });\n\n reader.onerror = () => reject(reader.error);\n\n reader.readAsText(file, options);\n });\n}\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n}\n\n.textarea {\n min-height: 300px;\n width: 100%;\n border-radius: 4px;\n border: 1px solid var(--pv-color-gray-5);;\n padding: 14px;\n font-family: monospace;\n resize: vertical;\n}\n\n.viewer {\n margin-top: var(--pv-size-base-12);\n}\n\n.controls {\n margin-top: var(--pv-size-base-2);\n display: flex;\n flex-direction: column;\n gap: var(--pv-size-base-2);\n}\n\n.control_row {\n display: flex;\n align-items: center;\n gap: var(--pv-size-base);\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 State,\n Prop,\n Event,\n EventEmitter,\n} from '@stencil/core';\n\nimport { validator, readAsBinaryString } from '../../utils';\nimport {\n X509Certificate,\n X509AttributeCertificate,\n CSR,\n CRL,\n} from '../../crypto';\nimport { Button } from '../button';\nimport { Typography } from '../typography';\n\n@Component({\n tag: 'peculiar-certificate-decoder',\n styleUrl: 'certificate-decoder.scss',\n shadow: true,\n})\nexport class CertificateDecoder {\n private inputPaste?: HTMLTextAreaElement;\n\n /**\n * The example certificate value for decode and show details. Use PEM or DER.\n */\n @Prop() certificateExamples?: {\n title: string;\n value: string;\n }[];\n\n /**\n * The default certificate value for decode and show details. Use PEM or DER.\n */\n @Prop() defaultCertificate?: string;\n\n @State() certificateDecoded: X509Certificate | X509AttributeCertificate | CSR | CRL;\n\n /**\n * Emitted when the certificate has been successfully parsed.\n */\n @Event() successParse!: EventEmitter<string>;\n\n /**\n * Emitted when the certificate has been removed.\n */\n @Event() clearCertificate!: EventEmitter<void>;\n\n componentDidLoad() {\n if (this.defaultCertificate) {\n /**\n * Prevent Stencil warning about re-render\n */\n setTimeout(() => this.decode(this.defaultCertificate), 100);\n }\n }\n\n private handleClickDecode = () => {\n const { value } = this.inputPaste;\n\n if (value) {\n this.decode(value);\n }\n };\n\n private handleClickClear = () => {\n this.clearValue();\n };\n\n private handleChangeInputFile = async (event: any) => {\n const element = event.target;\n\n if (element.files) {\n const file = await readAsBinaryString(element.files[0]);\n\n if (typeof file.value === 'string') {\n this.decode(file.value);\n }\n\n element.value = '';\n }\n };\n\n private handleChangeExample = (event: any) => {\n if (event.target.value) {\n this.decode(event.target.value);\n } else {\n this.clearValue();\n }\n };\n\n private handleDropFile = async (event: any) => {\n event.stopPropagation();\n event.preventDefault();\n\n const element = event.dataTransfer;\n\n if (element.files) {\n const file = await readAsBinaryString(element.files[0]);\n\n if (typeof file.value === 'string') {\n this.decode(file.value);\n }\n }\n };\n\n clearValue() {\n this.inputPaste.value = '';\n this.certificateDecoded = null;\n this.clearCertificate.emit();\n }\n\n setValue(value: X509Certificate | X509AttributeCertificate | CSR | CRL) {\n this.certificateDecoded = value;\n this.inputPaste.value = value.exportAsPemFormatted();\n this.successParse.emit(value.exportAsBase64());\n }\n\n decode(certificate: string) {\n const isPem = validator.isPem(certificate);\n const isX509Pem = validator.isX509Pem(certificate);\n const isPkcs10Pem = validator.isPkcs10Pem(certificate);\n const isX509AttributePem = validator.isX509AttributePem(certificate);\n const isX509CRLPem = validator.isX509CRLPem(certificate);\n let decoded: X509Certificate | X509AttributeCertificate | CSR | CRL;\n let decodeError: Error;\n\n if (isPem && !(isX509Pem || isX509AttributePem || isPkcs10Pem || isX509CRLPem)) {\n this.clearValue();\n\n alert('Unsupported file type. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.');\n\n return;\n }\n\n try {\n if (isX509Pem) {\n decoded = new X509Certificate(certificate);\n }\n\n if (isX509AttributePem) {\n decoded = new X509AttributeCertificate(certificate);\n }\n\n if (isPkcs10Pem) {\n decoded = new CSR(certificate);\n }\n\n if (isX509CRLPem) {\n decoded = new CRL(certificate);\n }\n } catch (error) {\n decodeError = error;\n }\n\n if (!decoded) {\n try {\n decoded = new X509Certificate(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n try {\n decoded = new X509AttributeCertificate(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n try {\n decoded = new CSR(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n try {\n decoded = new CRL(certificate);\n } catch (error) {\n decodeError = error;\n }\n }\n\n if (!decoded) {\n this.clearValue();\n\n console.log(decodeError);\n alert('Error decoding file. Please try to use Certificate/AttributeCertificate/CertificateRequest/CRL.');\n } else {\n this.setValue(decoded);\n }\n }\n\n render() {\n return (\n <Host>\n <textarea\n placeholder=\"Certificate DER or PEM\"\n class=\"textarea t-b2 c-black\"\n ref={(el) => { this.inputPaste = el; }}\n onDrop={this.handleDropFile}\n />\n <div class=\"controls\">\n <div class=\"control_row\">\n <Typography\n variant=\"b3\"\n color=\"secondary-tint-2\"\n >\n Drag or load file:\n </Typography>\n <input\n type=\"file\"\n accept=\"application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert,application/pkcs10,application/pkix-crl,.csr,.req,.crl\"\n onChange={this.handleChangeInputFile}\n value=\"\"\n />\n </div>\n {this.certificateExamples?.length && (\n <div class=\"control_row\">\n <Typography\n variant=\"b3\"\n color=\"secondary-tint-2\"\n >\n Load examples:\n </Typography>\n <select onChange={this.handleChangeExample}>\n <option value=\"\">None</option>\n {this.certificateExamples.map((example) => (\n <option value={example.value}>\n {example.title}\n </option>\n ))}\n </select>\n </div>\n )}\n <div class=\"control_row\">\n <Button\n onClick={this.handleClickDecode}\n >\n Decode\n </Button>\n <Button\n onClick={this.handleClickClear}\n >\n Clear\n </Button>\n </div>\n </div>\n {this.certificateDecoded instanceof X509Certificate && (\n <peculiar-certificate-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n {this.certificateDecoded instanceof X509AttributeCertificate && (\n <peculiar-attribute-certificate-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n {this.certificateDecoded instanceof CSR && (\n <peculiar-csr-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n {this.certificateDecoded instanceof CRL && (\n <peculiar-crl-viewer\n certificate={this.certificateDecoded}\n class=\"viewer\"\n download\n />\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
var __extends=this&&this.__extends||function(){var t=function(e,r){t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r))t[r]=e[r]};return t(e,r)};return function(e,r){if(typeof r!=="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();var __awaiter=this&&this.__awaiter||function(t,e,r,n){function o(t){return t instanceof r?t:new r((function(e){e(t)}))}return new(r||(r=Promise))((function(r,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function s(t){try{u(n["throw"](t))}catch(t){i(t)}}function u(t){t.done?r(t.value):o(t.value).then(a,s)}u((n=n.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},n,o,i,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(t){return function(e){return u([t,e])}}function u(s){if(n)throw new TypeError("Generator is already executing.");while(a&&(a=0,s[0]&&(r=0)),r)try{if(n=1,o&&(i=s[0]&2?o["return"]:s[0]?o["throw"]||((i=o["return"])&&i.call(o),0):o.next)&&!(i=i.call(o,s[1])).done)return i;if(o=0,i)s=[s[0]&2,i.value];switch(s[0]){case 0:case 1:i=s;break;case 4:r.label++;return{value:s[1],done:false};case 5:r.label++;o=s[1];s=[0];continue;case 7:s=r.ops.pop();r.trys.pop();continue;default:if(!(i=r.trys,i=i.length>0&&i[i.length-1])&&(s[0]===6||s[0]===2)){r=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){r.label=s[1];break}if(s[0]===6&&r.label<i[1]){r.label=i[1];i=s;break}if(i&&r.label<i[2]){r.label=i[2];r.ops.push(s);break}if(i[2])r.ops.pop();r.trys.pop();continue}s=e.call(t,r)}catch(t){s=[6,t];o=0}finally{n=i=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-e0f4bda5.system.js","./p-14f281b0.system.js"],(function(t){"use strict";var e,r,n,o,i,a,s,u,c,f,l,p,h,m,b,y,v,g,d,w,j;return{setters:[function(t){e=t.A;r=t.e;n=t.C;o=t.N;i=t.f;a=t.E;s=t.g;u=t.h;c=t.j;f=t.k;l=t.R;p=t.l;h=t.m;m=t.n;b=t.o;y=t.p;v=t.q;g=t.r;d=t.s},function(t){w=t.C;j=t.D}],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 _=function(t){__extends(e,t);function e(e){var a=t.call(this,r(e),n)||this;a.thumbprints={};a.type="X.509 Certificate";var s=a.asn.tbsCertificate;a.serialNumber=w.ToHex(s.serialNumber);a.subject=new o(s.subject).toJSON();a.issuer=new o(s.issuer).toJSON();a.version=s.version+1;var u=s.validity.notBefore.utcTime||s.validity.notBefore.generalTime;if(!u){throw new Error("Cannot get 'notBefore' value")}a.notBefore=u;var c=s.validity.notAfter.utcTime||s.validity.notAfter.generalTime;if(!c){throw new Error("Cannot get 'notAfter' value")}a.notAfter=c;a.validity=i(a.notBefore,a.notAfter);return a}e.prototype.parseExtensions=function(){var t=this.asn.tbsCertificate;if(t.extensions){this.extensions=t.extensions.map((function(t){return new a(s.serialize(t))}))}};e.prototype.getPublicKeyInfo=function(t){var e=this;var r=t.subjectPublicKey,n=t.algorithm;var o;if(n.algorithm===u&&n.parameters){o=s.parse(n.parameters,c)}if(n.algorithm===f){o=s.parse(r,l)}if(n.algorithm===p){o=s.parse(r,h);o=o.map((function(t){return e.getPublicKeyInfo(t)}))}var i=s.serialize(t);return{params:o,value:i,algorithm:n.algorithm}};Object.defineProperty(e.prototype,"publicKey",{get:function(){return this.getPublicKeyInfo(this.asn.tbsCertificate.subjectPublicKeyInfo)},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"signature",{get:function(){var t=this.asn,e=t.signatureValue,r=t.signatureAlgorithm;var n;if(r.algorithm===m){var o=s.parse(e,b);var i=s.parse(r.parameters,y);n=i.map((function(t,e){return Object.assign(Object.assign({},t),{value:o[e]})}))}return{params:n,value:e,algorithm:r.algorithm}},enumerable:false,configurable:true});e.prototype.exportAsBase64=function(){return w.ToBase64(this.raw)};e.prototype.exportAsHexFormatted=function(){return v(w.ToHex(this.raw))};e.prototype.exportAsPemFormatted=function(){return"-----BEGIN CERTIFICATE-----\n".concat(g(this.exportAsBase64()),"\n-----END CERTIFICATE-----")};e.prototype.getThumbprint=function(t){if(t===void 0){t="SHA-1"}return __awaiter(this,void 0,void 0,(function(){var e,r;return __generator(this,(function(n){switch(n.label){case 0:n.trys.push([0,2,,3]);return[4,d(t,this.raw)];case 1:e=n.sent();if(e){this.thumbprints[t]=w.ToHex(e)}return[3,3];case 2:r=n.sent();console.error("Error thumbprint get:",r);return[3,3];case 3:return[2]}}))}))};Object.defineProperty(e.prototype,"commonName",{get:function(){if(!this.subject){return""}for(var t=0;t<this.subject.length;t+=1){var e=this.subject[t];if(e.shortName==="CN"||e.shortName==="E"||e.shortName==="O"){return e.value}}return""},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"issuerCommonName",{get:function(){if(!this.issuer){return""}for(var t=0;t<this.issuer.length;t+=1){var e=this.issuer[t];if(e.shortName==="CN"){return e.value}if(e.shortName==="E"){return e.value}}return""},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"isRoot",{get:function(){return JSON.stringify(this.issuer)===JSON.stringify(this.subject)},enumerable:false,configurable:true});e.prototype.subjectToString=function(){if(!this.subject){return""}return this.subject.map((function(t){return"".concat(t.shortName,"=").concat(t.value)})).join(", ")};e.prototype.issuerToString=function(){if(!this.issuer){return""}return this.issuer.map((function(t){return"".concat(t.shortName,"=").concat(t.value)})).join(", ")};e.prototype.downloadAsPEM=function(t){j.cert.asPEM(this.exportAsPemFormatted(),t||this.commonName)};e.prototype.downloadAsDER=function(t){j.cert.asDER(this.exportAsHexFormatted(),t||this.commonName)};return e}(e);t("X",_)}}}));
|
|
13
|
-
//# sourceMappingURL=p-ab7dc738.system.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__extends","X509Certificate","_super","raw","_this","call","this","certificateRawToBuffer","Certificate","thumbprints","type","tbsCertificate","asn","serialNumber","Convert","ToHex","subject","Name","toJSON","issuer","version","notBefore","validity","utcTime","generalTime","Error","notAfter","dateDiff","prototype","parseExtensions","extensions","map","e","Extension","AsnConvert","serialize","getPublicKeyInfo","publicKeyInfo","subjectPublicKey","algorithm","params","id_ecPublicKey","parameters","parse","ECParameters","id_rsaEncryption","RSAPublicKey","id_composite_key","CompositePublicKey","param","spki","value","Object","defineProperty","subjectPublicKeyInfo","_a","signatureValue","signatureAlgorithm","id_alg_composite","compositeSignatureValues_1","CompositeSignatureValue","compositeParams","CompositeParams","index","assign","exportAsBase64","ToBase64","exportAsHexFormatted","hexFormat","exportAsPemFormatted","concat","base64Format","getThumbprint","getCertificateThumbprint","thumbprint","sent","console","error","error_1","i","length","name","shortName","JSON","stringify","subjectToString","join","issuerToString","downloadAsPEM","Download","cert","asPEM","commonName","downloadAsDER","asDER","AsnData"],"sources":["src/crypto/x509_certificate.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport {\n id_composite_key,\n id_alg_composite,\n CompositePublicKey,\n CompositeSignatureValue,\n CompositeParams,\n} from '@peculiar/asn1-x509-post-quantum';\nimport { Certificate, SubjectPublicKeyInfo } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { Name, INameJSON } from './name';\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\nexport interface ISignature {\n algorithm: string;\n value: BufferSource;\n params?: {\n algorithm: string;\n value: BufferSource;\n }[];\n}\n\nexport interface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey | IPublicKey[];\n}\n\nexport class X509Certificate extends AsnData<Certificate> {\n public readonly serialNumber: string;\n\n public readonly subject: INameJSON[];\n\n public readonly issuer: INameJSON[];\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public readonly version: number;\n\n public thumbprints: Record<string, string> = {};\n\n public type: string = 'X.509 Certificate';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), Certificate);\n\n const { tbsCertificate } = this.asn;\n\n this.serialNumber = Convert.ToHex(tbsCertificate.serialNumber);\n this.subject = new Name(tbsCertificate.subject).toJSON();\n this.issuer = new Name(tbsCertificate.issuer).toJSON();\n this.version = tbsCertificate.version + 1;\n\n const notBefore = tbsCertificate.validity.notBefore.utcTime\n || tbsCertificate.validity.notBefore.generalTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = tbsCertificate.validity.notAfter.utcTime\n || tbsCertificate.validity.notAfter.generalTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n }\n\n public parseExtensions() {\n const { tbsCertificate } = this.asn;\n\n if (tbsCertificate.extensions) {\n this.extensions = tbsCertificate.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n private getPublicKeyInfo(publicKeyInfo: SubjectPublicKeyInfo) {\n const { subjectPublicKey, algorithm } = publicKeyInfo;\n let params;\n\n if (algorithm.algorithm === id_ecPublicKey && algorithm.parameters) {\n params = AsnConvert.parse(algorithm.parameters, ECParameters);\n }\n\n if (algorithm.algorithm === id_rsaEncryption) {\n params = AsnConvert.parse(subjectPublicKey, RSAPublicKey);\n }\n\n if (algorithm.algorithm === id_composite_key) {\n params = AsnConvert.parse(subjectPublicKey, CompositePublicKey);\n\n params = params.map((param) => this.getPublicKeyInfo(param));\n }\n\n const spki = AsnConvert.serialize(publicKeyInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get publicKey(): IPublicKey {\n return this.getPublicKeyInfo(this.asn.tbsCertificate.subjectPublicKeyInfo);\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n let params;\n\n if (signatureAlgorithm.algorithm === id_alg_composite) {\n const compositeSignatureValues = AsnConvert.parse(signatureValue, CompositeSignatureValue);\n const compositeParams = AsnConvert.parse(signatureAlgorithm.parameters, CompositeParams);\n\n params = compositeParams.map((param, index) => ({\n ...param,\n value: compositeSignatureValues[index],\n }));\n }\n\n return {\n params,\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public exportAsBase64() {\n return Convert.ToBase64(this.raw);\n }\n\n public exportAsHexFormatted() {\n return hexFormat(Convert.ToHex(this.raw));\n }\n\n public exportAsPemFormatted() {\n return `-----BEGIN CERTIFICATE-----\\n${base64Format(this.exportAsBase64())}\\n-----END CERTIFICATE-----`;\n }\n\n public async getThumbprint(\n algorithm: string = 'SHA-1',\n ): Promise<void> {\n try {\n const thumbprint = await getCertificateThumbprint(algorithm, this.raw);\n\n if (thumbprint) {\n this.thumbprints[algorithm] = Convert.ToHex(thumbprint);\n }\n } catch (error) {\n console.error('Error thumbprint get:', error);\n }\n }\n\n public get commonName(): string {\n if (!this.subject) {\n return '';\n }\n\n for (let i = 0; i < this.subject.length; i += 1) {\n const name = this.subject[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public get issuerCommonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN') {\n return name.value;\n }\n\n if (name.shortName === 'E') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public get isRoot(): boolean {\n return JSON.stringify(this.issuer) === JSON.stringify(this.subject);\n }\n\n public subjectToString() {\n if (!this.subject) {\n return '';\n }\n\n return this.subject\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\n }\n\n public issuerToString() {\n if (!this.issuer) {\n return '';\n }\n\n return this.issuer\n .map((name) => (\n `${name.shortName}=${name.value}`\n ))\n .join(', ');\n }\n\n public downloadAsPEM(name?: string) {\n Download.cert.asPEM(\n this.exportAsPemFormatted(),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.cert.asDER(\n this.exportAsHexFormatted(),\n name || this.commonName,\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
|
-
*/
|
|
4
|
-
System.register(["./p-5aabeba7.system.js"],(function(t){"use strict";var r;return{setters:[function(t){r=t.h}],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 e=t("A",(function(t){var e=t.color,n=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(n,")"),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"}))}))}}}));
|
|
13
|
-
//# sourceMappingURL=p-b313be9e.system.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["CertificateSummary","props","certificate","showIssuer","renderRow","name","value","h","Typography","variant","color","l10n","getString","subjectToString","issuerToString","serialNumber","version","validity","dateShort","notBefore","notAfter","certificatesViewerCss","CertificatesViewer","this","isHasRoots","handleClickDetails","certificateSelectedForDetails","detailsOpen","emit","handleModalClose","undefined","detailsClose","handleSearch","event","search","target","trim","handleMediaQueryChange","mobileScreenView","matches","componentWillLoad","certificatesDecodeAndSet","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","watchCertificates","newValue","oldValue","JSON","stringify","hasRoots","Array","isArray","certificates","data","decoded","X509Certificate","getThumbprint","push","body","tests","isRoot","error","console","isDecodeInProcess","certificatesDecoded","handleClickDownloadAsPem","downloadAsPEM","commonName","handleClickDownloadAsDer","downloadAsDER","handleClickRow","index","isExpandedRowClicked","expandedRow","getMaxColSpanValue","colSpan","renderCertificateButtonActions","isHasTestURLs","expired","revoked","valid","class","groups","title","options","text","startIcon","DetailsIcon","onClick","DownloadIcon","_a","href","LinkIcon","_b","_c","renderExpandedRow","renderCertificatesRows","searchHighlight","highlightWithSearch","content","forEach","isExpandedRow","publicKeyValue","OIDs","signature","algorithm","filterWithSearch","certificateStringForSearch","issuerCommonName","thumbprints","join","toLowerCase","indexOf","certificate_row","m_expanded","key","Button","ArrowTopIcon","ArrowBottomIcon","renderCertificateDetailsModal","role","part","CrossIcon","renderSearch","onInput","type","disabled","length","placeholder","renderEmptyState","renderEmptySearchState","renderLoadingState","renderTableBody","certificatesRows","render","Host","String"],"sources":["src/components/certificate-summary/certificate-summary.tsx","src/components/certificates-viewer/certificates-viewer.scss?tag=peculiar-certificates-viewer&encapsulation=shadow","src/components/certificates-viewer/certificates-viewer.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { FunctionalComponent, h } from '@stencil/core';\nimport type { X509Certificate } from '../../crypto';\nimport { dateShort, l10n } from '../../utils';\nimport { Typography } from '../typography';\n\ninterface CertificateSummaryProps {\n certificate: X509Certificate;\n showIssuer?: boolean;\n}\n\nexport const CertificateSummary: FunctionalComponent<CertificateSummaryProps> = (props) => {\n const {\n certificate,\n showIssuer,\n } = props;\n\n const renderRow = (name: string | string[], value: string | number) => (\n <tr>\n <td>\n <Typography\n variant=\"b2\"\n color=\"gray-9\"\n >\n {name}\n </Typography>\n </td>\n <td>\n <Typography\n variant=\"b2\"\n color=\"black\"\n >\n {value}\n </Typography>\n </td>\n </tr>\n );\n\n return (\n <table>\n <tbody>\n {renderRow(\n l10n.getString('subjectName'),\n certificate.subjectToString(),\n )}\n {showIssuer && renderRow(\n l10n.getString('issuerName'),\n certificate.issuerToString(),\n )}\n\n {renderRow(\n l10n.getString('serialNumber'),\n certificate.serialNumber,\n )}\n {renderRow(\n l10n.getString('version'),\n certificate.version,\n )}\n {renderRow(\n l10n.getString('validity'),\n certificate.validity,\n )}\n {renderRow(\n l10n.getString('issued'),\n dateShort(certificate.notBefore),\n )}\n {renderRow(\n l10n.getString('expired'),\n dateShort(certificate.notAfter),\n )}\n </tbody>\n </table>\n );\n};\n","@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n word-wrap: break-word;\n min-width: 280px;\n overflow: auto;\n position: relative;\n}\n\n.search_section {\n padding: var(--pv-size-base-4);\n border-bottom: 1px solid var(--pv-color-gray-4);\n}\n\n.input_search {\n height: var(--pv-size-base-8);\n width: 100%;\n outline: none;\n background-color: var(--pv-color-gray-1);\n padding: 0 var(--pv-size-base-2);\n border: 1px solid var(--pv-color-gray-7);\n border-radius: 4px;\n transition: background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s;\n &::placeholder {\n color: var(--pv-color-gray-9);\n }\n}\n\ntable {\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n td, th {\n border-bottom: 1px solid var(--pv-color-gray-4);\n vertical-align: top;\n text-align: left;\n\n &:first-child {\n padding-right: 0;\n width: var(--pv-size-base-10);\n }\n &:last-child {\n padding-left: 0;\n width: var(--pv-size-base-10);\n }\n }\n\n th {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n\n &.col_action {\n padding: 0;\n }\n }\n\n td {\n padding: var(--pv-size-base-4);\n }\n\n tr {\n &.m_expanded {\n background: var(--pv-color-gray-1);\n\n > td {\n border-bottom: none;\n }\n }\n\n &.expanded_summary {\n background: var(--pv-color-gray-1);\n\n table {\n table-layout: initial;\n\n td {\n border-bottom: none;\n padding: var(--pv-size-base-2);\n\n &:first-child {\n width: 200px;\n }\n\n &:last-child {\n width: auto;\n }\n }\n }\n }\n }\n}\n\n.button_table_cell {\n margin-top: -3px;\n}\n\n.status_wrapper {\n text-align: center;\n height: var(--pv-size-base-16);\n vertical-align: middle;\n}\n\n.modal_wrapper {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n animation: fadeIn 200ms;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.modal_backdrop {\n background: var(--pv-color-black);\n z-index: -1;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0.5;\n}\n\n.modal_container {\n background: var(--pv-color-white);\n width: 100%;\n display: flex;\n max-height: calc(100% - 60px);\n flex-direction: column;\n margin: var(--pv-size-base-6);\n position: relative;\n outline: none;\n box-shadow: var(--pv-shadow-dark-hight);\n overflow: hidden;\n border: 0px;\n padding: 0px;\n max-width: 640px;\n border-radius: 4px;\n}\n\n.modal_header {\n padding: var(--pv-size-base-3) var(--pv-size-base-4);\n display: flex;\n flex: 0 0 auto;\n -webkit-box-pack: justify;\n justify-content: space-between;\n gap: var(--pv-size-base-2);\n border-bottom: 1px solid var(--pv-color-gray-5);\n}\n\n.modal_content {\n flex: 1 1 auto;\n overflow: auto;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tbody, tr, td {\n display: block;\n width: 100% !important;\n padding: 0;\n border: none;\n }\n\n thead {\n display: none;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n }\n\n .expanded_summary {\n padding: 0;\n }\n\n .certificate_row {\n border-bottom: 1px solid var(--pv-color-gray-5);\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n }\n\n .certificate_row_actions {\n padding-top: var(--pv-size-base-6);\n\n td {\n display: flex;\n justify-content: right;\n gap: var(--pv-size-base-4);\n }\n }\n }\n\n .button_table_cell {\n margin-top: 0;\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Event,\n EventEmitter,\n Build,\n} from '@stencil/core';\n\nimport { X509Certificate } from '../../crypto';\nimport { OIDs } from '../../constants/oids';\nimport { l10n } from '../../utils';\nimport { Typography } from '../typography';\nimport { CertificateSummary } from '../certificate-summary';\nimport { Button } from '../button';\nimport {\n DownloadIcon,\n LinkIcon,\n DetailsIcon,\n ArrowBottomIcon,\n ArrowTopIcon,\n CrossIcon,\n} from '../icons';\n\nexport interface ICertificate {\n value: string;\n name?: string;\n tests?: {\n valid?: string;\n revoked?: string;\n expired?: string;\n };\n}\n\ninterface ICertificateDecoded {\n body: X509Certificate;\n tests?: ICertificate['tests'];\n name?: string;\n}\n\n@Component({\n tag: 'peculiar-certificates-viewer',\n styleUrl: 'certificates-viewer.scss',\n shadow: true,\n})\nexport class CertificatesViewer {\n private isHasRoots: boolean = false;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * List of certificates values for decode and show in the list.\n * <br />\n * **NOTE**: If you do not provide a `name` value when\n * invocing the component it will take the first Subject CN value.\n * <br />\n * **NOTE**: If you do not provide a `tests` this column will be ommited from the rendered page.\n * <br />\n * **NOTE**: If the supplied certificates are self-signed the issuer column will be ommited.\n */\n @Prop() certificates: ICertificate[] = [];\n\n /**\n * Use filter in the list when search is changed.\n */\n @Prop() filterWithSearch: boolean = true;\n\n /**\n * Use highlight chapters in the list when search is changed.\n */\n @Prop() highlightWithSearch: boolean = true;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n /**\n * Emitted when the user open certificate details modal.\n */\n @Event() detailsOpen!: EventEmitter<X509Certificate>;\n\n /**\n * Emitted when the user close certificate details modal.\n */\n @Event() detailsClose!: EventEmitter<void>;\n\n @State() mobileScreenView: boolean = false;\n\n @State() search: string = '';\n\n @State() certificatesDecoded: ICertificateDecoded[] = [];\n\n @State() expandedRow?: number;\n\n @State() certificateSelectedForDetails?: X509Certificate;\n\n @State() isDecodeInProcess: boolean = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.certificatesDecodeAndSet();\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n @Watch('certificates')\n watchCertificates(newValue: ICertificate[], oldValue: ICertificate[]) {\n /**\n * Prevent rerender after set the same `certificates` prop.\n */\n if (JSON.stringify(newValue) !== JSON.stringify(oldValue)) {\n this.certificatesDecodeAndSet();\n }\n }\n\n async certificatesDecodeAndSet() {\n let hasRoots = false;\n\n if (!Array.isArray(this.certificates)) {\n return;\n }\n\n const data: ICertificateDecoded[] = [];\n\n // eslint-disable-next-line no-restricted-syntax\n for (const certificate of this.certificates) {\n try {\n const decoded = new X509Certificate(certificate.value);\n\n await decoded.getThumbprint('SHA-1');\n\n data.push({\n body: decoded,\n tests: certificate.tests,\n name: certificate.name,\n });\n\n if (!hasRoots && decoded.isRoot) {\n hasRoots = true;\n }\n } catch (error) {\n console.error('Error certificate parse:', error);\n }\n }\n\n this.isHasRoots = hasRoots;\n this.isDecodeInProcess = false;\n this.certificatesDecoded = data;\n }\n\n // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsPem(certificate: ICertificateDecoded) {\n certificate.body.downloadAsPEM(certificate.name || certificate.body.commonName);\n }\n\n // eslint-disable-next-line class-methods-use-this\n private handleClickDownloadAsDer(certificate: ICertificateDecoded) {\n certificate.body.downloadAsDER(certificate.name || certificate.body.commonName);\n }\n\n private handleClickDetails = (certificate: X509Certificate) => {\n this.certificateSelectedForDetails = certificate;\n this.detailsOpen.emit(certificate);\n };\n\n private handleModalClose = () => {\n this.certificateSelectedForDetails = undefined;\n\n this.detailsClose.emit();\n };\n\n private handleClickRow(index: number) {\n const isExpandedRowClicked = this.expandedRow === index;\n\n this.expandedRow = isExpandedRowClicked\n ? undefined\n : index;\n }\n\n private handleSearch = (event: any) => {\n this.search = event.target.value.trim();\n };\n\n private getMaxColSpanValue() {\n let colSpan = 5;\n\n if (!this.isHasRoots) {\n colSpan += 1;\n }\n\n return colSpan;\n }\n\n private renderCertificateButtonActions(certificate: ICertificateDecoded) {\n const isHasTestURLs = certificate.tests\n && (certificate.tests.expired || certificate.tests.revoked || certificate.tests.valid);\n\n return (\n <peculiar-button-menu\n class=\"button_table_cell\"\n groups={[\n {\n title: l10n.getString('previewCertificate'),\n options: [\n {\n text: l10n.getString('viewDetails'),\n startIcon: <DetailsIcon />,\n onClick: () => this.handleClickDetails(certificate.body),\n },\n ],\n },\n {\n title: l10n.getString('downloadOptions'),\n options: [\n {\n text: l10n.getString('download.pem'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsPem(certificate),\n },\n {\n text: l10n.getString('download.der'),\n startIcon: <DownloadIcon />,\n onClick: () => this.handleClickDownloadAsDer(certificate),\n },\n ],\n },\n ...(isHasTestURLs ? [{\n title: l10n.getString('testURLs'),\n options: [\n ...(certificate.tests?.valid ? [{\n text: l10n.getString('valid'),\n href: certificate.tests.valid,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.revoked ? [{\n text: l10n.getString('revoked'),\n href: certificate.tests.revoked,\n startIcon: <LinkIcon />,\n }] : []),\n ...(certificate.tests?.expired ? [{\n text: l10n.getString('expired'),\n href: certificate.tests.expired,\n startIcon: <LinkIcon />,\n }] : []),\n ],\n }] : []),\n ]}\n />\n );\n }\n\n private renderExpandedRow(certificate: X509Certificate) {\n const colSpan = this.getMaxColSpanValue() - 2;\n\n return (\n <tr class=\"expanded_summary\">\n <td />\n <td colSpan={colSpan}>\n <CertificateSummary\n certificate={certificate}\n showIssuer={!certificate.isRoot}\n />\n </td>\n <td />\n </tr>\n );\n }\n\n private renderCertificatesRows() {\n const searchHighlight = this.highlightWithSearch\n ? this.search\n : '';\n const content = [];\n\n this.certificatesDecoded.forEach((certificate, index) => {\n const isExpandedRow = index === this.expandedRow;\n const publicKeyValue = OIDs[certificate.body.signature.algorithm]\n || certificate.body.signature.algorithm;\n\n if (this.filterWithSearch && this.search) {\n const certificateStringForSearch = [\n publicKeyValue,\n certificate.body.issuerCommonName,\n certificate.name,\n certificate.body.commonName,\n certificate.body.thumbprints['SHA-1'],\n ]\n .join(' ')\n .toLowerCase();\n\n if (certificateStringForSearch.indexOf(this.search.toLowerCase()) === -1) {\n return;\n }\n }\n\n if (this.mobileScreenView) {\n content.push([\n <tr\n class={{\n certificate_row: true,\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <table>\n <tbody>\n {!this.isHasRoots && (\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('issuer')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n )}\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('name')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.name || certificate.body.commonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('publicKey')}\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n <tr>\n <td>\n <Typography variant=\"b2\" color=\"gray-9\">\n {l10n.getString('fingerprint')}\n (SHA-1)\n </Typography>\n </td>\n <td>\n <Typography variant=\"b2\" color=\"black\">\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n </tr>\n {isExpandedRow && this.renderExpandedRow(certificate.body)}\n <tr class=\"certificate_row_actions\">\n <td>\n {this.renderCertificateButtonActions(certificate)}\n <Button\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n />\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>,\n ]);\n\n return;\n }\n\n content.push([\n <tr\n class={{\n m_expanded: isExpandedRow,\n }}\n key={certificate.body.thumbprints['SHA-1']}\n >\n <td>\n <Button\n class=\"button_table_cell\"\n // eslint-disable-next-line react/jsx-no-bind\n onClick={this.handleClickRow.bind(this, index)}\n startIcon={isExpandedRow ? <ArrowTopIcon /> : <ArrowBottomIcon />}\n />\n </td>\n {!this.isHasRoots && (\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.issuerCommonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n )}\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.name || certificate.body.commonName}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {publicKeyValue}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n <Typography>\n <peculiar-highlight-words search={searchHighlight}>\n {certificate.body.thumbprints['SHA-1']}\n </peculiar-highlight-words>\n </Typography>\n </td>\n <td>\n {this.renderCertificateButtonActions(certificate)}\n </td>\n </tr>,\n isExpandedRow && this.renderExpandedRow(certificate.body),\n ]);\n });\n\n return content;\n }\n\n private renderCertificateDetailsModal() {\n if (!this.certificateSelectedForDetails) {\n return null;\n }\n\n return (\n <div\n class=\"modal_wrapper\"\n role=\"presentation\"\n aria-hidden=\"false\"\n part=\"presentation\"\n >\n <div\n class=\"modal_backdrop\"\n onClick={this.handleModalClose}\n aria-hidden=\"true\"\n />\n <div\n class=\"modal_container\"\n role=\"dialog\"\n part=\"presentation_container\"\n >\n <header class=\"modal_header\">\n <Typography\n variant=\"h4\"\n >\n {l10n.getString('certificateDetails')}\n </Typography>\n <Button\n onClick={this.handleModalClose}\n startIcon={<CrossIcon />}\n />\n </header>\n <div class=\"modal_content\">\n <peculiar-certificate-viewer\n certificate={this.certificateSelectedForDetails}\n mobileMediaQueryString={this.mobileMediaQueryString}\n />\n </div>\n </div>\n </div>\n );\n }\n\n private renderSearch() {\n if (!this.filterWithSearch && !this.highlightWithSearch) {\n return null;\n }\n\n return (\n <div class=\"search_section\">\n <input\n onInput={this.handleSearch}\n type=\"search\"\n value=\"\"\n class=\"input_search t-b3 c-black\"\n disabled={!this.certificatesDecoded.length}\n placeholder=\"Search\"\n />\n </div>\n );\n }\n\n private renderEmptyState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n There are no certificates available.\n </Typography>\n </td>\n </tr>\n );\n }\n\n private renderEmptySearchState() {\n const colSpan = this.getMaxColSpanValue();\n\n return (\n <tr>\n <td\n class=\"status_wrapper\"\n colSpan={colSpan}\n >\n <Typography\n variant=\"b1\"\n >\n No results found for “\n {this.search}\n “\n </Typography>\n </td>\n </tr>\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n private renderLoadingState() {\n return (\n <div class=\"loading_container\">\n <peculiar-circular-progress />\n </div>\n );\n }\n\n private renderTableBody() {\n if (this.isDecodeInProcess) {\n return null;\n }\n\n if (!this.certificatesDecoded.length) {\n return this.renderEmptyState();\n }\n\n const certificatesRows = this.renderCertificatesRows();\n\n if (this.search && !certificatesRows.length) {\n return this.renderEmptySearchState();\n }\n\n return certificatesRows;\n }\n\n render() {\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n {this.renderSearch()}\n <table>\n {!this.mobileScreenView && (\n <thead>\n <tr>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <th />\n {!this.isHasRoots && (\n <th class=\"col_issuer\">\n <Typography variant=\"s2\">\n {l10n.getString('issuer')}\n </Typography>\n </th>\n )}\n <th class=\"col_name\">\n <Typography variant=\"s2\">\n {l10n.getString('name')}\n </Typography>\n </th>\n <th class=\"col_public_key\">\n <Typography variant=\"s2\">\n {l10n.getString('publicKey')}\n </Typography>\n </th>\n <th class=\"col_fingerprint\">\n <Typography variant=\"s2\">\n {l10n.getString('fingerprint')}\n (SHA-1)\n </Typography>\n </th>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <th />\n </tr>\n </thead>\n )}\n <tbody>\n {this.renderTableBody()}\n </tbody>\n </table>\n\n {this.renderCertificateDetailsModal()}\n {this.isDecodeInProcess && this.renderLoadingState()}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
|
-
*/
|
|
4
|
-
System.register(["./p-5aabeba7.system.js"],(function(t){"use strict";var r;return{setters:[function(t){r=t.h}],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 o=t("A",(function(t){var o=t.color,e=o===void 0?"gray-10":o;return r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"30",height:"30",fill:"none"},r("path",{stroke:"var(--pv-color-".concat(e,")"),"stroke-linecap":"round","stroke-width":"1.5",d:"m19.222 12.778-3.851 4.279a.2.2 0 0 1-.297 0l-3.852-4.28"}))}));
|
|
13
|
-
/**
|
|
14
|
-
* @license
|
|
15
|
-
* Copyright (c) Peculiar Ventures, LLC.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/var e=t("a",(function(t){var o=t.color,e=o===void 0?"gray-10":o;return r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"30",height:"30",fill:"none"},r("path",{stroke:"var(--pv-color-".concat(e,")"),"stroke-linecap":"round","stroke-width":"1.5",d:"m11.222 17.722 3.852-4.28a.2.2 0 0 1 .297 0l3.851 4.28"}))}))}}}));
|
|
20
|
-
//# sourceMappingURL=p-c99507d4.system.js.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
|
-
*/
|
|
4
|
-
System.register(["./p-5aabeba7.system.js"],(function(a){"use strict";var r;return{setters:[function(a){r=a.h}],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 t=a("D",(function(a){var t=a.color,o=t===void 0?"secondary":t;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:"M6.71 19.79a1 1 0 0 0-.33-.21 1 1 0 0 0-.76 0 1 1 0 0 0-.33.21 1 1 0 0 0-.21.33 1 1 0 0 0 .21 1.09c.097.088.209.16.33.21a.94.94 0 0 0 .76 0 1.15 1.15 0 0 0 .33-.21 1 1 0 0 0 .21-1.09 1 1 0 0 0-.21-.33ZM10 11.5h14a1 1 0 0 0 0-2H10a1 1 0 0 0 0 2Zm-3.29 3.29a1 1 0 0 0-1.09-.21 1.15 1.15 0 0 0-.33.21 1 1 0 0 0-.21.33.94.94 0 0 0 0 .76c.05.121.122.233.21.33.097.088.209.16.33.21a.94.94 0 0 0 .76 0 1.15 1.15 0 0 0 .33-.21 1.15 1.15 0 0 0 .21-.33.94.94 0 0 0 0-.76 1 1 0 0 0-.21-.33ZM24 14.5H10a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2ZM6.71 9.79a1 1 0 0 0-.33-.21 1 1 0 0 0-1.09.21 1.15 1.15 0 0 0-.21.33.94.94 0 0 0 0 .76c.05.121.122.233.21.33.097.088.209.16.33.21a1 1 0 0 0 1.09-.21 1.15 1.15 0 0 0 .21-.33.94.94 0 0 0 0-.76 1.15 1.15 0 0 0-.21-.33ZM24 19.5H10a1 1 0 0 0 0 2h14a1 1 0 0 0 0-2Z"}))}));
|
|
13
|
-
/**
|
|
14
|
-
* @license
|
|
15
|
-
* Copyright (c) Peculiar Ventures, LLC.
|
|
16
|
-
*
|
|
17
|
-
* This source code is licensed under the MIT license found in the
|
|
18
|
-
* LICENSE file in the root directory of this source tree.
|
|
19
|
-
*/var o=a("L",(function(a){var t=a.color,o=t===void 0?"secondary":t;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:"M21 14.32a1 1 0 0 0-1 1v7.18a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-11a1 1 0 0 1 1-1h7.18a1 1 0 0 0 0-2H8a3 3 0 0 0-3 3v11a3 3 0 0 0 3 3h11a3 3 0 0 0 3-3v-7.18a1 1 0 0 0-1-1Zm3.92-8.2a1 1 0 0 0-.54-.54A1 1 0 0 0 24 5.5h-6a1 1 0 1 0 0 2h3.59l-10.3 10.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219L23 8.91v3.59a1 1 0 0 0 2 0v-6a1.001 1.001 0 0 0-.08-.38Z"}))}));
|
|
20
|
-
/**
|
|
21
|
-
* @license
|
|
22
|
-
* Copyright (c) Peculiar Ventures, LLC.
|
|
23
|
-
*
|
|
24
|
-
* This source code is licensed under the MIT license found in the
|
|
25
|
-
* LICENSE file in the root directory of this source tree.
|
|
26
|
-
*/var l=a("C",(function(a){var t=a.color,o=t===void 0?"gray-9":t;return r("svg",{xmlns:"http://www.w3.org/2000/svg",width:"30",height:"30",fill:"none"},r("path",{fill:"var(--pv-color-".concat(o,")"),"fill-rule":"evenodd",d:"m16.37 15 5.442 5.44c.25.252.25.663 0 .914l-.459.457a.646.646 0 0 1-.913 0L15 16.371l-5.44 5.44a.648.648 0 0 1-.915 0l-.457-.457a.649.649 0 0 1 0-.913L13.63 15 8.188 9.56a.649.649 0 0 1 0-.914l.457-.457a.648.648 0 0 1 .915 0l5.44 5.44 5.44-5.44a.646.646 0 0 1 .913 0l.46.457c.25.25.25.662 0 .913L16.37 15Z","clip-rule":"evenodd"}))}))}}}));
|
|
27
|
-
//# sourceMappingURL=p-ddae2f8e.system.js.map
|