Compare commits

...
Author SHA1 Message Date
RaktimaandGitHub 08d3589c1b Merge pull request #2248 from OpenSignLabs/staging
v2.41.3
2026-08-21 17:58:57 +05:30
RaktimaandGitHub e5f2c5c0a9 Merge pull request #2247 from OpenSignLabs/updates-32480718420
Merge pull request #2737 from nxglabs/sync-to-public_repo-32459158600
2026-08-21 17:50:18 +05:30
raktima-opensignlabs 7e0c2517f2 Merge pull request #2737 from nxglabs/sync-to-public_repo-32459158600
Merge pull request #2736 from nxglabs/raktima-main-patch-security
2026-08-21 12:11:59 +00:00
RaktimaandGitHub b0d82574a8 Merge pull request #2246 from OpenSignLabs/staging
fix: update lockfile
2026-08-19 15:29:54 +05:30
RaktimaandGitHub a5456dadcf Merge pull request #2245 from OpenSignLabs/updates-32235783890
Merge pull request #2730 from nxglabs/sync-to-public_repo-32233884118
2026-08-19 15:14:23 +05:30
raktima-opensignlabs 0158b0e176 Merge pull request #2730 from nxglabs/sync-to-public_repo-32233884118
Merge pull request #2729 from nxglabs/raktima-main-patch-security
2026-08-19 09:05:08 +00:00
RaktimaandGitHub 489499e3e2 Merge pull request #2244 from OpenSignLabs/staging
fix: update lockfile
2026-08-17 13:32:13 +05:30
RaktimaNXG 5d385a0ea3 Merge branch 'main' of https://github.com/OpenSignLabs/OpenSign into staging 2026-08-17 13:29:58 +05:30
RaktimaandGitHub 82584d6be9 Merge pull request #2243 from OpenSignLabs/raktima-patch-24
fix: update lockfile
2026-08-17 13:15:27 +05:30
RaktimaNXG cba774a336 fix: update lockfile 2026-08-17 13:14:44 +05:30
RaktimaNXG c44351ea67 fix: update lockfile 2026-08-17 12:48:00 +05:30
RaktimaandGitHub 3a861f3e0f v2.41.2 (#2241) 2026-08-14 23:15:48 +05:30
RaktimaNXG 348ff6de70 Merge branch 'main' of https://github.com/OpenSignLabs/OpenSign into staging 2026-08-14 22:24:09 +05:30
AmolandGitHub a773c50774 Merge pull request #2240 from OpenSignLabs/updates-31819970805 2026-08-14 22:08:53 +05:30
raktima-opensignlabs 7c414157dd Merge pull request #2717 from nxglabs/sync-to-public_repo-31818759561
Merge pull request #2716 from nxglabs/raktima-main-patch-security
2026-08-14 16:34:38 +00:00
RaktimaandGitHub 7b4785461c v2.41.1 (#2233) 2026-08-11 17:09:48 +05:30
AmolandGitHub 7f114dc124 Merge pull request #2234 from OpenSignLabs/updates-31487056035 2026-08-11 17:06:37 +05:30
raktima-opensignlabs 50cc654166 Merge pull request #2709 from nxglabs/sync-to-public_repo-31486925834
Merge pull request #2708 from nxglabs/raktima-patch-main-7
2026-08-11 11:32:14 +00:00
RaktimaNXG dc8555dfec Merge branch 'main' of https://github.com/OpenSignLabs/OpenSign into staging 2026-08-11 16:09:43 +05:30
AmolandGitHub 43e911dfdc Merge pull request #2232 from OpenSignLabs/updates-31406529761 2026-08-11 12:40:51 +05:30
raktima-opensignlabs 05f472ace8 Merge pull request #2707 from nxglabs/sync-to-public_repo-31405962035
Merge pull request #2706 from nxglabs/raktima-patch-main-7
2026-08-10 15:59:21 +00:00
AmolandGitHub 3729564878 Merge pull request #2705 from nxglabs/sync-to-public_repo-31391986146 (#2231) 2026-08-10 20:21:00 +05:30
raktima-opensignlabsandAmol 8140588898 Merge pull request #2611 from nxglabs/sync-to-public_repo-28355409725
Merge pull request #2610 from nxglabs/staging
2026-06-30 16:28:06 +05:30
RaktimaandGitHub d97b353a81 Merge pull request #2194 from OpenSignLabs/staging
Merge pull request #2192 from OpenSignLabs/updates-27678195317
2026-06-22 10:43:43 +05:30
16 changed files with 3321 additions and 4072 deletions
+1184 -1395
View File
File diff suppressed because it is too large Load Diff
+12 -5
View File
@@ -26,7 +26,7 @@
"@usewaypoint/block-text": "^0.0.7",
"@usewaypoint/document-core": "^0.0.6",
"@usewaypoint/email-builder": "^0.0.9",
"axios": "^1.16.0",
"axios": "^1.18.0",
"date-fns-tz": "^3.2.0",
"dompurify": "^3.4.1",
"file-saver": "^2.0.5",
@@ -63,7 +63,7 @@
"react-quill-new": "^3.8.3",
"react-redux": "^9.2.0",
"react-rnd": "^10.5.3",
"react-router": "^7.14.2",
"react-router": "^7.18.2",
"react-scrollbars-custom": "^4.1.1",
"react-select": "^5.10.2",
"react-signature-canvas": "^1.1.0-alpha.2",
@@ -128,7 +128,7 @@
"autoprefixer": "^10.5.0",
"babel-loader": "^9.2.1",
"commitizen": "^4.3.1",
"concurrently": "^10.0.3",
"concurrently": "^10.0.4",
"css-loader": "^7.1.4",
"daisyui": "^4.12.24",
"eslint": "^9.39.4",
@@ -136,7 +136,7 @@
"eslint-plugin-react": "^7.37.5",
"jsdom": "^29.0.2",
"lint-staged": "^16.4.0",
"postcss": "^8.5.12",
"postcss": "^8.5.23",
"pretty-quick": "^4.2.2",
"rollup-plugin-node-polyfills": "^0.2.1",
"tailwindcss": "^3.4.19",
@@ -147,10 +147,17 @@
"vitest": "^4.1.5"
},
"overrides": {
"brace-expansion": ">=2.1.2",
"tmp": "$tmp",
"react": "$react",
"react-dom": "$react-dom",
"form-data": ">=4.0.6"
"form-data": ">=4.0.6",
"js-yaml": "^3.15.0",
"undici": "^7.29.0",
"fast-uri": "^3.1.5",
"nanoid": ">=3.3.16",
"ws": ">=8.21.0",
"protobufjs": ">=7.6.5"
},
"engines": {
"node": "18 || 20 || 22"
@@ -800,6 +800,7 @@
"quota-mail-info": "Um die Servicequalität aufrechtzuerhalten und Spam zu verhindern, erlaubt OpenSign bis zu 15 E-Mails pro Monat im kostenlosen Plan. Upgraden Sie jetzt für unbegrenzten E-Mail-Versand.",
"quota-mail-reset": "Ihre Credits für Signaturanfragen per E-Mail werden zurückgesetzt am",
"quota-mail": "Sie haben Ihr monatliches Limit von 15 Signaturanfragen per E-Mail erreicht. Jetzt upgraden, um weiter E-Mails direkt zu senden.",
"quota-mail-limit-reached": "Sie haben Ihr monatliches Limit von 15 E-Mail-Credits erreicht. Bitte upgraden Sie Ihren Tarif, um weiterhin E-Mails direkt zu senden.\nIhre E-Mail-Credits werden am {{resetDate}} zurückgesetzt.",
"quota-mail-tip": "Tipp: Sie können weiterhin <1>unbegrenzt Dokumente</1> signieren, indem Sie den Signaturanfragelink manuell teilen.",
"quota-mail-head": "Kontingent erreicht",
"unauthorized-modal": "Sie haben keine Berechtigung, diese Aktion auszuführen. Bitte kontaktieren Sie {{adminEmail}}.",
@@ -1603,11 +1604,13 @@
"access-code-save": "Speichern",
"access-code-required": "Der Absender hat diesem Empfänger einen Zugangscode zugewiesen. Geben Sie ihn ein, um fortzufahren.",
"access-code-invalid": "Falscher Zugangscode. Bitte beim Absender nachfragen.",
"access-code-too-short": "Der Zugangscode muss mindestens 6 Ziffern lang sein.",
"access-code-too-short": "Der Zugangscode muss mindestens 6 Zeichen lang sein.",
"access-code-verify": "Zugangscode überprüfen",
"access-code-verified": "Zugangscode verifiziert.",
"access-code-warning": "Dieser Zugangscode kann nicht geändert oder abgerufen werden, sobald das Dokument versendet wurde.",
"copy-access-code": "Zugangscode kopieren",
"access-code-upgrade-msg": "Zugangscodes sind nur in kostenpflichtigen Tarifen verfügbar. Aktualisieren Sie Ihren Tarif, um Zugangscodes für Empfänger hinzuzufügen.",
"show-access-code": "Zugangscode anzeigen",
"hide-access-code": "Zugangscode ausblenden",
"already-copied-to-clipboard": "Bereits in die Zwischenablage kopiert"
}
@@ -800,6 +800,7 @@
"quota-mail-info": "To maintain service quality and prevent spam, OpenSign allows up to 15 emails per month on the free plan. Upgrade now for unlimited email sending.",
"quota-mail-reset": "Your signature request email credits will be reset on",
"quota-mail": "You've reached your limit of 15 signature request emails for this month. Upgrade now to continue sending emails directly.",
"quota-mail-limit-reached": "You've reached your monthly limit of 15 email credits. Please upgrade your plan to continue sending emails directly.\nYour email credits will reset on {{resetDate}}",
"quota-mail-tip": "Tip: You can still sign <1>unlimited documents</1> by manually sharing the signing request link.",
"quota-mail-head": "Quota reached",
"unauthorized-modal": "You don't have permission to perform this action, please contact {{adminEmail}}.",
@@ -1610,5 +1611,7 @@
"access-code-warning": "This access code cannot be changed or retrieved once the document is sent out.",
"copy-access-code": "Copy access code",
"access-code-upgrade-msg": "Access codes are available on paid plans only. Upgrade your plan to add access codes for recipients.",
"show-access-code": "Show access code",
"hide-access-code": "Hide access code",
"already-copied-to-clipboard": "Already copied to clipboard"
}
@@ -800,6 +800,7 @@
"quota-mail-info": "Para mantener la calidad del servicio y prevenir el spam, OpenSign permite hasta 15 correos electrónicos por mes en el plan gratuito. Mejora tu plan ahora para envíos ilimitados de correos electrónicos.",
"quota-mail-reset": "Los créditos de tu correo electrónico de solicitud de firma se restablecerán el",
"quota-mail": "Has alcanzado tu límite de 15 solicitudes de firma por correo para este mes. Mejora ahora para continuar enviando correos.",
"quota-mail-limit-reached": "Has alcanzado tu límite mensual de 15 créditos de correo electrónico. Mejora tu plan para continuar enviando correos directamente.\nTus créditos de correo electrónico se restablecerán el {{resetDate}}.",
"quota-mail-tip": "Consejo: Aún puedes firmar <1>documentos ilimitados</1> compartiendo manualmente el enlace de solicitud de firma.",
"quota-mail-head": "Cuota alcanzada",
"unauthorized-modal": "No tienes permisos para realizar esta acción, por favor, contacta a {{adminEmail}}.",
@@ -1610,5 +1611,7 @@
"access-code-warning": "Este código de acceso no se puede cambiar ni recuperar una vez que se envía el documento.",
"copy-access-code": "Copiar código de acceso",
"access-code-upgrade-msg": "Los códigos de acceso solo están disponibles en planes de pago. Actualice su plan para agregar códigos de acceso a los destinatarios.",
"show-access-code": "Mostrar código de acceso",
"hide-access-code": "Ocultar código de acceso",
"already-copied-to-clipboard": "Ya copiado al portapapeles"
}
@@ -798,6 +798,7 @@
"quota-mail-info": "Pour maintenir la qualité du service et prévenir le spam, OpenSign permet jusqu'à 15 e-mails par mois avec le plan gratuit. Passez à l'offre supérieure pour un envoi illimité d'e-mails.",
"quota-mail-reset": "Les crédits de votre email de demande de signature seront réinitialisés le",
"quota-mail": "Vous avez atteint votre limite de 15 e-mails de demande de signature pour ce mois. Mettez à niveau maintenant pour continuer à envoyer des e-mails directement.",
"quota-mail-limit-reached": "Vous avez atteint votre limite mensuelle de 15 crédits e-mail. Veuillez mettre à niveau votre forfait pour continuer à envoyer des e-mails directement.\nVos crédits e-mail seront réinitialisés le {{resetDate}}.",
"quota-mail-tip": "Astuce: Vous pouvez toujours signer un nombre <1>illimité de documents</1> en partageant manuellement le lien de demande de signature.",
"quota-mail-head": "Quota atteint",
"unauthorized-modal": "Vous n'êtes pas autorisé à effectuer cette action, veuillez contacter {{adminEmail}}.",
@@ -1611,5 +1612,7 @@
"access-code-warning": "Ce code d'accès ne peut pas être modifié ou récupéré une fois le document envoyé.",
"copy-access-code": "Copier le code d'accès",
"access-code-upgrade-msg": "Les codes d'accès sont disponibles uniquement dans les forfaits payants. Améliorez votre forfait pour ajouter des codes d'accès aux destinataires.",
"show-access-code": "Afficher le code daccès",
"hide-access-code": "Masquer le code daccès",
"already-copied-to-clipboard": "Déjà copié dans le presse-papiers"
}
@@ -801,6 +801,7 @@
"quota-mail-reset": "आपके हस्ताक्षर अनुरोध ईमेल क्रेडिट इस पर रीसेट हो जाएंगे",
"quota-mail": "आपने इस महीने के लिए 15 हस्ताक्षर अनुरोध ईमेल की अपनी सीमा पूरी कर ली है। सीधे ईमेल भेजना जारी रखने के लिए अभी अपग्रेड करें।",
"quota-mail-tip": "सुझाव: आप अभी भी हस्ताक्षर अनुरोध लिंक को मैन्युअल रूप से साझा करके <1>असीमित दस्तावेज़ों</1> पर हस्ताक्षर कर सकते हैं।",
"quota-mail-limit-reached": "आपने 15 ईमेल क्रेडिट की अपनी मासिक सीमा पूरी कर ली है। सीधे ईमेल भेजना जारी रखने के लिए कृपया अपना प्लान अपग्रेड करें।\nआपके ईमेल क्रेडिट {{resetDate}} को रीसेट हो जाएंगे।",
"quota-mail-head": "कोटा पहुँच गया",
"unauthorized-modal": "आपको यह कार्रवाई करने की अनुमति नहीं है, कृपया {{adminEmail}} से संपर्क करें।",
"sent-this-month": "इस महीने भेजा गया",
@@ -1610,5 +1611,7 @@
"access-code-warning": "एक बार दस्तावेज़ भेज दिए जाने के बाद इस एक्सेस कोड को बदला या पुनः प्राप्त नहीं किया जा सकता।",
"copy-access-code": "एक्सेस कोड कॉपी करें",
"access-code-upgrade-msg": "एक्सेस कोड केवल भुगतान योजनाओं पर उपलब्ध हैं। प्राप्तकर्ताओं के लिए एक्सेस कोड जोड़ने के लिए अपनी योजना को अपग्रेड करें।",
"show-access-code": "एक्सेस कोड दिखाएं",
"hide-access-code": "एक्सेस कोड छिपाएं",
"already-copied-to-clipboard": "पहले से क्लिपबोर्ड में कॉपी किया गया है"
}
@@ -800,6 +800,7 @@
"quota-mail-info": "Per mantenere la qualità del servizio e prevenire lo spam, OpenSign consente fino a 15 email al mese con il piano gratuito. Esegui l'upgrade ora per l'invio illimitato di email.",
"quota-mail-reset": "I tuoi crediti email per richieste di firma saranno ripristinati il",
"quota-mail": "Hai raggiunto il limite di 15 email di richiesta di firma per questo mese. Passa al piano superiore per continuare a inviare email direttamente.",
"quota-mail-limit-reached": "Hai raggiunto il limite mensile di 15 crediti email. Effettua l'upgrade del tuo piano per continuare a inviare email direttamente.\nI tuoi crediti email verranno ripristinati il {{resetDate}}.",
"quota-mail-tip": "Suggerimento: Puoi ancora firmare un numero <1>illimitato de documenti</1> condividendo manualmente il link della richiesta di firma.",
"quota-mail-head": "Quota Raggiunta",
"unauthorized-modal": "Non hai l'autorizzazione per eseguire questa azione, contatta {{adminEmail}}.",
@@ -1610,5 +1611,7 @@
"access-code-warning": "Questo codice di accesso non può essere modificato o recuperato una volta inviato il documento.",
"copy-access-code": "Copia codice di accesso",
"access-code-upgrade-msg": "I codici di accesso sono disponibili solo nei piani a pagamento. Aggiorna il tuo piano per aggiungere codici di accesso per i destinatari.",
"show-access-code": "Mostra codice di accesso",
"hide-access-code": "Nascondi codice di accesso",
"already-copied-to-clipboard": "Già copiato negli appunti"
}
@@ -800,6 +800,7 @@
"quota-mail-info": "서비스 품질을 유지하고 스팸을 방지하기 위해 OpenSign은 무료 플랜에서 월 최대 15개의 이메일을 허용합니다. 지금 업그레이드하여 무제한 이메일 전송을 이용하세요.",
"quota-mail-reset": "서명 요청 이메일 크레딧은 다음에 재설정됩니다.",
"quota-mail": "이번 달 서명 요청 이메일 15개 한도에 도달했습니다. 지금 업그레이드하여 이메일을 계속 직접 보내세요.",
"quota-mail-limit-reached": "월간 이메일 크레딧 15개 한도에 도달했습니다. 이메일을 계속 직접 보내려면 요금제를 업그레이드하세요.\n이메일 크레딧은 {{resetDate}}에 재설정됩니다.",
"quota-mail-tip": "팁: 서명 요청 링크를 수동으로 공유하여 <1>무제한 문서</1>에 계속 서명할 수 있습니다.",
"quota-mail-head": "할당량 도달",
"unauthorized-modal": "이 작업을 수행할 권한이 없습니다. {{adminEmail}}에게 문의하세요.",
@@ -1594,7 +1595,7 @@
"remove": "제거",
"attachement-note": "참고: 이 위젯을 사용하면 서명자가 서명 과정 중에 파일을 업로드할 수 있습니다. 업로드된 파일은 기존 PDF의 마지막에 추가 페이지로 첨부됩니다.",
"attachments-docx-not-supported": "현재 DOCX 파일 업로드에 문제가 발생하고 있습니다. 다른 지원되는 형식으로 문서를 업로드하시거나 잠시 후 다시 시도해 주세요.",
"access-code": "접속 코드",
"access-code": "접속 코드",
"access-code-set": "접속 코드가 설정됨",
"access-code-add": "접속 코드 추가",
"access-code-help": "이 서명자만 아는 선택적 비밀번호입니다. 문서를 보거나 서명하기 전에 반드시 입력해야 합니다. 전화 또는 직접 만나서 등 별도의 경로로 수신자에게 전달하세요.",
@@ -1610,5 +1611,7 @@
"access-code-warning": "문서가 발송된 후에는 이 접속 코드를 변경하거나 검색할 수 없습니다.",
"copy-access-code": "접속 코드 복사",
"access-code-upgrade-msg": "접속 코드는 유료 요금제에서만 사용할 수 있습니다. 수신자에게 접속 코드를 추가하려면 요금제를 업그레이드하세요.",
"show-access-code": "액세스 코드 표시",
"hide-access-code": "액세스 코드 숨기기",
"already-copied-to-clipboard": "이미 클립보드에 복사됨"
}
@@ -5,6 +5,7 @@ import { useTranslation } from "react-i18next";
function SignerListPlace(props) {
const { t } = useTranslation();
const handleAddRecipient = () => {
props?.setIsAddSigner(true);
props.setIsTour && props.setIsTour(false);
+1 -1
View File
@@ -1841,7 +1841,7 @@ function PdfRequestFiles(
? "none"
: "auto"
}}
className={`${
className={`${
isGuestSignFlow
? "border-[0.5px] border-gray-300"
: "op-card"
@@ -327,8 +327,8 @@ export default async function createBatchDocs(request) {
const Documents = JSON.parse(strDocuments);
const Ip = request?.headers?.['x-real-ip'] || '';
// Access the host from the headers
const publicUrl = request.headers.public_url;
// Use the browser origin so signing links keep the custom domain.
let publicUrl = request.headers.origin || request.headers.public_url;
const parseConfig = {
baseURL: serverUrl,
headers: {
@@ -29,7 +29,7 @@ export default async function createDocumentFromApp(request) {
docCls.set('URL', doc?.URL);
docCls.set('ExtUserPtr', doc.ExtUserPtr);
docCls.set('CreatedBy', doc.CreatedBy);
docCls.set('OriginIp', request?.headers?.['x-real-ip'] || '');
if (doc.Description) {
docCls.set('Description', doc.Description);
}
@@ -37,6 +37,18 @@ const getGmail = async (access_token, displayName) => {
return displayName;
}
};
export const encodeMimeAddress = address => {
const value = String(address || '');
const match = value.match(/^(.*?)\s*<([^<>]+)>$/);
const displayName = match ? match[1].trim() : value;
if (/^[\x00-\x7F]*$/.test(displayName)) return value;
const encodedName = Buffer.from(displayName, 'utf8').toString('base64');
return match ? `=?UTF-8?B?${encodedName}?= <${match[2]}>` : `=?UTF-8?B?${encodedName}?=`;
};
// Function to create a raw email message
const makeEmail = async (
to,
@@ -137,7 +149,7 @@ const makeEmail = async (
'Content-Type: multipart/mixed; boundary="' + boundary + '"\n',
'MIME-Version: 1.0\n',
`To: ${to}\n`,
`From: ${from}\n`,
`From: ${encodeMimeAddress(from)}\n`,
bccHeader,
ccHeader,
replyToHeader,
@@ -155,7 +167,7 @@ const makeEmail = async (
'Content-Type: multipart/mixed; boundary="' + boundary + '"\n',
'MIME-Version: 1.0\n',
`To: ${to}\n`,
`From: ${from}\n`,
`From: ${encodeMimeAddress(from)}\n`,
bccHeader,
ccHeader,
replyToHeader,
+2068 -2659
View File
File diff suppressed because it is too large Load Diff
+15 -5
View File
@@ -27,7 +27,7 @@
"@signpdf/placeholder-pdf-lib": "^3.3.0",
"@signpdf/signer-p12": "^3.3.0",
"@signpdf/signpdf": "^3.3.0",
"axios": "^1.16.0",
"axios": "^1.18.0",
"coherentpdf": "^2.5.5",
"cors": "^2.8.6",
"date-fns-tz": "^3.2.0",
@@ -43,7 +43,7 @@
"multer": "^2.2.0",
"multer-s3": "^3.0.1",
"node-forge": "^1.3.3",
"nodemailer": "^8.0.7",
"nodemailer": "^9.0.1",
"p-limit": "^7.3.0",
"parse": "^8.6.0",
"parse-dbtool": "^1.2.0",
@@ -53,9 +53,9 @@
"posthog-node": "^5.21.2",
"qrcode": "^1.5.4",
"rate-limiter-flexible": "^9.1.1",
"sharp": "^0.34.5",
"sharp": "^0.35.3",
"speakeasy": "^2.0.0",
"ws": ">=8.21.0"
"ws": "^8.21.0"
},
"type": "module",
"devDependencies": {
@@ -68,13 +68,23 @@
"prettier": "^3.8.3"
},
"overrides": {
"brace-expansion": ">=2.1.2",
"ws": "$ws",
"parse": "$parse",
"form-data": "$form-data",
"@parse/push-adapter": "$@parse/push-adapter",
"@grpc/grpc-js": ">=1.14.4",
"fast-xml-builder": "1.2.0",
"protobufjs": ">=7.6.3",
"tmp": ">=0.2.7"
"tmp": ">=0.2.7",
"decompress": "npm:@xhmikosr/decompress@^11.1.4",
"tar": "^7.5.19",
"websocket-driver": ">=0.7.5",
"js-yaml": "^3.15.0",
"lodash": "^4.18.0",
"undici": "^7.29.0",
"uuid": ">=11.1.1",
"body-parser": ">=2.3.0"
},
"engines": {
"node": "18 || 20 || 22"