mvc-common-toolkit 1.43.10 → 1.44.0
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/src/constants.d.ts +59 -0
- package/dist/src/constants.js +69 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/gateways/alibaba-cloud-gateway.d.ts +30 -0
- package/dist/src/gateways/alibaba-cloud-gateway.js +120 -0
- package/dist/src/gateways/alibaba-cloud-gateway.js.map +1 -0
- package/dist/src/gateways/http-audit-gateway.d.ts +20 -0
- package/dist/src/gateways/http-audit-gateway.js +76 -0
- package/dist/src/gateways/http-audit-gateway.js.map +1 -0
- package/dist/src/gateways/index.d.ts +5 -0
- package/dist/src/gateways/index.js +22 -0
- package/dist/src/gateways/index.js.map +1 -0
- package/dist/src/gateways/internal-auth-gateway.d.ts +8 -0
- package/dist/src/gateways/internal-auth-gateway.js +40 -0
- package/dist/src/gateways/internal-auth-gateway.js.map +1 -0
- package/dist/src/gateways/stdout-audit-gateway.d.ts +7 -0
- package/dist/src/gateways/stdout-audit-gateway.js +25 -0
- package/dist/src/gateways/stdout-audit-gateway.js.map +1 -0
- package/dist/src/gateways/webhook-audit-gateway.d.ts +14 -0
- package/dist/src/gateways/webhook-audit-gateway.js +27 -0
- package/dist/src/gateways/webhook-audit-gateway.js.map +1 -0
- package/dist/src/interfaces.d.ts +218 -0
- package/dist/src/interfaces.js +3 -0
- package/dist/src/interfaces.js.map +1 -0
- package/dist/src/models/audit-log.d.ts +77 -0
- package/dist/src/models/audit-log.js +92 -0
- package/dist/src/models/audit-log.js.map +1 -0
- package/dist/src/models/index.d.ts +1 -0
- package/dist/src/models/index.js +18 -0
- package/dist/src/models/index.js.map +1 -0
- package/dist/src/pkg/array-helper.d.ts +1 -0
- package/dist/src/pkg/array-helper.js +12 -0
- package/dist/src/pkg/array-helper.js.map +1 -0
- package/dist/src/pkg/bcrypt-helper.d.ts +2 -0
- package/dist/src/pkg/bcrypt-helper.js +36 -0
- package/dist/src/pkg/bcrypt-helper.js.map +1 -0
- package/dist/src/pkg/crypto-helper.d.ts +2 -0
- package/dist/src/pkg/crypto-helper.js +16 -0
- package/dist/src/pkg/crypto-helper.js.map +1 -0
- package/dist/src/pkg/encryption-helper.d.ts +18 -0
- package/dist/src/pkg/encryption-helper.js +89 -0
- package/dist/src/pkg/encryption-helper.js.map +1 -0
- package/dist/src/pkg/encryption-helper.spec.d.ts +1 -0
- package/dist/src/pkg/encryption-helper.spec.js +238 -0
- package/dist/src/pkg/encryption-helper.spec.js.map +1 -0
- package/dist/src/pkg/filter-helper.d.ts +2 -0
- package/dist/src/pkg/filter-helper.js +102 -0
- package/dist/src/pkg/filter-helper.js.map +1 -0
- package/dist/src/pkg/filter-helper.spec.d.ts +1 -0
- package/dist/src/pkg/filter-helper.spec.js +94 -0
- package/dist/src/pkg/filter-helper.spec.js.map +1 -0
- package/dist/src/pkg/geoip-helper.d.ts +2 -0
- package/dist/src/pkg/geoip-helper.js +32 -0
- package/dist/src/pkg/geoip-helper.js.map +1 -0
- package/dist/src/pkg/hash-helper.d.ts +1 -0
- package/dist/src/pkg/hash-helper.js +37 -0
- package/dist/src/pkg/hash-helper.js.map +1 -0
- package/dist/src/pkg/http-request-utils.d.ts +4 -0
- package/dist/src/pkg/http-request-utils.js +55 -0
- package/dist/src/pkg/http-request-utils.js.map +1 -0
- package/dist/src/pkg/index.d.ts +19 -0
- package/dist/src/pkg/index.js +46 -0
- package/dist/src/pkg/index.js.map +1 -0
- package/dist/src/pkg/key-helper.d.ts +2 -0
- package/dist/src/pkg/key-helper.js +20 -0
- package/dist/src/pkg/key-helper.js.map +1 -0
- package/dist/src/pkg/logger.d.ts +9 -0
- package/dist/src/pkg/logger.js +23 -0
- package/dist/src/pkg/logger.js.map +1 -0
- package/dist/src/pkg/object-helper.d.ts +2 -0
- package/dist/src/pkg/object-helper.js +37 -0
- package/dist/src/pkg/object-helper.js.map +1 -0
- package/dist/src/pkg/paginated-cache-registry.d.ts +8 -0
- package/dist/src/pkg/paginated-cache-registry.js +23 -0
- package/dist/src/pkg/paginated-cache-registry.js.map +1 -0
- package/dist/src/pkg/query-helper.d.ts +3 -0
- package/dist/src/pkg/query-helper.js +60 -0
- package/dist/src/pkg/query-helper.js.map +1 -0
- package/dist/src/pkg/referral-tree-utils.d.ts +33 -0
- package/dist/src/pkg/referral-tree-utils.js +71 -0
- package/dist/src/pkg/referral-tree-utils.js.map +1 -0
- package/dist/src/pkg/scripts/index.d.ts +1 -0
- package/dist/src/pkg/scripts/index.js +28 -0
- package/dist/src/pkg/scripts/index.js.map +1 -0
- package/dist/src/pkg/scripts/lua.d.ts +10 -0
- package/dist/src/pkg/scripts/lua.js +109 -0
- package/dist/src/pkg/scripts/lua.js.map +1 -0
- package/dist/src/pkg/sort-helper.d.ts +3 -0
- package/dist/src/pkg/sort-helper.js +18 -0
- package/dist/src/pkg/sort-helper.js.map +1 -0
- package/dist/src/pkg/string-utils.d.ts +10 -0
- package/dist/src/pkg/string-utils.js +79 -0
- package/dist/src/pkg/string-utils.js.map +1 -0
- package/dist/src/pkg/task-helper.d.ts +2 -0
- package/dist/src/pkg/task-helper.js +30 -0
- package/dist/src/pkg/task-helper.js.map +1 -0
- package/dist/src/pkg/trading-pair-helper.d.ts +9 -0
- package/dist/src/pkg/trading-pair-helper.js +44 -0
- package/dist/src/pkg/trading-pair-helper.js.map +1 -0
- package/dist/src/pkg/trading-pair-helper.spec.d.ts +1 -0
- package/dist/src/pkg/trading-pair-helper.spec.js +132 -0
- package/dist/src/pkg/trading-pair-helper.spec.js.map +1 -0
- package/dist/src/pkg/workflow/delayed-task-registry.d.ts +10 -0
- package/dist/src/pkg/workflow/delayed-task-registry.js +67 -0
- package/dist/src/pkg/workflow/delayed-task-registry.js.map +1 -0
- package/dist/src/pkg/workflow/delayed-task.d.ts +18 -0
- package/dist/src/pkg/workflow/delayed-task.js +95 -0
- package/dist/src/pkg/workflow/delayed-task.js.map +1 -0
- package/dist/src/pkg/workflow/index.d.ts +5 -0
- package/dist/src/pkg/workflow/index.js +22 -0
- package/dist/src/pkg/workflow/index.js.map +1 -0
- package/dist/src/pkg/workflow/processing-milestone.d.ts +18 -0
- package/dist/src/pkg/workflow/processing-milestone.js +39 -0
- package/dist/src/pkg/workflow/processing-milestone.js.map +1 -0
- package/dist/src/pkg/workflow/retry-task.d.ts +24 -0
- package/dist/src/pkg/workflow/retry-task.js +89 -0
- package/dist/src/pkg/workflow/retry-task.js.map +1 -0
- package/dist/src/pkg/workflow/retry-task.spec.d.ts +1 -0
- package/dist/src/pkg/workflow/retry-task.spec.js +145 -0
- package/dist/src/pkg/workflow/retry-task.spec.js.map +1 -0
- package/dist/src/pkg/workflow/sync-taskqueue.d.ts +32 -0
- package/dist/src/pkg/workflow/sync-taskqueue.js +108 -0
- package/dist/src/pkg/workflow/sync-taskqueue.js.map +1 -0
- package/dist/src/pkg/worksheet.utils.d.ts +27 -0
- package/dist/src/pkg/worksheet.utils.js +116 -0
- package/dist/src/pkg/worksheet.utils.js.map +1 -0
- package/dist/src/services/audit-service.d.ts +7 -0
- package/dist/src/services/audit-service.js +32 -0
- package/dist/src/services/audit-service.js.map +1 -0
- package/dist/src/services/excel.service.d.ts +25 -0
- package/dist/src/services/excel.service.js +95 -0
- package/dist/src/services/excel.service.js.map +1 -0
- package/dist/src/services/http-service.d.ts +7 -0
- package/dist/src/services/http-service.js +67 -0
- package/dist/src/services/http-service.js.map +1 -0
- package/dist/src/services/index.d.ts +8 -0
- package/dist/src/services/index.js +25 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/kafka-service.d.ts +15 -0
- package/dist/src/services/kafka-service.js +68 -0
- package/dist/src/services/kafka-service.js.map +1 -0
- package/dist/src/services/mailer-service.d.ts +15 -0
- package/dist/src/services/mailer-service.js +44 -0
- package/dist/src/services/mailer-service.js.map +1 -0
- package/dist/src/services/paginated-cache.d.ts +16 -0
- package/dist/src/services/paginated-cache.js +115 -0
- package/dist/src/services/paginated-cache.js.map +1 -0
- package/dist/src/services/paginated-cache.spec.d.ts +1 -0
- package/dist/src/services/paginated-cache.spec.js +284 -0
- package/dist/src/services/paginated-cache.spec.js.map +1 -0
- package/dist/src/services/redis-service.d.ts +33 -0
- package/dist/src/services/redis-service.js +230 -0
- package/dist/src/services/redis-service.js.map +1 -0
- package/dist/src/services/security-service.d.ts +11 -0
- package/dist/src/services/security-service.js +68 -0
- package/dist/src/services/security-service.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/constants.ts +66 -0
- package/src/gateways/alibaba-cloud-gateway.ts +127 -0
- package/src/gateways/http-audit-gateway.ts +104 -0
- package/src/gateways/index.ts +5 -0
- package/src/gateways/internal-auth-gateway.ts +42 -0
- package/src/gateways/stdout-audit-gateway.ts +23 -0
- package/src/gateways/webhook-audit-gateway.ts +33 -0
- package/src/interfaces.ts +304 -0
- package/src/models/audit-log.ts +126 -0
- package/src/models/index.ts +1 -0
- package/src/pkg/array-helper.ts +7 -0
- package/src/pkg/bcrypt-helper.ts +9 -0
- package/src/pkg/crypto-helper.ts +18 -0
- package/src/pkg/encryption-helper.spec.ts +423 -0
- package/src/pkg/encryption-helper.ts +155 -0
- package/src/pkg/filter-helper.spec.ts +105 -0
- package/src/pkg/filter-helper.ts +139 -0
- package/src/pkg/geoip-helper.ts +5 -0
- package/src/pkg/hash-helper.ts +12 -0
- package/src/pkg/http-request-utils.ts +75 -0
- package/src/pkg/index.ts +19 -0
- package/src/pkg/key-helper.ts +20 -0
- package/src/pkg/logger.ts +23 -0
- package/src/pkg/object-helper.ts +42 -0
- package/src/pkg/paginated-cache-registry.ts +25 -0
- package/src/pkg/query-helper.ts +79 -0
- package/src/pkg/referral-tree-utils.ts +165 -0
- package/src/pkg/scripts/index.ts +1 -0
- package/src/pkg/scripts/lua.ts +112 -0
- package/src/pkg/sort-helper.ts +19 -0
- package/src/pkg/string-utils.ts +104 -0
- package/src/pkg/task-helper.ts +25 -0
- package/src/pkg/trading-pair-helper.spec.ts +146 -0
- package/src/pkg/trading-pair-helper.ts +78 -0
- package/src/pkg/workflow/delayed-task-registry.ts +54 -0
- package/src/pkg/workflow/delayed-task.ts +106 -0
- package/src/pkg/workflow/index.ts +5 -0
- package/src/pkg/workflow/processing-milestone.ts +54 -0
- package/src/pkg/workflow/retry-task.spec.ts +194 -0
- package/src/pkg/workflow/retry-task.ts +119 -0
- package/src/pkg/workflow/sync-taskqueue.ts +118 -0
- package/src/pkg/worksheet.utils.ts +178 -0
- package/src/services/audit-service.ts +22 -0
- package/src/services/excel.service.ts +103 -0
- package/src/services/http-service.ts +71 -0
- package/src/services/index.ts +8 -0
- package/src/services/kafka-service.ts +81 -0
- package/src/services/mailer-service.ts +43 -0
- package/src/services/paginated-cache.spec.ts +519 -0
- package/src/services/paginated-cache.ts +122 -0
- package/src/services/redis-service.ts +238 -0
- package/src/services/security-service.ts +80 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ExcelService = void 0;
|
|
13
|
+
require("core-js/modules/es.promise");
|
|
14
|
+
require("core-js/modules/es.string.includes");
|
|
15
|
+
require("core-js/modules/es.object.assign");
|
|
16
|
+
require("core-js/modules/es.object.keys");
|
|
17
|
+
require("core-js/modules/es.symbol");
|
|
18
|
+
require("core-js/modules/es.symbol.async-iterator");
|
|
19
|
+
require("regenerator-runtime/runtime");
|
|
20
|
+
const worksheet_utils_1 = require("../pkg/worksheet.utils");
|
|
21
|
+
const Workbook = require("exceljs/dist/es5/doc/workbook.js");
|
|
22
|
+
class ExcelService {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.workSheetMap = new Map();
|
|
25
|
+
}
|
|
26
|
+
loadTemplate(templatePath) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
try {
|
|
29
|
+
if (!templatePath) {
|
|
30
|
+
throw new Error("Missing excel template path");
|
|
31
|
+
}
|
|
32
|
+
const newWorkbook = new Workbook();
|
|
33
|
+
this.workbook = yield newWorkbook.xlsx.readFile(templatePath);
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new Error(`Error loading excel template: ${error.message}`);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
loadFromBuffer(buffer) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
try {
|
|
44
|
+
if (!buffer || !buffer.byteLength) {
|
|
45
|
+
throw new Error("Excel buffer is empty!");
|
|
46
|
+
}
|
|
47
|
+
const newWorkbook = new Workbook();
|
|
48
|
+
this.workbook = yield newWorkbook.xlsx.load(buffer);
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw new Error(`Error loading excel from buffer: ${error.message}`);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
addWorkSheet(workSheetName, options) {
|
|
57
|
+
const newWorksheet = this.workbook.addWorksheet(workSheetName, options);
|
|
58
|
+
const wrappedWorksheet = new worksheet_utils_1.WorksheetUtils(newWorksheet);
|
|
59
|
+
this.workSheetMap.set(workSheetName, wrappedWorksheet);
|
|
60
|
+
return wrappedWorksheet;
|
|
61
|
+
}
|
|
62
|
+
getWorkSheet(workSheetName) {
|
|
63
|
+
const worksheet = this.workbook.getWorksheet(workSheetName);
|
|
64
|
+
if (worksheet) {
|
|
65
|
+
const newWorkSheetUtil = new worksheet_utils_1.WorksheetUtils(worksheet);
|
|
66
|
+
this.workSheetMap.set(workSheetName, newWorkSheetUtil);
|
|
67
|
+
return newWorkSheetUtil;
|
|
68
|
+
}
|
|
69
|
+
return this.addWorkSheet(workSheetName);
|
|
70
|
+
}
|
|
71
|
+
writeToStream(readStream) {
|
|
72
|
+
return this.workbook.xlsx.write(readStream);
|
|
73
|
+
}
|
|
74
|
+
writeToFile(path) {
|
|
75
|
+
return this.workbook.xlsx.writeFile(path);
|
|
76
|
+
}
|
|
77
|
+
write(stream) {
|
|
78
|
+
return this.writeToStream(stream);
|
|
79
|
+
}
|
|
80
|
+
writeToBuffer() {
|
|
81
|
+
return this.workbook.xlsx.writeBuffer();
|
|
82
|
+
}
|
|
83
|
+
removeWorkSheet(worksheet) {
|
|
84
|
+
worksheet.markRemoved();
|
|
85
|
+
return this.workbook.removeWorksheet(worksheet.id);
|
|
86
|
+
}
|
|
87
|
+
throwIfTemplateNotLoaded() {
|
|
88
|
+
if (this.workbook) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
throw new Error("Template not loaded. Please load template.");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.ExcelService = ExcelService;
|
|
95
|
+
//# sourceMappingURL=excel.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"excel.service.js","sourceRoot":"","sources":["../../../src/services/excel.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HttpMethod } from "../constants";
|
|
2
|
+
import { HttpRequestOption, HttpService, Logger, OperationResult } from "../interfaces";
|
|
3
|
+
export declare class AxiosHttpService implements HttpService {
|
|
4
|
+
protected logger: Logger;
|
|
5
|
+
constructor(logger?: Logger);
|
|
6
|
+
send<T = any>(method: HttpMethod, url: string, options?: HttpRequestOption): Promise<OperationResult<T>>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AxiosHttpService = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
const logger_1 = require("../pkg/logger");
|
|
18
|
+
const constants_1 = require("../constants");
|
|
19
|
+
class AxiosHttpService {
|
|
20
|
+
constructor(logger = new logger_1.PinoLogger()) {
|
|
21
|
+
this.logger = logger;
|
|
22
|
+
}
|
|
23
|
+
send(method, url, options = {}) {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
let response;
|
|
27
|
+
try {
|
|
28
|
+
response = yield axios_1.default.request(Object.assign({ method,
|
|
29
|
+
url, headers: options.headers, data: options.body, params: options.query }, options));
|
|
30
|
+
if (response.status >= 400) {
|
|
31
|
+
return {
|
|
32
|
+
success: false,
|
|
33
|
+
httpCode: response.status,
|
|
34
|
+
data: response.data,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
success: true,
|
|
39
|
+
data: response.data,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const errMsg = (error === null || error === void 0 ? void 0 : error.message) ||
|
|
44
|
+
((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message) ||
|
|
45
|
+
"error sending http request";
|
|
46
|
+
const errDetails = ((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.data) ||
|
|
47
|
+
(response === null || response === void 0 ? void 0 : response.data) || { stack: error.stack };
|
|
48
|
+
this.logger.error(errMsg, errDetails);
|
|
49
|
+
if ((error === null || error === void 0 ? void 0 : error.code) && error.code === constants_1.APP_ERROR.HTTP_REQ_TIMEOUT) {
|
|
50
|
+
return {
|
|
51
|
+
success: false,
|
|
52
|
+
code: constants_1.APP_ERROR.HTTP_REQ_TIMEOUT,
|
|
53
|
+
httpCode: 408,
|
|
54
|
+
message: "request timeout",
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
message: error.message,
|
|
60
|
+
data: (response === null || response === void 0 ? void 0 : response.data) || {},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.AxiosHttpService = AxiosHttpService;
|
|
67
|
+
//# sourceMappingURL=http-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-service.js","sourceRoot":"","sources":["../../../src/services/http-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAE1B,0CAA2C;AAC3C,4CAAqD;AAQrD,MAAa,gBAAgB;IAC3B,YAAsB,SAAiB,IAAI,mBAAU,EAAE;QAAjC,WAAM,GAAN,MAAM,CAA2B;IAAG,CAAC;IAE9C,IAAI,CACf,MAAkB,EAClB,GAAW,EACX,UAA6B,EAAE;;;YAE/B,IAAI,QAAa,CAAC;YAElB,IAAI;gBACF,QAAQ,GAAG,MAAM,eAAK,CAAC,OAAO,iBAC5B,MAAM;oBACN,GAAG,EACH,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,MAAM,EAAE,OAAO,CAAC,KAAK,IAClB,OAAO,EACV,CAAC;gBAEH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;oBAC1B,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,QAAQ,CAAC,MAAM;wBACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;qBACpB,CAAC;iBACH;gBAED,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC;aACH;YAAC,OAAO,KAAU,EAAE;gBACnB,MAAM,MAAM,GACV,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO;qBACd,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,CAAA;oBACvB,4BAA4B,CAAC;gBAE/B,MAAM,UAAU,GAAG,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI;qBACrC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAGtC,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,gBAAgB,EAAE;oBAC5D,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,qBAAS,CAAC,gBAAgB;wBAChC,QAAQ,EAAE,GAAG;wBACb,OAAO,EAAE,iBAAiB;qBAC3B,CAAC;iBACH;gBAED,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,EAAE;iBAC3B,CAAC;aACH;;KACF;CACF;AA3DD,4CA2DC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./audit-service";
|
|
2
|
+
export * from "./excel.service";
|
|
3
|
+
export * from "./mailer-service";
|
|
4
|
+
export * from "./kafka-service";
|
|
5
|
+
export * from "./redis-service";
|
|
6
|
+
export * from "./security-service";
|
|
7
|
+
export * from "./http-service";
|
|
8
|
+
export * from "./paginated-cache";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./audit-service"), exports);
|
|
18
|
+
__exportStar(require("./excel.service"), exports);
|
|
19
|
+
__exportStar(require("./mailer-service"), exports);
|
|
20
|
+
__exportStar(require("./kafka-service"), exports);
|
|
21
|
+
__exportStar(require("./redis-service"), exports);
|
|
22
|
+
__exportStar(require("./security-service"), exports);
|
|
23
|
+
__exportStar(require("./http-service"), exports);
|
|
24
|
+
__exportStar(require("./paginated-cache"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,oDAAkC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IMessageQueueService } from "../interfaces";
|
|
2
|
+
import { Consumer, ConsumerConfig, ConsumerSubscribeTopics, Kafka, KafkaConfig, Producer, ProducerConfig, ConsumerRunConfig, ProducerRecord, TopicPartitionOffsetAndMetadata } from "kafkajs";
|
|
3
|
+
export declare class KafkaService implements IMessageQueueService {
|
|
4
|
+
protected _kafka: Kafka;
|
|
5
|
+
protected _producer: Producer;
|
|
6
|
+
protected _consumer: Consumer;
|
|
7
|
+
get producer(): Producer;
|
|
8
|
+
get consumer(): Consumer;
|
|
9
|
+
constructor(config: KafkaConfig);
|
|
10
|
+
initProducer(config?: ProducerConfig): Promise<void>;
|
|
11
|
+
initConsumer(config?: ConsumerConfig): Promise<void>;
|
|
12
|
+
listen(subscribeConfig: ConsumerSubscribeTopics, runConfig: ConsumerRunConfig): Promise<void>;
|
|
13
|
+
publish(record: ProducerRecord): Promise<void>;
|
|
14
|
+
commitOffsets(data: TopicPartitionOffsetAndMetadata[]): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.KafkaService = void 0;
|
|
13
|
+
const kafkajs_1 = require("kafkajs");
|
|
14
|
+
class KafkaService {
|
|
15
|
+
get producer() {
|
|
16
|
+
if (!this._producer) {
|
|
17
|
+
throw new Error("producer not yet init");
|
|
18
|
+
}
|
|
19
|
+
return this._producer;
|
|
20
|
+
}
|
|
21
|
+
get consumer() {
|
|
22
|
+
if (!this._consumer) {
|
|
23
|
+
throw new Error("consumer not yet init");
|
|
24
|
+
}
|
|
25
|
+
return this._consumer;
|
|
26
|
+
}
|
|
27
|
+
constructor(config) {
|
|
28
|
+
this._kafka = new kafkajs_1.Kafka(config);
|
|
29
|
+
}
|
|
30
|
+
initProducer(config) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
if (this._producer) {
|
|
33
|
+
console.warn("producer already initialized");
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this._producer = this._kafka.producer(config);
|
|
37
|
+
yield this._producer.connect();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
initConsumer(config) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
if (this._consumer) {
|
|
43
|
+
console.warn("consumer already initialized");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this._consumer = this._kafka.consumer(config);
|
|
47
|
+
yield this._consumer.connect();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
listen(subscribeConfig, runConfig) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
yield this.consumer.subscribe(subscribeConfig);
|
|
53
|
+
return this.consumer.run(runConfig);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
publish(record) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
this._producer.send(record);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
commitOffsets(data) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
return this.consumer.commitOffsets(data);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.KafkaService = KafkaService;
|
|
68
|
+
//# sourceMappingURL=kafka-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kafka-service.js","sourceRoot":"","sources":["../../../src/services/kafka-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAWiB;AAEjB,MAAa,YAAY;IAMvB,IAAW,QAAQ;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,QAAQ;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAEK,YAAY,CAAC,MAAuB;;YACxC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAE7C,OAAO;aACR;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE9C,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACjC,CAAC;KAAA;IAEK,YAAY,CAAC,MAAuB;;YACxC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAE7C,OAAO;aACR;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE9C,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACjC,CAAC;KAAA;IAEK,MAAM,CACV,eAAwC,EACxC,SAA4B;;YAE5B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAE/C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;KAAA;IAEK,OAAO,CAAC,MAAsB;;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;KAAA;IAEK,aAAa,CAAC,IAAuC;;YACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;KAAA;CACF;AAlED,oCAkEC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EmailSender, SendMailOptions } from "../interfaces";
|
|
2
|
+
export interface MailServiceConfig {
|
|
3
|
+
adminEmails?: string[];
|
|
4
|
+
}
|
|
5
|
+
export declare class MailService {
|
|
6
|
+
protected transporter: EmailSender;
|
|
7
|
+
protected config: MailServiceConfig;
|
|
8
|
+
protected adminEmails: string[];
|
|
9
|
+
constructor(transporter: EmailSender, config: MailServiceConfig);
|
|
10
|
+
sendToAdmin(mailOptions: SendMailOptions): Promise<boolean | void>;
|
|
11
|
+
send(mailOptions: SendMailOptions, ccOptions?: {
|
|
12
|
+
ccToAdmin: boolean;
|
|
13
|
+
bccToAdmin: boolean;
|
|
14
|
+
}): Promise<boolean | void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MailService = void 0;
|
|
13
|
+
class MailService {
|
|
14
|
+
constructor(transporter, config) {
|
|
15
|
+
this.transporter = transporter;
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.adminEmails = (config === null || config === void 0 ? void 0 : config.adminEmails) || [];
|
|
18
|
+
}
|
|
19
|
+
sendToAdmin(mailOptions) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
if (this.adminEmails.length === 0) {
|
|
22
|
+
throw new Error("admin email list is empty");
|
|
23
|
+
}
|
|
24
|
+
mailOptions.to = this.adminEmails;
|
|
25
|
+
return this.send(mailOptions);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
send(mailOptions, ccOptions = { ccToAdmin: false, bccToAdmin: false }) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const message = Object.assign({ from: process.env.SMTP_MAIL_FROM }, mailOptions);
|
|
31
|
+
const { ccToAdmin, bccToAdmin } = ccOptions;
|
|
32
|
+
if (ccToAdmin && this.adminEmails.length > 0)
|
|
33
|
+
message.cc = this.adminEmails;
|
|
34
|
+
if (bccToAdmin && this.adminEmails.length > 0)
|
|
35
|
+
message.bcc = this.adminEmails;
|
|
36
|
+
return this.transporter.send(message).catch((e) => {
|
|
37
|
+
console.error("Send mail error", e);
|
|
38
|
+
return false;
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.MailService = MailService;
|
|
44
|
+
//# sourceMappingURL=mailer-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailer-service.js","sourceRoot":"","sources":["../../../src/services/mailer-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,MAAa,WAAW;IAGtB,YACY,WAAwB,EACxB,MAAyB;QADzB,gBAAW,GAAX,WAAW,CAAa;QACxB,WAAM,GAAN,MAAM,CAAmB;QAEnC,IAAI,CAAC,WAAW,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,KAAI,EAAE,CAAC;IAC/C,CAAC;IAEY,WAAW,CAAC,WAA4B;;YACnD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC9C;YAED,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAElC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;KAAA;IAEY,IAAI,CACf,WAA4B,EAC5B,SAAS,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;;YAEnD,MAAM,OAAO,mBAAK,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAK,WAAW,CAAE,CAAC;YACrE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;YAE5C,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5E,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAC3C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;YAEjC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChD,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AApCD,kCAoCC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CacheService, IPaginatedDataCache, PaginationResult } from "../interfaces";
|
|
2
|
+
export declare class PaginatedDataCache<T = any> implements IPaginatedDataCache<T> {
|
|
3
|
+
protected dataName: string;
|
|
4
|
+
protected cacheService: CacheService;
|
|
5
|
+
constructor(dataName: string, cacheService: CacheService);
|
|
6
|
+
generateCacheKey: (filter?: Record<string, any>, limit?: number, offset?: number) => string;
|
|
7
|
+
getCurrentVersion(): Promise<number>;
|
|
8
|
+
getCachedPaginatedData(filter: Record<string, any>, limit: number, offset: number): Promise<PaginationResult<T>>;
|
|
9
|
+
setCachedPaginatedData(filter: Record<string, any>, limit: number, offset: number, data: PaginationResult<T>, ttlInSecs?: number): Promise<any>;
|
|
10
|
+
_fetchVersionedDataFromCache(cacheKey: string, _overrideVersion?: number): Promise<{
|
|
11
|
+
currentVersion: number;
|
|
12
|
+
data: PaginationResult<T> | null;
|
|
13
|
+
}>;
|
|
14
|
+
protected _setVersionedDataInCache(cacheKey: string, data: PaginationResult<T>, ttl?: number): Promise<any>;
|
|
15
|
+
incrementCacheVersion(ttl?: number): Promise<number>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.PaginatedDataCache = void 0;
|
|
36
|
+
const key_helper_1 = require("../pkg/key-helper");
|
|
37
|
+
const objectHelper = __importStar(require("../pkg/object-helper"));
|
|
38
|
+
const constants_1 = require("../constants");
|
|
39
|
+
const hash_helper_1 = require("../pkg/hash-helper");
|
|
40
|
+
class PaginatedDataCache {
|
|
41
|
+
constructor(dataName, cacheService) {
|
|
42
|
+
this.dataName = dataName;
|
|
43
|
+
this.cacheService = cacheService;
|
|
44
|
+
this.generateCacheKey = (filter = {}, limit = 10, offset = 0) => {
|
|
45
|
+
const filterString = (0, hash_helper_1.generateHashFromJSON)(filter);
|
|
46
|
+
return `paginated-cache:${this.dataName}:version:_version:filter:${filterString}:limit:${limit}:offset:${offset}`;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
getCurrentVersion() {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const result = yield this.cacheService.getNumber((0, key_helper_1.getVersionCacheKeyForKey)(this.generateCacheKey()));
|
|
52
|
+
return result || 0;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
getCachedPaginatedData(filter, limit, offset) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const cacheKey = this.generateCacheKey(filter, limit, offset);
|
|
58
|
+
const { data } = yield this._fetchVersionedDataFromCache(cacheKey);
|
|
59
|
+
return data;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
setCachedPaginatedData(filter, limit, offset, data, ttlInSecs = 60 * 30) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const cacheKey = this.generateCacheKey(filter, limit, offset);
|
|
65
|
+
const currentVersion = yield this.getCurrentVersion();
|
|
66
|
+
if (currentVersion === 0) {
|
|
67
|
+
yield this.incrementCacheVersion(ttlInSecs);
|
|
68
|
+
}
|
|
69
|
+
return this._setVersionedDataInCache(cacheKey, data, ttlInSecs);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
_fetchVersionedDataFromCache(cacheKey, _overrideVersion) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const currentVersion = _overrideVersion !== null && _overrideVersion !== void 0 ? _overrideVersion : (yield this.getCurrentVersion());
|
|
75
|
+
if (currentVersion === 0) {
|
|
76
|
+
return {
|
|
77
|
+
currentVersion: 0,
|
|
78
|
+
data: null,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const versionedCacheKey = (0, key_helper_1.getVersionedCacheKey)(cacheKey, currentVersion);
|
|
82
|
+
const cachedData = yield this.cacheService.get(versionedCacheKey);
|
|
83
|
+
if (cachedData) {
|
|
84
|
+
return {
|
|
85
|
+
currentVersion: currentVersion,
|
|
86
|
+
data: objectHelper.tryParseStringIntoCorrectData(cachedData),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
currentVersion: currentVersion,
|
|
91
|
+
data: null,
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
_setVersionedDataInCache(cacheKey, data, ttl = 60 * 30) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
const currentVersion = yield this.getCurrentVersion();
|
|
98
|
+
const versionedCacheKey = (0, key_helper_1.getVersionedCacheKey)(cacheKey, currentVersion);
|
|
99
|
+
const cacheableData = typeof data === "object" ? JSON.stringify(data) : data;
|
|
100
|
+
return this.cacheService.set(versionedCacheKey, cacheableData, {
|
|
101
|
+
policy: constants_1.SET_CACHE_POLICY.IF_NOT_EXISTS,
|
|
102
|
+
value: ttl,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
incrementCacheVersion(ttl = 60 * 60 * 24) {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
const cacheKey = this.generateCacheKey();
|
|
109
|
+
const versionCacheKey = (0, key_helper_1.getVersionCacheKeyForKey)(cacheKey);
|
|
110
|
+
return this.cacheService.incrBy(versionCacheKey, 1);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.PaginatedDataCache = PaginatedDataCache;
|
|
115
|
+
//# sourceMappingURL=paginated-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginated-cache.js","sourceRoot":"","sources":["../../../src/services/paginated-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|