import { a as _sfc_main$4 } from './chunk-6ba26b76.js'; import { _ as _sfc_main$3 } from './chunk-ab9bd3df.js'; import { _ as _sfc_main$2 } from './chunk-aab02bfe.js'; import { defineComponent, toRefs, computed, mergeProps, unref, withCtx, createVNode, toDisplayString, useSSRContext, ref, createTextVNode } from 'vue'; import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderStyle, ssrRenderList } from 'vue/server-renderer'; import { _ as __unplugin_components_3 } from './chunk-28375bc9.js'; import { a as __unplugin_components_1 } from './chunk-8109fd17.js'; import { _ as _sfc_main$5 } from './chunk-83cdd9a0.js'; import verifyPDF from 'pdf-signature-reader'; import { f as formatBytes } from './chunk-3e99c6bf.js'; import './chunk-6003391e.js'; import '@vueuse/core'; import 'pinia'; import './chunk-77c5cc16.js'; import 'naive-ui'; import './chunk-aff50618.js'; import './chunk-95ec8cf7.js'; import 'lodash'; const _sfc_main$1 = /* @__PURE__ */ defineComponent({ __name: "pdf-signature-details", __ssrInlineRender: true, props: { signature: {} }, setup(__props) { const props = __props; const { signature } = toRefs(props); const tableHeaders = { validityPeriod: "Validity period", issuedBy: "Issued by", issuedTo: "Issued to", pemCertificate: "PEM certificate" }; const certs = computed( () => signature.value.meta.certs.map((certificate, index) => ({ ...certificate, validityPeriod: { notBefore: new Date(certificate.validityPeriod.notBefore).toLocaleString(), notAfter: new Date(certificate.validityPeriod.notAfter).toLocaleString() }, certificateName: `Certificate ${index + 1}` })) ); return (_ctx, _push, _parent, _attrs) => { const _component_c_table = _sfc_main$2; const _component_c_key_value_list = _sfc_main$3; const _component_c_modal_value = _sfc_main$4; _push(``); _push(ssrRenderComponent(_component_c_table, { data: unref(certs), headers: tableHeaders }, { validityPeriod: withCtx(({ value }, _push2, _parent2, _scopeId) => { if (_push2) { _push2(ssrRenderComponent(_component_c_key_value_list, { items: [{ label: "Not before", value: value.notBefore }, { label: "Not after", value: value.notAfter }] }, null, _parent2, _scopeId)); } else { return [ createVNode(_component_c_key_value_list, { items: [{ label: "Not before", value: value.notBefore }, { label: "Not after", value: value.notAfter }] }, null, 8, ["items"]) ]; } }), issuedBy: withCtx(({ value }, _push2, _parent2, _scopeId) => { if (_push2) { _push2(ssrRenderComponent(_component_c_key_value_list, { items: [{ label: "Common name", value: value.commonName }, { label: "Organization name", value: value.organizationName }, { label: "Country name", value: value.countryName }, { label: "Locality name", value: value.localityName }, { label: "Organizational unit name", value: value.organizationalUnitName }, { label: "State or province name", value: value.stateOrProvinceName }] }, null, _parent2, _scopeId)); } else { return [ createVNode(_component_c_key_value_list, { items: [{ label: "Common name", value: value.commonName }, { label: "Organization name", value: value.organizationName }, { label: "Country name", value: value.countryName }, { label: "Locality name", value: value.localityName }, { label: "Organizational unit name", value: value.organizationalUnitName }, { label: "State or province name", value: value.stateOrProvinceName }] }, null, 8, ["items"]) ]; } }), issuedTo: withCtx(({ value }, _push2, _parent2, _scopeId) => { if (_push2) { _push2(ssrRenderComponent(_component_c_key_value_list, { items: [{ label: "Common name", value: value.commonName }, { label: "Organization name", value: value.organizationName }, { label: "Country name", value: value.countryName }, { label: "Locality name", value: value.localityName }, { label: "Organizational unit name", value: value.organizationalUnitName }, { label: "State or province name", value: value.stateOrProvinceName }] }, null, _parent2, _scopeId)); } else { return [ createVNode(_component_c_key_value_list, { items: [{ label: "Common name", value: value.commonName }, { label: "Organization name", value: value.organizationName }, { label: "Country name", value: value.countryName }, { label: "Locality name", value: value.localityName }, { label: "Organizational unit name", value: value.organizationalUnitName }, { label: "State or province name", value: value.stateOrProvinceName }] }, null, 8, ["items"]) ]; } }), pemCertificate: withCtx(({ value }, _push2, _parent2, _scopeId) => { if (_push2) { _push2(ssrRenderComponent(_component_c_modal_value, { value, label: "View PEM cert" }, { value: withCtx((_, _push3, _parent3, _scopeId2) => { if (_push3) { _push3(`
${ssrInterpolate(value)}
`); } else { return [ createVNode("div", { "break-all": "", "text-xs": "" }, toDisplayString(value), 1) ]; } }), _: 2 }, _parent2, _scopeId)); } else { return [ createVNode(_component_c_modal_value, { value, label: "View PEM cert" }, { value: withCtx(() => [ createVNode("div", { "break-all": "", "text-xs": "" }, toDisplayString(value), 1) ]), _: 2 }, 1032, ["value"]) ]; } }), _: 1 }, _parent)); _push(``); }; } }); const _sfc_setup$1 = _sfc_main$1.setup; _sfc_main$1.setup = (props, ctx) => { const ssrContext = useSSRContext(); (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/tools/pdf-signature-checker/components/pdf-signature-details.vue"); return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "pdf-signature-checker", __ssrInlineRender: true, setup(__props) { const signatures = ref([]); const status = ref("idle"); const file = ref(null); async function onVerifyClicked(uploadedFile) { file.value = uploadedFile; const fileBuffer = await uploadedFile.arrayBuffer(); status.value = "loading"; try { const { signatures: parsedSignatures } = verifyPDF(fileBuffer); signatures.value = parsedSignatures; status.value = "parsed"; } catch (e) { signatures.value = []; status.value = "error"; } } return (_ctx, _push, _parent, _attrs) => { const _component_c_file_upload = _sfc_main$5; const _component_c_card = __unplugin_components_1; const _component_c_alert = __unplugin_components_3; const _component_pdf_signature_details = _sfc_main$1; _push(`
`); _push(ssrRenderComponent(_component_c_file_upload, { title: "Drag and drop a PDF file here, or click to select a file", accept: ".pdf", onFileUpload: onVerifyClicked }, null, _parent)); if (unref(file)) { _push(ssrRenderComponent(_component_c_card, { "mt-4": "", flex: "", "gap-2": "" }, { default: withCtx((_, _push2, _parent2, _scopeId) => { if (_push2) { _push2(`
${ssrInterpolate(unref(file).name)}
${ssrInterpolate(unref(formatBytes)(unref(file).size))}
`); } else { return [ createVNode("div", { "font-bold": "" }, toDisplayString(unref(file).name), 1), createVNode("div", null, toDisplayString(unref(formatBytes)(unref(file).size)), 1) ]; } }), _: 1 }, _parent)); } else { _push(``); } if (unref(status) === "error") { _push(`
`); _push(ssrRenderComponent(_component_c_alert, { "mt-4": "" }, { default: withCtx((_, _push2, _parent2, _scopeId) => { if (_push2) { _push2(` No signatures found in the provided file. `); } else { return [ createTextVNode(" No signatures found in the provided file. ") ]; } }), _: 1 }, _parent)); _push(`
`); } else { _push(``); } _push(`
`); if (unref(status) === "parsed" && unref(signatures).length) { _push(`
`); ssrRenderList(unref(signatures), (signature, index) => { _push(`
Signature ${ssrInterpolate(index + 1)} certificates :
`); _push(ssrRenderComponent(_component_pdf_signature_details, { signature }, null, _parent)); _push(`
`); }); _push(`
`); } else { _push(``); } _push(``); }; } }); const _sfc_setup = _sfc_main.setup; _sfc_main.setup = (props, ctx) => { const ssrContext = useSSRContext(); (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/tools/pdf-signature-checker/pdf-signature-checker.vue"); return _sfc_setup ? _sfc_setup(props, ctx) : void 0; }; export { _sfc_main as default };