mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-09-05 09:17:39 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca1b87309f | ||
|
|
0b4548130d |
@@ -2980,34 +2980,34 @@ export const saveLanguageInLocal = (i18n) => {
|
|||||||
const detectedLanguage = i18n.language || "en";
|
const detectedLanguage = i18n.language || "en";
|
||||||
localStorage.setItem("i18nextLng", detectedLanguage);
|
localStorage.setItem("i18nextLng", detectedLanguage);
|
||||||
};
|
};
|
||||||
//function to get default signatur eof current user from `contracts_Signature` class
|
|
||||||
|
// function to get default signature of current user from `contracts_Signature` class
|
||||||
export const getDefaultSignature = async (objectId) => {
|
export const getDefaultSignature = async (objectId) => {
|
||||||
try {
|
try {
|
||||||
const query = new Parse.Query("contracts_Signature");
|
if (objectId) {
|
||||||
query.equalTo("UserId", {
|
const result = await Parse.Cloud.run("getdefaultsignature", {
|
||||||
__type: "Pointer",
|
userId: objectId
|
||||||
className: "_User",
|
});
|
||||||
objectId: objectId
|
if (result) {
|
||||||
});
|
const res = JSON.parse(JSON.stringify(result));
|
||||||
|
const defaultSignature = res?.ImageURL
|
||||||
|
? await getBase64FromUrl(res?.ImageURL, true)
|
||||||
|
: "";
|
||||||
|
const defaultInitial = res?.Initials
|
||||||
|
? await getBase64FromUrl(res?.Initials, true)
|
||||||
|
: "";
|
||||||
|
|
||||||
const result = await query.first();
|
return {
|
||||||
if (result) {
|
status: "success",
|
||||||
const res = JSON.parse(JSON.stringify(result));
|
res: {
|
||||||
const defaultSignature = res?.ImageURL
|
id: result?.id,
|
||||||
? await getBase64FromUrl(res?.ImageURL, true)
|
defaultSignature: defaultSignature,
|
||||||
: "";
|
defaultInitial: defaultInitial
|
||||||
const defaultInitial = res?.Initials
|
}
|
||||||
? await getBase64FromUrl(res?.Initials, true)
|
};
|
||||||
: "";
|
}
|
||||||
|
} else {
|
||||||
return {
|
return { status: "error" };
|
||||||
status: "success",
|
|
||||||
res: {
|
|
||||||
id: result?.id,
|
|
||||||
defaultSignature: defaultSignature,
|
|
||||||
defaultInitial: defaultInitial
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(
|
console.log(
|
||||||
|
|||||||
@@ -46,10 +46,9 @@ const ManageSign = () => {
|
|||||||
objectId: User.id
|
objectId: User.id
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
const signCls = "contracts_Signature";
|
const signRes = await Parse.Cloud.run("getdefaultsignature", {
|
||||||
const signQuery = new Parse.Query(signCls);
|
userId: User.id
|
||||||
signQuery.equalTo("UserId", userId);
|
});
|
||||||
const signRes = await signQuery.first();
|
|
||||||
if (signRes) {
|
if (signRes) {
|
||||||
const res = signRes.toJSON();
|
const res = signRes.toJSON();
|
||||||
setId(res.objectId);
|
setId(res.objectId);
|
||||||
@@ -226,44 +225,23 @@ const ManageSign = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const saveEntry = async (obj) => {
|
const saveEntry = async (obj) => {
|
||||||
const signCls = "contracts_Signature";
|
try {
|
||||||
const User = Parse?.User?.current()?.id;
|
const User = Parse?.User?.current()?.id;
|
||||||
const userId = { __type: "Pointer", className: "_User", objectId: User };
|
const res = await Parse.Cloud.run("managesign", {
|
||||||
if (id) {
|
signature: obj.url,
|
||||||
try {
|
userId: User,
|
||||||
const updateSign = new Parse.Object(signCls);
|
initials: obj.initialsUrl,
|
||||||
updateSign.id = id;
|
id: id,
|
||||||
updateSign.set("Initials", obj.initialsUrl ? obj.initialsUrl : "");
|
title: obj.name
|
||||||
updateSign.set("ImageURL", obj.url ? obj.url : "");
|
});
|
||||||
updateSign.set("SignatureName", obj.name);
|
setIsAlert({ type: "success", message: t("signature-saved-alert") });
|
||||||
updateSign.set("UserId", userId);
|
return res;
|
||||||
const res = await updateSign.save();
|
} catch (err) {
|
||||||
setIsAlert({ type: "success", message: t("signature-saved-alert") });
|
console.log(err);
|
||||||
return res;
|
setIsAlert({ type: "danger", message: `${err.message}` });
|
||||||
} catch (err) {
|
} finally {
|
||||||
console.log(err);
|
setIsLoader(false);
|
||||||
setIsAlert({ type: "danger", message: `${err.message}` });
|
setTimeout(() => setIsAlert({}), 2000);
|
||||||
} finally {
|
|
||||||
setIsLoader(false);
|
|
||||||
setTimeout(() => setIsAlert({}), 2000);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
const updateSign = new Parse.Object(signCls);
|
|
||||||
updateSign.set("Initials", obj.initialsUrl ? obj.initialsUrl : "");
|
|
||||||
updateSign.set("ImageURL", obj.url);
|
|
||||||
updateSign.set("SignatureName", obj.name);
|
|
||||||
updateSign.set("UserId", userId);
|
|
||||||
const res = await updateSign.save();
|
|
||||||
setIsAlert({ type: "success", message: t("signature-saved-alert") });
|
|
||||||
return res;
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
setIsAlert({ type: "success", message: `${err.message}` });
|
|
||||||
} finally {
|
|
||||||
setIsLoader(false);
|
|
||||||
setTimeout(() => setIsAlert({}), 2000);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,22 +16,20 @@ export const saveToMySign = async (widget) => {
|
|||||||
: `${replaceSpace}__initials`;
|
: `${replaceSpace}__initials`;
|
||||||
const file = base64StringtoFile(base64, fileName);
|
const file = base64StringtoFile(base64, fileName);
|
||||||
const fileUrl = await uploadFile(file, User?.id);
|
const fileUrl = await uploadFile(file, User?.id);
|
||||||
// below code is used to save or update default signature, initials, stamp
|
const params = {
|
||||||
const signCls = new Parse.Object("contracts_Signature");
|
id: widget?.defaultSignId, // pass id to update existing signature/initials
|
||||||
if (widget?.defaultSignId) {
|
userId: User.id
|
||||||
signCls.id = widget.defaultSignId;
|
};
|
||||||
}
|
|
||||||
if (widget?.type === "initials") {
|
if (widget?.type === "initials") {
|
||||||
signCls.set("Initials", fileUrl);
|
params.initials = fileUrl; // save initials image url
|
||||||
} else if (widget?.type === "signature") {
|
} else if (widget?.type === "signature") {
|
||||||
signCls.set("ImageURL", fileUrl);
|
params.signature = fileUrl; // save signature image url
|
||||||
}
|
}
|
||||||
signCls.set("UserId", Parse.User.createWithoutData(User.id));
|
const signRes = await Parse.Cloud.run("savesignature", params);
|
||||||
const signRes = await signCls.save();
|
|
||||||
return { base64File: base64, id: signRes?.id };
|
return { base64File: base64, id: signRes?.id };
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log("Err while saving signature", err);
|
console.log("Err while saving signature", err);
|
||||||
return url;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ import addUser from './parsefunction/addUser.js';
|
|||||||
import filterDocs from './parsefunction/filterDocs.js';
|
import filterDocs from './parsefunction/filterDocs.js';
|
||||||
import sendDeleteUserMail from './parsefunction/sendDeleteUserMail.js';
|
import sendDeleteUserMail from './parsefunction/sendDeleteUserMail.js';
|
||||||
import resetPassword from './parsefunction/resetPassword.js';
|
import resetPassword from './parsefunction/resetPassword.js';
|
||||||
|
import saveSignature from './parsefunction/saveSignature.js';
|
||||||
|
import manageSign from './parsefunction/manageSign.js';
|
||||||
|
import getSignature from './parsefunction/getSignature.js';
|
||||||
|
|
||||||
// This afterSave function triggers after an object is added or updated in the specified class, allowing for post-processing logic.
|
// This afterSave function triggers after an object is added or updated in the specified class, allowing for post-processing logic.
|
||||||
Parse.Cloud.afterSave('contracts_Document', DocumentAftersave);
|
Parse.Cloud.afterSave('contracts_Document', DocumentAftersave);
|
||||||
@@ -124,3 +127,6 @@ Parse.Cloud.define('adduser', addUser);
|
|||||||
Parse.Cloud.define('filterdocs', filterDocs);
|
Parse.Cloud.define('filterdocs', filterDocs);
|
||||||
Parse.Cloud.define('senddeleterequest', sendDeleteUserMail);
|
Parse.Cloud.define('senddeleterequest', sendDeleteUserMail);
|
||||||
Parse.Cloud.define('resetpassword', resetPassword);
|
Parse.Cloud.define('resetpassword', resetPassword);
|
||||||
|
Parse.Cloud.define('savesignature', saveSignature);
|
||||||
|
Parse.Cloud.define('managesign', manageSign);
|
||||||
|
Parse.Cloud.define('getdefaultsignature', getSignature);
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
export default async function getSignature(request) {
|
||||||
|
const { userId } = request.params;
|
||||||
|
if (!userId) {
|
||||||
|
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Missing userId parameter.');
|
||||||
|
}
|
||||||
|
if (userId !== request.user?.id) {
|
||||||
|
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Cannot save signature for the current user.');
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const query = new Parse.Query('contracts_Signature');
|
||||||
|
query.equalTo('UserId', { __type: 'Pointer', className: '_User', objectId: userId });
|
||||||
|
const result = await query.first({ useMasterKey: true });
|
||||||
|
return result;
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Error fetching signature:', err);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
export default async function manageSign(request) {
|
||||||
|
const { signature, userId, initials, id, title } = request.params;
|
||||||
|
|
||||||
|
if (!userId) {
|
||||||
|
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Missing userId parameter.');
|
||||||
|
}
|
||||||
|
if (userId !== request.user?.id) {
|
||||||
|
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Cannot save signature for the current user.');
|
||||||
|
}
|
||||||
|
const userPtr = { __type: 'Pointer', className: '_User', objectId: userId };
|
||||||
|
try {
|
||||||
|
const signatureCls = new Parse.Object('contracts_Signature');
|
||||||
|
if (id) {
|
||||||
|
signatureCls.id = id;
|
||||||
|
}
|
||||||
|
signatureCls.set('Initials', initials ? initials : '');
|
||||||
|
signatureCls.set('ImageURL', signature ? signature : '');
|
||||||
|
signatureCls.set('SignatureName', title ? title : '');
|
||||||
|
if (userPtr) {
|
||||||
|
signatureCls.set('UserId', userPtr);
|
||||||
|
}
|
||||||
|
const signRes = await signatureCls.save(null, { useMasterKey: true });
|
||||||
|
return signRes;
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Error saving signature:', err);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
export default async function saveSignature(request) {
|
||||||
|
const { signature, userId, initials, id, title } = request.params;
|
||||||
|
|
||||||
|
if (!userId) {
|
||||||
|
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Missing userId parameter.');
|
||||||
|
}
|
||||||
|
if (userId !== request.user?.id) {
|
||||||
|
throw new Parse.Error(Parse.Error.INVALID_QUERY, 'Cannot save signature for the current user.');
|
||||||
|
}
|
||||||
|
const userPtr = { __type: 'Pointer', className: '_User', objectId: userId };
|
||||||
|
try {
|
||||||
|
const signatureCls = new Parse.Object('contracts_Signature');
|
||||||
|
if (id) {
|
||||||
|
signatureCls.id = id;
|
||||||
|
}
|
||||||
|
if (initials) {
|
||||||
|
signatureCls.set('Initials', initials);
|
||||||
|
}
|
||||||
|
if (signature) {
|
||||||
|
signatureCls.set('ImageURL', signature);
|
||||||
|
}
|
||||||
|
if (title) {
|
||||||
|
signatureCls.set('SignatureName', title);
|
||||||
|
}
|
||||||
|
if (userPtr) {
|
||||||
|
signatureCls.set('UserId', userPtr);
|
||||||
|
}
|
||||||
|
const signRes = await signatureCls.save(null, { useMasterKey: true });
|
||||||
|
return signRes;
|
||||||
|
} catch (err) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,15 +12,23 @@ async function sendMailProvider(req, plan, monthchange) {
|
|||||||
let mailgunClient;
|
let mailgunClient;
|
||||||
let mailgunDomain;
|
let mailgunDomain;
|
||||||
if (smtpenable) {
|
if (smtpenable) {
|
||||||
transporterSMTP = createTransport({
|
let transporterConfig = {
|
||||||
host: process.env.SMTP_HOST,
|
host: process.env.SMTP_HOST,
|
||||||
port: process.env.SMTP_PORT || 465,
|
port: process.env.SMTP_PORT || 465,
|
||||||
secure: smtpsecure,
|
secure: smtpsecure,
|
||||||
auth: {
|
};
|
||||||
|
|
||||||
|
// ✅ Add auth only if BOTH username & password exist
|
||||||
|
const smtpUser = process.env.SMTP_USERNAME;
|
||||||
|
const smtpPass = process.env.SMTP_PASS;
|
||||||
|
|
||||||
|
if (smtpUser && smtpPass) {
|
||||||
|
transporterConfig.auth = {
|
||||||
user: process.env.SMTP_USERNAME ? process.env.SMTP_USERNAME : process.env.SMTP_USER_EMAIL,
|
user: process.env.SMTP_USERNAME ? process.env.SMTP_USERNAME : process.env.SMTP_USER_EMAIL,
|
||||||
pass: process.env.SMTP_PASS,
|
pass: smtpPass,
|
||||||
},
|
};
|
||||||
});
|
}
|
||||||
|
transporterSMTP = createTransport(transporterConfig);
|
||||||
} else {
|
} else {
|
||||||
if (mailgunApiKey) {
|
if (mailgunApiKey) {
|
||||||
const mailgun = new Mailgun(formData);
|
const mailgun = new Mailgun(formData);
|
||||||
@@ -185,7 +193,7 @@ async function sendMailProvider(req, plan, monthchange) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('err in sendmailv3', err);
|
console.log(`Error in sendmailv3: ${err}`);
|
||||||
if (fs.existsSync(testPdf)) {
|
if (fs.existsSync(testPdf)) {
|
||||||
try {
|
try {
|
||||||
fs.unlinkSync(testPdf);
|
fs.unlinkSync(testPdf);
|
||||||
@@ -236,7 +244,7 @@ async function sendMailProvider(req, plan, monthchange) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log('err in sendmailv3', err);
|
console.log(`Error in sendmailv3: ${err}`);
|
||||||
if (err) {
|
if (err) {
|
||||||
return { status: 'error' };
|
return { status: 'error' };
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,20 +61,28 @@ let mailgunDomain;
|
|||||||
let isMailAdapter = false;
|
let isMailAdapter = false;
|
||||||
if (smtpenable) {
|
if (smtpenable) {
|
||||||
try {
|
try {
|
||||||
transporterMail = createTransport({
|
let transporterConfig = {
|
||||||
host: process.env.SMTP_HOST,
|
host: process.env.SMTP_HOST,
|
||||||
port: process.env.SMTP_PORT || 465,
|
port: process.env.SMTP_PORT || 465,
|
||||||
secure: smtpsecure,
|
secure: smtpsecure,
|
||||||
auth: {
|
};
|
||||||
|
|
||||||
|
// ✅ Add auth only if BOTH username & password exist
|
||||||
|
const smtpUser = process.env.SMTP_USERNAME;
|
||||||
|
const smtpPass = process.env.SMTP_PASS;
|
||||||
|
|
||||||
|
if (smtpUser && smtpPass) {
|
||||||
|
transporterConfig.auth = {
|
||||||
user: process.env.SMTP_USERNAME ? process.env.SMTP_USERNAME : process.env.SMTP_USER_EMAIL,
|
user: process.env.SMTP_USERNAME ? process.env.SMTP_USERNAME : process.env.SMTP_USER_EMAIL,
|
||||||
pass: process.env.SMTP_PASS,
|
pass: smtpPass,
|
||||||
},
|
};
|
||||||
});
|
}
|
||||||
|
transporterMail = createTransport(transporterConfig);
|
||||||
await transporterMail.verify();
|
await transporterMail.verify();
|
||||||
isMailAdapter = true;
|
isMailAdapter = true;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
isMailAdapter = false;
|
isMailAdapter = false;
|
||||||
console.log('Please provide valid SMTP credentials');
|
console.log(`Please provide valid SMTP credentials: ${err}`);
|
||||||
}
|
}
|
||||||
} else if (process.env.MAILGUN_API_KEY) {
|
} else if (process.env.MAILGUN_API_KEY) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Generated
+149
-20
@@ -29,7 +29,7 @@
|
|||||||
"googleapis": "^161.0.0",
|
"googleapis": "^161.0.0",
|
||||||
"libreoffice-convert": "^1.7.0",
|
"libreoffice-convert": "^1.7.0",
|
||||||
"mailgun.js": "^12.1.0",
|
"mailgun.js": "^12.1.0",
|
||||||
"mongodb": "^6.20.0",
|
"mongodb": "^5.9.2",
|
||||||
"multer": "^2.0.2",
|
"multer": "^2.0.2",
|
||||||
"multer-s3": "^3.0.1",
|
"multer-s3": "^3.0.1",
|
||||||
"node-forge": "^1.3.1",
|
"node-forge": "^1.3.1",
|
||||||
@@ -15147,6 +15147,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/intersect/-/intersect-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/intersect/-/intersect-1.0.1.tgz",
|
||||||
"integrity": "sha512-qsc720yevCO+4NydrJWgEWKccAQwTOvj2m73O/VBA6iUL2HGZJ9XqBiyraNrBXX/W1IAjdpXdRZk24sq8TzBRg=="
|
"integrity": "sha512-qsc720yevCO+4NydrJWgEWKccAQwTOvj2m73O/VBA6iUL2HGZJ9XqBiyraNrBXX/W1IAjdpXdRZk24sq8TzBRg=="
|
||||||
},
|
},
|
||||||
|
"node_modules/ip-address": {
|
||||||
|
"version": "10.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
|
||||||
|
"integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ipaddr.js": {
|
"node_modules/ipaddr.js": {
|
||||||
"version": "1.9.1",
|
"version": "1.9.1",
|
||||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
||||||
@@ -16190,26 +16199,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mongodb": {
|
"node_modules/mongodb": {
|
||||||
"version": "6.20.0",
|
"version": "5.9.2",
|
||||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz",
|
||||||
"integrity": "sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==",
|
"integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mongodb-js/saslprep": "^1.3.0",
|
"bson": "^5.5.0",
|
||||||
"bson": "^6.10.4",
|
"mongodb-connection-string-url": "^2.6.0",
|
||||||
"mongodb-connection-string-url": "^3.0.2"
|
"socks": "^2.7.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.20.1"
|
"node": ">=14.20.1"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@mongodb-js/saslprep": "^1.1.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@aws-sdk/credential-providers": "^3.188.0",
|
"@aws-sdk/credential-providers": "^3.188.0",
|
||||||
"@mongodb-js/zstd": "^1.1.0 || ^2.0.0",
|
"@mongodb-js/zstd": "^1.0.0",
|
||||||
"gcp-metadata": "^5.2.0",
|
"kerberos": "^1.0.0 || ^2.0.0",
|
||||||
"kerberos": "^2.0.1",
|
"mongodb-client-encryption": ">=2.3.0 <3",
|
||||||
"mongodb-client-encryption": ">=6.0.0 <7",
|
"snappy": "^7.2.2"
|
||||||
"snappy": "^7.3.2",
|
|
||||||
"socks": "^2.7.1"
|
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"@aws-sdk/credential-providers": {
|
"@aws-sdk/credential-providers": {
|
||||||
@@ -16218,9 +16228,6 @@
|
|||||||
"@mongodb-js/zstd": {
|
"@mongodb-js/zstd": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"gcp-metadata": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"kerberos": {
|
"kerberos": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
@@ -16229,9 +16236,6 @@
|
|||||||
},
|
},
|
||||||
"snappy": {
|
"snappy": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
|
||||||
"socks": {
|
|
||||||
"optional": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -16292,6 +16296,107 @@
|
|||||||
"mongodb-runner": "bin/runner.js"
|
"mongodb-runner": "bin/runner.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/mongodb-runner/node_modules/mongodb": {
|
||||||
|
"version": "6.20.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.20.0.tgz",
|
||||||
|
"integrity": "sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@mongodb-js/saslprep": "^1.3.0",
|
||||||
|
"bson": "^6.10.4",
|
||||||
|
"mongodb-connection-string-url": "^3.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16.20.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@aws-sdk/credential-providers": "^3.188.0",
|
||||||
|
"@mongodb-js/zstd": "^1.1.0 || ^2.0.0",
|
||||||
|
"gcp-metadata": "^5.2.0",
|
||||||
|
"kerberos": "^2.0.1",
|
||||||
|
"mongodb-client-encryption": ">=6.0.0 <7",
|
||||||
|
"snappy": "^7.3.2",
|
||||||
|
"socks": "^2.7.1"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@aws-sdk/credential-providers": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@mongodb-js/zstd": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"gcp-metadata": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"kerberos": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"mongodb-client-encryption": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"snappy": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"socks": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mongodb/node_modules/@types/whatwg-url": {
|
||||||
|
"version": "8.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
|
||||||
|
"integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"@types/webidl-conversions": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mongodb/node_modules/bson": {
|
||||||
|
"version": "5.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz",
|
||||||
|
"integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14.20.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mongodb/node_modules/mongodb-connection-string-url": {
|
||||||
|
"version": "2.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
|
||||||
|
"integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/whatwg-url": "^8.2.1",
|
||||||
|
"whatwg-url": "^11.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mongodb/node_modules/tr46": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"punycode": "^2.1.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mongodb/node_modules/whatwg-url": {
|
||||||
|
"version": "11.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
|
||||||
|
"integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"tr46": "^3.0.0",
|
||||||
|
"webidl-conversions": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
@@ -18770,6 +18875,30 @@
|
|||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/smart-buffer": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6.0.0",
|
||||||
|
"npm": ">= 3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/socks": {
|
||||||
|
"version": "2.8.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz",
|
||||||
|
"integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ip-address": "^10.0.1",
|
||||||
|
"smart-buffer": "^4.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 10.0.0",
|
||||||
|
"npm": ">= 3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/source-map": {
|
"node_modules/source-map": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
"googleapis": "^161.0.0",
|
"googleapis": "^161.0.0",
|
||||||
"libreoffice-convert": "^1.7.0",
|
"libreoffice-convert": "^1.7.0",
|
||||||
"mailgun.js": "^12.1.0",
|
"mailgun.js": "^12.1.0",
|
||||||
"mongodb": "^6.20.0",
|
"mongodb": "^5.9.2",
|
||||||
"multer": "^2.0.2",
|
"multer": "^2.0.2",
|
||||||
"multer-s3": "^3.0.1",
|
"multer-s3": "^3.0.1",
|
||||||
"node-forge": "^1.3.1",
|
"node-forge": "^1.3.1",
|
||||||
|
|||||||
Reference in New Issue
Block a user