mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-09-24 02:24:54 +02:00
fix: resolve conflict
This commit is contained in:
Generated
+11
-21
@@ -14,7 +14,7 @@
|
||||
"@radix-ui/themes": "^3.1.3",
|
||||
"@react-pdf/renderer": "^3.4.4",
|
||||
"@reduxjs/toolkit": "^2.2.7",
|
||||
"axios": "^1.7.4",
|
||||
"axios": "^1.7.5",
|
||||
"file-saver": "^2.0.5",
|
||||
"i18next": "^23.14.0",
|
||||
"i18next-browser-languagedetector": "^8.0.0",
|
||||
@@ -5948,15 +5948,6 @@
|
||||
"@types/json-schema": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/eslint-scope": {
|
||||
"version": "3.7.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
|
||||
"integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
|
||||
"dependencies": {
|
||||
"@types/eslint": "*",
|
||||
"@types/estree": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
|
||||
@@ -7201,9 +7192,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.7.4",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
|
||||
"integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
|
||||
"version": "1.7.5",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz",
|
||||
"integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
"form-data": "^4.0.0",
|
||||
@@ -16959,9 +16950,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.7",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
|
||||
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||
"dependencies": {
|
||||
"braces": "^3.0.3",
|
||||
"picomatch": "^2.3.1"
|
||||
@@ -24656,11 +24647,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/webpack": {
|
||||
"version": "5.93.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz",
|
||||
"integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==",
|
||||
"version": "5.94.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz",
|
||||
"integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
|
||||
"dependencies": {
|
||||
"@types/eslint-scope": "^3.7.3",
|
||||
"@types/estree": "^1.0.5",
|
||||
"@webassemblyjs/ast": "^1.12.1",
|
||||
"@webassemblyjs/wasm-edit": "^1.12.1",
|
||||
@@ -24669,7 +24659,7 @@
|
||||
"acorn-import-attributes": "^1.9.5",
|
||||
"browserslist": "^4.21.10",
|
||||
"chrome-trace-event": "^1.0.2",
|
||||
"enhanced-resolve": "^5.17.0",
|
||||
"enhanced-resolve": "^5.17.1",
|
||||
"es-module-lexer": "^1.2.1",
|
||||
"eslint-scope": "5.1.1",
|
||||
"events": "^3.2.0",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"@radix-ui/themes": "^3.1.3",
|
||||
"@react-pdf/renderer": "^3.4.4",
|
||||
"@reduxjs/toolkit": "^2.2.7",
|
||||
"axios": "^1.7.4",
|
||||
"axios": "^1.7.5",
|
||||
"file-saver": "^2.0.5",
|
||||
"i18next": "^23.14.0",
|
||||
"i18next-browser-languagedetector": "^8.0.0",
|
||||
|
||||
@@ -623,5 +623,7 @@
|
||||
"rotate-left": "Rotate left",
|
||||
"rotate-alert-mssg": "All widgets on this page will be lost. Are you sure you want to proceed?",
|
||||
"templateid": "Template-Id",
|
||||
"bulksendsubcriptionalert": "Please upgrade to Professional or Team plan to use quicksend."
|
||||
"bulksendsubcriptionalert": "Please upgrade to Professional or Team plan to use quicksend.",
|
||||
"generate-test-token":"Generate Test Token",
|
||||
"regenerate-test-token":"Regenerate Test Token"
|
||||
}
|
||||
|
||||
@@ -622,5 +622,7 @@
|
||||
"rotate-left": "Faire pivoter à gauche",
|
||||
"rotate-alert-mssg": "Tous les widgets de cette page seront perdus. Êtes-vous sûr de vouloir continuer ?",
|
||||
"templateid": "ID de modèle",
|
||||
"bulksendsubcriptionalert": "Veuillez passer au forfait Professionnel ou Équipe pour utiliser Quicksend."
|
||||
"bulksendsubcriptionalert": "Veuillez passer au forfait Professionnel ou Équipe pour utiliser Quicksend.",
|
||||
"generate-test-token": "Générer jeton de test",
|
||||
"regenerate-test-token":"Régénérer le jeton de test"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import Select from "react-select";
|
||||
import AsyncSelect from "react-select/async";
|
||||
import AddSigner from "../../AddSigner";
|
||||
import Parse from "parse";
|
||||
import Tooltip from "../../../primitives/Tooltip";
|
||||
@@ -35,7 +35,6 @@ const AddSignerModal = ({ isOpen, children }) => {
|
||||
const SignersInput = (props) => {
|
||||
const { t } = useTranslation();
|
||||
const [state, setState] = useState(undefined);
|
||||
// const [editFormData, setEditFormData] = useState([]);
|
||||
const [selected, setSelected] = useState([]);
|
||||
const [isModal, setIsModel] = useState(false);
|
||||
const onChange = (selectedOptions) => setSelected(selectedOptions);
|
||||
@@ -46,40 +45,6 @@ const SignersInput = (props) => {
|
||||
setSelected(newValue);
|
||||
};
|
||||
|
||||
const GetSelectListData = async () => {
|
||||
try {
|
||||
const currentUser = Parse.User.current();
|
||||
const contactbook = new Parse.Query("contracts_Contactbook");
|
||||
contactbook.equalTo(
|
||||
"CreatedBy",
|
||||
Parse.User.createWithoutData(currentUser.id)
|
||||
);
|
||||
contactbook.notEqualTo("IsDeleted", true);
|
||||
const contactRes = await contactbook.find();
|
||||
if (contactRes) {
|
||||
const res = JSON.parse(JSON.stringify(contactRes));
|
||||
let list = [];
|
||||
|
||||
// let _selected = [];
|
||||
res.forEach((x) => {
|
||||
let obj = {
|
||||
label: x.Name,
|
||||
value: x.objectId,
|
||||
isChecked: true
|
||||
};
|
||||
|
||||
list.push(obj);
|
||||
});
|
||||
setState(list);
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("err", error);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
GetSelectListData();
|
||||
}, []);
|
||||
useEffect(() => {
|
||||
if (props.isReset && props.isReset === true) {
|
||||
setSelected([]);
|
||||
@@ -118,7 +83,46 @@ const SignersInput = (props) => {
|
||||
setSelected([data]);
|
||||
}
|
||||
};
|
||||
const loadOptions = async (inputValue) => {
|
||||
try {
|
||||
const currentUser = Parse.User.current();
|
||||
const contactbook = new Parse.Query("contracts_Contactbook");
|
||||
contactbook.equalTo(
|
||||
"CreatedBy",
|
||||
Parse.User.createWithoutData(currentUser.id)
|
||||
);
|
||||
if (inputValue.length > 1) {
|
||||
contactbook.matches("Name", new RegExp(inputValue, "i"));
|
||||
}
|
||||
contactbook.notEqualTo("IsDeleted", true);
|
||||
const contactRes = await contactbook.find();
|
||||
if (contactRes) {
|
||||
const res = JSON.parse(JSON.stringify(contactRes));
|
||||
//compareArrays is a function where compare between two array (total signersList and dcument signers list)
|
||||
//and filter signers from total signer's list which already present in document's signers list
|
||||
const compareArrays = (res, signerObj) => {
|
||||
return res.filter(
|
||||
(item1) =>
|
||||
!signerObj.find((item2) => item2.objectId === item1.objectId)
|
||||
);
|
||||
};
|
||||
|
||||
//get update signer's List if signersdata is present
|
||||
const updateSignersList =
|
||||
props?.signersData && compareArrays(res, props?.signersData);
|
||||
|
||||
const result = updateSignersList ? updateSignersList : res;
|
||||
setState(result);
|
||||
return await result.map((item) => ({
|
||||
label: item.Name,
|
||||
value: item.objectId,
|
||||
isChecked: true
|
||||
}));
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("err", error);
|
||||
}
|
||||
};
|
||||
return (
|
||||
<div className="text-xs mt-2 ">
|
||||
<label className="block relative">
|
||||
@@ -130,16 +134,20 @@ const SignersInput = (props) => {
|
||||
</label>
|
||||
<div className="flex gap-x-[5px]">
|
||||
<div className="w-full">
|
||||
<Select
|
||||
<AsyncSelect
|
||||
onSortEnd={onSortEnd}
|
||||
distance={4}
|
||||
isMulti
|
||||
cacheOptions
|
||||
defaultOptions
|
||||
options={state || []}
|
||||
value={selected}
|
||||
onChange={onChange}
|
||||
closeMenuOnSelect={false}
|
||||
required={props.required}
|
||||
loadingMessage={() => t("loading")}
|
||||
noOptionsMessage={() => t("contact-not-found")}
|
||||
loadOptions={loadOptions}
|
||||
unstyled
|
||||
classNames={{
|
||||
control: () =>
|
||||
|
||||
@@ -459,13 +459,13 @@ const AddAdmin = () => {
|
||||
<input
|
||||
type="checkbox"
|
||||
className="op-checkbox op-checkbox-sm"
|
||||
id="termsandcondition"
|
||||
id="subscribetoopensign"
|
||||
checked={isSubscribeNews}
|
||||
onChange={(e) => setIsSubscribeNews(e.target.checked)}
|
||||
/>
|
||||
<label
|
||||
className="text-xs cursor-pointer ml-1 mb-0"
|
||||
htmlFor="termsandcondition"
|
||||
htmlFor="subscribetoopensign"
|
||||
>
|
||||
{t("subscribe-to-opensign")}
|
||||
</label>
|
||||
|
||||
@@ -32,6 +32,7 @@ function GenerateToken() {
|
||||
price: (75.0).toFixed(2)
|
||||
});
|
||||
const [isFormLoader, setIsFormLoader] = useState(false);
|
||||
const [apitestToken, setApiTestToken] = useState("");
|
||||
const quantityList = [500, 1000, 5000, 50000];
|
||||
useEffect(() => {
|
||||
fetchToken();
|
||||
@@ -61,11 +62,15 @@ function GenerateToken() {
|
||||
setAmount((obj) => ({ ...obj, totalapis: allowedapis }));
|
||||
SetApiToken(res?.data?.result?.result);
|
||||
}
|
||||
setIsLoader(false);
|
||||
const body = { email: Parse?.User?.current()?.getEmail() || "" };
|
||||
const testurl = "https://sandbox.opensignlabs.com/api/gettesttoken";
|
||||
const testRes = await axios.post(testurl, body);
|
||||
setApiTestToken(testRes.data?.token);
|
||||
} catch (err) {
|
||||
SetApiToken();
|
||||
setIsLoader(false);
|
||||
console.log("Err", err);
|
||||
} finally {
|
||||
setIsLoader(false);
|
||||
}
|
||||
};
|
||||
const handleSubmit = async (e) => {
|
||||
@@ -160,6 +165,41 @@ function GenerateToken() {
|
||||
setIsFormLoader(false);
|
||||
}
|
||||
};
|
||||
|
||||
const handleGenerateTestToken = async (e) => {
|
||||
e.preventDefault();
|
||||
setIsLoader(true);
|
||||
// setIsModal((obj) => ({ ...obj, generateapi: false }));
|
||||
try {
|
||||
const url = "https://sandbox.opensignlabs.com/api/generatetesttoken";
|
||||
const headers = {
|
||||
"Content-Type": "application/json",
|
||||
token: apitestToken || "1"
|
||||
};
|
||||
const extUser = JSON.parse(localStorage.getItem("Extand_Class"))?.[0];
|
||||
const body = {
|
||||
name: extUser?.Name,
|
||||
email: extUser?.Email,
|
||||
phone: extUser?.Phone,
|
||||
company: extUser?.Company,
|
||||
jobTitle: extUser?.JobTitle
|
||||
};
|
||||
const res = await axios.post(url, body, { headers: headers });
|
||||
if (res) {
|
||||
setApiTestToken(res.data?.token);
|
||||
setIsAlert({ type: "success", msg: t("token-generated") });
|
||||
} else {
|
||||
console.error("Error while generating Token");
|
||||
setIsAlert({ type: "danger", msg: t("something-went-wrong-mssg") });
|
||||
}
|
||||
} catch (error) {
|
||||
setIsAlert({ type: "danger", msg: t("something-went-wrong-mssg") });
|
||||
console.log("while generating Token", error);
|
||||
} finally {
|
||||
setIsLoader(false);
|
||||
setTimeout(() => setIsAlert({ type: "success", msg: "" }), 1500);
|
||||
}
|
||||
};
|
||||
return (
|
||||
<React.Fragment>
|
||||
<Title title={"API Token"} />
|
||||
@@ -179,6 +219,34 @@ function GenerateToken() {
|
||||
/>
|
||||
</h1>
|
||||
<ul className="w-full flex flex-col p-2 text-sm">
|
||||
<li className="flex flex-col md:flex-row justify-between items-center border-y-[1px] border-gray-300 break-all py-2">
|
||||
<div className="w-full md:w-[70%] flex-col md:flex-row text-xs md:text-[15px] flex items-center gap-x-5">
|
||||
<span className="ml-1">API Test Token :</span>{" "}
|
||||
<span id="token" className="md:text-end py-2 md:py-0">
|
||||
<span
|
||||
className="cursor-pointer"
|
||||
onClick={() => copytoclipboard(apitestToken)}
|
||||
>
|
||||
{apitestToken ? apitestToken : "_____"}
|
||||
</span>
|
||||
<button
|
||||
className="op-btn op-btn-accent op-btn-outline op-btn-sm ml-2 cursor-pointer"
|
||||
onClick={() => copytoclipboard(apitestToken)}
|
||||
>
|
||||
<i className="fa-light fa-copy"></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
<button
|
||||
onClick={handleGenerateTestToken}
|
||||
// onClick={apitestToken ? handleModal : handleGenerateTestToken}
|
||||
className="op-btn op-btn-primary"
|
||||
>
|
||||
{apitestToken
|
||||
? t("regenerate-test-token")
|
||||
: t("generate-test-token")}
|
||||
</button>
|
||||
</li>
|
||||
<li className="flex flex-col md:flex-row justify-between items-center border-y-[1px] border-gray-300 break-all py-2">
|
||||
<div className="w-full md:w-[70%] flex-col md:flex-row text-xs md:text-[15px] flex items-center gap-x-5">
|
||||
<span className="ml-1">{t("api-token")}:</span>{" "}
|
||||
|
||||
@@ -21,7 +21,6 @@ import {
|
||||
saveLanguageInLocal
|
||||
} from "../constant/Utils";
|
||||
import Loader from "../primitives/Loader";
|
||||
import { paidUrl } from "../json/plansArr";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import SelectLanguage from "../components/pdf/SelectLanguage";
|
||||
|
||||
@@ -81,13 +80,8 @@ function Login() {
|
||||
}
|
||||
setState({ ...state, [name]: value });
|
||||
};
|
||||
const handlePaidRoute = (plan) => {
|
||||
const route = paidUrl(plan);
|
||||
if (route === "/subscription") {
|
||||
navigate(route);
|
||||
} else {
|
||||
openInNewTab(route, "_self");
|
||||
}
|
||||
const handlePaidRoute = () => {
|
||||
navigate("/subscription");
|
||||
};
|
||||
const handleSubmit = async (event) => {
|
||||
localStorage.removeItem("accesstoken");
|
||||
|
||||
@@ -390,24 +390,25 @@ function UserProfile() {
|
||||
];
|
||||
//function for update TourStatus
|
||||
const closeTour = async () => {
|
||||
setIsProfileTour(true);
|
||||
if (isDontShow) {
|
||||
let updatedTourStatus = [];
|
||||
if (tourStatus.length > 0) {
|
||||
updatedTourStatus = [...tourStatus];
|
||||
const profileIndex = tourStatus.findIndex(
|
||||
(obj) => obj["profileTour"] === false || obj["profileTour"] === true
|
||||
);
|
||||
if (profileIndex !== -1) {
|
||||
updatedTourStatus[profileIndex] = { profileTour: true };
|
||||
try {
|
||||
setIsProfileTour(true);
|
||||
if (isDontShow) {
|
||||
let updatedTourStatus = [];
|
||||
if (tourStatus.length > 0) {
|
||||
updatedTourStatus = [...tourStatus];
|
||||
const profileIndex = tourStatus.findIndex(
|
||||
(obj) => obj["profileTour"] === false || obj["profileTour"] === true
|
||||
);
|
||||
if (profileIndex !== -1) {
|
||||
updatedTourStatus[profileIndex] = { profileTour: true };
|
||||
} else {
|
||||
updatedTourStatus.push({ profileTour: true });
|
||||
}
|
||||
} else {
|
||||
updatedTourStatus.push({ profileTour: true });
|
||||
updatedTourStatus = [{ profileTour: true }];
|
||||
}
|
||||
} else {
|
||||
updatedTourStatus = [{ profileTour: true }];
|
||||
}
|
||||
await axios
|
||||
.put(
|
||||
|
||||
await axios.put(
|
||||
`${localStorage.getItem("baseUrl")}classes/contracts_Users/${
|
||||
extendUser?.[0]?.objectId
|
||||
}`,
|
||||
@@ -421,14 +422,15 @@ function UserProfile() {
|
||||
sessionToken: localStorage.getItem("accesstoken")
|
||||
}
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
// const json = Listdata.data;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("axois err ", err);
|
||||
alert(t("something-went-wrong-mssg"));
|
||||
});
|
||||
);
|
||||
const res = await Parse.Cloud.run("getUserDetails");
|
||||
const json = JSON.parse(JSON.stringify([res]));
|
||||
const extRes = JSON.stringify(json);
|
||||
localStorage.setItem("Extand_Class", extRes);
|
||||
}
|
||||
} catch (err) {
|
||||
console.log("axois err ", err);
|
||||
alert(t("something-went-wrong-mssg"));
|
||||
}
|
||||
};
|
||||
const handleDontShow = (isChecked) => {
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
async function ContractUsersAftersave(request) {
|
||||
console.log('In contracts_Users aftersave');
|
||||
|
||||
if (!request.original) {
|
||||
const shareWithTeam = request.object.get('ShareWithTeam');
|
||||
const newACL = new Parse.ACL();
|
||||
const contactbook = new Parse.Object('contracts_Contactbook');
|
||||
contactbook.set('Name', request.object.get('Name'));
|
||||
contactbook.set('Email', request.object.get('Email'));
|
||||
contactbook.set('ExtUserPtr', request.object.get('objectId'));
|
||||
if (request.object?.get('Phone')) {
|
||||
contactbook.set('Phone', request.object.get('Phone'));
|
||||
}
|
||||
contactbook.set('ExtUserPtr', {
|
||||
__type: 'Pointer',
|
||||
className: 'contracts_Users',
|
||||
objectId: request.object.id,
|
||||
});
|
||||
contactbook.set('UserId', request.object.get('UserId'));
|
||||
|
||||
// newACL.setPublicReadAccess(false);
|
||||
// newACL.setPublicWriteAccess(false);
|
||||
const tenant_Id = request.object.get('TenantId');
|
||||
if (shareWithTeam) {
|
||||
if (tenant_Id) {
|
||||
newACL.setReadAccess('tenant_' + tenant_Id.id, true);
|
||||
newACL.setWriteAccess('tenant_' + tenant_Id.id, true);
|
||||
}
|
||||
newACL.setReadAccess(request.user, true);
|
||||
newACL.setWriteAccess(request.user, true);
|
||||
} else {
|
||||
newACL.setReadAccess(request.user, true);
|
||||
newACL.setWriteAccess(request.user, true);
|
||||
}
|
||||
|
||||
contactbook.setACL(newACL);
|
||||
contactbook.save(null, { useMasterkey: true });
|
||||
}
|
||||
}
|
||||
export default ContractUsersAftersave;
|
||||
@@ -14,7 +14,7 @@ async function ExtUserAftersave(request) {
|
||||
const updateSub = new Parse.Object('contracts_Subscriptions');
|
||||
updateSub.id = resSub.id;
|
||||
updateSub.increment('UsersCount', 1);
|
||||
updateSub.save(null, { useMasterKey: true });
|
||||
await updateSub.save(null, { useMasterKey: true });
|
||||
} else {
|
||||
const addSub = new Parse.Object('contracts_Subscriptions');
|
||||
addSub.set('UsersCount', 1);
|
||||
@@ -33,7 +33,7 @@ async function ExtUserAftersave(request) {
|
||||
className: 'partners_Tenant',
|
||||
objectId: extUser.get('TenantId').id,
|
||||
});
|
||||
addSub.save(null, { useMasterKey: true });
|
||||
await addSub.save(null, { useMasterKey: true });
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
|
||||
Generated
+28
-28
@@ -16,7 +16,7 @@
|
||||
"@signpdf/signer-p12": "^3.2.4",
|
||||
"@signpdf/signpdf": "^3.2.4",
|
||||
"aws-sdk": "^2.1681.0",
|
||||
"axios": "^1.7.4",
|
||||
"axios": "^1.7.5",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^16.4.5",
|
||||
"express": "^4.19.2",
|
||||
@@ -25,7 +25,7 @@
|
||||
"googleapis": "^140.0.1",
|
||||
"jsonschema": "^1.4.1",
|
||||
"mailgun.js": "^10.2.3",
|
||||
"mongoose": "^8.5.3",
|
||||
"mongoose": "^8.5.4",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"multer-s3": "^3.0.1",
|
||||
"node-forge": "^1.3.1",
|
||||
@@ -35,12 +35,12 @@
|
||||
"parse-server": "^7.2.0",
|
||||
"parse-server-api-mail-adapter": "^4.0.0",
|
||||
"pdf-lib": "^1.17.1",
|
||||
"posthog-node": "^4.0.1",
|
||||
"posthog-node": "^4.1.1",
|
||||
"ws": "^8.18.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/eslint-parser": "^7.25.1",
|
||||
"eslint": "^9.9.0",
|
||||
"eslint": "^9.9.1",
|
||||
"jasmine": "^5.2.0",
|
||||
"mongodb-runner": "^5.6.5",
|
||||
"nodemon": "^3.1.4",
|
||||
@@ -1624,9 +1624,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/config-array": {
|
||||
"version": "0.17.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz",
|
||||
"integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==",
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz",
|
||||
"integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==",
|
||||
"dependencies": {
|
||||
"@eslint/object-schema": "^2.1.4",
|
||||
"debug": "^4.3.1",
|
||||
@@ -1670,9 +1670,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "9.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz",
|
||||
"integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==",
|
||||
"version": "9.9.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz",
|
||||
"integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
}
|
||||
@@ -4162,9 +4162,9 @@
|
||||
"integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA=="
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.7.4",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
|
||||
"integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
|
||||
"version": "1.7.5",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz",
|
||||
"integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
"form-data": "^4.0.0",
|
||||
@@ -5394,15 +5394,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "9.9.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz",
|
||||
"integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==",
|
||||
"version": "9.9.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz",
|
||||
"integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.11.0",
|
||||
"@eslint/config-array": "^0.17.1",
|
||||
"@eslint/config-array": "^0.18.0",
|
||||
"@eslint/eslintrc": "^3.1.0",
|
||||
"@eslint/js": "9.9.0",
|
||||
"@eslint/js": "9.9.1",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@humanwhocodes/retry": "^0.3.0",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
@@ -7927,9 +7927,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.7",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
|
||||
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||
"dependencies": {
|
||||
"braces": "^3.0.3",
|
||||
"picomatch": "^2.3.1"
|
||||
@@ -8228,9 +8228,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mongoose": {
|
||||
"version": "8.5.3",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.5.3.tgz",
|
||||
"integrity": "sha512-OubSDbsAclDFGHjV82MsKyIGQWFc42Ot1l+0dhRS6U9xODM7rm/ES/WpOQd8Ds9j0Mx8QzxZtrSCnBh6o9wUqw==",
|
||||
"version": "8.5.4",
|
||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.5.4.tgz",
|
||||
"integrity": "sha512-nG3eehhWf9l1q80WuHvp5DV+4xDNFpDWLE5ZgcFD5tslUV2USJ56ogun8gaZ62MKAocJnoStjAdno08b8U57hg==",
|
||||
"dependencies": {
|
||||
"bson": "^6.7.0",
|
||||
"kareem": "2.6.3",
|
||||
@@ -10095,11 +10095,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/posthog-node": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.0.1.tgz",
|
||||
"integrity": "sha512-rtqm2h22QxLGBrW2bLYzbRhliIrqgZ0k+gF0LkQ1SNdeD06YE5eilV0MxZppFSxC8TfH0+B0cWCuebEnreIDgQ==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.1.1.tgz",
|
||||
"integrity": "sha512-hva26cNSz62H76blhWUF8mZmE3Q81KTrkkpHEZlD00qDov/phLQCrKQnxwjiAN3yI9pv/0/uwte6Gluy1xBmUA==",
|
||||
"dependencies": {
|
||||
"axios": "^1.6.2",
|
||||
"axios": "^1.7.4",
|
||||
"rusha": "^0.8.14"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"@signpdf/signer-p12": "^3.2.4",
|
||||
"@signpdf/signpdf": "^3.2.4",
|
||||
"aws-sdk": "^2.1681.0",
|
||||
"axios": "^1.7.4",
|
||||
"axios": "^1.7.5",
|
||||
"cors": "^2.8.5",
|
||||
"dotenv": "^16.4.5",
|
||||
"express": "^4.19.2",
|
||||
@@ -34,7 +34,7 @@
|
||||
"googleapis": "^140.0.1",
|
||||
"jsonschema": "^1.4.1",
|
||||
"mailgun.js": "^10.2.3",
|
||||
"mongoose": "^8.5.3",
|
||||
"mongoose": "^8.5.4",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"multer-s3": "^3.0.1",
|
||||
"node-forge": "^1.3.1",
|
||||
@@ -44,13 +44,13 @@
|
||||
"parse-server": "^7.2.0",
|
||||
"parse-server-api-mail-adapter": "^4.0.0",
|
||||
"pdf-lib": "^1.17.1",
|
||||
"posthog-node": "^4.0.1",
|
||||
"posthog-node": "^4.1.1",
|
||||
"ws": "^8.18.0"
|
||||
},
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@babel/eslint-parser": "^7.25.1",
|
||||
"eslint": "^9.9.0",
|
||||
"eslint": "^9.9.1",
|
||||
"jasmine": "^5.2.0",
|
||||
"mongodb-runner": "^5.6.5",
|
||||
"nodemon": "^3.1.4",
|
||||
|
||||
Reference in New Issue
Block a user