import SignPDF from"./SignPDF.min.cjs";import fs from"node:fs";import axios from"axios";import FormData from"form-data";import plainplaceholder from"./customSignPdf/plainplaceholder.min.js";import{plainAddPlaceholder}from"node-signpdf/dist/helpers/index.js";const serverUrl=process.env.SERVER_URL,APPID=process.env.APP_ID,masterKEY=process.env.MASTER_KEY;async function uploadFile(a){try{var e=new FormData,t=(e.append("file",fs.createReadStream(a)),{"content-type":"multipart/form-data","X-Parse-Application-Id":process.env.APP_ID}),s=process.env.SERVER_URL.slice(0,-4)+"/file_upload";return(await axios.post(s,e,{headers:t})).data}catch(e){console.log("err ",e),fs.unlinkSync(a)}}async function updateDoc(t,s,i,r,n,o){try{var d={UserPtr:{__type:"Pointer",className:o,objectId:i},SignedUrl:s,Activity:"Signed",ipAddress:r};let e;var l=(e=n.AuditTrail&&0"Signed"===e.Activity);let a=!1;!(n.Signers&&0

Document Copy

A copy of the document "+s+" Standard is attached to this email. Kindly download the document from the attachment.

This is an automated email from Open Sign. For any queries regarding this email, please contact the sender "+t.Mail+" directly. If you think this email is inappropriate or spam, you may file a complaint with Open Sign here.

"};await axios.post(serverUrl+"/functions/sendmailv3",a,{headers:{"Content-Type":"application/json","X-Parse-Application-Id":APPID,"X-Parse-Master-Key":masterKEY}})}async function sendCompletedMail(e){var a=e.url,t=e.sender,s=e.pdfName,a={url:a,from:"Open sign",recipient:e.receiver,subject:`Document ${s} has beeen signed by all parties`,pdfName:s,html:"

Document sign successfully

All parties have successfully signed the document"+s+". Kindly download the document from the attachment.

This is an automated email from Open Sign. For any queries regarding this email, please contact the sender "+t.Mail+" directly. If you think this email is inappropriate or spam, you may file a complaint with Open Sign here.

"};await axios.post(serverUrl+"/functions/sendmailv3",a,{headers:{"Content-Type":"application/json","X-Parse-Application-Id":APPID,"X-Parse-Master-Key":masterKEY}})}async function PDF(s,i){try{var r=s.params.sign,e=s.params.docId,n=await axios.get(serverUrl+"/classes/contracts_Document/"+e+"?include=ExtUserPtr",{headers:{"Content-Type":"application/json","X-Parse-Application-Id":APPID,"X-Parse-Session-Token":s.headers.sessiontoken}}),o=await axios.get(serverUrl+"/users/me",{headers:{"X-Parse-Application-Id":APPID,"X-Parse-Session-Token":s.headers.sessiontoken}});if(!o.data||!o.data.objectId)return{status:"error",message:"this user not allowed!"};{var d=JSON.stringify({UserId:{__type:"Pointer",className:"_User",objectId:o.data.objectId}});let a,t;var l=await axios.get(serverUrl+"/classes/contracts_Users?where="+d,{headers:{"X-Parse-Application-Id":APPID,"X-Parse-Session-Token":s.headers.sessiontoken}}),p=(t=l.data&&0",location:"test location",signatureLength:1e4,sign:r}):plainAddPlaceholder({pdfBuffer:e,reason:"Digitally signed by Open sign for "+p+" <"+c+">",location:"test location",signatureLength:1e4});var g=await new SignPDF(e,m).signPDF(),u=`./exports/exported_file_${Math.floor(5e3*Math.random())}.pdf`,f=(fs.writeFileSync(u,g),await uploadFile(u));if(f&&f.imageUrl){const i=await updateDoc(s.params.docId,f.imageUrl,a.data.results[0].objectId,s.headers["x-real-ip"],n.data,t);return sendMail({url:f.imageUrl,sender:{Mail:n.data.ExtUserPtr.Email,Name:n.data.ExtUserPtr.Name},pdfName:n.data.Name,receiver:c}),i&&i.isCompleted&&sendCompletedMail({url:f.imageUrl,sender:{Mail:n.data.ExtUserPtr.Email,Name:"Open sign"},pdfName:n.data.Name,receiver:n.data.ExtUserPtr.Email}),fs.unlinkSync(u),console.log("New Signed PDF created called: "+u),"success"===i.message?{status:"success",data:f.imageUrl}:{status:"error",message:"please provide required parameters!"}}}}}catch(e){return console.log("Err ",e),"ERR_BAD_REQUEST"===e.code?{status:"error",message:"Invalid session token!"}:{status:"error",message:"Encrypted files are currently not supported!"}}}export default PDF;