remove unncessary code and confidential data

This commit is contained in:
prafullnavkar-nxg
2023-10-23 12:23:15 +05:30
parent 95516ce9da
commit 8938a19358
16 changed files with 54 additions and 548 deletions
-6
View File
@@ -23,9 +23,3 @@ The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
# Remote Deployment
## DigitalOcean
[![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/prafullnavkar-nxg/open_sign/tree/master&refcode=30db1c901ab0)
+16
View File
@@ -49,6 +49,7 @@
"eslint": "^8.51.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.33.2",
"husky": "^8.0.3",
"lint-staged": "^15.0.1",
"postcss": "^8.4.31",
"prettier": "^2.8.0",
@@ -10197,6 +10198,21 @@
"node": ">=10.17.0"
}
},
"node_modules/husky": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
"integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
"dev": true,
"bin": {
"husky": "lib/bin.js"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/typicode"
}
},
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+2
View File
@@ -42,6 +42,7 @@
"build": "CI=false && mf-cra build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"prepare": "husky install | chmod ug+x .husky/*",
"release": "standard-version",
"commit": "cz"
},
@@ -75,6 +76,7 @@
"eslint": "^8.51.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.33.2",
"husky": "^8.0.3",
"lint-staged": "^15.0.1",
"postcss": "^8.4.31",
"prettier": "^2.8.0",
@@ -167,8 +167,8 @@ class AppendFormInForm extends Component {
let PageLanding = localStorage.getItem("PageLanding");
let domain = localStorage.getItem("domain");
let _appName = localStorage.getItem("_appName");
let baseUrr = localStorage.getItem("BaseUrl12");
let appidd = localStorage.getItem("AppID12");
let baseUrl = localStorage.getItem("BaseUrl12");
let appid = localStorage.getItem("AppID12");
localStorage.clear();
@@ -179,8 +179,8 @@ class AppendFormInForm extends Component {
localStorage.setItem("PageLanding", PageLanding);
localStorage.setItem("domain", domain);
localStorage.setItem("userSettings", appdata);
localStorage.setItem("BaseUrl12", baseUrr);
localStorage.setItem("AppID12", appidd);
localStorage.setItem("BaseUrl12", baseUrl);
localStorage.setItem("AppID12", appid);
return <Navigate to="/" />;
}
@@ -29,7 +29,6 @@ export class ErrorBoundary extends Component {
flexFlow: "column"
}}
>
{/* <img src="./images/1210964-link.jpg" alt="" /> */}
<h1
style={{
fontSize: "2em",
+4 -4
View File
@@ -31,8 +31,8 @@ const Header = ({ showSidebar }) => {
let PageLanding = localStorage.getItem("PageLanding");
let domain = localStorage.getItem("domain");
let _appName = localStorage.getItem("_appName");
let baseUrr = localStorage.getItem("BaseUrl12");
let appidd = localStorage.getItem("AppID12");
let baseUrl = localStorage.getItem("BaseUrl12");
let appid = localStorage.getItem("AppID12");
localStorage.clear();
@@ -43,8 +43,8 @@ const Header = ({ showSidebar }) => {
localStorage.setItem("PageLanding", PageLanding);
localStorage.setItem("domain", domain);
localStorage.setItem("userSettings", appdata);
localStorage.setItem("BaseUrl12", baseUrr);
localStorage.setItem("AppID12", appidd);
localStorage.setItem("BaseUrl12", baseUrl);
localStorage.setItem("AppID12", appid);
navigation("/");
};
+4 -4
View File
@@ -185,8 +185,8 @@ class FormBuilder extends Component {
let PageLanding = localStorage.getItem("PageLanding");
let domain = localStorage.getItem("domain");
let _appName = localStorage.getItem("_appName");
let baseUrr = localStorage.getItem("BaseUrl12");
let appidd = localStorage.getItem("AppID12");
let baseUrl = localStorage.getItem("BaseUrl12");
let appid = localStorage.getItem("AppID12");
localStorage.clear();
localStorage.setItem("appLogo", applogo);
localStorage.setItem("appName", appName);
@@ -195,8 +195,8 @@ class FormBuilder extends Component {
localStorage.setItem("PageLanding", PageLanding);
localStorage.setItem("domain", domain);
localStorage.setItem("userSettings", appdata);
localStorage.setItem("BaseUrl12", baseUrr);
localStorage.setItem("AppID12", appidd);
localStorage.setItem("BaseUrl12", baseUrl);
localStorage.setItem("AppID12", appid);
this.props.navigate(`/`);
}
console.log(e.message);
+18 -19
View File
@@ -1,27 +1,26 @@
# Use an official Node runtime as the base image
FROM node:16
FROM node:latest
# Set the working directory inside the container
WORKDIR /usr/src/app
RUN mkdir parse
# Copy package.json and package-lock.json first to leverage Docker cache
COPY apps/OpenSignServer/package*.json ./
# Install application dependencies
ADD . /parse
WORKDIR /parse
RUN npm install
# If you have native dependencies, you'll need extra tools. Uncomment the following line if needed.
# RUN apk add --no-cache make gcc g++ python3
ENV APP_ID setYourAppId
ENV MASTER_KEY setYourMasterKey
ENV DATABASE_URI setMongoDBURI
# Copy the current directory contents into the container
COPY apps/OpenSignServer/ .
# Optional (default : 'parse/cloud/main.js')
# ENV CLOUD_CODE_MAIN cloudCodePath
# Make port 8080 available to the world outside this container
EXPOSE 8080
# Optional (default : '/parse')
# ENV PARSE_MOUNT mountPath
# Define environment variables if needed
# ENV NODE_ENV production
# ENV DATABASE_URL mongodb://db:27017
EXPOSE 1337
# Run the application
CMD ["npm", "start"]
# Uncomment if you want to access cloud code outside of your container
# A main.js file must be present, if not Parse will not start
# VOLUME /parse/cloud
CMD [ "npm", "start" ]
@@ -64,7 +64,7 @@ async function uploadFile(req, res) {
s3,
bucket: DO_SPACE,
metadata: function (req, file, cb) {
cb(null, { fieldName: 'TESTING_METADATA' });
cb(null, { fieldName: 'OPENSIGN_METADATA' });
},
key: function (req, file, cb) {
//console.log(file);
@@ -1,79 +0,0 @@
/* --Description :cloud function called to get installed applist from client db */
//-- Export Modules
import mongoose from 'mongoose';
import { w_appinfoSchema } from '../models/appInfoclass.js';
import { orgAppsSchema } from '../models/orgApps.js';
import axios from 'axios';
export default async function CheckInstalledApp(request) {
const organization = request.params.orgName;
const options = { useNewUrlParser: true };
const baseDb = process.env.MONGODB_URI;
const serverUrl = process.env.SERVER_URL;
const appId = process.env.APP_ID;
// const sess = request.params._SessionToken;
//--function to get the userid from session token
try {
const sess = request.headers['sessiontoken'];
const user = await axios.get(serverUrl + '/users/me', {
headers: {
'X-Parse-Application-Id': appId,
'X-Parse-Session-Token': sess,
},
});
if (user.data && user.data.objectId) {
// get client db from baseDb
try {
const getDbUrl = async orgName => {
try {
const db = await mongoose.createConnection(baseDb, options).asPromise();
const orgAppsModel = db.model('orgApps', orgAppsSchema);
const res = await orgAppsModel.findOne({ appName: orgName });
console.log('dburl ', res.parseServer.databaseURI);
return res.parseServer.databaseURI;
} catch (err) {
console.log('result not found in orgApps ', err);
return 'result not found!';
}
};
const dbUrl = await getDbUrl(organization);
// targetConString = client db
// var targetConString = `mongodb+srv://doadmin:k0Nn4Q8L96vq715s@qik-server-prod-db-5054d37b.mongo.ondigitalocean.com/${dbName}?authSource=admin&replicaSet=qik-server-prod-db&tls=true`;
const targetConString = dbUrl;
async function getAppInfo() {
console.log('getAppInfo ');
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const w_appinfomodel = db.model('w_appinfo', w_appinfoSchema);
const res = await w_appinfomodel.find({});
// console.log('getAppInfo ', res);
if (res.length > 0) {
const ress = JSON.stringify(res);
const result = { count: res.length, appList: ress };
return result;
} else {
const result = { count: res.length, appList: [] };
return result;
}
// console.log(appId);
} catch (err) {
console.log('err in getAppData', err);
}
}
const appInfo = await getAppInfo();
return appInfo;
} catch (err) {
console.log('err ', err);
const res = { error: 'Internal Server err ' };
return res;
}
}
} catch (err) {
return Promise.reject('Invalid session token!');
}
}
@@ -1,418 +0,0 @@
/* --Description :cloud function called to copy app from default db */
//-- Export Modules
import mongoose from 'mongoose';
import { _SCHEMASchema } from '../models/schemaClass.js';
import { _RoleSchema } from '../models/RoleClass.js';
import { _RolejoinSchema } from '../models/RoleJoin.js';
import { _UserjoinSchema } from '../models/UserJoin.js';
import { w_appinfoSchema } from '../models/appInfoclass.js';
import { w_formV3Schema } from '../models/w_formv3class.js';
import { w_menuSchema } from '../models/w_menuclass.js';
import { w_reportSchema } from '../models/w_reportclass.js';
import { DashboardSchema } from '../models/w_dashboardclass.js';
import { DBFunctionSchema } from '../models/DBFunctionClass.js';
import { orgAppsSchema } from '../models/orgApps.js';
import axios from 'axios';
export async function InstallApp(request) {
try {
// console.log("sess ", request)
//--function to get the userid from session token
const sess = request.headers['sessiontoken'];
const serverUrl = process.env.SERVER_URL;
const appId = process.env.APP_ID;
const user = await axios.get(serverUrl + '/users/me', {
headers: {
'X-Parse-Application-Id': appId,
'X-Parse-Session-Token': sess,
},
});
if (user.data && user.data.objectId) {
var originalappname = request.params.appname;
var appname = originalappname + '_';
//externalInstallation should be true for migrate from server2 to server3 data
//externalInstallation should be false for migrate from default db to client db data
const externalInstallation = request.params.externalSrc;
// var chkbaseurl = request.params.baseurl;
// console.log('baseurl ' + chkbaseurl);
var organization = request.params.organization;
// var dbName = request.params.dbName;
var UserId = request.params.UserId;
//--check if value of connection string is blank or variable
if (organization == '') {
return Promise.reject('Error:please provide organization');
}
if (originalappname == '') {
return Promise.reject('Error:please provide appname');
}
const options = { useNewUrlParser: true };
const baseDb = process.env.MONGODB_URI;
// get client db from baseDb
const getDbUrl = async orgName => {
try {
const db = await mongoose.createConnection(baseDb, options).asPromise();
const orgAppsModel = db.model('orgApps', orgAppsSchema);
const res = await orgAppsModel.findOne({ appName: orgName });
console.log('dburl ', res.parseServer.databaseURI);
return res.parseServer.databaseURI;
} catch (err) {
console.log('result not found in getroleanduser ', err);
return 'result not found!';
}
};
const dbUrl = await getDbUrl(organization);
// targetConString = client db
// var targetConString = `mongodb+srv://doadmin:k0Nn4Q8L96vq715s@qik-server-prod-db-5054d37b.mongo.ondigitalocean.com/${dbName}?authSource=admin&replicaSet=qik-server-prod-db&tls=true`;
const targetConString = dbUrl;
// sourceConString = default db
var sourceConString;
if (externalInstallation) {
sourceConString =
'mongodb+srv://doadmin:k0Nn4Q8L96vq715s@qik-server-prod-db-5054d37b.mongo.ondigitalocean.com/heroku_vcjcwn64?authSource=admin&replicaSet=qik-server-prod-db&tls=true';
} else {
sourceConString =
'mongodb+srv://doadmin:k0Nn4Q8L96vq715s@qik-server-prod-db-5054d37b.mongo.ondigitalocean.com/defaultDJIC?authSource=admin&replicaSet=qik-server-prod-db&tls=true';
}
if (targetConString == sourceConString) {
return Promise.reject("Error:Soure and target database server can't be same");
}
const randomId = function (length) {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
const charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
};
const appRoleId = randomId(10);
try {
let Trg_SCHEMASmodel;
let Src_SCHEMASmodel;
let appId;
let defaultRoles;
let Trg__RoleModel;
let msg;
let status;
let trg_w_appinfomodel;
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
trg_w_appinfomodel = db.model('w_appinfo', w_appinfoSchema);
const res = await trg_w_appinfomodel.find({
appname: originalappname,
});
if (res.length > 0) {
msg = 'App is already exists';
status = 137;
} else {
await getAppInfo();
}
} catch (err) {
console.log('err is checking app exists', err);
return Promise.reject('err is checking app exists');
}
// try {
// const db = await mongoose.createConnection(targetConString, options).asPromise();
// Trg_SCHEMASmodel = db.model('_SCHEMA', _SCHEMASchema);
// const res = await Trg_SCHEMASmodel.find({ _id: { $regex: '.*' + appname + '.*' } });
// if (res.length > 0) {
// msg = 'App is already exists';
// status = 137;
// } else {
// await getAppInfo();
// }
// } catch (err) {
// console.log('err is checking app exists', err);
// return Promise.reject('err is checking app exists');
// }
async function getAppInfo() {
console.log('getAppInfo ');
try {
const db = await mongoose.createConnection(sourceConString, options).asPromise();
const w_appinfomodel = db.model('w_appinfo', w_appinfoSchema);
const res = await w_appinfomodel.find({
appname: originalappname,
});
// console.log('getAppInfo ', res);
appId = res[0]['_id'];
const parseRes = JSON.parse(JSON.stringify(res));
if (parseRes[0].settings && parseRes[0].settings.length > 0) {
defaultRoles = parseRes[0].settings.map(x => {
return {
_id: randomId(10),
name: x.role,
_wperm: ['*'],
_rperm: ['*'],
_acl: { '*': { r: true, w: true } },
_created_at: new Date(),
_updated_at: new Date(),
};
});
// console.log('defaultRoles ', defaultRoles);
}
// console.log(appId);
await saveAppInfo(res);
} catch (err) {
console.log('err in getAppData', err);
}
}
async function saveAppInfo(res) {
console.log('saveAppInfo');
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
// trg_w_appinfomodel = db.model('w_appinfo', w_appinfoSchema);
const appInfoRes = await trg_w_appinfomodel.collection.insertMany(res);
// console.log('saveAppInfo ', appInfoRes);
console.log('app info inserted');
await getAppFunctions();
} catch (err) {
console.log('err in saveAppData', err);
}
}
async function getAppFunctions() {
console.log('getAppFunctions');
try {
var appIdpointer = 'w_appinfo$' + appId;
const db = await mongoose.createConnection(sourceConString, options).asPromise();
const DBFunctionModel = db.model('w_DBFunctions', DBFunctionSchema);
const dbFnRes = await DBFunctionModel.find({ _p_appId: appIdpointer });
await saveAppFunctions(dbFnRes);
} catch (err) {
console.log('err is get app function', err);
return Promise.reject('err is get app functions');
}
}
async function saveAppFunctions(res) {
console.log('saveAppFunctions');
if (res.length > 0) {
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const DBFunctionModel = db.model('w_DBFunctions', DBFunctionSchema);
const src_res = await DBFunctionModel.collection.insertMany(res);
console.log('app functions inserted');
} catch (err) {
console.log('err in save app functions', err);
}
}
await getAppDashboard();
}
async function getAppDashboard() {
try {
var appIdpointer = 'w_appinfo$' + appId;
const db = await mongoose.createConnection(sourceConString, options).asPromise();
const w_Dashboardmodel = db.model('w_dashboard', DashboardSchema);
const dashboardRes = await w_Dashboardmodel.find({ _p_appId: appIdpointer });
await saveAppDashboard(dashboardRes);
} catch (err) {
console.log('err is get app dashboards', err);
}
}
async function saveAppDashboard(res) {
if (res.length > 0) {
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const w_Dashboardmodel = db.model('w_dashboard', DashboardSchema);
const src_res = await w_Dashboardmodel.collection.insertMany(res);
console.log('app dashboard inserted');
} catch (err) {
console.log('err in save app dashboards', err);
}
}
await getAppForms();
}
async function getAppForms() {
try {
var appIdpointer = 'w_appinfo$' + appId;
const db = await mongoose.createConnection(sourceConString, options).asPromise();
const w_formV3model = db.model('w_formV3', w_formV3Schema);
const formsRes = await w_formV3model.find({ _p_appId: appIdpointer });
await saveAppForms(formsRes);
} catch (err) {
console.log('err is get app forms', err);
}
}
async function saveAppForms(res) {
if (res.length > 0) {
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const w_formV3model = db.model('w_formV3', w_formV3Schema);
const src_res = await w_formV3model.collection.insertMany(res);
console.log('app forms inserted');
} catch (err) {
console.log('err in save app forms', err);
}
}
await getAppReports();
}
async function getAppReports() {
try {
var appIdpointer = 'w_appinfo$' + appId;
const db = await mongoose.createConnection(sourceConString, options).asPromise();
const w_reportmodel = db.model('w_Filter', w_reportSchema);
const reportsRes = await w_reportmodel.find({ _p_appId: appIdpointer });
await saveAppReports(reportsRes);
} catch (err) {
console.log('err is get app reports', err);
}
}
async function saveAppReports(res) {
if (res.length > 0) {
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const w_reportmodel = db.model('w_Filter', w_reportSchema);
const src_res = await w_reportmodel.collection.insertMany(res);
console.log('app reports inserted');
} catch (err) {
console.log('err in save app reports', err);
}
}
await getAppMenu();
}
async function getAppMenu() {
try {
var appIdpointer = 'w_appinfo$' + appId;
const db = await mongoose.createConnection(sourceConString, options).asPromise();
const w_menumodel = db.model('w_menu', w_menuSchema);
const menuRes = await w_menumodel.find({ _p_appId: appIdpointer });
await saveAppMenu(menuRes);
} catch (err) {
console.log('err is get app menus', err);
}
}
async function saveAppMenu(res) {
if (res.length > 0) {
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const w_menumodel = db.model('w_menu', w_menuSchema);
const src_res = await w_menumodel.collection.insertMany(res);
console.log('app menus inserted');
} catch (err) {
console.log('err in save app menus', err);
}
}
await saveAppRole();
}
async function saveAppRole(res) {
const date = new Date();
const appRole = appname + 'appeditor';
const role = [
{
_id: appRoleId,
name: appRole,
_wperm: [`${UserId}`],
_rperm: ['*', `${UserId}`],
_acl: { UserId: { w: true, r: true }, '*': { r: true } },
_created_at: date,
_updated_at: date,
},
...defaultRoles,
];
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
Trg__RoleModel = db.model('_Role', _RoleSchema);
const src_res = await Trg__RoleModel.collection.insertMany(role);
console.log('app editor role inserted');
await saveJoinAppRole();
} catch (err) {
console.log('err in save app editor role', err);
}
}
async function saveJoinAppRole() {
const OrgRole = organization + '_org';
let OrgRoleId;
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
// const _RoleModel = db.model('_Role', _RoleSchema);
const src_res = await Trg__RoleModel.find({ name: OrgRole });
// console.log('src_res ', src_res);
OrgRoleId = src_res[0]._id;
} catch (err) {
console.log('err in get org Role Id', err);
}
const userJoinRole = [{ owningId: appRoleId, relatedId: UserId }];
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const _UserJoinRolemodel = db.model('_Join:users:_Role', _UserjoinSchema);
const userJoinRes = await _UserJoinRolemodel.collection.insertMany(userJoinRole);
console.log('User Join role inserted');
} catch (err) {
console.log('err in User Join role', err);
}
const roleJoinRole = [{ owningId: OrgRoleId, relatedId: appRoleId }];
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
const _RoleJoinRolemodel = db.model('_Join:roles:_Role', _RolejoinSchema);
const roleJoinRes = await _RoleJoinRolemodel.collection.insertMany(roleJoinRole);
console.log('Role Join role inserted');
await getAppSchemas();
} catch (err) {
console.log('err in Role Join role', err);
}
}
async function getAppSchemas() {
console.log('getAppSchemas');
try {
const db = await mongoose.createConnection(sourceConString, options).asPromise();
Src_SCHEMASmodel = db.model('_SCHEMA', _SCHEMASchema);
const schemaRes = await Src_SCHEMASmodel.find({
_id: { $regex: '.*' + appname + '.*' },
});
await saveAppSchemas(schemaRes);
} catch (err) {
console.log('err in get app schema', err);
}
}
async function saveAppSchemas(res) {
if (res.length > 0) {
console.log('saveAppSchemas');
try {
const db = await mongoose.createConnection(targetConString, options).asPromise();
Trg_SCHEMASmodel = db.model('_SCHEMA', _SCHEMASchema);
const src_res = await Trg_SCHEMASmodel.collection.insertMany(res);
console.log('app schema inserted');
msg = 'app installed successfully';
status = 200;
} catch (err) {
console.log('err in save app schemas', err);
}
}
msg = 'app installed successfully';
status = 200;
}
const message = { message: msg, status: status };
return message;
} catch (err) {
console.log('Exeption in query ', err);
console.log(err);
return 'Error:Exeption in query';
}
}
} catch (err) {
return Promise.reject('Invalid session token!');
}
}
@@ -2,17 +2,11 @@ async function sendMailOTPv1(request) {
try {
//--for elearning app side
let code = Math.floor(1000 + Math.random() * 9000);
let getMessage = code + ' This is your verification code';
let email = request.params.email;
var Hashcode;
var TenantId = request.params.TenantId ? request.params.TenantId : undefined;
// console.log("In tempSendOTPv2");
console.log(JSON.stringify(request));
var encoded = encodeURIComponent(Hashcode);
var otp = '<%23> You OTP is:' + code + ' ' + encoded + ' -QikEln';
otp = otp.toString();
// console.log(JSON.stringify(request));
if (email) {
axios({
@@ -221,7 +221,9 @@ async function PDF(req, res) {
// let PdfBuffer = fs.readFileSync("exports/simple.pdf");
// `P12Buffer` used to create buffer from p12 certificate
const P12Buffer = fs.readFileSync(`pdfFile/emudhra-test-class2.pfx`);
const pfxFile = process.env.PFX_BASE64;
// const P12Buffer = fs.readFileSync();
const P12Buffer = Buffer.from(pfxFile, 'base64');
if (sign) {
// `plainAddPlaceholder` is used to add code of digitial sign in pdf file
@@ -241,10 +243,7 @@ async function PDF(req, res) {
signatureLength: 10000,
});
}
// console.log("PdfBuffer ", PdfBuffer);
// const clientIP = req.headers["x-real-ip"];
// console.log("req.ip", clientIP);
//`new signPDF` create new instance of pdfBuffer and p12Buffer
const OBJ = new SignPDF(PdfBuffer, P12Buffer);
+1 -1
View File
@@ -13,7 +13,7 @@
"lint": "eslint --cache ./cloud && eslint --cache index.js && eslint --cache ./spec",
"lint-fix": "eslint --cache --fix ./cloud && eslint --cache --fix index.js && eslint --cache --fix ./spec",
"prettier": "prettier --write '{cloud,spec}/{**/*,*}.js' 'index.js'",
"start": "ls && node index.js",
"start": "node index.js",
"test": "mongodb-runner start && TESTING=true jasmine",
"watch": "nodemon index.js"
},
Binary file not shown.
Binary file not shown.