@xbg.solutions/backend-core 1.0.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/lib/core/src/app.d.ts +28 -0
- package/lib/core/src/app.d.ts.map +1 -0
- package/lib/core/src/app.js +188 -0
- package/lib/core/src/app.js.map +1 -0
- package/lib/core/src/base/BaseController.d.ts +108 -0
- package/lib/core/src/base/BaseController.d.ts.map +1 -0
- package/lib/core/src/base/BaseController.js +307 -0
- package/lib/core/src/base/BaseController.js.map +1 -0
- package/lib/core/src/base/BaseEntity.d.ts +92 -0
- package/lib/core/src/base/BaseEntity.d.ts.map +1 -0
- package/lib/core/src/base/BaseEntity.js +143 -0
- package/lib/core/src/base/BaseEntity.js.map +1 -0
- package/lib/core/src/base/BaseRepository.d.ts +124 -0
- package/lib/core/src/base/BaseRepository.d.ts.map +1 -0
- package/lib/core/src/base/BaseRepository.js +414 -0
- package/lib/core/src/base/BaseRepository.js.map +1 -0
- package/lib/core/src/base/BaseService.d.ts +89 -0
- package/lib/core/src/base/BaseService.d.ts.map +1 -0
- package/lib/core/src/base/BaseService.js +342 -0
- package/lib/core/src/base/BaseService.js.map +1 -0
- package/lib/core/src/base/index.d.ts +8 -0
- package/lib/core/src/base/index.d.ts.map +1 -0
- package/lib/core/src/base/index.js +24 -0
- package/lib/core/src/base/index.js.map +1 -0
- package/lib/core/src/config/app.config.d.ts +70 -0
- package/lib/core/src/config/app.config.d.ts.map +1 -0
- package/lib/core/src/config/app.config.js +106 -0
- package/lib/core/src/config/app.config.js.map +1 -0
- package/lib/core/src/config/auth.config.d.ts +54 -0
- package/lib/core/src/config/auth.config.d.ts.map +1 -0
- package/lib/core/src/config/auth.config.js +88 -0
- package/lib/core/src/config/auth.config.js.map +1 -0
- package/lib/core/src/config/cache.config.d.ts +47 -0
- package/lib/core/src/config/cache.config.d.ts.map +1 -0
- package/lib/core/src/config/cache.config.js +225 -0
- package/lib/core/src/config/cache.config.js.map +1 -0
- package/lib/core/src/config/communications.config.d.ts +175 -0
- package/lib/core/src/config/communications.config.d.ts.map +1 -0
- package/lib/core/src/config/communications.config.js +219 -0
- package/lib/core/src/config/communications.config.js.map +1 -0
- package/lib/core/src/config/database.config.d.ts +68 -0
- package/lib/core/src/config/database.config.d.ts.map +1 -0
- package/lib/core/src/config/database.config.js +95 -0
- package/lib/core/src/config/database.config.js.map +1 -0
- package/lib/core/src/config/firebase-event-mapping.config.d.ts +41 -0
- package/lib/core/src/config/firebase-event-mapping.config.d.ts.map +1 -0
- package/lib/core/src/config/firebase-event-mapping.config.js +180 -0
- package/lib/core/src/config/firebase-event-mapping.config.js.map +1 -0
- package/lib/core/src/config/firestore.config.d.ts +61 -0
- package/lib/core/src/config/firestore.config.d.ts.map +1 -0
- package/lib/core/src/config/firestore.config.js +74 -0
- package/lib/core/src/config/firestore.config.js.map +1 -0
- package/lib/core/src/config/index.d.ts +15 -0
- package/lib/core/src/config/index.d.ts.map +1 -0
- package/lib/core/src/config/index.js +41 -0
- package/lib/core/src/config/index.js.map +1 -0
- package/lib/core/src/config/maps.config.d.ts +31 -0
- package/lib/core/src/config/maps.config.d.ts.map +1 -0
- package/lib/core/src/config/maps.config.js +50 -0
- package/lib/core/src/config/maps.config.js.map +1 -0
- package/lib/core/src/config/middleware.config.d.ts +57 -0
- package/lib/core/src/config/middleware.config.d.ts.map +1 -0
- package/lib/core/src/config/middleware.config.js +68 -0
- package/lib/core/src/config/middleware.config.js.map +1 -0
- package/lib/core/src/config/tokens.config.d.ts +53 -0
- package/lib/core/src/config/tokens.config.d.ts.map +1 -0
- package/lib/core/src/config/tokens.config.js +129 -0
- package/lib/core/src/config/tokens.config.js.map +1 -0
- package/lib/core/src/generator/generator.d.ts +38 -0
- package/lib/core/src/generator/generator.d.ts.map +1 -0
- package/lib/core/src/generator/generator.js +159 -0
- package/lib/core/src/generator/generator.js.map +1 -0
- package/lib/core/src/generator/index.d.ts +7 -0
- package/lib/core/src/generator/index.d.ts.map +1 -0
- package/lib/core/src/generator/index.js +23 -0
- package/lib/core/src/generator/index.js.map +1 -0
- package/lib/core/src/generator/parser.d.ts +10 -0
- package/lib/core/src/generator/parser.d.ts.map +1 -0
- package/lib/core/src/generator/parser.js +197 -0
- package/lib/core/src/generator/parser.js.map +1 -0
- package/lib/core/src/generator/types.d.ts +112 -0
- package/lib/core/src/generator/types.d.ts.map +1 -0
- package/lib/core/src/generator/types.js +7 -0
- package/lib/core/src/generator/types.js.map +1 -0
- package/lib/core/src/index.d.ts +19 -0
- package/lib/core/src/index.d.ts.map +1 -0
- package/lib/core/src/index.js +46 -0
- package/lib/core/src/index.js.map +1 -0
- package/lib/core/src/middleware/auth.middleware.d.ts +57 -0
- package/lib/core/src/middleware/auth.middleware.d.ts.map +1 -0
- package/lib/core/src/middleware/auth.middleware.js +256 -0
- package/lib/core/src/middleware/auth.middleware.js.map +1 -0
- package/lib/core/src/middleware/cors.middleware.d.ts +13 -0
- package/lib/core/src/middleware/cors.middleware.d.ts.map +1 -0
- package/lib/core/src/middleware/cors.middleware.js +50 -0
- package/lib/core/src/middleware/cors.middleware.js.map +1 -0
- package/lib/core/src/middleware/error.middleware.d.ts +46 -0
- package/lib/core/src/middleware/error.middleware.d.ts.map +1 -0
- package/lib/core/src/middleware/error.middleware.js +174 -0
- package/lib/core/src/middleware/error.middleware.js.map +1 -0
- package/lib/core/src/middleware/index.d.ts +11 -0
- package/lib/core/src/middleware/index.d.ts.map +1 -0
- package/lib/core/src/middleware/index.js +27 -0
- package/lib/core/src/middleware/index.js.map +1 -0
- package/lib/core/src/middleware/logging.middleware.d.ts +10 -0
- package/lib/core/src/middleware/logging.middleware.d.ts.map +1 -0
- package/lib/core/src/middleware/logging.middleware.js +87 -0
- package/lib/core/src/middleware/logging.middleware.js.map +1 -0
- package/lib/core/src/middleware/rateLimit.middleware.d.ts +26 -0
- package/lib/core/src/middleware/rateLimit.middleware.d.ts.map +1 -0
- package/lib/core/src/middleware/rateLimit.middleware.js +105 -0
- package/lib/core/src/middleware/rateLimit.middleware.js.map +1 -0
- package/lib/core/src/middleware/requestId.middleware.d.ts +11 -0
- package/lib/core/src/middleware/requestId.middleware.d.ts.map +1 -0
- package/lib/core/src/middleware/requestId.middleware.js +26 -0
- package/lib/core/src/middleware/requestId.middleware.js.map +1 -0
- package/lib/core/src/middleware/validation.middleware.d.ts +25 -0
- package/lib/core/src/middleware/validation.middleware.d.ts.map +1 -0
- package/lib/core/src/middleware/validation.middleware.js +133 -0
- package/lib/core/src/middleware/validation.middleware.js.map +1 -0
- package/lib/core/src/types/errors.d.ts +119 -0
- package/lib/core/src/types/errors.d.ts.map +1 -0
- package/lib/core/src/types/errors.js +210 -0
- package/lib/core/src/types/errors.js.map +1 -0
- package/lib/utils-cache-connector/src/cache-connector.d.ts +139 -0
- package/lib/utils-cache-connector/src/cache-connector.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/cache-connector.js +277 -0
- package/lib/utils-cache-connector/src/cache-connector.js.map +1 -0
- package/lib/utils-cache-connector/src/index.d.ts +52 -0
- package/lib/utils-cache-connector/src/index.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/index.js +103 -0
- package/lib/utils-cache-connector/src/index.js.map +1 -0
- package/lib/utils-cache-connector/src/providers/base-cache-provider.d.ts +95 -0
- package/lib/utils-cache-connector/src/providers/base-cache-provider.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/providers/base-cache-provider.js +120 -0
- package/lib/utils-cache-connector/src/providers/base-cache-provider.js.map +1 -0
- package/lib/utils-cache-connector/src/providers/firestore-cache-provider.d.ts +58 -0
- package/lib/utils-cache-connector/src/providers/firestore-cache-provider.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/providers/firestore-cache-provider.js +418 -0
- package/lib/utils-cache-connector/src/providers/firestore-cache-provider.js.map +1 -0
- package/lib/utils-cache-connector/src/providers/memory-cache-provider.d.ts +57 -0
- package/lib/utils-cache-connector/src/providers/memory-cache-provider.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/providers/memory-cache-provider.js +217 -0
- package/lib/utils-cache-connector/src/providers/memory-cache-provider.js.map +1 -0
- package/lib/utils-cache-connector/src/providers/noop-cache-provider.d.ts +21 -0
- package/lib/utils-cache-connector/src/providers/noop-cache-provider.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/providers/noop-cache-provider.js +42 -0
- package/lib/utils-cache-connector/src/providers/noop-cache-provider.js.map +1 -0
- package/lib/utils-cache-connector/src/providers/redis-cache-provider.d.ts +64 -0
- package/lib/utils-cache-connector/src/providers/redis-cache-provider.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/providers/redis-cache-provider.js +414 -0
- package/lib/utils-cache-connector/src/providers/redis-cache-provider.js.map +1 -0
- package/lib/utils-cache-connector/src/types.d.ts +342 -0
- package/lib/utils-cache-connector/src/types.d.ts.map +1 -0
- package/lib/utils-cache-connector/src/types.js +8 -0
- package/lib/utils-cache-connector/src/types.js.map +1 -0
- package/lib/utils-events/src/event-bus.d.ts +42 -0
- package/lib/utils-events/src/event-bus.d.ts.map +1 -0
- package/lib/utils-events/src/event-bus.js +93 -0
- package/lib/utils-events/src/event-bus.js.map +1 -0
- package/lib/utils-events/src/event-types.d.ts +146 -0
- package/lib/utils-events/src/event-types.d.ts.map +1 -0
- package/lib/utils-events/src/event-types.js +49 -0
- package/lib/utils-events/src/event-types.js.map +1 -0
- package/lib/utils-events/src/index.d.ts +7 -0
- package/lib/utils-events/src/index.d.ts.map +1 -0
- package/lib/utils-events/src/index.js +11 -0
- package/lib/utils-events/src/index.js.map +1 -0
- package/lib/utils-logger/src/index.d.ts +12 -0
- package/lib/utils-logger/src/index.d.ts.map +1 -0
- package/lib/utils-logger/src/index.js +29 -0
- package/lib/utils-logger/src/index.js.map +1 -0
- package/lib/utils-logger/src/logger-types.d.ts +32 -0
- package/lib/utils-logger/src/logger-types.d.ts.map +1 -0
- package/lib/utils-logger/src/logger-types.js +17 -0
- package/lib/utils-logger/src/logger-types.js.map +1 -0
- package/lib/utils-logger/src/logger.d.ts +42 -0
- package/lib/utils-logger/src/logger.d.ts.map +1 -0
- package/lib/utils-logger/src/logger.js +123 -0
- package/lib/utils-logger/src/logger.js.map +1 -0
- package/package.json +49 -0
- package/src/templates/controller.hbs +48 -0
- package/src/templates/entity.hbs +80 -0
- package/src/templates/repository.hbs +56 -0
- package/src/templates/service.hbs +108 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Validation Middleware
|
|
4
|
+
* Input validation and sanitization
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validate = validate;
|
|
8
|
+
exports.sanitizeBody = sanitizeBody;
|
|
9
|
+
exports.validatePagination = validatePagination;
|
|
10
|
+
exports.validateUUID = validateUUID;
|
|
11
|
+
const express_validator_1 = require("express-validator");
|
|
12
|
+
const utils_logger_1 = require("@xbg/utils-logger");
|
|
13
|
+
/**
|
|
14
|
+
* Validation middleware factory
|
|
15
|
+
* Runs express-validator chains and returns errors
|
|
16
|
+
*/
|
|
17
|
+
function validate(validations) {
|
|
18
|
+
return async (req, res, next) => {
|
|
19
|
+
// Run all validations
|
|
20
|
+
await Promise.all(validations.map((validation) => validation.run(req)));
|
|
21
|
+
// Check for errors
|
|
22
|
+
const errors = (0, express_validator_1.validationResult)(req);
|
|
23
|
+
if (!errors.isEmpty()) {
|
|
24
|
+
utils_logger_1.logger.warn('Validation failed', {
|
|
25
|
+
path: req.path,
|
|
26
|
+
errors: errors.array(),
|
|
27
|
+
});
|
|
28
|
+
return res.status(400).json({
|
|
29
|
+
success: false,
|
|
30
|
+
error: {
|
|
31
|
+
code: 'VALIDATION_ERROR',
|
|
32
|
+
message: 'Input validation failed',
|
|
33
|
+
details: errors.array().map((error) => ({
|
|
34
|
+
field: error.type === 'field' ? error.path : undefined,
|
|
35
|
+
message: error.msg,
|
|
36
|
+
})),
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return next();
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Sanitize request body
|
|
45
|
+
* Remove potentially dangerous characters
|
|
46
|
+
*/
|
|
47
|
+
function sanitizeBody() {
|
|
48
|
+
return (req, _res, next) => {
|
|
49
|
+
if (req.body && typeof req.body === 'object') {
|
|
50
|
+
req.body = sanitizeObject(req.body);
|
|
51
|
+
}
|
|
52
|
+
return next();
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Recursively sanitize object
|
|
57
|
+
*/
|
|
58
|
+
function sanitizeObject(obj) {
|
|
59
|
+
if (Array.isArray(obj)) {
|
|
60
|
+
return obj.map(sanitizeObject);
|
|
61
|
+
}
|
|
62
|
+
if (obj !== null && typeof obj === 'object') {
|
|
63
|
+
const sanitized = {};
|
|
64
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
65
|
+
sanitized[key] = sanitizeObject(value);
|
|
66
|
+
}
|
|
67
|
+
return sanitized;
|
|
68
|
+
}
|
|
69
|
+
if (typeof obj === 'string') {
|
|
70
|
+
return sanitizeString(obj);
|
|
71
|
+
}
|
|
72
|
+
return obj;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Sanitize string value
|
|
76
|
+
*/
|
|
77
|
+
function sanitizeString(str) {
|
|
78
|
+
// Remove null bytes
|
|
79
|
+
str = str.replace(/\0/g, '');
|
|
80
|
+
return str.trim();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Validate pagination parameters
|
|
84
|
+
*/
|
|
85
|
+
function validatePagination() {
|
|
86
|
+
return (req, res, next) => {
|
|
87
|
+
if (req.query.page) {
|
|
88
|
+
const page = parseInt(req.query.page);
|
|
89
|
+
if (isNaN(page) || page < 1) {
|
|
90
|
+
return res.status(400).json({
|
|
91
|
+
success: false,
|
|
92
|
+
error: {
|
|
93
|
+
code: 'INVALID_PARAMETER',
|
|
94
|
+
message: 'Page must be a positive integer',
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (req.query.pageSize) {
|
|
100
|
+
const pageSize = parseInt(req.query.pageSize);
|
|
101
|
+
if (isNaN(pageSize) || pageSize < 1 || pageSize > 100) {
|
|
102
|
+
return res.status(400).json({
|
|
103
|
+
success: false,
|
|
104
|
+
error: {
|
|
105
|
+
code: 'INVALID_PARAMETER',
|
|
106
|
+
message: 'Page size must be between 1 and 100',
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return next();
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Validate UUID parameter
|
|
116
|
+
*/
|
|
117
|
+
function validateUUID(paramName = 'id') {
|
|
118
|
+
const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
119
|
+
return (req, res, next) => {
|
|
120
|
+
const id = req.params[paramName];
|
|
121
|
+
if (!id || !uuidRegex.test(id)) {
|
|
122
|
+
return res.status(400).json({
|
|
123
|
+
success: false,
|
|
124
|
+
error: {
|
|
125
|
+
code: 'INVALID_PARAMETER',
|
|
126
|
+
message: `Invalid ${paramName} format`,
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
return next();
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=validation.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.middleware.js","sourceRoot":"","sources":["../../../../src/middleware/validation.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error classes for adding metadata to errors
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base error class with requestId
|
|
6
|
+
*/
|
|
7
|
+
export declare class RequestError extends Error {
|
|
8
|
+
requestId?: string;
|
|
9
|
+
error?: any;
|
|
10
|
+
constructor(message: string, requestId?: string, originalError?: any);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Repository error with collection metadata
|
|
14
|
+
*/
|
|
15
|
+
export declare class RepositoryError extends Error {
|
|
16
|
+
collection?: string;
|
|
17
|
+
constructor(message: string, collection?: string);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Service error with requestId metadata
|
|
21
|
+
*/
|
|
22
|
+
export declare class ServiceError extends Error {
|
|
23
|
+
requestId?: string;
|
|
24
|
+
constructor(message: string, requestId?: string);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Authentication error with error metadata
|
|
28
|
+
*/
|
|
29
|
+
export declare class AuthError extends Error {
|
|
30
|
+
error?: any;
|
|
31
|
+
constructor(message: string, originalError?: any);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Survey connector error with surveyId metadata
|
|
35
|
+
*/
|
|
36
|
+
export declare class SurveyError extends Error {
|
|
37
|
+
surveyId?: string;
|
|
38
|
+
responseId?: string;
|
|
39
|
+
error?: any;
|
|
40
|
+
constructor(message: string, metadata?: {
|
|
41
|
+
surveyId?: string;
|
|
42
|
+
responseId?: string;
|
|
43
|
+
error?: any;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Work management connector error with taskId/articleId metadata
|
|
48
|
+
*/
|
|
49
|
+
export declare class WorkMgmtError extends Error {
|
|
50
|
+
taskId?: string;
|
|
51
|
+
articleId?: string;
|
|
52
|
+
error?: any;
|
|
53
|
+
constructor(message: string, metadata?: {
|
|
54
|
+
taskId?: string;
|
|
55
|
+
articleId?: string;
|
|
56
|
+
error?: any;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Communication subscriber error with event metadata
|
|
61
|
+
*/
|
|
62
|
+
export declare class CommunicationError extends Error {
|
|
63
|
+
eventType?: string;
|
|
64
|
+
error?: any;
|
|
65
|
+
constructor(message: string, metadata?: {
|
|
66
|
+
eventType?: string;
|
|
67
|
+
error?: any;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* CRM connector error with error metadata
|
|
72
|
+
*/
|
|
73
|
+
export declare class CRMError extends Error {
|
|
74
|
+
error?: any;
|
|
75
|
+
constructor(message: string, originalError?: any);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Analytics connector error with error metadata
|
|
79
|
+
*/
|
|
80
|
+
export declare class AnalyticsError extends Error {
|
|
81
|
+
error?: any;
|
|
82
|
+
constructor(message: string, originalError?: any);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Email connector error with error metadata
|
|
86
|
+
*/
|
|
87
|
+
export declare class EmailError extends Error {
|
|
88
|
+
error?: any;
|
|
89
|
+
constructor(message: string, originalError?: any);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Payment connector error with error metadata
|
|
93
|
+
*/
|
|
94
|
+
export declare class PaymentError extends Error {
|
|
95
|
+
error?: any;
|
|
96
|
+
constructor(message: string, originalError?: any);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Search connector error with error metadata
|
|
100
|
+
*/
|
|
101
|
+
export declare class SearchError extends Error {
|
|
102
|
+
error?: any;
|
|
103
|
+
constructor(message: string, originalError?: any);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* SMS connector error with error metadata
|
|
107
|
+
*/
|
|
108
|
+
export declare class SMSError extends Error {
|
|
109
|
+
error?: any;
|
|
110
|
+
constructor(message: string, originalError?: any);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Storage connector error with error metadata
|
|
114
|
+
*/
|
|
115
|
+
export declare class StorageError extends Error {
|
|
116
|
+
error?: any;
|
|
117
|
+
constructor(message: string, originalError?: any);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/types/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Custom error classes for adding metadata to errors
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.StorageError = exports.SMSError = exports.SearchError = exports.PaymentError = exports.EmailError = exports.AnalyticsError = exports.CRMError = exports.CommunicationError = exports.WorkMgmtError = exports.SurveyError = exports.AuthError = exports.ServiceError = exports.RepositoryError = exports.RequestError = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Base error class with requestId
|
|
9
|
+
*/
|
|
10
|
+
class RequestError extends Error {
|
|
11
|
+
constructor(message, requestId, originalError) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = 'RequestError';
|
|
14
|
+
this.requestId = requestId;
|
|
15
|
+
this.error = originalError;
|
|
16
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
17
|
+
if (Error.captureStackTrace) {
|
|
18
|
+
Error.captureStackTrace(this, RequestError);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.RequestError = RequestError;
|
|
23
|
+
/**
|
|
24
|
+
* Repository error with collection metadata
|
|
25
|
+
*/
|
|
26
|
+
class RepositoryError extends Error {
|
|
27
|
+
constructor(message, collection) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = 'RepositoryError';
|
|
30
|
+
this.collection = collection;
|
|
31
|
+
if (Error.captureStackTrace) {
|
|
32
|
+
Error.captureStackTrace(this, RepositoryError);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.RepositoryError = RepositoryError;
|
|
37
|
+
/**
|
|
38
|
+
* Service error with requestId metadata
|
|
39
|
+
*/
|
|
40
|
+
class ServiceError extends Error {
|
|
41
|
+
constructor(message, requestId) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = 'ServiceError';
|
|
44
|
+
this.requestId = requestId;
|
|
45
|
+
if (Error.captureStackTrace) {
|
|
46
|
+
Error.captureStackTrace(this, ServiceError);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.ServiceError = ServiceError;
|
|
51
|
+
/**
|
|
52
|
+
* Authentication error with error metadata
|
|
53
|
+
*/
|
|
54
|
+
class AuthError extends Error {
|
|
55
|
+
constructor(message, originalError) {
|
|
56
|
+
super(message);
|
|
57
|
+
this.name = 'AuthError';
|
|
58
|
+
this.error = originalError;
|
|
59
|
+
if (Error.captureStackTrace) {
|
|
60
|
+
Error.captureStackTrace(this, AuthError);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.AuthError = AuthError;
|
|
65
|
+
/**
|
|
66
|
+
* Survey connector error with surveyId metadata
|
|
67
|
+
*/
|
|
68
|
+
class SurveyError extends Error {
|
|
69
|
+
constructor(message, metadata) {
|
|
70
|
+
super(message);
|
|
71
|
+
this.name = 'SurveyError';
|
|
72
|
+
this.surveyId = metadata === null || metadata === void 0 ? void 0 : metadata.surveyId;
|
|
73
|
+
this.responseId = metadata === null || metadata === void 0 ? void 0 : metadata.responseId;
|
|
74
|
+
this.error = metadata === null || metadata === void 0 ? void 0 : metadata.error;
|
|
75
|
+
if (Error.captureStackTrace) {
|
|
76
|
+
Error.captureStackTrace(this, SurveyError);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.SurveyError = SurveyError;
|
|
81
|
+
/**
|
|
82
|
+
* Work management connector error with taskId/articleId metadata
|
|
83
|
+
*/
|
|
84
|
+
class WorkMgmtError extends Error {
|
|
85
|
+
constructor(message, metadata) {
|
|
86
|
+
super(message);
|
|
87
|
+
this.name = 'WorkMgmtError';
|
|
88
|
+
this.taskId = metadata === null || metadata === void 0 ? void 0 : metadata.taskId;
|
|
89
|
+
this.articleId = metadata === null || metadata === void 0 ? void 0 : metadata.articleId;
|
|
90
|
+
this.error = metadata === null || metadata === void 0 ? void 0 : metadata.error;
|
|
91
|
+
if (Error.captureStackTrace) {
|
|
92
|
+
Error.captureStackTrace(this, WorkMgmtError);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.WorkMgmtError = WorkMgmtError;
|
|
97
|
+
/**
|
|
98
|
+
* Communication subscriber error with event metadata
|
|
99
|
+
*/
|
|
100
|
+
class CommunicationError extends Error {
|
|
101
|
+
constructor(message, metadata) {
|
|
102
|
+
super(message);
|
|
103
|
+
this.name = 'CommunicationError';
|
|
104
|
+
this.eventType = metadata === null || metadata === void 0 ? void 0 : metadata.eventType;
|
|
105
|
+
this.error = metadata === null || metadata === void 0 ? void 0 : metadata.error;
|
|
106
|
+
if (Error.captureStackTrace) {
|
|
107
|
+
Error.captureStackTrace(this, CommunicationError);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.CommunicationError = CommunicationError;
|
|
112
|
+
/**
|
|
113
|
+
* CRM connector error with error metadata
|
|
114
|
+
*/
|
|
115
|
+
class CRMError extends Error {
|
|
116
|
+
constructor(message, originalError) {
|
|
117
|
+
super(message);
|
|
118
|
+
this.name = 'CRMError';
|
|
119
|
+
this.error = originalError;
|
|
120
|
+
if (Error.captureStackTrace) {
|
|
121
|
+
Error.captureStackTrace(this, CRMError);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.CRMError = CRMError;
|
|
126
|
+
/**
|
|
127
|
+
* Analytics connector error with error metadata
|
|
128
|
+
*/
|
|
129
|
+
class AnalyticsError extends Error {
|
|
130
|
+
constructor(message, originalError) {
|
|
131
|
+
super(message);
|
|
132
|
+
this.name = 'AnalyticsError';
|
|
133
|
+
this.error = originalError;
|
|
134
|
+
if (Error.captureStackTrace) {
|
|
135
|
+
Error.captureStackTrace(this, AnalyticsError);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.AnalyticsError = AnalyticsError;
|
|
140
|
+
/**
|
|
141
|
+
* Email connector error with error metadata
|
|
142
|
+
*/
|
|
143
|
+
class EmailError extends Error {
|
|
144
|
+
constructor(message, originalError) {
|
|
145
|
+
super(message);
|
|
146
|
+
this.name = 'EmailError';
|
|
147
|
+
this.error = originalError;
|
|
148
|
+
if (Error.captureStackTrace) {
|
|
149
|
+
Error.captureStackTrace(this, EmailError);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.EmailError = EmailError;
|
|
154
|
+
/**
|
|
155
|
+
* Payment connector error with error metadata
|
|
156
|
+
*/
|
|
157
|
+
class PaymentError extends Error {
|
|
158
|
+
constructor(message, originalError) {
|
|
159
|
+
super(message);
|
|
160
|
+
this.name = 'PaymentError';
|
|
161
|
+
this.error = originalError;
|
|
162
|
+
if (Error.captureStackTrace) {
|
|
163
|
+
Error.captureStackTrace(this, PaymentError);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
exports.PaymentError = PaymentError;
|
|
168
|
+
/**
|
|
169
|
+
* Search connector error with error metadata
|
|
170
|
+
*/
|
|
171
|
+
class SearchError extends Error {
|
|
172
|
+
constructor(message, originalError) {
|
|
173
|
+
super(message);
|
|
174
|
+
this.name = 'SearchError';
|
|
175
|
+
this.error = originalError;
|
|
176
|
+
if (Error.captureStackTrace) {
|
|
177
|
+
Error.captureStackTrace(this, SearchError);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.SearchError = SearchError;
|
|
182
|
+
/**
|
|
183
|
+
* SMS connector error with error metadata
|
|
184
|
+
*/
|
|
185
|
+
class SMSError extends Error {
|
|
186
|
+
constructor(message, originalError) {
|
|
187
|
+
super(message);
|
|
188
|
+
this.name = 'SMSError';
|
|
189
|
+
this.error = originalError;
|
|
190
|
+
if (Error.captureStackTrace) {
|
|
191
|
+
Error.captureStackTrace(this, SMSError);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
exports.SMSError = SMSError;
|
|
196
|
+
/**
|
|
197
|
+
* Storage connector error with error metadata
|
|
198
|
+
*/
|
|
199
|
+
class StorageError extends Error {
|
|
200
|
+
constructor(message, originalError) {
|
|
201
|
+
super(message);
|
|
202
|
+
this.name = 'StorageError';
|
|
203
|
+
this.error = originalError;
|
|
204
|
+
if (Error.captureStackTrace) {
|
|
205
|
+
Error.captureStackTrace(this, StorageError);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
exports.StorageError = StorageError;
|
|
210
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/types/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Connector
|
|
3
|
+
*
|
|
4
|
+
* Main facade class for the caching system.
|
|
5
|
+
* Provides a unified API for all cache operations and manages multiple cache providers.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Multi-provider support (memory, firestore, redis)
|
|
9
|
+
* - Lazy provider initialization
|
|
10
|
+
* - Global enable/disable switch
|
|
11
|
+
* - Provider-specific routing
|
|
12
|
+
* - Automatic fallback to no-op when disabled
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const cache = getCacheConnector();
|
|
17
|
+
* await cache.set('key', value, { ttl: 300, provider: 'memory' });
|
|
18
|
+
* const cached = await cache.get<User>('key', { provider: 'memory' });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import { CacheConfig, CacheProviderType, CacheSetOptions, CacheGetOptions, CacheInvalidateOptions, CacheEntry, CacheStats } from './types';
|
|
22
|
+
export declare class CacheConnector {
|
|
23
|
+
private config;
|
|
24
|
+
private providers;
|
|
25
|
+
private noopProvider;
|
|
26
|
+
constructor(config: CacheConfig);
|
|
27
|
+
/**
|
|
28
|
+
* Check if caching is enabled globally
|
|
29
|
+
*/
|
|
30
|
+
isEnabled(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get or create a provider instance
|
|
33
|
+
*/
|
|
34
|
+
private getProvider;
|
|
35
|
+
/**
|
|
36
|
+
* Create a new provider instance based on type
|
|
37
|
+
*/
|
|
38
|
+
private createProvider;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve provider from options or use default
|
|
41
|
+
*/
|
|
42
|
+
private resolveProvider;
|
|
43
|
+
/**
|
|
44
|
+
* Get a value from cache
|
|
45
|
+
*
|
|
46
|
+
* @param key - Cache key
|
|
47
|
+
* @param options - Get options (provider override, metadata, etc.)
|
|
48
|
+
* @returns Cached value or null if not found/expired
|
|
49
|
+
*/
|
|
50
|
+
get<T>(key: string, options?: CacheGetOptions): Promise<T | null>;
|
|
51
|
+
/**
|
|
52
|
+
* Get a value with metadata from cache
|
|
53
|
+
*
|
|
54
|
+
* @param key - Cache key
|
|
55
|
+
* @param options - Get options
|
|
56
|
+
* @returns Cache entry with metadata or null
|
|
57
|
+
*/
|
|
58
|
+
getWithMetadata<T>(key: string, options?: CacheGetOptions): Promise<CacheEntry<T> | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Set a value in cache
|
|
61
|
+
*
|
|
62
|
+
* @param key - Cache key
|
|
63
|
+
* @param value - Value to cache
|
|
64
|
+
* @param options - Set options (TTL, tags, provider, etc.)
|
|
65
|
+
*/
|
|
66
|
+
set<T>(key: string, value: T, options?: CacheSetOptions): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Delete a specific cache entry
|
|
69
|
+
*
|
|
70
|
+
* @param key - Cache key to delete
|
|
71
|
+
* @param options - Invalidate options
|
|
72
|
+
* @returns True if entry was deleted
|
|
73
|
+
*/
|
|
74
|
+
delete(key: string, options?: CacheInvalidateOptions): Promise<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* Check if a cache entry exists
|
|
77
|
+
*
|
|
78
|
+
* @param key - Cache key to check
|
|
79
|
+
* @param options - Get options
|
|
80
|
+
* @returns True if entry exists and is not expired
|
|
81
|
+
*/
|
|
82
|
+
has(key: string, options?: CacheGetOptions): Promise<boolean>;
|
|
83
|
+
/**
|
|
84
|
+
* Invalidate cache entries by tags
|
|
85
|
+
*
|
|
86
|
+
* @param tags - Array of tags to invalidate
|
|
87
|
+
* @param options - Invalidate options
|
|
88
|
+
* @returns Number of entries invalidated
|
|
89
|
+
*/
|
|
90
|
+
invalidateByTags(tags: string[], options?: CacheInvalidateOptions): Promise<number>;
|
|
91
|
+
/**
|
|
92
|
+
* Invalidate cache entries by key pattern
|
|
93
|
+
*
|
|
94
|
+
* @param pattern - Pattern to match
|
|
95
|
+
* @param options - Invalidate options
|
|
96
|
+
* @returns Number of entries invalidated
|
|
97
|
+
*/
|
|
98
|
+
invalidateByPattern(pattern: string, options?: CacheInvalidateOptions): Promise<number>;
|
|
99
|
+
/**
|
|
100
|
+
* Clear all cache entries
|
|
101
|
+
*
|
|
102
|
+
* @param options - Invalidate options
|
|
103
|
+
*/
|
|
104
|
+
clear(options?: CacheInvalidateOptions): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Clear all cache entries across all providers
|
|
107
|
+
*/
|
|
108
|
+
clearAll(): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Get cache statistics
|
|
111
|
+
*
|
|
112
|
+
* @param options - Get options
|
|
113
|
+
* @returns Cache statistics
|
|
114
|
+
*/
|
|
115
|
+
getStats(options?: CacheGetOptions): Promise<CacheStats>;
|
|
116
|
+
/**
|
|
117
|
+
* Get statistics for all active providers
|
|
118
|
+
*/
|
|
119
|
+
getAllStats(): Promise<Record<CacheProviderType, CacheStats>>;
|
|
120
|
+
/**
|
|
121
|
+
* Manually trigger cleanup of expired entries
|
|
122
|
+
*
|
|
123
|
+
* @param options - Get options
|
|
124
|
+
* @returns Number of entries cleaned up
|
|
125
|
+
*/
|
|
126
|
+
cleanup(options?: CacheGetOptions): Promise<number>;
|
|
127
|
+
/**
|
|
128
|
+
* Build a namespaced cache key
|
|
129
|
+
*
|
|
130
|
+
* @param parts - Key parts to join
|
|
131
|
+
* @returns Namespaced cache key
|
|
132
|
+
*/
|
|
133
|
+
buildKey(...parts: string[]): string;
|
|
134
|
+
/**
|
|
135
|
+
* Destroy all providers and cleanup resources
|
|
136
|
+
*/
|
|
137
|
+
destroy(): void;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=cache-connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-connector.d.ts","sourceRoot":"","sources":["../../../../utils-cache-connector/src/cache-connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,UAAU,EACX,MAAM,SAAS,CAAC;AAOjB,qBAAa,cAAc;IAIb,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,YAAY,CAAiB;gBAEjB,MAAM,EAAE,WAAW;IAWvC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiCnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAK3E;;;;;;OAMG;IACG,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAKnG;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjF;;;;;;OAMG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjF;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;;;;;OAMG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7F;;;;;;OAMG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjG;;;;OAIG;IACG,KAAK,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhE;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB/B;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKlE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAiBnE;;;;;OAKG;IACG,OAAO,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7D;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpC;;OAEG;IACH,OAAO,IAAI,IAAI;CAahB"}
|