@peculiar/certificates-viewer 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/components/actions.js +21 -0
- package/components/actions.js.map +1 -0
- package/components/arrow_top.js +1 -1
- package/components/attribute-certificate-viewer.js +7 -7
- package/components/attribute-certificate-viewer.js.map +1 -1
- package/components/button-menu.js +2 -14
- package/components/button-menu.js.map +1 -1
- package/components/certificate-viewer.js +5 -5
- package/components/certificate-viewer.js.map +1 -1
- package/components/crl-viewer.js +6 -6
- package/components/crl-viewer.js.map +1 -1
- package/components/cross.js +47 -0
- package/components/cross.js.map +1 -0
- package/components/csr-viewer.js +4 -4
- package/components/csr-viewer.js.map +1 -1
- package/components/download.js +404 -374
- package/components/download.js.map +1 -1
- package/components/index.js +5 -1
- package/components/index.js.map +1 -1
- package/components/index2.js +2 -2
- package/components/index2.js.map +1 -1
- package/components/issuer_name.js +2 -2
- package/components/miscellaneous.js +648 -245
- package/components/miscellaneous.js.map +1 -1
- package/components/peculiar-certificates-viewer.js +4 -42
- package/components/peculiar-certificates-viewer.js.map +1 -1
- package/components/peculiar-text-hider.js +1 -1
- package/components/subject_name.js +2 -2
- package/components/subject_name.js.map +1 -1
- package/dist/cjs/actions-19013d4a.js +23 -0
- package/dist/cjs/actions-19013d4a.js.map +1 -0
- package/dist/cjs/{certification_request-c0cafa72.js → certification_request-bf416170.js} +553 -214
- package/dist/cjs/certification_request-bf416170.js.map +1 -0
- package/dist/cjs/{crl-b4322166.js → crl-d9591b95.js} +14 -14
- package/dist/cjs/{crl-b4322166.js.map → crl-d9591b95.js.map} +1 -1
- package/dist/cjs/cross-9872c473.js +51 -0
- package/dist/cjs/cross-9872c473.js.map +1 -0
- package/dist/cjs/{download-972dda8a.js → download-0fa5b33c.js} +377 -377
- package/dist/cjs/download-0fa5b33c.js.map +1 -0
- package/dist/cjs/index.cjs.js +18 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/link-6aea0be4.js +25 -0
- package/dist/cjs/link-6aea0be4.js.map +1 -0
- package/dist/cjs/{miscellaneous-806a04a5.js → miscellaneous-6e800553.js} +114 -33
- package/dist/cjs/miscellaneous-6e800553.js.map +1 -0
- package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js +9 -8
- package/dist/cjs/peculiar-attribute-certificate-viewer_3.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js +2 -14
- package/dist/cjs/peculiar-button-menu_3.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificate-decoder.cjs.entry.js +4 -4
- package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js +5 -4
- package/dist/cjs/peculiar-certificate-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js +9 -47
- package/dist/cjs/peculiar-certificates-viewer.cjs.entry.js.map +1 -1
- package/dist/cjs/{x509_certificate-989b1435.js → x509_certificate-53feebd3.js} +7 -7
- package/dist/cjs/{x509_certificate-989b1435.js.map → x509_certificate-53feebd3.js.map} +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/index.js +5 -0
- package/dist/collection/components/certificate-details-parts/extensions/index.js.map +1 -1
- package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js +80 -0
- package/dist/collection/components/certificate-details-parts/extensions/key_description_extension.js.map +1 -0
- package/dist/collection/constants/oids.js +1 -0
- package/dist/collection/constants/oids.js.map +1 -1
- package/dist/collection/crypto/extension.js +4 -0
- package/dist/collection/crypto/extension.js.map +1 -1
- package/dist/collection/index.js +4 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/utils/camel_case_to_words.js +15 -0
- package/dist/collection/utils/camel_case_to_words.js.map +1 -0
- package/dist/collection/utils/index.js +1 -0
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/esm/actions-8d745b2a.js +21 -0
- package/dist/esm/actions-8d745b2a.js.map +1 -0
- package/dist/esm/{arrow_top-efd3a56d.js → arrow_top-fc298828.js} +2 -2
- package/dist/esm/{arrow_top-efd3a56d.js.map → arrow_top-fc298828.js.map} +1 -1
- package/dist/esm/{certification_request-5cadde9f.js → certification_request-c9dc8e9c.js} +545 -209
- package/dist/esm/certification_request-c9dc8e9c.js.map +1 -0
- package/dist/esm/{crl-11670c3e.js → crl-70e85374.js} +14 -14
- package/dist/esm/{crl-11670c3e.js.map → crl-70e85374.js.map} +1 -1
- package/dist/esm/cross-9ec9a759.js +47 -0
- package/dist/esm/cross-9ec9a759.js.map +1 -0
- package/dist/esm/{download-57c5bf8f.js → download-aacb6eff.js} +375 -375
- package/dist/esm/download-aacb6eff.js.map +1 -0
- package/dist/esm/index.js +8 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/link-ad24c3be.js +23 -0
- package/dist/esm/link-ad24c3be.js.map +1 -0
- package/dist/esm/{miscellaneous-1d4e8b41.js → miscellaneous-0763f98e.js} +108 -27
- package/dist/esm/miscellaneous-0763f98e.js.map +1 -0
- package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js +9 -8
- package/dist/esm/peculiar-attribute-certificate-viewer_3.entry.js.map +1 -1
- package/dist/esm/peculiar-button-menu_3.entry.js +2 -14
- package/dist/esm/peculiar-button-menu_3.entry.js.map +1 -1
- package/dist/esm/peculiar-certificate-decoder.entry.js +4 -4
- package/dist/esm/peculiar-certificate-viewer.entry.js +5 -4
- package/dist/esm/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-certificates-viewer.entry.js +5 -43
- package/dist/esm/peculiar-certificates-viewer.entry.js.map +1 -1
- package/dist/esm/peculiar-text-hider.entry.js +1 -1
- package/dist/esm/{x509_certificate-dfae6999.js → x509_certificate-8cf268d1.js} +7 -7
- package/dist/esm/{x509_certificate-dfae6999.js.map → x509_certificate-8cf268d1.js.map} +1 -1
- package/dist/esm-es5/actions-8d745b2a.js +12 -0
- package/dist/esm-es5/actions-8d745b2a.js.map +1 -0
- package/dist/esm-es5/{arrow_top-efd3a56d.js → arrow_top-fc298828.js} +2 -2
- package/dist/esm-es5/certification_request-c9dc8e9c.js +97 -0
- package/dist/esm-es5/certification_request-c9dc8e9c.js.map +1 -0
- package/dist/esm-es5/{crl-11670c3e.js → crl-70e85374.js} +6 -6
- package/dist/esm-es5/{crl-11670c3e.js.map → crl-70e85374.js.map} +1 -1
- package/dist/esm-es5/cross-9ec9a759.js +26 -0
- package/dist/esm-es5/cross-9ec9a759.js.map +1 -0
- package/dist/esm-es5/download-aacb6eff.js +43 -0
- package/dist/esm-es5/download-aacb6eff.js.map +1 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/link-ad24c3be.js +12 -0
- package/dist/esm-es5/link-ad24c3be.js.map +1 -0
- package/dist/esm-es5/{miscellaneous-1d4e8b41.js → miscellaneous-0763f98e.js} +58 -51
- package/dist/esm-es5/miscellaneous-0763f98e.js.map +1 -0
- package/dist/esm-es5/peculiar-attribute-certificate-viewer_3.entry.js +3 -3
- 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 -8
- package/dist/esm-es5/peculiar-button-menu_3.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificate-decoder.entry.js +1 -1
- package/dist/esm-es5/peculiar-certificate-viewer.entry.js +1 -1
- package/dist/esm-es5/peculiar-certificate-viewer.entry.js.map +1 -1
- package/dist/esm-es5/peculiar-certificates-viewer.entry.js +2 -23
- 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/x509_certificate-8cf268d1.js +12 -0
- package/dist/esm-es5/{x509_certificate-dfae6999.js.map → x509_certificate-8cf268d1.js.map} +1 -1
- package/dist/peculiar/index.esm.js +1 -1
- package/dist/peculiar/p-025b3cfb.entry.js +5 -0
- package/dist/peculiar/{p-fd4b9a50.entry.js.map → p-025b3cfb.entry.js.map} +1 -1
- package/dist/peculiar/p-0bd7c6bc.system.entry.js +13 -0
- package/dist/peculiar/p-0bd7c6bc.system.entry.js.map +1 -0
- package/dist/peculiar/{p-709994c1.js → p-0fc2e2b4.js} +2 -2
- package/dist/peculiar/p-10d2d400.system.js +34 -0
- package/dist/peculiar/{p-6667fe6e.system.js.map → p-10d2d400.system.js.map} +1 -1
- package/dist/peculiar/p-14f281b0.system.js +43 -0
- package/dist/peculiar/p-14f281b0.system.js.map +1 -0
- package/dist/peculiar/p-15cb92b5.system.js +97 -0
- package/dist/peculiar/p-15cb92b5.system.js.map +1 -0
- package/dist/peculiar/p-1ceb0fe3.js +12 -0
- package/dist/peculiar/p-1ceb0fe3.js.map +1 -0
- package/dist/peculiar/p-1ef997ee.js +97 -0
- package/dist/peculiar/p-1ef997ee.js.map +1 -0
- package/dist/peculiar/{p-e39de121.system.entry.js → p-24050d82.system.entry.js} +2 -2
- package/dist/peculiar/p-2f48fe70.entry.js +12 -0
- package/dist/peculiar/p-2f48fe70.entry.js.map +1 -0
- package/dist/peculiar/{p-0bdcdbf7.system.js → p-31b60224.system.js} +59 -52
- package/dist/peculiar/p-31b60224.system.js.map +1 -0
- package/dist/peculiar/p-33196289.entry.js +5 -0
- package/dist/peculiar/{p-90459cec.entry.js.map → p-33196289.entry.js.map} +1 -1
- package/dist/peculiar/p-370cee20.js +26 -0
- package/dist/peculiar/p-370cee20.js.map +1 -0
- package/dist/peculiar/{p-7ed7cd97.system.entry.js → p-4ab9673f.system.entry.js} +4 -4
- package/dist/peculiar/{p-7ed7cd97.system.entry.js.map → p-4ab9673f.system.entry.js.map} +1 -1
- package/dist/peculiar/{p-8748391f.system.entry.js → p-5151cb6f.system.entry.js} +2 -2
- package/dist/peculiar/p-53784f15.system.entry.js +5 -0
- package/dist/peculiar/p-53784f15.system.entry.js.map +1 -0
- package/dist/peculiar/p-542412ae.js +33 -0
- package/dist/peculiar/{p-43eb3721.js.map → p-542412ae.js.map} +1 -1
- package/dist/peculiar/p-59e5ac12.js +43 -0
- package/dist/peculiar/p-59e5ac12.js.map +1 -0
- package/dist/peculiar/p-5ab007e9.entry.js +5 -0
- package/dist/peculiar/p-5ab007e9.entry.js.map +1 -0
- package/dist/peculiar/p-5e49b881.system.entry.js +5 -0
- package/dist/peculiar/{p-26981468.system.entry.js.map → p-5e49b881.system.entry.js.map} +1 -1
- package/dist/peculiar/p-6cb88fd6.system.js +13 -0
- package/dist/peculiar/p-6cb88fd6.system.js.map +1 -0
- package/dist/peculiar/p-72f53d81.js +12 -0
- package/dist/peculiar/{p-6e79b9c8.js.map → p-72f53d81.js.map} +1 -1
- package/dist/peculiar/p-80832207.system.js +1 -1
- package/dist/peculiar/p-94a453d7.js +12 -0
- package/dist/peculiar/p-94a453d7.js.map +1 -0
- package/dist/peculiar/{p-f3d85a5f.entry.js → p-9c91dd68.entry.js} +5 -5
- package/dist/peculiar/{p-f3d85a5f.entry.js.map → p-9c91dd68.entry.js.map} +1 -1
- package/dist/peculiar/p-a3eeb94b.system.js +5 -0
- package/dist/peculiar/p-b313be9e.system.js +13 -0
- package/dist/peculiar/p-b313be9e.system.js.map +1 -0
- package/dist/peculiar/{p-daf23673.system.js → p-c99507d4.system.js} +3 -3
- package/dist/peculiar/p-ca02a823.js +362 -0
- package/dist/peculiar/p-ca02a823.js.map +1 -0
- package/dist/peculiar/p-cfca7dae.system.js +13 -0
- package/dist/peculiar/{p-31586b23.system.js.map → p-cfca7dae.system.js.map} +1 -1
- package/dist/peculiar/p-ddae2f8e.system.js +27 -0
- package/dist/peculiar/p-ddae2f8e.system.js.map +1 -0
- package/dist/peculiar/{p-882e1281.entry.js → p-e5b18cd1.entry.js} +2 -2
- package/dist/peculiar/peculiar.esm.js +1 -1
- package/dist/types/components/certificate-details-parts/extensions/key_description_extension.d.ts +15 -0
- package/dist/types/constants/oids.d.ts +1 -0
- package/dist/types/crypto/extension.d.ts +2 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/utils/camel_case_to_words.d.ts +8 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/hydrate/index.js +1039 -609
- package/package.json +22 -21
- package/dist/cjs/certification_request-c0cafa72.js.map +0 -1
- package/dist/cjs/download-972dda8a.js.map +0 -1
- package/dist/cjs/miscellaneous-806a04a5.js.map +0 -1
- package/dist/esm/certification_request-5cadde9f.js.map +0 -1
- package/dist/esm/download-57c5bf8f.js.map +0 -1
- package/dist/esm/miscellaneous-1d4e8b41.js.map +0 -1
- package/dist/esm-es5/certification_request-5cadde9f.js +0 -97
- package/dist/esm-es5/certification_request-5cadde9f.js.map +0 -1
- package/dist/esm-es5/download-57c5bf8f.js +0 -19
- package/dist/esm-es5/download-57c5bf8f.js.map +0 -1
- package/dist/esm-es5/miscellaneous-1d4e8b41.js.map +0 -1
- package/dist/esm-es5/x509_certificate-dfae6999.js +0 -12
- package/dist/peculiar/p-0bdcdbf7.system.js.map +0 -1
- package/dist/peculiar/p-23555789.system.entry.js +0 -34
- package/dist/peculiar/p-23555789.system.entry.js.map +0 -1
- package/dist/peculiar/p-26981468.system.entry.js +0 -5
- package/dist/peculiar/p-31586b23.system.js +0 -13
- package/dist/peculiar/p-43eb3721.js +0 -33
- package/dist/peculiar/p-5823e6e8.entry.js +0 -12
- package/dist/peculiar/p-5823e6e8.entry.js.map +0 -1
- package/dist/peculiar/p-596836a7.entry.js +0 -33
- package/dist/peculiar/p-596836a7.entry.js.map +0 -1
- package/dist/peculiar/p-6667fe6e.system.js +0 -34
- package/dist/peculiar/p-6e79b9c8.js +0 -12
- package/dist/peculiar/p-74c241e7.js +0 -97
- package/dist/peculiar/p-74c241e7.js.map +0 -1
- package/dist/peculiar/p-90459cec.entry.js +0 -5
- package/dist/peculiar/p-97688065.js +0 -355
- package/dist/peculiar/p-97688065.js.map +0 -1
- package/dist/peculiar/p-a053c132.js +0 -19
- package/dist/peculiar/p-a053c132.js.map +0 -1
- package/dist/peculiar/p-ae9189f6.system.js +0 -19
- package/dist/peculiar/p-ae9189f6.system.js.map +0 -1
- package/dist/peculiar/p-bd485115.system.entry.js +0 -13
- package/dist/peculiar/p-bd485115.system.entry.js.map +0 -1
- package/dist/peculiar/p-c0a298fd.system.js +0 -97
- package/dist/peculiar/p-c0a298fd.system.js.map +0 -1
- package/dist/peculiar/p-e1960173.system.js +0 -5
- package/dist/peculiar/p-fd4b9a50.entry.js +0 -5
- /package/dist/esm-es5/{arrow_top-efd3a56d.js.map → arrow_top-fc298828.js.map} +0 -0
- /package/dist/peculiar/{p-709994c1.js.map → p-0fc2e2b4.js.map} +0 -0
- /package/dist/peculiar/{p-e39de121.system.entry.js.map → p-24050d82.system.entry.js.map} +0 -0
- /package/dist/peculiar/{p-8748391f.system.entry.js.map → p-5151cb6f.system.entry.js.map} +0 -0
- /package/dist/peculiar/{p-e1960173.system.js.map → p-a3eeb94b.system.js.map} +0 -0
- /package/dist/peculiar/{p-daf23673.system.js.map → p-c99507d4.system.js.map} +0 -0
- /package/dist/peculiar/{p-882e1281.entry.js.map → p-e5b18cd1.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["certificateViewerCss","CertificateViewer","this","getAuthKeyIdParentLink","value","_a","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","handleMediaQueryChange","event","mobileScreenView","matches","componentWillLoad","decodeCertificate","certificate","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","isDecodeInProcess","X509Certificate","certificateDecoded","parseExtensions","getThumbprint","error","certificateDecodeError","console","watchCertificateAndDecode","newValue","oldValue","serialNumber","getIssuerDnLink","issuerDnLink","renderErrorState","h","class","Typography","renderEmptyState","render","Host","String","BasicInformation","Object","assign","SubjectName","name","subject","IssuerName","issuer","PublicKey","publicKey","Signature","signature","Thumbprints","thumbprints","Extensions","extensions","getLEILink","getDNSNameLink","getIPAddressLink","download","Miscellaneous"],"sources":["src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-certificate-viewer&encapsulation=shadow","src/components/certificate-viewer/certificate-viewer.tsx"],"sourcesContent":["@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n td {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: var(--pv-size-base-2) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: var(--pv-size-base-6);\n padding-bottom: var(--pv-size-base-2);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n\n &.title {\n padding-top: var(--pv-size-base-6);\n\n td {\n padding: 0 var(--pv-size-base-4);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-size-base-4);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Build,\n} from '@stencil/core';\n\nimport {\n X509Certificate,\n} from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } from '../../utils/third_party_links';\nimport {\n BasicInformation,\n SubjectName,\n IssuerName,\n PublicKey,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type CertificateProp = string | X509Certificate;\n\n@Component({\n tag: 'peculiar-certificate-viewer',\n styleUrl: 'certificate-viewer.scss',\n shadow: true,\n})\nexport class CertificateViewer {\n private certificateDecoded: X509Certificate;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificate: CertificateProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop({ reflect: true }) download?: boolean;\n\n /**\n * Authority Key Identifier extension parent link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.subject_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdParentLink?: string;\n\n /**\n * Authority Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdSiblingsLink?: string;\n\n /**\n * Subject Key Identifier extension children link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdChildrenLink?: string;\n\n /**\n * Subject Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://some.com/{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdSiblingsLink?: string;\n\n /**\n * Issuer DN link.\n * **NOTE**: HTML component attribute must be `issuer-dn-link`.\n */\n @Prop({ reflect: true }) issuerDnLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView: boolean = false;\n\n @State() isDecodeInProcess: boolean = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: CertificateProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof X509Certificate) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new X509Certificate(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseExtensions();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(newValue: CertificateProp, oldValue: CertificateProp) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (newValue instanceof X509Certificate && oldValue instanceof X509Certificate) {\n if (newValue.serialNumber !== oldValue.serialNumber) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private getAuthKeyIdParentLink = (value: string) => this.authKeyIdParentLink\n ?.replace('{{authKeyId}}', value);\n\n private getAuthKeyIdSiblingsLink = (value: string) => this.authKeyIdSiblingsLink\n ?.replace('{{authKeyId}}', value);\n\n private getSubjectKeyIdChildrenLink = (value: string) => this.subjectKeyIdChildrenLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getSubjectKeyIdSiblingsLink = (value: string) => this.subjectKeyIdSiblingsLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getIssuerDnLink() {\n return this.issuerDnLink;\n }\n\n // eslint-disable-next-line class-methods-use-this\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this certificate.\n </Typography>\n </div>\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificate available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <SubjectName\n name={this.certificateDecoded.subject}\n />\n\n <IssuerName\n name={this.certificateDecoded.issuer}\n issuerDnLink={this.getIssuerDnLink()}\n />\n\n <PublicKey\n publicKey={this.certificateDecoded.publicKey}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["certificateViewerCss","CertificateViewer","this","getAuthKeyIdParentLink","value","_a","authKeyIdParentLink","replace","getAuthKeyIdSiblingsLink","authKeyIdSiblingsLink","getSubjectKeyIdChildrenLink","subjectKeyIdChildrenLink","getSubjectKeyIdSiblingsLink","subjectKeyIdSiblingsLink","handleMediaQueryChange","event","mobileScreenView","matches","componentWillLoad","decodeCertificate","certificate","mobileMediaQuery","window","matchMedia","mobileMediaQueryString","addEventListener","bind","disconnectedCallback","removeEventListener","isDecodeInProcess","X509Certificate","certificateDecoded","parseExtensions","getThumbprint","error","certificateDecodeError","console","watchCertificateAndDecode","newValue","oldValue","serialNumber","getIssuerDnLink","issuerDnLink","renderErrorState","h","class","Typography","renderEmptyState","render","Host","String","BasicInformation","Object","assign","SubjectName","name","subject","IssuerName","issuer","PublicKey","publicKey","Signature","signature","Thumbprints","thumbprints","Extensions","extensions","getLEILink","getDNSNameLink","getIPAddressLink","download","Miscellaneous"],"sources":["src/components/certificate-viewer/certificate-viewer.scss?tag=peculiar-certificate-viewer&encapsulation=shadow","src/components/certificate-viewer/certificate-viewer.tsx"],"sourcesContent":["@import '../../css/base.scss';\n\n:host {\n display: block;\n width: 100%;\n position: relative;\n min-width: 280px;\n min-height: 300px;\n word-wrap: break-word;\n word-break: break-word;\n}\n\nth, td {\n border: none;\n}\n\ntable {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n\n td {\n padding: var(--pv-size-base-2) var(--pv-size-base-4);\n vertical-align: top;\n\n &:first-child {\n width: 220px;\n }\n\n &:last-child {\n width: calc(100% - 220px)\n }\n\n &.monospace {\n max-width: 0;\n }\n\n &.divider {\n padding: var(--pv-size-base-2) 0;\n\n span {\n height: 1px;\n display: block;\n background-color: var(--pv-color-gray-4);\n }\n }\n }\n\n .title td {\n padding-top: var(--pv-size-base-6);\n padding-bottom: var(--pv-size-base-2);\n }\n\n table {\n border-left: 1px solid var(--pv-color-gray-5);\n }\n}\n\n.status_wrapper {\n min-height: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n:host([data-mobile-screen-view=\"true\"]) {\n table, tr, td {\n display: block;\n }\n\n table {\n tr {\n padding: var(--pv-size-base-2) 0;\n\n &.title {\n padding-top: var(--pv-size-base-6);\n\n td {\n padding: 0 var(--pv-size-base-4);\n }\n }\n }\n\n td {\n padding: 0 var(--pv-size-base-4);\n width: 100% !important;\n max-width: 100% !important;\n\n &.divider {\n padding: 0;\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n h,\n Prop,\n State,\n Watch,\n Host,\n Build,\n} from '@stencil/core';\n\nimport {\n X509Certificate,\n} from '../../crypto';\nimport { getDNSNameLink, getIPAddressLink, getLEILink } from '../../utils/third_party_links';\nimport {\n BasicInformation,\n SubjectName,\n IssuerName,\n PublicKey,\n Signature,\n Thumbprints,\n Extensions,\n Miscellaneous,\n} from '../certificate-details-parts';\nimport { Typography } from '../typography';\n\nexport type CertificateProp = string | X509Certificate;\n\n@Component({\n tag: 'peculiar-certificate-viewer',\n styleUrl: 'certificate-viewer.scss',\n shadow: true,\n})\nexport class CertificateViewer {\n private certificateDecoded: X509Certificate;\n\n private certificateDecodeError: Error;\n\n private mobileMediaQuery: MediaQueryList;\n\n /**\n * The certificate value for decode and show details. Use PEM or DER.\n */\n @Prop({ reflect: true }) certificate: CertificateProp;\n\n /**\n * If `true` - component will show split-button to download certificate as PEM or DER.\n */\n @Prop({ reflect: true }) download?: boolean;\n\n /**\n * Authority Key Identifier extension parent link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.subject_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdParentLink?: string;\n\n /**\n * Authority Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{authKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{authKeyId}}\n */\n @Prop({ reflect: true }) authKeyIdSiblingsLink?: string;\n\n /**\n * Subject Key Identifier extension children link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://censys.io/certificates?q=parsed.extensions.authority_key_id:%20{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdChildrenLink?: string;\n\n /**\n * Subject Key Identifier extension siblings link.\n * <br />\n * **NOTE**: `{{subjectKeyId}}` will be replaced to value from the extension.\n * @example\n * https://some.com/{{subjectKeyId}}\n */\n @Prop({ reflect: true }) subjectKeyIdSiblingsLink?: string;\n\n /**\n * Issuer DN link.\n * **NOTE**: HTML component attribute must be `issuer-dn-link`.\n */\n @Prop({ reflect: true }) issuerDnLink?: string;\n\n /**\n * Mobile media query string to control screen view change.\n * <br />\n * **NOTE**: Based on https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia.\n * @example\n * (max-width: 900px)\n */\n @Prop({ reflect: false }) mobileMediaQueryString?: string = '(max-width: 900px)';\n\n @State() mobileScreenView: boolean = false;\n\n @State() isDecodeInProcess: boolean = true;\n\n private handleMediaQueryChange(event: MediaQueryListEvent) {\n this.mobileScreenView = event.matches;\n }\n\n componentWillLoad() {\n this.decodeCertificate(this.certificate);\n\n if (Build.isBrowser) {\n this.mobileMediaQuery = window.matchMedia(this.mobileMediaQueryString);\n this.mobileMediaQuery.addEventListener('change', this.handleMediaQueryChange.bind(this));\n this.mobileScreenView = this.mobileMediaQuery.matches;\n }\n }\n\n disconnectedCallback() {\n this.mobileMediaQuery.removeEventListener('change', this.handleMediaQueryChange.bind(this));\n }\n\n private async decodeCertificate(certificate: CertificateProp) {\n this.isDecodeInProcess = true;\n\n try {\n if (certificate instanceof X509Certificate) {\n this.certificateDecoded = certificate;\n } else if (typeof certificate === 'string') {\n this.certificateDecoded = new X509Certificate(certificate);\n } else {\n return;\n }\n\n this.certificateDecoded.parseExtensions();\n await this.certificateDecoded.getThumbprint('SHA-1');\n await this.certificateDecoded.getThumbprint('SHA-256');\n } catch (error) {\n this.certificateDecodeError = error;\n\n console.error('Error certificate parse:', error);\n }\n\n this.isDecodeInProcess = false;\n }\n\n /**\n * Rerun decodeCertificate if previuos value not equal current value\n */\n @Watch('certificate')\n watchCertificateAndDecode(newValue: CertificateProp, oldValue: CertificateProp) {\n if (typeof newValue === 'string' && typeof oldValue === 'string') {\n if (newValue !== oldValue) {\n this.decodeCertificate(newValue);\n }\n\n return;\n }\n\n if (newValue instanceof X509Certificate && oldValue instanceof X509Certificate) {\n if (newValue.serialNumber !== oldValue.serialNumber) {\n this.decodeCertificate(newValue);\n }\n }\n }\n\n private getAuthKeyIdParentLink = (value: string) => this.authKeyIdParentLink\n ?.replace('{{authKeyId}}', value);\n\n private getAuthKeyIdSiblingsLink = (value: string) => this.authKeyIdSiblingsLink\n ?.replace('{{authKeyId}}', value);\n\n private getSubjectKeyIdChildrenLink = (value: string) => this.subjectKeyIdChildrenLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getSubjectKeyIdSiblingsLink = (value: string) => this.subjectKeyIdSiblingsLink\n ?.replace('{{subjectKeyId}}', value);\n\n private getIssuerDnLink() {\n return this.issuerDnLink;\n }\n\n // eslint-disable-next-line class-methods-use-this\n private renderErrorState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There was an error decoding this certificate.\n </Typography>\n </div>\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n private renderEmptyState() {\n return (\n <div class=\"status_wrapper\">\n <Typography>\n There is no certificate available.\n </Typography>\n </div>\n );\n }\n\n render() {\n if (this.certificateDecodeError) {\n return this.renderErrorState();\n }\n\n if (!this.certificateDecoded) {\n return this.renderEmptyState();\n }\n\n return (\n <Host\n data-mobile-screen-view={String(this.mobileScreenView)}\n >\n <table>\n <BasicInformation\n {...this.certificateDecoded}\n />\n\n <SubjectName\n name={this.certificateDecoded.subject}\n />\n\n <IssuerName\n name={this.certificateDecoded.issuer}\n issuerDnLink={this.getIssuerDnLink()}\n />\n\n <PublicKey\n publicKey={this.certificateDecoded.publicKey}\n />\n\n <Signature\n signature={this.certificateDecoded.signature}\n />\n\n <Thumbprints\n thumbprints={this.certificateDecoded.thumbprints}\n />\n\n <Extensions\n extensions={this.certificateDecoded.extensions}\n getLEILink={getLEILink}\n getDNSNameLink={getDNSNameLink}\n getIPAddressLink={getIPAddressLink}\n getAuthKeyIdParentLink={this.getAuthKeyIdParentLink}\n getAuthKeyIdSiblingsLink={this.getAuthKeyIdSiblingsLink}\n getSubjectKeyIdChildrenLink={this.getSubjectKeyIdChildrenLink}\n getSubjectKeyIdSiblingsLink={this.getSubjectKeyIdSiblingsLink}\n />\n\n {this.download && (\n <Miscellaneous\n certificate={this.certificateDecoded}\n />\n )}\n </table>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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 n(e){try{c(a.next(e))}catch(e){i(e)}}function s(e){try{c(a["throw"](e))}catch(e){i(e)}}function c(e){e.done?r(e.value):o(e.value).then(n,s)}c((a=a.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,o,i,n;return n={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(n[Symbol.iterator]=function(){return this}),n;function s(e){return function(t){return c([e,t])}}function c(s){if(a)throw new TypeError("Generator is already executing.");while(n&&(n=0,s[0]&&(r=0)),r)try{if(a=1,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=t.call(e,r)}catch(e){s=[6,e];o=0}finally{a=i=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(e,t,r){if(r||arguments.length===2)for(var a=0,o=t.length,i;a<o;a++){if(i||!(a in t)){if(!i)i=Array.prototype.slice.call(t,0,a);i[a]=t[a]}}return e.concat(i||Array.prototype.slice.call(t))};
|
|
2
|
+
/*!
|
|
3
|
+
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
4
|
+
*/System.register(["./p-5aabeba7.system.js","./p-cfca7dae.system.js","./p-15cb92b5.system.js","./p-14f281b0.system.js","./p-2fcad8cb.system.js","./p-ddae2f8e.system.js","./p-e6a3b4d4.system.js","./p-c99507d4.system.js"],(function(e){"use strict";var t,r,a,o,i,n,s,c,l,p,d,v,h,u,b,g;return{setters:[function(e){t=e.h;r=e.r;a=e.c;o=e.H},function(e){i=e.X},function(e){n=e.$;s=e.a0;c=e.a1},function(){},function(e){l=e.T;p=e.B},function(e){d=e.D;v=e.L;h=e.C},function(e){u=e.D},function(e){b=e.a;g=e.A}],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 f=function(e){var r=e.certificate,a=e.showIssuer;var o=function(e,r){return t("tr",null,t("td",null,t(l,{variant:"b2",color:"gray-9"},e)),t("td",null,t(l,{variant:"b2",color:"black"},r)))};return t("table",null,t("tbody",null,o(n.getString("subjectName"),r.subjectToString()),a&&o(n.getString("issuerName"),r.issuerToString()),o(n.getString("serialNumber"),r.serialNumber),o(n.getString("version"),r.version),o(n.getString("validity"),r.validity),o(n.getString("issued"),s(r.notBefore)),o(n.getString("expired"),s(r.notAfter))))};var y="*{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:transparent;font-family:var(--pv-font-family, inherit)}.t-h1{font-weight:var(--pv-text-h1-weight);font-size:var(--pv-text-h1-size);line-height:var(--pv-text-h1-height);letter-spacing:var(--pv-text-h1-spacing)}.t-h2{font-weight:var(--pv-text-h2-weight);font-size:var(--pv-text-h2-size);line-height:var(--pv-text-h2-height);letter-spacing:var(--pv-text-h2-spacing)}.t-h3{font-weight:var(--pv-text-h3-weight);font-size:var(--pv-text-h3-size);line-height:var(--pv-text-h3-height);letter-spacing:var(--pv-text-h3-spacing)}.t-h4{font-weight:var(--pv-text-h4-weight);font-size:var(--pv-text-h4-size);line-height:var(--pv-text-h4-height);letter-spacing:var(--pv-text-h4-spacing)}.t-h5{font-weight:var(--pv-text-h5-weight);font-size:var(--pv-text-h5-size);line-height:var(--pv-text-h5-height);letter-spacing:var(--pv-text-h5-spacing)}.t-s1{font-weight:var(--pv-text-s1-weight);font-size:var(--pv-text-s1-size);line-height:var(--pv-text-s1-height);letter-spacing:var(--pv-text-s1-spacing)}.t-s2{font-weight:var(--pv-text-s2-weight);font-size:var(--pv-text-s2-size);line-height:var(--pv-text-s2-height);letter-spacing:var(--pv-text-s2-spacing)}.t-b1{font-weight:var(--pv-text-b1-weight);font-size:var(--pv-text-b1-size);line-height:var(--pv-text-b1-height);letter-spacing:var(--pv-text-b1-spacing)}.t-b2{font-weight:var(--pv-text-b2-weight);font-size:var(--pv-text-b2-size);line-height:var(--pv-text-b2-height);letter-spacing:var(--pv-text-b2-spacing)}.t-b3{font-weight:var(--pv-text-b3-weight);font-size:var(--pv-text-b3-size);line-height:var(--pv-text-b3-height);letter-spacing:var(--pv-text-b3-spacing)}.t-btn1{font-weight:var(--pv-text-btn1-weight);font-size:var(--pv-text-btn1-size);line-height:var(--pv-text-btn1-height);letter-spacing:var(--pv-text-btn1-spacing)}.t-btn2{font-weight:var(--pv-text-btn2-weight);font-size:var(--pv-text-btn2-size);line-height:var(--pv-text-btn2-height);letter-spacing:var(--pv-text-btn2-spacing)}.t-c1{font-weight:var(--pv-text-c1-weight);font-size:var(--pv-text-c1-size);line-height:var(--pv-text-c1-height);letter-spacing:var(--pv-text-c1-spacing)}.t-c2{font-weight:var(--pv-text-c2-weight);font-size:var(--pv-text-c2-size);line-height:var(--pv-text-c2-height);letter-spacing:var(--pv-text-c2-spacing)}.c-primary-tint-5{--pv-color-base:var(--pv-color-primary-tint-5)}.c-primary-tint-4{--pv-color-base:var(--pv-color-primary-tint-4)}.c-primary-tint-3{--pv-color-base:var(--pv-color-primary-tint-3)}.c-primary-tint-2{--pv-color-base:var(--pv-color-primary-tint-2)}.c-primary-tint-1{--pv-color-base:var(--pv-color-primary-tint-1)}.c-primary{--pv-color-base:var(--pv-color-primary)}.c-primary-shade-1{--pv-color-base:var(--pv-color-primary-shade-1)}.c-primary-shade-2{--pv-color-base:var(--pv-color-primary-shade-2)}.c-primary-shade-3{--pv-color-base:var(--pv-color-primary-shade-3)}.c-primary-shade-4{--pv-color-base:var(--pv-color-primary-shade-4)}.c-primary-shade-5{--pv-color-base:var(--pv-color-primary-shade-5)}.c-primary-contrast{--pv-color-base:var(--pv-color-primary-contrast)}.c-secondary-tint-5{--pv-color-base:var(--pv-color-secondary-tint-5)}.c-secondary-tint-4{--pv-color-base:var(--pv-color-secondary-tint-4)}.c-secondary-tint-3{--pv-color-base:var(--pv-color-secondary-tint-3)}.c-secondary-tint-2{--pv-color-base:var(--pv-color-secondary-tint-2)}.c-secondary-tint-1{--pv-color-base:var(--pv-color-secondary-tint-1)}.c-secondary{--pv-color-base:var(--pv-color-secondary)}.c-secondary-shade-1{--pv-color-base:var(--pv-color-secondary-shade-1)}.c-secondary-shade-2{--pv-color-base:var(--pv-color-secondary-shade-2)}.c-secondary-shade-3{--pv-color-base:var(--pv-color-secondary-shade-3)}.c-secondary-shade-4{--pv-color-base:var(--pv-color-secondary-shade-4)}.c-secondary-shade-5{--pv-color-base:var(--pv-color-secondary-shade-5)}.c-secondary-contrast{--pv-color-base:var(--pv-color-secondary-contrast)}.c-wrong-tint-5{--pv-color-base:var(--pv-color-wrong-tint-5)}.c-wrong-tint-4{--pv-color-base:var(--pv-color-wrong-tint-4)}.c-wrong-tint-3{--pv-color-base:var(--pv-color-wrong-tint-3)}.c-wrong-tint-2{--pv-color-base:var(--pv-color-wrong-tint-2)}.c-wrong-tint-1{--pv-color-base:var(--pv-color-wrong-tint-1)}.c-wrong{--pv-color-base:var(--pv-color-wrong)}.c-wrong-shade-1{--pv-color-base:var(--pv-color-wrong-shade-1)}.c-wrong-shade-2{--pv-color-base:var(--pv-color-wrong-shade-2)}.c-wrong-shade-3{--pv-color-base:var(--pv-color-wrong-shade-3)}.c-wrong-shade-4{--pv-color-base:var(--pv-color-wrong-shade-4)}.c-wrong-shade-5{--pv-color-base:var(--pv-color-wrong-shade-5)}.c-wrong-contrast{--pv-color-base:var(--pv-color-wrong-contrast)}.c-attention-tint-5{--pv-color-base:var(--pv-color-attention-tint-5)}.c-attention-tint-4{--pv-color-base:var(--pv-color-attention-tint-4)}.c-attention-tint-3{--pv-color-base:var(--pv-color-attention-tint-3)}.c-attention-tint-2{--pv-color-base:var(--pv-color-attention-tint-2)}.c-attention-tint-1{--pv-color-base:var(--pv-color-attention-tint-1)}.c-attention{--pv-color-base:var(--pv-color-attention)}.c-attention-shade-1{--pv-color-base:var(--pv-color-attention-shade-1)}.c-attention-shade-2{--pv-color-base:var(--pv-color-attention-shade-2)}.c-attention-shade-3{--pv-color-base:var(--pv-color-attention-shade-3)}.c-attention-shade-4{--pv-color-base:var(--pv-color-attention-shade-4)}.c-attention-shade-5{--pv-color-base:var(--pv-color-attention-shade-5)}.c-success-tint-5{--pv-color-base:var(--pv-color-success-tint-5)}.c-success-tint-4{--pv-color-base:var(--pv-color-success-tint-4)}.c-success-tint-3{--pv-color-base:var(--pv-color-success-tint-3)}.c-success-tint-2{--pv-color-base:var(--pv-color-success-tint-2)}.c-success-tint-1{--pv-color-base:var(--pv-color-success-tint-1)}.c-success{--pv-color-base:var(--pv-color-success)}.c-success-shade-1{--pv-color-base:var(--pv-color-success-shade-1)}.c-success-shade-2{--pv-color-base:var(--pv-color-success-shade-2)}.c-success-shade-3{--pv-color-base:var(--pv-color-success-shade-3)}.c-success-shade-4{--pv-color-base:var(--pv-color-success-shade-4)}.c-success-shade-5{--pv-color-base:var(--pv-color-success-shade-5)}.c-black{--pv-color-base:var(--pv-color-black)}.c-gray-10{--pv-color-base:var(--pv-color-gray-10)}.c-gray-9{--pv-color-base:var(--pv-color-gray-9)}.c-gray-8{--pv-color-base:var(--pv-color-gray-8)}.c-gray-7{--pv-color-base:var(--pv-color-gray-7)}.c-gray-6{--pv-color-base:var(--pv-color-gray-6)}.c-gray-5{--pv-color-base:var(--pv-color-gray-5)}.c-gray-4{--pv-color-base:var(--pv-color-gray-4)}.c-gray-3{--pv-color-base:var(--pv-color-gray-3)}.c-gray-2{--pv-color-base:var(--pv-color-gray-2)}.c-gray-1{--pv-color-base:var(--pv-color-gray-1)}.c-white{--pv-color-base:var(--pv-color-white)}.c-extra-1{--pv-color-base:var(--pv-color-extra-1)}.c-extra-2{--pv-color-base:var(--pv-color-extra-2)}.typography{color:var(--pv-color-base)}.button{display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;background:transparent;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;outline:none;font-family:inherit;border-radius:4px;height:var(--pv-size-base-6);min-width:var(--pv-size-base-6);padding:0 var(--pv-size-base-2);-webkit-transition:background-color 200ms ease 0s;transition:background-color 200ms ease 0s;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--pv-size-base-2);font-size:0}.button.m_no_padding{padding:0}.button:hover{background-color:var(--pv-color-gray-3)}.button:focus{background-color:var(--pv-color-gray-4)}.button:active{background-color:var(--pv-color-gray-5)}:host{display:block;width:100%;word-wrap:break-word;min-width:280px;overflow:auto;position:relative}.search_section{padding:var(--pv-size-base-4);border-bottom:1px solid var(--pv-color-gray-4)}.input_search{height:var(--pv-size-base-8);width:100%;outline:none;background-color:var(--pv-color-gray-1);padding:0 var(--pv-size-base-2);border:1px solid var(--pv-color-gray-7);border-radius:4px;-webkit-transition:background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s;transition:background-color 200ms ease 0s, color 200ms ease 0s, border-color 200ms ease 0s}.input_search::-webkit-input-placeholder{color:var(--pv-color-gray-9)}.input_search::-moz-placeholder{color:var(--pv-color-gray-9)}.input_search:-ms-input-placeholder{color:var(--pv-color-gray-9)}.input_search::-ms-input-placeholder{color:var(--pv-color-gray-9)}.input_search::placeholder{color:var(--pv-color-gray-9)}table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}table td,table th{border-bottom:1px solid var(--pv-color-gray-4);vertical-align:top;text-align:left}table td:first-child,table th:first-child{padding-right:0;width:var(--pv-size-base-10)}table td:last-child,table th:last-child{padding-left:0;width:var(--pv-size-base-10)}table th{padding:var(--pv-size-base-2) var(--pv-size-base-4)}table th.col_action{padding:0}table td{padding:var(--pv-size-base-4)}table tr.m_expanded{background:var(--pv-color-gray-1)}table tr.m_expanded>td{border-bottom:none}table tr.expanded_summary{background:var(--pv-color-gray-1)}table tr.expanded_summary table{table-layout:initial}table tr.expanded_summary table td{border-bottom:none;padding:var(--pv-size-base-2)}table tr.expanded_summary table td:first-child{width:200px}table tr.expanded_summary table td:last-child{width:auto}.button_table_cell{margin-top:-3px}.status_wrapper{text-align:center;height:var(--pv-size-base-16);vertical-align:middle}.modal_wrapper{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-animation:fadeIn 200ms;animation:fadeIn 200ms;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.modal_backdrop{background:var(--pv-color-black);z-index:-1;position:fixed;top:0;right:0;bottom:0;left:0;opacity:0.5}.modal_container{background:var(--pv-color-white);width:100%;display:-ms-flexbox;display:flex;max-height:calc(100% - 60px);-ms-flex-direction:column;flex-direction:column;margin:var(--pv-size-base-6);position:relative;outline:none;-webkit-box-shadow:var(--pv-shadow-dark-hight);box-shadow:var(--pv-shadow-dark-hight);overflow:hidden;border:0px;padding:0px;max-width:640px;border-radius:4px}.modal_header{padding:var(--pv-size-base-3) var(--pv-size-base-4);display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:var(--pv-size-base-2);border-bottom:1px solid var(--pv-color-gray-5)}.modal_content{-ms-flex:1 1 auto;flex:1 1 auto;overflow:auto}:host([data-mobile-screen-view=true]) table,:host([data-mobile-screen-view=true]) tbody,:host([data-mobile-screen-view=true]) tr,:host([data-mobile-screen-view=true]) td{display:block;width:100% !important;padding:0;border:none}:host([data-mobile-screen-view=true]) thead{display:none}:host([data-mobile-screen-view=true]) table tr{padding:var(--pv-size-base-2) 0}:host([data-mobile-screen-view=true]) table .expanded_summary{padding:0}:host([data-mobile-screen-view=true]) table .certificate_row{border-bottom:1px solid var(--pv-color-gray-5);padding:var(--pv-size-base-2) var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) table .certificate_row_actions{padding-top:var(--pv-size-base-6)}:host([data-mobile-screen-view=true]) table .certificate_row_actions td{display:-ms-flexbox;display:flex;-ms-flex-pack:right;justify-content:right;gap:var(--pv-size-base-4)}:host([data-mobile-screen-view=true]) .button_table_cell{margin-top:0}";var m=e("peculiar_certificates_viewer",function(){function e(e){var t=this;r(this,e);this.detailsOpen=a(this,"detailsOpen",7);this.detailsClose=a(this,"detailsClose",7);this.isHasRoots=false;this.handleClickDetails=function(e){t.certificateSelectedForDetails=e;t.detailsOpen.emit(e)};this.handleModalClose=function(){t.certificateSelectedForDetails=undefined;t.detailsClose.emit()};this.handleSearch=function(e){t.search=e.target.value.trim()};this.certificates=[];this.filterWithSearch=true;this.highlightWithSearch=true;this.mobileMediaQueryString="(max-width: 900px)";this.mobileScreenView=false;this.search="";this.certificatesDecoded=[];this.expandedRow=undefined;this.certificateSelectedForDetails=undefined;this.isDecodeInProcess=true}e.prototype.handleMediaQueryChange=function(e){this.mobileScreenView=e.matches};e.prototype.componentWillLoad=function(){this.certificatesDecodeAndSet();{this.mobileMediaQuery=window.matchMedia(this.mobileMediaQueryString);this.mobileMediaQuery.addEventListener("change",this.handleMediaQueryChange.bind(this));this.mobileScreenView=this.mobileMediaQuery.matches}};e.prototype.disconnectedCallback=function(){this.mobileMediaQuery.removeEventListener("change",this.handleMediaQueryChange.bind(this))};e.prototype.watchCertificates=function(e,t){if(JSON.stringify(e)!==JSON.stringify(t)){this.certificatesDecodeAndSet()}};e.prototype.certificatesDecodeAndSet=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,r,a,o,n,s;return __generator(this,(function(c){switch(c.label){case 0:e=false;if(!Array.isArray(this.certificates)){return[2]}t=[];r=0,a=this.certificates;c.label=1;case 1:if(!(r<a.length))return[3,6];o=a[r];c.label=2;case 2:c.trys.push([2,4,,5]);n=new i(o.value);return[4,n.getThumbprint("SHA-1")];case 3:c.sent();t.push({body:n,tests:o.tests,name:o.name});if(!e&&n.isRoot){e=true}return[3,5];case 4:s=c.sent();console.error("Error certificate parse:",s);return[3,5];case 5:r++;return[3,1];case 6:this.isHasRoots=e;this.isDecodeInProcess=false;this.certificatesDecoded=t;return[2]}}))}))};e.prototype.handleClickDownloadAsPem=function(e){e.body.downloadAsPEM(e.name||e.body.commonName)};e.prototype.handleClickDownloadAsDer=function(e){e.body.downloadAsDER(e.name||e.body.commonName)};e.prototype.handleClickRow=function(e){var t=this.expandedRow===e;this.expandedRow=t?undefined:e};e.prototype.getMaxColSpanValue=function(){var e=5;if(!this.isHasRoots){e+=1}return e};e.prototype.renderCertificateButtonActions=function(e){var r=this;var a,o,i;var s=e.tests&&(e.tests.expired||e.tests.revoked||e.tests.valid);return t("peculiar-button-menu",{class:"button_table_cell",groups:__spreadArray([{title:n.getString("previewCertificate"),options:[{text:n.getString("viewDetails"),startIcon:t(d,null),onClick:function(){return r.handleClickDetails(e.body)}}]},{title:n.getString("downloadOptions"),options:[{text:n.getString("download.pem"),startIcon:t(u,null),onClick:function(){return r.handleClickDownloadAsPem(e)}},{text:n.getString("download.der"),startIcon:t(u,null),onClick:function(){return r.handleClickDownloadAsDer(e)}}]}],s?[{title:n.getString("testURLs"),options:__spreadArray(__spreadArray(__spreadArray([],((a=e.tests)===null||a===void 0?void 0:a.valid)?[{text:n.getString("valid"),href:e.tests.valid,startIcon:t(v,null)}]:[],true),((o=e.tests)===null||o===void 0?void 0:o.revoked)?[{text:n.getString("revoked"),href:e.tests.revoked,startIcon:t(v,null)}]:[],true),((i=e.tests)===null||i===void 0?void 0:i.expired)?[{text:n.getString("expired"),href:e.tests.expired,startIcon:t(v,null)}]:[],true)}]:[],true)})};e.prototype.renderExpandedRow=function(e){var r=this.getMaxColSpanValue()-2;return t("tr",{class:"expanded_summary"},t("td",null),t("td",{colSpan:r},t(f,{certificate:e,showIssuer:!e.isRoot})),t("td",null))};e.prototype.renderCertificatesRows=function(){var e=this;var r=this.highlightWithSearch?this.search:"";var a=[];this.certificatesDecoded.forEach((function(o,i){var s=i===e.expandedRow;var d=c[o.body.signature.algorithm]||o.body.signature.algorithm;if(e.filterWithSearch&&e.search){var v=[d,o.body.issuerCommonName,o.name,o.body.commonName,o.body.thumbprints["SHA-1"]].join(" ").toLowerCase();if(v.indexOf(e.search.toLowerCase())===-1){return}}if(e.mobileScreenView){a.push([t("tr",{class:{certificate_row:true,m_expanded:s},key:o.body.thumbprints["SHA-1"]},t("td",null,t("table",null,t("tbody",null,!e.isHasRoots&&t("tr",null,t("td",null,t(l,{variant:"b2",color:"gray-9"},n.getString("issuer"))),t("td",null,t(l,{variant:"b2",color:"black"},t("peculiar-highlight-words",{search:r},o.body.issuerCommonName)))),t("tr",null,t("td",null,t(l,{variant:"b2",color:"gray-9"},n.getString("name"))),t("td",null,t(l,{variant:"b2",color:"black"},t("peculiar-highlight-words",{search:r},o.name||o.body.commonName)))),t("tr",null,t("td",null,t(l,{variant:"b2",color:"gray-9"},n.getString("publicKey"))),t("td",null,t(l,{variant:"b2",color:"black"},t("peculiar-highlight-words",{search:r},d)))),t("tr",null,t("td",null,t(l,{variant:"b2",color:"gray-9"},n.getString("fingerprint")," (SHA-1)")),t("td",null,t(l,{variant:"b2",color:"black"},t("peculiar-highlight-words",{search:r},o.body.thumbprints["SHA-1"])))),s&&e.renderExpandedRow(o.body),t("tr",{class:"certificate_row_actions"},t("td",null,e.renderCertificateButtonActions(o),t(p,{onClick:e.handleClickRow.bind(e,i),startIcon:s?t(b,null):t(g,null)})))))))]);return}a.push([t("tr",{class:{m_expanded:s},key:o.body.thumbprints["SHA-1"]},t("td",null,t(p,{class:"button_table_cell",onClick:e.handleClickRow.bind(e,i),startIcon:s?t(b,null):t(g,null)})),!e.isHasRoots&&t("td",null,t(l,null,t("peculiar-highlight-words",{search:r},o.body.issuerCommonName))),t("td",null,t(l,null,t("peculiar-highlight-words",{search:r},o.name||o.body.commonName))),t("td",null,t(l,null,t("peculiar-highlight-words",{search:r},d))),t("td",null,t(l,null,t("peculiar-highlight-words",{search:r},o.body.thumbprints["SHA-1"]))),t("td",null,e.renderCertificateButtonActions(o))),s&&e.renderExpandedRow(o.body)])}));return a};e.prototype.renderCertificateDetailsModal=function(){if(!this.certificateSelectedForDetails){return null}return t("div",{class:"modal_wrapper",role:"presentation","aria-hidden":"false",part:"presentation"},t("div",{class:"modal_backdrop",onClick:this.handleModalClose,"aria-hidden":"true"}),t("div",{class:"modal_container",role:"dialog",part:"presentation_container"},t("header",{class:"modal_header"},t(l,{variant:"h4"},n.getString("certificateDetails")),t(p,{onClick:this.handleModalClose,startIcon:t(h,null)})),t("div",{class:"modal_content"},t("peculiar-certificate-viewer",{certificate:this.certificateSelectedForDetails,mobileMediaQueryString:this.mobileMediaQueryString}))))};e.prototype.renderSearch=function(){if(!this.filterWithSearch&&!this.highlightWithSearch){return null}return t("div",{class:"search_section"},t("input",{onInput:this.handleSearch,type:"search",value:"",class:"input_search t-b3 c-black",disabled:!this.certificatesDecoded.length,placeholder:"Search"}))};e.prototype.renderEmptyState=function(){var e=this.getMaxColSpanValue();return t("tr",null,t("td",{class:"status_wrapper",colSpan:e},t(l,{variant:"b1"},"There are no certificates available.")))};e.prototype.renderEmptySearchState=function(){var e=this.getMaxColSpanValue();return t("tr",null,t("td",{class:"status_wrapper",colSpan:e},t(l,{variant:"b1"},"No results found for “",this.search,"“")))};e.prototype.renderLoadingState=function(){return t("div",{class:"loading_container"},t("peculiar-circular-progress",null))};e.prototype.renderTableBody=function(){if(this.isDecodeInProcess){return null}if(!this.certificatesDecoded.length){return this.renderEmptyState()}var e=this.renderCertificatesRows();if(this.search&&!e.length){return this.renderEmptySearchState()}return e};e.prototype.render=function(){return t(o,{"data-mobile-screen-view":String(this.mobileScreenView)},this.renderSearch(),t("table",null,!this.mobileScreenView&&t("thead",null,t("tr",null,t("th",null),!this.isHasRoots&&t("th",{class:"col_issuer"},t(l,{variant:"s2"},n.getString("issuer"))),t("th",{class:"col_name"},t(l,{variant:"s2"},n.getString("name"))),t("th",{class:"col_public_key"},t(l,{variant:"s2"},n.getString("publicKey"))),t("th",{class:"col_fingerprint"},t(l,{variant:"s2"},n.getString("fingerprint")," (SHA-1)")),t("th",null))),t("tbody",null,this.renderTableBody())),this.renderCertificateDetailsModal(),this.isDecodeInProcess&&this.renderLoadingState())};Object.defineProperty(e,"watchers",{get:function(){return{certificates:["watchCertificates"]}},enumerable:false,configurable:true});return e}());m.style=y}}}));
|
|
13
|
+
//# sourceMappingURL=p-0bd7c6bc.system.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CertificateSummary","props","certificate","showIssuer","renderRow","name","value","h","Typography","variant","color","l10n","getString","subjectToString","issuerToString","serialNumber","version","validity","dateShort","notBefore","notAfter","certificatesViewerCss","CertificatesViewer","exports","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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"}
|
|
@@ -15,5 +15,5 @@ import{h as o}from"./p-0b356bb5.js";
|
|
|
15
15
|
*
|
|
16
16
|
* This source code is licensed under the MIT license found in the
|
|
17
17
|
* LICENSE file in the root directory of this source tree.
|
|
18
|
-
*/const r=t=>{const{color:r="gray-10"}=t;return o("svg",{xmlns:"http://www.w3.org/2000/svg",width:"30",height:"30",fill:"none"},o("path",{stroke:`var(--pv-color-${r})`,"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"}))};export{
|
|
19
|
-
//# sourceMappingURL=p-
|
|
18
|
+
*/const r=t=>{const{color:r="gray-10"}=t;return o("svg",{xmlns:"http://www.w3.org/2000/svg",width:"30",height:"30",fill:"none"},o("path",{stroke:`var(--pv-color-${r})`,"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"}))};export{t as A,r as a};
|
|
19
|
+
//# sourceMappingURL=p-0fc2e2b4.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
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-15cb92b5.system.js","./p-14f281b0.system.js"],(function(t){"use strict";var e,r,n,o,i,a,s,u,c,p,f,l,h,m,v,b,y,d,g,x,w,E,A,_,T,C,N,P,R,j,I,k,B,F,H,O,S,D,U,z,M,q,K,L;return{setters:[function(t){e=t.A;r=t.t;n=t.u;o=t.v;i=t.w;a=t.E;s=t.g;u=t.x;c=t.U;p=t.y;f=t.z;l=t.B;h=t.V;m=t.D;v=t.I;b=t.F;y=t.W;d=t.G;g=t.H;x=t.J;w=t.T;E=t.K;A=t.L;_=t.M;T=t.O;C=t.P;N=t.Q;P=t.S;R=t.X;j=t.e;I=t.Y;k=t.f;B=t.s;F=t.q;H=t.r;O=t.Z;S=t.N;D=t.h;U=t.j;z=t.k;M=t.R;q=t._},function(t){K=t.C;L=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 V=function(t){__extends(e,t);function e(e){var j=t.call(this,e,r)||this;var I=j.getAsnExtnValue();switch(j.asn.type){case P:j.value=o.parse(I,R);break;case C:j.value=o.parse(I,N);break;case _:j.value=o.parse(I,T);break;case E:j.value=o.parse(I,A);break;case x:j.value=o.parse(I,w);break;case d:j.value=o.parse(I,g);break;case b:j.value=o.parse(I,y);break;case m:j.value=o.parse(I,v);break;case l:j.value=o.parse(I,h);break;case p:j.value=o.parse(I,f);break;case u:j.value=o.parse(I,c);break;case n:{var k=o.parse(I,i);j.value=k.map((function(t){return new a(s.serialize(t))}));break}default:j.value=K.ToHex(I)}return j}e.prototype.getAsnExtnValue=function(){return this.asn.values[0]};return e}(e);
|
|
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 X=function(t){__extends(e,t);function e(e){var r=this;var n;r=t.call(this,j(e),I)||this;r.thumbprints={};r.type="X.509 Attribute Certificate";var o=r.asn.acinfo;r.serialNumber=K.ToHex(o.serialNumber);r.version=o.version;var i=o.attrCertValidityPeriod.notBeforeTime;if(!i){throw new Error("Cannot get 'notBefore' value")}r.notBefore=i;var a=o.attrCertValidityPeriod.notAfterTime;if(!a){throw new Error("Cannot get 'notAfter' value")}r.notAfter=a;r.validity=k(r.notBefore,r.notAfter);r.issuer=o.issuer.v1Form||((n=o.issuer.v2Form)===null||n===void 0?void 0:n.issuerName);r.holder=o.holder;return r}Object.defineProperty(e.prototype,"signature",{get:function(){var t=this.asn,e=t.signatureValue,r=t.signatureAlgorithm;return{value:e,algorithm:r.algorithm}},enumerable:false,configurable:true});e.prototype.parseExtensions=function(){var t=this.asn.acinfo;if(t.extensions){this.extensions=t.extensions.map((function(t){return new a(s.serialize(t))}))}};e.prototype.parseAttributes=function(){var t=this.asn.acinfo;if(t.attributes){this.attributes=t.attributes.map((function(t){return new V(s.serialize(t))}))}};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,B(t,this.raw)];case 1:e=n.sent();if(e){this.thumbprints[t]=K.ToHex(e)}return[3,3];case 2:r=n.sent();console.error("Error thumbprint get:",r);return[3,3];case 3:return[2]}}))}))};e.prototype.exportAsBase64=function(){return K.ToBase64(this.raw)};e.prototype.exportAsHexFormatted=function(){return F(K.ToHex(this.raw))};e.prototype.exportAsPemFormatted=function(){return"-----BEGIN ATTRIBUTE CERTIFICATE-----\n".concat(H(this.exportAsBase64()),"\n-----END ATTRIBUTE CERTIFICATE-----")};Object.defineProperty(e.prototype,"commonName",{get:function(){return"attribute-certificate-".concat(this.thumbprints["SHA-1"])},enumerable:false,configurable:true});e.prototype.downloadAsPEM=function(t){L.attrCert.asPEM(this.exportAsPemFormatted(),t||this.commonName)};e.prototype.downloadAsDER=function(t){L.attrCert.asDER(this.exportAsHexFormatted(),t||this.commonName)};return e}(e);t("X",X);
|
|
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 G=function(t){__extends(e,t);function e(e){var r=t.call(this,j(e),O)||this;r.thumbprints={};r.type="PKCS#10 Certificate Request";var n=r.asn.certificationRequestInfo;r.subject=new S(n.subject).toJSON();r.version=n.version;return r}Object.defineProperty(e.prototype,"publicKey",{get:function(){var t=this.asn.certificationRequestInfo.subjectPKInfo,e=t.subjectPublicKey,r=t.algorithm;var n;if(r.algorithm===D&&r.parameters){n=s.parse(r.parameters,U)}if(r.algorithm===z){n=s.parse(e,M)}var o=s.serialize(this.asn.certificationRequestInfo.subjectPKInfo);return{params:n,value:o,algorithm:r.algorithm}},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"signature",{get:function(){var t=this.asn,e=t.signature,r=t.signatureAlgorithm;return{value:e,algorithm:r.algorithm}},enumerable:false,configurable:true});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});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,B(t,this.raw)];case 1:e=n.sent();if(e){this.thumbprints[t]=K.ToHex(e)}return[3,3];case 2:r=n.sent();console.error("Error thumbprint get:",r);return[3,3];case 3:return[2]}}))}))};e.prototype.parseAttributes=function(){var t=this.asn.certificationRequestInfo;if(t.attributes){this.attributes=t.attributes.map((function(t){return new V(s.serialize(t))}))}};e.prototype.exportAsBase64=function(){return K.ToBase64(this.raw)};e.prototype.exportAsHexFormatted=function(){return F(K.ToHex(this.raw))};e.prototype.exportAsPemFormatted=function(){return"-----BEGIN CERTIFICATE REQUEST-----\n".concat(H(this.exportAsBase64()),"\n-----END CERTIFICATE REQUEST-----")};e.prototype.downloadAsPEM=function(t){L.csr.asPEM(this.exportAsPemFormatted(),t||this.commonName)};e.prototype.downloadAsDER=function(t){L.csr.asDER(this.exportAsHexFormatted(),t||this.commonName)};return e}(e);t("C",G);
|
|
27
|
+
/**
|
|
28
|
+
* @license
|
|
29
|
+
* Copyright (c) Peculiar Ventures, LLC.
|
|
30
|
+
*
|
|
31
|
+
* This source code is licensed under the MIT license found in the
|
|
32
|
+
* LICENSE file in the root directory of this source tree.
|
|
33
|
+
*/var J=function(t){__extends(e,t);function e(e){var r=t.call(this,j(e),q)||this;r.thumbprints={};r.type="X.509 Certificate Revocation List";var n=r.asn.tbsCertList;r.issuer=new S(n.issuer).toJSON();r.version=n.version+1;r.lastUpdate=n.thisUpdate.getTime();r.nextUpdate=n.nextUpdate.getTime();r.revokedCertificates=(n.revokedCertificates||[]).map((function(t){var e;return{revocationDate:t.revocationDate,userCertificate:t.userCertificate,crlEntryExtensions:(e=t.crlEntryExtensions)===null||e===void 0?void 0:e.map((function(t){return new a(s.serialize(t))}))}}));return r}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,B(t,this.raw)];case 1:e=n.sent();if(e){this.thumbprints[t]=K.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,"signature",{get:function(){var t=this.asn,e=t.signature,r=t.signatureAlgorithm;return{value:e,algorithm:r.algorithm}},enumerable:false,configurable:true});Object.defineProperty(e.prototype,"commonName",{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"||e.shortName==="E"||e.shortName==="O"){return e.value}}return""},enumerable:false,configurable:true});e.prototype.parseExtensions=function(){var t=this.asn.tbsCertList;if(t.crlExtensions){this.extensions=t.crlExtensions.map((function(t){return new a(s.serialize(t))}))}};e.prototype.exportAsBase64=function(){return K.ToBase64(this.raw)};e.prototype.exportAsHexFormatted=function(){return F(K.ToHex(this.raw))};e.prototype.exportAsPemFormatted=function(){return"-----BEGIN X509 CRL-----\n".concat(H(this.exportAsBase64()),"\n-----END X509 CRL-----")};e.prototype.downloadAsPEM=function(t){L.crl.asPEM(this.exportAsPemFormatted(),t||this.commonName)};e.prototype.downloadAsDER=function(t){L.crl.asDER(this.exportAsHexFormatted(),t||this.commonName)};return e}(e);t("a",J)}}}));
|
|
34
|
+
//# sourceMappingURL=p-10d2d400.system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__extends","Attribute","_super","raw","_this","call","this","AsnAttribute","asnExtnValue","getAsnExtnValue","asn","type","id_DomainNameBeneficiary","value","AsnParser","parse","DomainNameBeneficiary","id_DomainNameLegalRepresentative","DomainNameLegalRepresentative","id_DomainNameOwner","DomainNameOwner","id_DomainNameTechnicalOperator","DomainNameTechnicalOperator","id_TypeRelationship","TypeRelationship","id_ActivityDescription","ActivityDescription","id_WebGDPR","WebGDPR","id_InsuranceValue","InsuranceValue","id_ValuationRanking","ValuationRanking","id_pkcs9_at_challengePassword","ChallengePassword","id_pkcs9_at_unstructuredName","UnstructuredName","id_pkcs9_at_extensionRequest","extensionRequest","ExtensionRequest","map","e","Extension","AsnConvert","serialize","Convert","ToHex","prototype","values","AsnData","X509AttributeCertificate","certificateRawToBuffer","AttributeCertificate","thumbprints","acinfo","serialNumber","version","notBefore","attrCertValidityPeriod","notBeforeTime","Error","notAfter","notAfterTime","validity","dateDiff","issuer","v1Form","_a","v2Form","issuerName","holder","Object","defineProperty","_b","signatureValue","signatureAlgorithm","algorithm","parseExtensions","extensions","parseAttributes","attributes","getThumbprint","getCertificateThumbprint","thumbprint","sent","console","error","error_1","exportAsBase64","ToBase64","exportAsHexFormatted","hexFormat","exportAsPemFormatted","concat","base64Format","downloadAsPEM","name","Download","attrCert","asPEM","commonName","downloadAsDER","asDER","CSR","CertificationRequest","certificationRequestInfo","subject","Name","toJSON","subjectPKInfo","subjectPublicKey","params","id_ecPublicKey","parameters","ECParameters","id_rsaEncryption","RSAPublicKey","spki","signature","i","length","shortName","error_2","csr","CRL","CertificateList","tbsCertList","lastUpdate","thisUpdate","getTime","nextUpdate","revokedCertificates","revokedCertificate","revocationDate","userCertificate","crlEntryExtensions","error_3","crlExtensions","crl"],"sources":["src/crypto/attribute.ts","src/crypto/x509_attribute_certificate.ts","src/crypto/csr.ts","src/crypto/crl.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\nimport { AsnParser, AsnConvert } from '@peculiar/asn1-schema';\nimport { Attribute as AsnAttribute } from '@peculiar/asn1-x509';\nimport {\n id_DomainNameBeneficiary,\n DomainNameBeneficiary,\n\n id_DomainNameLegalRepresentative,\n DomainNameLegalRepresentative,\n\n id_DomainNameOwner,\n DomainNameOwner,\n\n id_DomainNameTechnicalOperator,\n DomainNameTechnicalOperator,\n\n id_TypeRelationship,\n TypeRelationship,\n\n id_ActivityDescription,\n ActivityDescription,\n\n id_WebGDPR,\n WebGDPR,\n\n id_InsuranceValue,\n InsuranceValue,\n\n id_ValuationRanking,\n ValuationRanking,\n} from '@peculiar/asn1-ntqwac';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n\n id_pkcs9_at_challengePassword,\n ChallengePassword,\n\n id_pkcs9_at_unstructuredName,\n UnstructuredName,\n} from '@peculiar/asn1-pkcs9';\n\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\n\nexport type TAttributeValue = DomainNameBeneficiary\n| DomainNameLegalRepresentative\n| DomainNameOwner\n| DomainNameTechnicalOperator\n| TypeRelationship\n| ActivityDescription\n| WebGDPR\n| InsuranceValue\n| ValuationRanking\n| Extension<TExtensionValue>[]\n| ChallengePassword\n| UnstructuredName\n| string;\n\nexport class Attribute<T extends TAttributeValue> extends AsnData<AsnAttribute> {\n public readonly value: T;\n\n private getAsnExtnValue() {\n return this.asn.values[0];\n }\n\n constructor(raw: BufferSource) {\n super(raw, AsnAttribute);\n\n const asnExtnValue = this.getAsnExtnValue();\n\n switch (this.asn.type) {\n case id_DomainNameBeneficiary:\n this.value = AsnParser.parse(asnExtnValue, DomainNameBeneficiary) as T;\n break;\n case id_DomainNameLegalRepresentative:\n this.value = AsnParser.parse(asnExtnValue, DomainNameLegalRepresentative) as T;\n break;\n case id_DomainNameOwner:\n this.value = AsnParser.parse(asnExtnValue, DomainNameOwner) as T;\n break;\n case id_DomainNameTechnicalOperator:\n this.value = AsnParser.parse(asnExtnValue, DomainNameTechnicalOperator) as T;\n break;\n case id_TypeRelationship:\n this.value = AsnParser.parse(asnExtnValue, TypeRelationship) as T;\n break;\n case id_ActivityDescription:\n this.value = AsnParser.parse(asnExtnValue, ActivityDescription) as T;\n break;\n case id_WebGDPR:\n this.value = AsnParser.parse(asnExtnValue, WebGDPR) as T;\n break;\n case id_InsuranceValue:\n this.value = AsnParser.parse(asnExtnValue, InsuranceValue) as T;\n break;\n case id_ValuationRanking:\n this.value = AsnParser.parse(asnExtnValue, ValuationRanking) as T;\n break;\n case id_pkcs9_at_challengePassword:\n this.value = AsnParser.parse(asnExtnValue, ChallengePassword) as T;\n break;\n case id_pkcs9_at_unstructuredName:\n this.value = AsnParser.parse(asnExtnValue, UnstructuredName) as T;\n break;\n case id_pkcs9_at_extensionRequest: {\n const extensionRequest = AsnParser.parse(asnExtnValue, ExtensionRequest);\n\n this.value = extensionRequest\n .map((e) => new Extension(AsnConvert.serialize(e))) as T;\n break;\n }\n default:\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport type { GeneralName } from '@peculiar/asn1-x509';\nimport { AttributeCertificate, Holder } from '@peculiar/asn1-x509-attr';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Extension, TExtensionValue } from './extension';\nimport { Attribute, TAttributeValue } from './attribute';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport class X509AttributeCertificate extends AsnData<AttributeCertificate> {\n public readonly serialNumber: string;\n\n public readonly version: number;\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly issuer: GeneralName[];\n\n public holder: Holder;\n\n public type: string = 'X.509 Attribute Certificate';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), AttributeCertificate);\n\n const { acinfo } = this.asn;\n\n this.serialNumber = Convert.ToHex(acinfo.serialNumber);\n this.version = acinfo.version;\n\n const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n this.issuer = acinfo.issuer.v1Form || acinfo.issuer.v2Form?.issuerName;\n this.holder = acinfo.holder;\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n\n return {\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public parseExtensions() {\n const { acinfo } = this.asn;\n\n if (acinfo.extensions) {\n this.extensions = acinfo.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public parseAttributes() {\n const { acinfo } = this.asn;\n\n if (acinfo.attributes) {\n this.attributes = acinfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public async getThumbprint(\n algorithm: 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 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 ATTRIBUTE CERTIFICATE-----\\n${base64Format(this.exportAsBase64())}\\n-----END ATTRIBUTE CERTIFICATE-----`;\n }\n\n public get commonName(): string {\n return `attribute-certificate-${this.thumbprints['SHA-1']}`;\n }\n\n public downloadAsPEM(name?: string) {\n Download.attrCert.asPEM(\n this.exportAsPemFormatted(),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.attrCert.asDER(\n this.exportAsHexFormatted(),\n name || this.commonName,\n );\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport { CertificationRequest } from '@peculiar/asn1-csr';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { Attribute, TAttributeValue } from './attribute';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\ninterface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey;\n}\n\nexport class CSR extends AsnData<CertificationRequest> {\n public readonly subject: INameJSON[];\n\n public readonly version: number;\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public type: string = 'PKCS#10 Certificate Request';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificationRequest);\n\n const { certificationRequestInfo } = this.asn;\n\n this.subject = new Name(certificationRequestInfo.subject).toJSON();\n this.version = certificationRequestInfo.version;\n }\n\n public get publicKey(): IPublicKey {\n const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;\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 const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.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 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 parseAttributes() {\n const { certificationRequestInfo } = this.asn;\n\n if (certificationRequestInfo.attributes) {\n this.attributes = certificationRequestInfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\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 REQUEST-----\\n${base64Format(this.exportAsBase64())}\\n-----END CERTIFICATE REQUEST-----`;\n }\n\n public downloadAsPEM(name?: string) {\n Download.csr.asPEM(\n this.exportAsPemFormatted(),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.csr.asDER(\n this.exportAsHexFormatted(),\n name || this.commonName,\n );\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { CertificateList, Time } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport interface IRevokedCertificate {\n userCertificate: ArrayBuffer;\n revocationDate: Time;\n crlEntryExtensions?: Extension<TExtensionValue>[];\n}\n\nexport class CRL extends AsnData<CertificateList> {\n public readonly issuer: INameJSON[];\n\n public readonly version: number;\n\n public readonly lastUpdate: Date;\n\n public readonly nextUpdate: Date;\n\n public extensions: Extension<TExtensionValue>[];\n\n public revokedCertificates: IRevokedCertificate[];\n\n public thumbprints: Record<string, string> = {};\n\n public type: string = 'X.509 Certificate Revocation List';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificateList);\n\n const { tbsCertList } = this.asn;\n\n this.issuer = new Name(tbsCertList.issuer).toJSON();\n this.version = tbsCertList.version + 1;\n this.lastUpdate = tbsCertList.thisUpdate.getTime();\n this.nextUpdate = tbsCertList.nextUpdate.getTime();\n\n this.revokedCertificates = (tbsCertList.revokedCertificates || [])\n .map((revokedCertificate) => ({\n revocationDate: revokedCertificate.revocationDate,\n userCertificate: revokedCertificate.userCertificate,\n crlEntryExtensions: revokedCertificate.crlEntryExtensions\n ?.map((e) => new Extension(AsnConvert.serialize(e))),\n }));\n }\n\n public async getThumbprint(\n algorithm: 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 signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public parseExtensions() {\n const { tbsCertList } = this.asn;\n\n if (tbsCertList.crlExtensions) {\n this.extensions = tbsCertList.crlExtensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public 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 X509 CRL-----\\n${base64Format(this.exportAsBase64())}\\n-----END X509 CRL-----`;\n }\n\n public downloadAsPEM(name?: string) {\n Download.crl.asPEM(\n this.exportAsPemFormatted(),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.crl.asDER(\n this.exportAsHexFormatted(),\n name || this.commonName,\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["__extends","Attribute","_super","raw","_this","call","this","AsnAttribute","asnExtnValue","getAsnExtnValue","asn","type","id_DomainNameBeneficiary","value","AsnParser","parse","DomainNameBeneficiary","id_DomainNameLegalRepresentative","DomainNameLegalRepresentative","id_DomainNameOwner","DomainNameOwner","id_DomainNameTechnicalOperator","DomainNameTechnicalOperator","id_TypeRelationship","TypeRelationship","id_ActivityDescription","ActivityDescription","id_WebGDPR","WebGDPR","id_InsuranceValue","InsuranceValue","id_ValuationRanking","ValuationRanking","id_pkcs9_at_challengePassword","ChallengePassword","id_pkcs9_at_unstructuredName","UnstructuredName","id_pkcs9_at_extensionRequest","extensionRequest","ExtensionRequest","map","e","Extension","AsnConvert","serialize","Convert","ToHex","prototype","values","AsnData","X509AttributeCertificate","certificateRawToBuffer","AttributeCertificate","thumbprints","acinfo","serialNumber","version","notBefore","attrCertValidityPeriod","notBeforeTime","Error","notAfter","notAfterTime","validity","dateDiff","issuer","v1Form","_a","v2Form","issuerName","holder","Object","defineProperty","_b","signatureValue","signatureAlgorithm","algorithm","parseExtensions","extensions","parseAttributes","attributes","getThumbprint","getCertificateThumbprint","thumbprint","sent","console","error","error_1","exportAsBase64","ToBase64","exportAsHexFormatted","hexFormat","exportAsPemFormatted","concat","base64Format","downloadAsPEM","name","Download","attrCert","asPEM","commonName","downloadAsDER","asDER","CSR","CertificationRequest","certificationRequestInfo","subject","Name","toJSON","subjectPKInfo","subjectPublicKey","params","id_ecPublicKey","parameters","ECParameters","id_rsaEncryption","RSAPublicKey","spki","signature","i","length","shortName","error_2","csr","CRL","CertificateList","tbsCertList","lastUpdate","thisUpdate","getTime","nextUpdate","revokedCertificates","revokedCertificate","revocationDate","userCertificate","crlEntryExtensions","error_3","crlExtensions","crl"],"sources":["src/crypto/attribute.ts","src/crypto/x509_attribute_certificate.ts","src/crypto/csr.ts","src/crypto/crl.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\nimport { AsnParser, AsnConvert } from '@peculiar/asn1-schema';\nimport { Attribute as AsnAttribute } from '@peculiar/asn1-x509';\nimport {\n id_DomainNameBeneficiary,\n DomainNameBeneficiary,\n\n id_DomainNameLegalRepresentative,\n DomainNameLegalRepresentative,\n\n id_DomainNameOwner,\n DomainNameOwner,\n\n id_DomainNameTechnicalOperator,\n DomainNameTechnicalOperator,\n\n id_TypeRelationship,\n TypeRelationship,\n\n id_ActivityDescription,\n ActivityDescription,\n\n id_WebGDPR,\n WebGDPR,\n\n id_InsuranceValue,\n InsuranceValue,\n\n id_ValuationRanking,\n ValuationRanking,\n} from '@peculiar/asn1-ntqwac';\nimport {\n id_pkcs9_at_extensionRequest,\n ExtensionRequest,\n\n id_pkcs9_at_challengePassword,\n ChallengePassword,\n\n id_pkcs9_at_unstructuredName,\n UnstructuredName,\n} from '@peculiar/asn1-pkcs9';\n\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\n\nexport type TAttributeValue = DomainNameBeneficiary\n| DomainNameLegalRepresentative\n| DomainNameOwner\n| DomainNameTechnicalOperator\n| TypeRelationship\n| ActivityDescription\n| WebGDPR\n| InsuranceValue\n| ValuationRanking\n| Extension<TExtensionValue>[]\n| ChallengePassword\n| UnstructuredName\n| string;\n\nexport class Attribute<T extends TAttributeValue> extends AsnData<AsnAttribute> {\n public readonly value: T;\n\n private getAsnExtnValue() {\n return this.asn.values[0];\n }\n\n constructor(raw: BufferSource) {\n super(raw, AsnAttribute);\n\n const asnExtnValue = this.getAsnExtnValue();\n\n switch (this.asn.type) {\n case id_DomainNameBeneficiary:\n this.value = AsnParser.parse(asnExtnValue, DomainNameBeneficiary) as T;\n break;\n case id_DomainNameLegalRepresentative:\n this.value = AsnParser.parse(asnExtnValue, DomainNameLegalRepresentative) as T;\n break;\n case id_DomainNameOwner:\n this.value = AsnParser.parse(asnExtnValue, DomainNameOwner) as T;\n break;\n case id_DomainNameTechnicalOperator:\n this.value = AsnParser.parse(asnExtnValue, DomainNameTechnicalOperator) as T;\n break;\n case id_TypeRelationship:\n this.value = AsnParser.parse(asnExtnValue, TypeRelationship) as T;\n break;\n case id_ActivityDescription:\n this.value = AsnParser.parse(asnExtnValue, ActivityDescription) as T;\n break;\n case id_WebGDPR:\n this.value = AsnParser.parse(asnExtnValue, WebGDPR) as T;\n break;\n case id_InsuranceValue:\n this.value = AsnParser.parse(asnExtnValue, InsuranceValue) as T;\n break;\n case id_ValuationRanking:\n this.value = AsnParser.parse(asnExtnValue, ValuationRanking) as T;\n break;\n case id_pkcs9_at_challengePassword:\n this.value = AsnParser.parse(asnExtnValue, ChallengePassword) as T;\n break;\n case id_pkcs9_at_unstructuredName:\n this.value = AsnParser.parse(asnExtnValue, UnstructuredName) as T;\n break;\n case id_pkcs9_at_extensionRequest: {\n const extensionRequest = AsnParser.parse(asnExtnValue, ExtensionRequest);\n\n this.value = extensionRequest\n .map((e) => new Extension(AsnConvert.serialize(e))) as T;\n break;\n }\n default:\n this.value = Convert.ToHex(asnExtnValue) as T;\n }\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport type { GeneralName } from '@peculiar/asn1-x509';\nimport { AttributeCertificate, Holder } from '@peculiar/asn1-x509-attr';\nimport { Convert } from 'pvtsutils';\n\nimport { dateDiff, Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Extension, TExtensionValue } from './extension';\nimport { Attribute, TAttributeValue } from './attribute';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport class X509AttributeCertificate extends AsnData<AttributeCertificate> {\n public readonly serialNumber: string;\n\n public readonly version: number;\n\n public readonly notBefore: Date;\n\n public readonly notAfter: Date;\n\n public readonly validity: string;\n\n public extensions: Extension<TExtensionValue>[];\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public readonly issuer: GeneralName[];\n\n public holder: Holder;\n\n public type: string = 'X.509 Attribute Certificate';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), AttributeCertificate);\n\n const { acinfo } = this.asn;\n\n this.serialNumber = Convert.ToHex(acinfo.serialNumber);\n this.version = acinfo.version;\n\n const notBefore = acinfo.attrCertValidityPeriod.notBeforeTime;\n\n if (!notBefore) {\n throw new Error(\"Cannot get 'notBefore' value\");\n }\n\n this.notBefore = notBefore;\n\n const notAfter = acinfo.attrCertValidityPeriod.notAfterTime;\n\n if (!notAfter) {\n throw new Error(\"Cannot get 'notAfter' value\");\n }\n\n this.notAfter = notAfter;\n this.validity = dateDiff(this.notBefore, this.notAfter);\n this.issuer = acinfo.issuer.v1Form || acinfo.issuer.v2Form?.issuerName;\n this.holder = acinfo.holder;\n }\n\n public get signature(): ISignature {\n const { signatureValue, signatureAlgorithm } = this.asn;\n\n return {\n value: signatureValue,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public parseExtensions() {\n const { acinfo } = this.asn;\n\n if (acinfo.extensions) {\n this.extensions = acinfo.extensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public parseAttributes() {\n const { acinfo } = this.asn;\n\n if (acinfo.attributes) {\n this.attributes = acinfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\n }\n }\n\n public async getThumbprint(\n algorithm: 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 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 ATTRIBUTE CERTIFICATE-----\\n${base64Format(this.exportAsBase64())}\\n-----END ATTRIBUTE CERTIFICATE-----`;\n }\n\n public get commonName(): string {\n return `attribute-certificate-${this.thumbprints['SHA-1']}`;\n }\n\n public downloadAsPEM(name?: string) {\n Download.attrCert.asPEM(\n this.exportAsPemFormatted(),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.attrCert.asDER(\n this.exportAsHexFormatted(),\n name || this.commonName,\n );\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { ECParameters, id_ecPublicKey } from '@peculiar/asn1-ecc';\nimport { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';\nimport { CertificationRequest } from '@peculiar/asn1-csr';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport { Attribute, TAttributeValue } from './attribute';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\ninterface IPublicKey {\n algorithm: string;\n value: BufferSource;\n params?: ECParameters | RSAPublicKey;\n}\n\nexport class CSR extends AsnData<CertificationRequest> {\n public readonly subject: INameJSON[];\n\n public readonly version: number;\n\n public attributes: Attribute<TAttributeValue>[];\n\n public thumbprints: Record<string, string> = {};\n\n public type: string = 'PKCS#10 Certificate Request';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificationRequest);\n\n const { certificationRequestInfo } = this.asn;\n\n this.subject = new Name(certificationRequestInfo.subject).toJSON();\n this.version = certificationRequestInfo.version;\n }\n\n public get publicKey(): IPublicKey {\n const { subjectPublicKey, algorithm } = this.asn.certificationRequestInfo.subjectPKInfo;\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 const spki = AsnConvert.serialize(this.asn.certificationRequestInfo.subjectPKInfo);\n\n return {\n params,\n value: spki,\n algorithm: algorithm.algorithm,\n };\n }\n\n public get signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.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 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 parseAttributes() {\n const { certificationRequestInfo } = this.asn;\n\n if (certificationRequestInfo.attributes) {\n this.attributes = certificationRequestInfo.attributes\n .map((e) => new Attribute(AsnConvert.serialize(e)));\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 REQUEST-----\\n${base64Format(this.exportAsBase64())}\\n-----END CERTIFICATE REQUEST-----`;\n }\n\n public downloadAsPEM(name?: string) {\n Download.csr.asPEM(\n this.exportAsPemFormatted(),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.csr.asDER(\n this.exportAsHexFormatted(),\n name || this.commonName,\n );\n }\n}\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { AsnConvert } from '@peculiar/asn1-schema';\nimport { CertificateList, Time } from '@peculiar/asn1-x509';\nimport { Convert } from 'pvtsutils';\n\nimport { Download } from '../utils';\n\nimport { Extension, TExtensionValue } from './extension';\nimport { AsnData } from './asn_data';\nimport { Name, INameJSON } from './name';\nimport {\n certificateRawToBuffer,\n hexFormat,\n base64Format,\n getCertificateThumbprint,\n} from './utils';\n\ninterface ISignature {\n algorithm: string;\n value: BufferSource;\n}\n\nexport interface IRevokedCertificate {\n userCertificate: ArrayBuffer;\n revocationDate: Time;\n crlEntryExtensions?: Extension<TExtensionValue>[];\n}\n\nexport class CRL extends AsnData<CertificateList> {\n public readonly issuer: INameJSON[];\n\n public readonly version: number;\n\n public readonly lastUpdate: Date;\n\n public readonly nextUpdate: Date;\n\n public extensions: Extension<TExtensionValue>[];\n\n public revokedCertificates: IRevokedCertificate[];\n\n public thumbprints: Record<string, string> = {};\n\n public type: string = 'X.509 Certificate Revocation List';\n\n constructor(raw: string) {\n super(certificateRawToBuffer(raw), CertificateList);\n\n const { tbsCertList } = this.asn;\n\n this.issuer = new Name(tbsCertList.issuer).toJSON();\n this.version = tbsCertList.version + 1;\n this.lastUpdate = tbsCertList.thisUpdate.getTime();\n this.nextUpdate = tbsCertList.nextUpdate.getTime();\n\n this.revokedCertificates = (tbsCertList.revokedCertificates || [])\n .map((revokedCertificate) => ({\n revocationDate: revokedCertificate.revocationDate,\n userCertificate: revokedCertificate.userCertificate,\n crlEntryExtensions: revokedCertificate.crlEntryExtensions\n ?.map((e) => new Extension(AsnConvert.serialize(e))),\n }));\n }\n\n public async getThumbprint(\n algorithm: 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 signature(): ISignature {\n const { signature, signatureAlgorithm } = this.asn;\n\n return {\n value: signature,\n algorithm: signatureAlgorithm.algorithm,\n };\n }\n\n public get commonName(): string {\n if (!this.issuer) {\n return '';\n }\n\n for (let i = 0; i < this.issuer.length; i += 1) {\n const name = this.issuer[i];\n\n if (name.shortName === 'CN' || name.shortName === 'E' || name.shortName === 'O') {\n return name.value;\n }\n }\n\n return '';\n }\n\n public parseExtensions() {\n const { tbsCertList } = this.asn;\n\n if (tbsCertList.crlExtensions) {\n this.extensions = tbsCertList.crlExtensions\n .map((e) => new Extension(AsnConvert.serialize(e)));\n }\n }\n\n public 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 X509 CRL-----\\n${base64Format(this.exportAsBase64())}\\n-----END X509 CRL-----`;\n }\n\n public downloadAsPEM(name?: string) {\n Download.crl.asPEM(\n this.exportAsPemFormatted(),\n name || this.commonName,\n );\n }\n\n public downloadAsDER(name?: string) {\n Download.crl.asDER(\n this.exportAsHexFormatted(),\n name || this.commonName,\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* © Peculiar Ventures https://peculiarventures.com/ - MIT License
|
|
3
|
+
*/
|
|
4
|
+
System.register([],(function(r){"use strict";return{execute:function(){r("d",t);
|
|
5
|
+
/**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright (c) Peculiar Ventures, LLC.
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the MIT license found in the
|
|
10
|
+
* LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/function t(r,t,e,n){if(n===void 0){n="application/octet-stream"}var i=new Blob([r],{type:n});if(navigator.msSaveBlob){navigator.msSaveBlob(i,"".concat(t,".").concat(e));return new Promise((function(r){setTimeout(r,100)}))}var a=window.URL.createObjectURL(i);var o=document.createElement("a");var f=document.createElement("iframe");o.style.display="none";f.style.display="none";f.name=a;document.body.appendChild(f);o.href=a;o.target=a;o.download="".concat(t,".").concat(e);document.body.appendChild(o);o.dispatchEvent(new MouseEvent("click"));document.body.removeChild(o);return new Promise((function(r){setTimeout((function(){document.body.removeChild(f);r()}),100)}))}
|
|
12
|
+
/*!
|
|
13
|
+
* MIT License
|
|
14
|
+
*
|
|
15
|
+
* Copyright (c) 2017-2022 Peculiar Ventures, LLC
|
|
16
|
+
*
|
|
17
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
18
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
19
|
+
* in the Software without restriction, including without limitation the rights
|
|
20
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
21
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
22
|
+
* furnished to do so, subject to the following conditions:
|
|
23
|
+
*
|
|
24
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
25
|
+
* copies or substantial portions of the Software.
|
|
26
|
+
*
|
|
27
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
28
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
29
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
30
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
31
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
33
|
+
* SOFTWARE.
|
|
34
|
+
*
|
|
35
|
+
*/var e="[object ArrayBuffer]";var n=function(){function r(){}r.isArrayBuffer=function(r){return Object.prototype.toString.call(r)===e};r.toArrayBuffer=function(r){if(this.isArrayBuffer(r)){return r}if(r.byteLength===r.buffer.byteLength){return r.buffer}if(r.byteOffset===0&&r.byteLength===r.buffer.byteLength){return r.buffer}return this.toUint8Array(r.buffer).slice(r.byteOffset,r.byteOffset+r.byteLength).buffer};r.toUint8Array=function(r){return this.toView(r,Uint8Array)};r.toView=function(r,t){if(r.constructor===t){return r}if(this.isArrayBuffer(r)){return new t(r)}if(this.isArrayBufferView(r)){return new t(r.buffer,r.byteOffset,r.byteLength)}throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")};r.isBufferSource=function(r){return this.isArrayBufferView(r)||this.isArrayBuffer(r)};r.isArrayBufferView=function(r){return ArrayBuffer.isView(r)||r&&this.isArrayBuffer(r.buffer)};r.isEqual=function(t,e){var n=r.toUint8Array(t);var i=r.toUint8Array(e);if(n.length!==i.byteLength){return false}for(var a=0;a<n.length;a++){if(n[a]!==i[a]){return false}}return true};r.concat=function(){var r=[];for(var t=0;t<arguments.length;t++){r[t]=arguments[t]}var e;if(Array.isArray(r[0])&&!(r[1]instanceof Function)){e=r[0]}else if(Array.isArray(r[0])&&r[1]instanceof Function){e=r[0]}else{if(r[r.length-1]instanceof Function){e=r.slice(0,r.length-1)}else{e=r}}var n=0;for(var i=0,a=e;i<a.length;i++){var o=a[i];n+=o.byteLength}var f=new Uint8Array(n);var u=0;for(var c=0,s=e;c<s.length;c++){var o=s[c];var g=this.toUint8Array(o);f.set(g,u);u+=g.length}if(r[r.length-1]instanceof Function){return this.toView(f,r[r.length-1])}return f.buffer};return r}();var i="string";var a=/^[0-9a-f]+$/i;var o=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;var f=/^[a-zA-Z0-9-_]+$/;var u=function(){function r(){}r.fromString=function(r){var t=unescape(encodeURIComponent(r));var e=new Uint8Array(t.length);for(var n=0;n<t.length;n++){e[n]=t.charCodeAt(n)}return e.buffer};r.toString=function(r){var t=n.toUint8Array(r);var e="";for(var i=0;i<t.length;i++){e+=String.fromCharCode(t[i])}var a=decodeURIComponent(escape(e));return a};return r}();var c=function(){function r(){}r.toString=function(r,t){if(t===void 0){t=false}var e=n.toArrayBuffer(r);var i=new DataView(e);var a="";for(var o=0;o<e.byteLength;o+=2){var f=i.getUint16(o,t);a+=String.fromCharCode(f)}return a};r.fromString=function(r,t){if(t===void 0){t=false}var e=new ArrayBuffer(r.length*2);var n=new DataView(e);for(var i=0;i<r.length;i++){n.setUint16(i*2,r.charCodeAt(i),t)}return e};return r}();var s=function(){function r(){}r.isHex=function(r){return typeof r===i&&a.test(r)};r.isBase64=function(r){return typeof r===i&&o.test(r)};r.isBase64Url=function(r){return typeof r===i&&f.test(r)};r.ToString=function(r,t){if(t===void 0){t="utf8"}var e=n.toUint8Array(r);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(e);case"binary":return this.ToBinary(e);case"hex":return this.ToHex(e);case"base64":return this.ToBase64(e);case"base64url":return this.ToBase64Url(e);case"utf16le":return c.toString(e,true);case"utf16":case"utf16be":return c.toString(e);default:throw new Error("Unknown type of encoding '".concat(t,"'"))}};r.FromString=function(r,t){if(t===void 0){t="utf8"}if(!r){return new ArrayBuffer(0)}switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(r);case"binary":return this.FromBinary(r);case"hex":return this.FromHex(r);case"base64":return this.FromBase64(r);case"base64url":return this.FromBase64Url(r);case"utf16le":return c.fromString(r,true);case"utf16":case"utf16be":return c.fromString(r);default:throw new Error("Unknown type of encoding '".concat(t,"'"))}};r.ToBase64=function(r){var t=n.toUint8Array(r);if(typeof btoa!=="undefined"){var e=this.ToString(t,"binary");return btoa(e)}else{return Buffer.from(t).toString("base64")}};r.FromBase64=function(t){var e=this.formatString(t);if(!e){return new ArrayBuffer(0)}if(!r.isBase64(e)){throw new TypeError("Argument 'base64Text' is not Base64 encoded")}if(typeof atob!=="undefined"){return this.FromBinary(atob(e))}else{return new Uint8Array(Buffer.from(e,"base64")).buffer}};r.FromBase64Url=function(t){var e=this.formatString(t);if(!e){return new ArrayBuffer(0)}if(!r.isBase64Url(e)){throw new TypeError("Argument 'base64url' is not Base64Url encoded")}return this.FromBase64(this.Base64Padding(e.replace(/\-/g,"+").replace(/\_/g,"/")))};r.ToBase64Url=function(r){return this.ToBase64(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")};r.FromUtf8String=function(t,e){if(e===void 0){e=r.DEFAULT_UTF8_ENCODING}switch(e){case"ascii":return this.FromBinary(t);case"utf8":return u.fromString(t);case"utf16":case"utf16be":return c.fromString(t);case"utf16le":case"usc2":return c.fromString(t,true);default:throw new Error("Unknown type of encoding '".concat(e,"'"))}};r.ToUtf8String=function(t,e){if(e===void 0){e=r.DEFAULT_UTF8_ENCODING}switch(e){case"ascii":return this.ToBinary(t);case"utf8":return u.toString(t);case"utf16":case"utf16be":return c.toString(t);case"utf16le":case"usc2":return c.toString(t,true);default:throw new Error("Unknown type of encoding '".concat(e,"'"))}};r.FromBinary=function(r){var t=r.length;var e=new Uint8Array(t);for(var n=0;n<t;n++){e[n]=r.charCodeAt(n)}return e.buffer};r.ToBinary=function(r){var t=n.toUint8Array(r);var e="";for(var i=0;i<t.length;i++){e+=String.fromCharCode(t[i])}return e};r.ToHex=function(r){var t=n.toUint8Array(r);var e="";var i=t.length;for(var a=0;a<i;a++){var o=t[a];if(o<16){e+="0"}e+=o.toString(16)}return e};r.FromHex=function(t){var e=this.formatString(t);if(!e){return new ArrayBuffer(0)}if(!r.isHex(e)){throw new TypeError("Argument 'hexString' is not HEX encoded")}if(e.length%2){e="0".concat(e)}var n=new Uint8Array(e.length/2);for(var i=0;i<e.length;i=i+2){var a=e.slice(i,i+2);n[i/2]=parseInt(a,16)}return n.buffer};r.ToUtf16String=function(r,t){if(t===void 0){t=false}return c.toString(r,t)};r.FromUtf16String=function(r,t){if(t===void 0){t=false}return c.fromString(r,t)};r.Base64Padding=function(r){var t=4-r.length%4;if(t<4){for(var e=0;e<t;e++){r+="="}}return r};r.formatString=function(r){return(r===null||r===void 0?void 0:r.replace(/[\n\r\t ]/g,""))||""};return r}();s.DEFAULT_UTF8_ENCODING="utf8";function g(r,t){if(!(r&&t)){return false}if(r.byteLength!==t.byteLength){return false}var e=new Uint8Array(r);var n=new Uint8Array(t);for(var i=0;i<r.byteLength;i++){if(e[i]!==n[i]){return false}}return true}var l=r("B",n);var h=r("C",s);var v=r("i",g);
|
|
36
|
+
/**
|
|
37
|
+
* @license
|
|
38
|
+
* Copyright (c) Peculiar Ventures, LLC.
|
|
39
|
+
*
|
|
40
|
+
* This source code is licensed under the MIT license found in the
|
|
41
|
+
* LICENSE file in the root directory of this source tree.
|
|
42
|
+
*/var y=function(){function r(){}return r}();r("D",y);y.cert={asPEM:function(r,e){t(h.FromString(r),e,"cer","application/pkix-cert")},asDER:function(r,e){t(h.FromString(r),e,"cer","application/pkix-cert")}};y.attrCert={asPEM:function(r,e){t(h.FromString(r),e,"cer","application/pkix-attr-cert")},asDER:function(r,e){t(h.FromString(r),e,"cer","application/pkix-attr-cert")}};y.csr={asPEM:function(r,e){t(h.FromString(r),e,"csr","application/pkcs10")},asDER:function(r,e){t(h.FromString(r),e,"csr","application/pkcs10")}};y.crl={asPEM:function(r,e){t(h.FromString(r),e,"crl","application/pkix-crl")},asDER:function(r,e){t(h.FromString(r),e,"crl","application/pkix-crl")}}}}}));
|
|
43
|
+
//# sourceMappingURL=p-14f281b0.system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["downloadFromBuffer","value","name","extension","mime","blob","Blob","type","navigator","msSaveBlob","concat","Promise","resolve","setTimeout","blobURL","window","URL","createObjectURL","link","document","createElement","frame","style","display","body","appendChild","href","target","download","dispatchEvent","MouseEvent","removeChild","ARRAY_BUFFER_NAME","BufferSourceConverter","isArrayBuffer","data","Object","prototype","toString","call","toArrayBuffer","this","byteLength","buffer","byteOffset","toUint8Array","slice","toView","Uint8Array","constructor","isArrayBufferView","TypeError","isBufferSource","ArrayBuffer","isView","isEqual","a","b","aView","bView","length","i","args","_i","arguments","buffers","Array","isArray","Function","size","_a","buffers_1","res","offset","_b","buffers_2","view","set","STRING_TYPE","HEX_REGEX","BASE64_REGEX","BASE64URL_REGEX","Utf8Converter","fromString","text","s","unescape","encodeURIComponent","uintArray","charCodeAt","buf","encodedString","String","fromCharCode","decodedString","decodeURIComponent","escape","Utf16Converter","littleEndian","arrayBuffer","dataView","DataView","code","getUint16","setUint16","Convert","isHex","test","isBase64","isBase64Url","ToString","enc","toLowerCase","ToUtf8String","ToBinary","ToHex","ToBase64","ToBase64Url","Error","FromString","str","FromUtf8String","FromBinary","FromHex","FromBase64","FromBase64Url","btoa","binary","Buffer","from","base64","formatted","formatString","atob","base64url","Base64Padding","replace","encoding","DEFAULT_UTF8_ENCODING","stringLength","resultView","result","len","byte","hexString","c","parseInt","ToUtf16String","FromUtf16String","padCount","bytes1","bytes2","b1","b2","exports","Download","cert","asPEM","pem","asDER","hex","attrCert","csr","crl"],"sources":["src/utils/download_from_buffer.ts","../../node_modules/pvtsutils/build/index.js","src/utils/download.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Download from buffer\n *\n * @example\n * ```js\n * import { downloadFromBuffer } from './utils';\n *\n * downloadFromBuffer(arrayBufferValue, 'myFile', 'pdf', 'applciation/pdf');\n * ```\n */\n\nexport function downloadFromBuffer(\n value: ArrayBuffer,\n name: string,\n extension: string,\n mime: string = 'application/octet-stream',\n) {\n const blob = new Blob([value], { type: mime });\n\n // @ts-ignore\n if (navigator.msSaveBlob) { // IE10+ : (has Blob, but not a[download] or URL)\n // @ts-ignore\n navigator.msSaveBlob(blob, `${name}.${extension}`);\n\n return new Promise((resolve) => {\n setTimeout(resolve, 100);\n });\n }\n\n const blobURL = window.URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n const frame = document.createElement('iframe');\n\n link.style.display = 'none';\n frame.style.display = 'none';\n\n frame.name = blobURL;\n document.body.appendChild(frame);\n\n link.href = blobURL;\n link.target = blobURL;\n link.download = `${name}.${extension}`;\n document.body.appendChild(link);\n link.dispatchEvent(new MouseEvent('click'));\n document.body.removeChild(link);\n\n return new Promise<void>((resolve) => {\n setTimeout(\n () => {\n document.body.removeChild(frame);\n resolve();\n },\n 100,\n );\n });\n}\n","/*!\n * MIT License\n * \n * Copyright (c) 2017-2022 Peculiar Ventures, LLC\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\n'use strict';\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\nclass BufferSourceConverter {\n static isArrayBuffer(data) {\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\n }\n static toArrayBuffer(data) {\n if (this.isArrayBuffer(data)) {\n return data;\n }\n if (data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return this.toUint8Array(data.buffer)\n .slice(data.byteOffset, data.byteOffset + data.byteLength)\n .buffer;\n }\n static toUint8Array(data) {\n return this.toView(data, Uint8Array);\n }\n static toView(data, type) {\n if (data.constructor === type) {\n return data;\n }\n if (this.isArrayBuffer(data)) {\n return new type(data);\n }\n if (this.isArrayBufferView(data)) {\n return new type(data.buffer, data.byteOffset, data.byteLength);\n }\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n static isBufferSource(data) {\n return this.isArrayBufferView(data)\n || this.isArrayBuffer(data);\n }\n static isArrayBufferView(data) {\n return ArrayBuffer.isView(data)\n || (data && this.isArrayBuffer(data.buffer));\n }\n static isEqual(a, b) {\n const aView = BufferSourceConverter.toUint8Array(a);\n const bView = BufferSourceConverter.toUint8Array(b);\n if (aView.length !== bView.byteLength) {\n return false;\n }\n for (let i = 0; i < aView.length; i++) {\n if (aView[i] !== bView[i]) {\n return false;\n }\n }\n return true;\n }\n static concat(...args) {\n let buffers;\n if (Array.isArray(args[0]) && !(args[1] instanceof Function)) {\n buffers = args[0];\n }\n else if (Array.isArray(args[0]) && args[1] instanceof Function) {\n buffers = args[0];\n }\n else {\n if (args[args.length - 1] instanceof Function) {\n buffers = args.slice(0, args.length - 1);\n }\n else {\n buffers = args;\n }\n }\n let size = 0;\n for (const buffer of buffers) {\n size += buffer.byteLength;\n }\n const res = new Uint8Array(size);\n let offset = 0;\n for (const buffer of buffers) {\n const view = this.toUint8Array(buffer);\n res.set(view, offset);\n offset += view.length;\n }\n if (args[args.length - 1] instanceof Function) {\n return this.toView(res, args[args.length - 1]);\n }\n return res.buffer;\n }\n}\n\nconst STRING_TYPE = \"string\";\nconst HEX_REGEX = /^[0-9a-f]+$/i;\nconst BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\nconst BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;\nclass Utf8Converter {\n static fromString(text) {\n const s = unescape(encodeURIComponent(text));\n const uintArray = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n uintArray[i] = s.charCodeAt(i);\n }\n return uintArray.buffer;\n }\n static toString(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let encodedString = \"\";\n for (let i = 0; i < buf.length; i++) {\n encodedString += String.fromCharCode(buf[i]);\n }\n const decodedString = decodeURIComponent(escape(encodedString));\n return decodedString;\n }\n}\nclass Utf16Converter {\n static toString(buffer, littleEndian = false) {\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\n const dataView = new DataView(arrayBuffer);\n let res = \"\";\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\n const code = dataView.getUint16(i, littleEndian);\n res += String.fromCharCode(code);\n }\n return res;\n }\n static fromString(text, littleEndian = false) {\n const res = new ArrayBuffer(text.length * 2);\n const dataView = new DataView(res);\n for (let i = 0; i < text.length; i++) {\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\n }\n return res;\n }\n}\nclass Convert {\n static isHex(data) {\n return typeof data === STRING_TYPE\n && HEX_REGEX.test(data);\n }\n static isBase64(data) {\n return typeof data === STRING_TYPE\n && BASE64_REGEX.test(data);\n }\n static isBase64Url(data) {\n return typeof data === STRING_TYPE\n && BASE64URL_REGEX.test(data);\n }\n static ToString(buffer, enc = \"utf8\") {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.ToUtf8String(buf);\n case \"binary\":\n return this.ToBinary(buf);\n case \"hex\":\n return this.ToHex(buf);\n case \"base64\":\n return this.ToBase64(buf);\n case \"base64url\":\n return this.ToBase64Url(buf);\n case \"utf16le\":\n return Utf16Converter.toString(buf, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buf);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static FromString(str, enc = \"utf8\") {\n if (!str) {\n return new ArrayBuffer(0);\n }\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.FromUtf8String(str);\n case \"binary\":\n return this.FromBinary(str);\n case \"hex\":\n return this.FromHex(str);\n case \"base64\":\n return this.FromBase64(str);\n case \"base64url\":\n return this.FromBase64Url(str);\n case \"utf16le\":\n return Utf16Converter.fromString(str, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(str);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static ToBase64(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n if (typeof btoa !== \"undefined\") {\n const binary = this.ToString(buf, \"binary\");\n return btoa(binary);\n }\n else {\n return Buffer.from(buf).toString(\"base64\");\n }\n }\n static FromBase64(base64) {\n const formatted = this.formatString(base64);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64(formatted)) {\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\n }\n if (typeof atob !== \"undefined\") {\n return this.FromBinary(atob(formatted));\n }\n else {\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\n }\n }\n static FromBase64Url(base64url) {\n const formatted = this.formatString(base64url);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64Url(formatted)) {\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\n }\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\n }\n static ToBase64Url(data) {\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\n }\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.FromBinary(text);\n case \"utf8\":\n return Utf8Converter.fromString(text);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(text);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.fromString(text, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.ToBinary(buffer);\n case \"utf8\":\n return Utf8Converter.toString(buffer);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buffer);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.toString(buffer, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static FromBinary(text) {\n const stringLength = text.length;\n const resultView = new Uint8Array(stringLength);\n for (let i = 0; i < stringLength; i++) {\n resultView[i] = text.charCodeAt(i);\n }\n return resultView.buffer;\n }\n static ToBinary(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let res = \"\";\n for (let i = 0; i < buf.length; i++) {\n res += String.fromCharCode(buf[i]);\n }\n return res;\n }\n static ToHex(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let result = \"\";\n const len = buf.length;\n for (let i = 0; i < len; i++) {\n const byte = buf[i];\n if (byte < 16) {\n result += \"0\";\n }\n result += byte.toString(16);\n }\n return result;\n }\n static FromHex(hexString) {\n let formatted = this.formatString(hexString);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isHex(formatted)) {\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\n }\n if (formatted.length % 2) {\n formatted = `0${formatted}`;\n }\n const res = new Uint8Array(formatted.length / 2);\n for (let i = 0; i < formatted.length; i = i + 2) {\n const c = formatted.slice(i, i + 2);\n res[i / 2] = parseInt(c, 16);\n }\n return res.buffer;\n }\n static ToUtf16String(buffer, littleEndian = false) {\n return Utf16Converter.toString(buffer, littleEndian);\n }\n static FromUtf16String(text, littleEndian = false) {\n return Utf16Converter.fromString(text, littleEndian);\n }\n static Base64Padding(base64) {\n const padCount = 4 - (base64.length % 4);\n if (padCount < 4) {\n for (let i = 0; i < padCount; i++) {\n base64 += \"=\";\n }\n }\n return base64;\n }\n static formatString(data) {\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\n }\n}\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\n const res = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n for (const prop in obj) {\n res[prop] = obj[prop];\n }\n }\n return res;\n}\nfunction combine(...buf) {\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\n const res = new Uint8Array(totalByteLength);\n let currentPos = 0;\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\n for (const item2 of arr) {\n res[currentPos++] = item2;\n }\n });\n return res.buffer;\n}\nfunction isEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexports.BufferSourceConverter = BufferSourceConverter;\nexports.Convert = Convert;\nexports.assign = assign;\nexports.combine = combine;\nexports.isEqual = isEqual;\n","/**\n * @license\n * Copyright (c) Peculiar Ventures, LLC.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { Convert } from 'pvtsutils';\n\nimport { downloadFromBuffer } from './download_from_buffer';\n\nexport class Download {\n public static cert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-cert',\n );\n },\n };\n\n public static attrCert = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'cer',\n 'application/pkix-attr-cert',\n );\n },\n };\n\n public static csr = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'csr',\n 'application/pkcs10',\n );\n },\n };\n\n public static crl = {\n asPEM: (pem: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(pem),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n\n asDER: (hex: string, name: string) => {\n downloadFromBuffer(\n Convert.FromString(hex),\n name,\n 'crl',\n 'application/pkix-crl',\n );\n },\n };\n}\n"],"mappings":"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"}
|