@kipicore/dbcore 1.1.661 → 1.1.662
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helpers/utils.d.ts +2 -0
- package/dist/helpers/utils.js +46 -4
- package/package.json +3 -1
package/dist/helpers/utils.d.ts
CHANGED
|
@@ -176,4 +176,6 @@ export declare const calculateGrade: (subject: {
|
|
|
176
176
|
obtained: number;
|
|
177
177
|
}) => GRADE;
|
|
178
178
|
export declare const getOverallGrade: (subjects: Subject[]) => GRADE;
|
|
179
|
+
export declare const readEmailTemplate: (templateName: string) => Promise<string>;
|
|
180
|
+
export declare const readEmailTemplateWithOutGlobal: (data: any, templateName?: string) => Promise<string>;
|
|
179
181
|
export {};
|
package/dist/helpers/utils.js
CHANGED
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.getOverallGrade = exports.calculateGrade = exports.getNextLetter = exports.getCityAreas = exports.generateVoucherCode = exports.verifyHmacSHA256 = exports.generateHmacSHA256 = exports.customPagination = exports.fromSnakeCaseToNormalText = exports.normalizeToArray = exports.capitalizeFirst = exports.parseOrderOptions = exports.isValidUUID = exports.removeFalsyValues = exports.flattenNestedStructure = exports.buildNestedStructure = exports.getParentsByChildrenId = exports.getChildrenByParentId = exports.sortArray = exports.groupByFields = exports.endOfDay = exports.generateUuidToNumber = exports.startOfDay = exports.isDateWithinRange = exports.isTimeWithinRange = exports.keyByFieldOrFields = exports.getUniqueArrayByFields = exports.generateTempPassword = exports.generateAlphaNumericCode = exports.generateOtp = exports.ensureDirectoryExists = exports.omit = exports.isValidMongoDbId = exports.pick = void 0;
|
|
39
|
+
exports.readEmailTemplateWithOutGlobal = exports.readEmailTemplate = exports.getOverallGrade = exports.calculateGrade = exports.getNextLetter = exports.getCityAreas = exports.generateVoucherCode = exports.verifyHmacSHA256 = exports.generateHmacSHA256 = exports.customPagination = exports.fromSnakeCaseToNormalText = exports.normalizeToArray = exports.capitalizeFirst = exports.parseOrderOptions = exports.isValidUUID = exports.removeFalsyValues = exports.flattenNestedStructure = exports.buildNestedStructure = exports.getParentsByChildrenId = exports.getChildrenByParentId = exports.sortArray = exports.groupByFields = exports.endOfDay = exports.generateUuidToNumber = exports.startOfDay = exports.isDateWithinRange = exports.isTimeWithinRange = exports.keyByFieldOrFields = exports.getUniqueArrayByFields = exports.generateTempPassword = exports.generateAlphaNumericCode = exports.generateOtp = exports.ensureDirectoryExists = exports.omit = exports.isValidMongoDbId = exports.pick = void 0;
|
|
40
40
|
exports.groupByFieldOrFields = groupByFieldOrFields;
|
|
41
41
|
exports.slugify = slugify;
|
|
42
42
|
exports.assignNonNull = assignNonNull;
|
|
@@ -51,6 +51,8 @@ const uuid = require('uuid');
|
|
|
51
51
|
const crypto_1 = __importDefault(require("crypto"));
|
|
52
52
|
const sequelize_1 = require("sequelize");
|
|
53
53
|
const axios_1 = __importDefault(require("axios"));
|
|
54
|
+
const ejs_1 = __importDefault(require("ejs"));
|
|
55
|
+
const path_1 = __importDefault(require("path"));
|
|
54
56
|
const PASSWORD_REGEX = new RegExp('^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!.@#$%^&*])(?=.{8,})');
|
|
55
57
|
const pick = (objOrArray, keys) => {
|
|
56
58
|
const pickObject = (obj) => keys.reduce((acc, key) => {
|
|
@@ -506,9 +508,10 @@ const parseOrderOptions = (inputOrder, defaultOrder = [['createdAt', 'DESC']]) =
|
|
|
506
508
|
return order;
|
|
507
509
|
};
|
|
508
510
|
exports.parseOrderOptions = parseOrderOptions;
|
|
511
|
+
const configs_1 = require("../configs");
|
|
509
512
|
const capitalizeFirst = (str) => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
510
513
|
exports.capitalizeFirst = capitalizeFirst;
|
|
511
|
-
const normalizeToArray = (value) => value ? (Array.isArray(value) ? value : [value]) : undefined;
|
|
514
|
+
const normalizeToArray = (value) => (value ? (Array.isArray(value) ? value : [value]) : undefined);
|
|
512
515
|
exports.normalizeToArray = normalizeToArray;
|
|
513
516
|
/**
|
|
514
517
|
* Converts a snake_case string to Normal Text
|
|
@@ -541,8 +544,7 @@ function assignNonNull(target, source) {
|
|
|
541
544
|
});
|
|
542
545
|
}
|
|
543
546
|
function isUserSchoolInfoUpdate(institute, reqUser) {
|
|
544
|
-
return
|
|
545
|
-
(reqUser.isAddDetails || reqUser.type === app_1.USER_TYPES.INSTITUTE_MASTER_ADMIN || reqUser.type === app_1.USER_TYPES.INSTITUTE_ADMIN));
|
|
547
|
+
return !!(institute.type || institute.subType) && (reqUser.isAddDetails || reqUser.type === app_1.USER_TYPES.INSTITUTE_MASTER_ADMIN || reqUser.type === app_1.USER_TYPES.INSTITUTE_ADMIN);
|
|
546
548
|
}
|
|
547
549
|
function chunkArray(array, size) {
|
|
548
550
|
const chunks = [];
|
|
@@ -734,3 +736,43 @@ const getOverallGrade = (subjects) => {
|
|
|
734
736
|
return worstGrade;
|
|
735
737
|
};
|
|
736
738
|
exports.getOverallGrade = getOverallGrade;
|
|
739
|
+
const readEmailTemplate = async (templateName) => {
|
|
740
|
+
const globalFilePath = path_1.default.join(process.cwd(), 'emailTemplates', `globalEmailTemplate.ejs`);
|
|
741
|
+
const filePath = path_1.default.join(process.cwd(), 'emailTemplates', `${templateName}.ejs`);
|
|
742
|
+
let globalEmailTemplate = await fs_1.default.readFileSync(globalFilePath, 'utf-8');
|
|
743
|
+
const html = ejs_1.default.render(globalEmailTemplate, {
|
|
744
|
+
data: {
|
|
745
|
+
kipiLogo: `${configs_1.ENV_VARIABLE.SERVER_URL}/public/kipilogo.png`,
|
|
746
|
+
googlePlayLogo: `${configs_1.ENV_VARIABLE.SERVER_URL}/public/googleplaylogo.png`,
|
|
747
|
+
applePlayLogo: `${configs_1.ENV_VARIABLE.SERVER_URL}/public/appleplaylogo.png`,
|
|
748
|
+
},
|
|
749
|
+
});
|
|
750
|
+
globalEmailTemplate = html.replace(/\r\n/g, '');
|
|
751
|
+
return new Promise((resolve, reject) => {
|
|
752
|
+
fs_1.default.readFile(filePath, 'utf-8', (err, content) => {
|
|
753
|
+
if (err) {
|
|
754
|
+
return reject(err);
|
|
755
|
+
}
|
|
756
|
+
resolve(globalEmailTemplate.replace(/{{content}}/g, content));
|
|
757
|
+
});
|
|
758
|
+
});
|
|
759
|
+
};
|
|
760
|
+
exports.readEmailTemplate = readEmailTemplate;
|
|
761
|
+
const readEmailTemplateWithOutGlobal = async (data, templateName) => {
|
|
762
|
+
return new Promise((resolve, reject) => {
|
|
763
|
+
const templatePath = path_1.default.join(process.cwd(), 'emailTemplates', `${templateName || app_1.EMAIL_TEMPLATES.COMMON_TEMPLATE}.ejs`);
|
|
764
|
+
fs_1.default.readFile(templatePath, 'utf-8', (err, templateContent) => {
|
|
765
|
+
if (err) {
|
|
766
|
+
return reject(err);
|
|
767
|
+
}
|
|
768
|
+
const html = ejs_1.default.render(templateContent, {
|
|
769
|
+
logoUrl: data.instituteLogo,
|
|
770
|
+
content: data.content,
|
|
771
|
+
googlePlayLogo: `${process.env.SERVER_URL}/public/googleplaylogo.png`,
|
|
772
|
+
appStoreLogo: `${process.env.SERVER_URL}/public/appleplaylogo.png`,
|
|
773
|
+
});
|
|
774
|
+
resolve(html);
|
|
775
|
+
});
|
|
776
|
+
});
|
|
777
|
+
};
|
|
778
|
+
exports.readEmailTemplateWithOutGlobal = readEmailTemplateWithOutGlobal;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kipicore/dbcore",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.662",
|
|
4
4
|
"description": "Reusable DB core package with Postgres, MongoDB, models, services, interfaces, and types",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -50,12 +50,14 @@
|
|
|
50
50
|
"mongoose": "^8.5.2",
|
|
51
51
|
"pg": "^8.12.0",
|
|
52
52
|
"sequelize": "^6.37.3",
|
|
53
|
+
"ejs": "^3.1.10",
|
|
53
54
|
"uuid": "^8.3.2"
|
|
54
55
|
},
|
|
55
56
|
"devDependencies": {
|
|
56
57
|
"@eslint/js": "^9.17.0",
|
|
57
58
|
"@types/express": "^5.0.6",
|
|
58
59
|
"@types/mongoose": "^5.11.97",
|
|
60
|
+
"@types/ejs": "^3.1.5",
|
|
59
61
|
"@types/node": "^24.5.2",
|
|
60
62
|
"@types/sequelize": "^4.28.14",
|
|
61
63
|
"country-state-city": "^3.2.1",
|