@kipicore/dbcore 1.1.661 → 1.1.663

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.
@@ -736,7 +736,7 @@ export declare enum TO_DO_STATUS {
736
736
  }
737
737
  export declare const SVG_URL_PATH = "public/svg";
738
738
  export declare const UPLOAD_PATH = "public/uploads";
739
- export declare const DEFAULT_INSTITUTED_LOGO = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXqqjmZohb-t9cT5vqbD1HgMUfSA8bzoKdjg&s";
739
+ export declare const DEFAULT_INSTITUTED_LOGO = "https://onedrive.live.com/?cid=cefde4d0e434eb09&id=CEFDE4D0E434EB09!s098525c9825f44dd99aa6490eef93bbe&resid=CEFDE4D0E434EB09!s098525c9825f44dd99aa6490eef93bbe&TeamsCID=20e459d0-866d-445a-ba25-bceae0e0b394&linkOpenTime=1784610141266&wdCid=&migratedtospo=true&redeem=aHR0cHM6Ly8xZHJ2Lm1zL3UvYy9jZWZkZTRkMGU0MzRlYjA5L0lRREpKWVVKWDRMZFJKbXFaSkR1LVR1LUFhM2loYjBWdHRIYXM5NFdlRlhIVXpzP1RlYW1zQ0lEPTIwZTQ1OWQwLTg2NmQtNDQ1YS1iYTI1LWJjZWFlMGUwYjM5NCZsaW5rT3BlblRpbWU9MTc4NDYxMDE0MTI2Ng";
740
740
  export declare const DEFAULT_USER_LOGO = "https://cdn-icons-png.flaticon.com/512/3135/3135715.png";
741
741
  export declare const API_URL: string;
742
742
  export declare const GOOGLE_AUTH: {
@@ -886,7 +886,7 @@ var TO_DO_STATUS;
886
886
  })(TO_DO_STATUS || (exports.TO_DO_STATUS = TO_DO_STATUS = {}));
887
887
  exports.SVG_URL_PATH = 'public/svg';
888
888
  exports.UPLOAD_PATH = 'public/uploads';
889
- exports.DEFAULT_INSTITUTED_LOGO = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRXqqjmZohb-t9cT5vqbD1HgMUfSA8bzoKdjg&s';
889
+ exports.DEFAULT_INSTITUTED_LOGO = 'https://onedrive.live.com/?cid=cefde4d0e434eb09&id=CEFDE4D0E434EB09!s098525c9825f44dd99aa6490eef93bbe&resid=CEFDE4D0E434EB09!s098525c9825f44dd99aa6490eef93bbe&TeamsCID=20e459d0-866d-445a-ba25-bceae0e0b394&linkOpenTime=1784610141266&wdCid=&migratedtospo=true&redeem=aHR0cHM6Ly8xZHJ2Lm1zL3UvYy9jZWZkZTRkMGU0MzRlYjA5L0lRREpKWVVKWDRMZFJKbXFaSkR1LVR1LUFhM2loYjBWdHRIYXM5NFdlRlhIVXpzP1RlYW1zQ0lEPTIwZTQ1OWQwLTg2NmQtNDQ1YS1iYTI1LWJjZWFlMGUwYjM5NCZsaW5rT3BlblRpbWU9MTc4NDYxMDE0MTI2Ng';
890
890
  exports.DEFAULT_USER_LOGO = 'https://cdn-icons-png.flaticon.com/512/3135/3135715.png';
891
891
  exports.API_URL = env_1.ENV_VARIABLE.SERVER_URL + '/api/v1';
892
892
  exports.GOOGLE_AUTH = {
@@ -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 {};
@@ -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 (!!(institute.type || institute.subType) &&
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.661",
3
+ "version": "1.1.663",
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",