@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.
Files changed (185) hide show
  1. package/lib/core/src/app.d.ts +28 -0
  2. package/lib/core/src/app.d.ts.map +1 -0
  3. package/lib/core/src/app.js +188 -0
  4. package/lib/core/src/app.js.map +1 -0
  5. package/lib/core/src/base/BaseController.d.ts +108 -0
  6. package/lib/core/src/base/BaseController.d.ts.map +1 -0
  7. package/lib/core/src/base/BaseController.js +307 -0
  8. package/lib/core/src/base/BaseController.js.map +1 -0
  9. package/lib/core/src/base/BaseEntity.d.ts +92 -0
  10. package/lib/core/src/base/BaseEntity.d.ts.map +1 -0
  11. package/lib/core/src/base/BaseEntity.js +143 -0
  12. package/lib/core/src/base/BaseEntity.js.map +1 -0
  13. package/lib/core/src/base/BaseRepository.d.ts +124 -0
  14. package/lib/core/src/base/BaseRepository.d.ts.map +1 -0
  15. package/lib/core/src/base/BaseRepository.js +414 -0
  16. package/lib/core/src/base/BaseRepository.js.map +1 -0
  17. package/lib/core/src/base/BaseService.d.ts +89 -0
  18. package/lib/core/src/base/BaseService.d.ts.map +1 -0
  19. package/lib/core/src/base/BaseService.js +342 -0
  20. package/lib/core/src/base/BaseService.js.map +1 -0
  21. package/lib/core/src/base/index.d.ts +8 -0
  22. package/lib/core/src/base/index.d.ts.map +1 -0
  23. package/lib/core/src/base/index.js +24 -0
  24. package/lib/core/src/base/index.js.map +1 -0
  25. package/lib/core/src/config/app.config.d.ts +70 -0
  26. package/lib/core/src/config/app.config.d.ts.map +1 -0
  27. package/lib/core/src/config/app.config.js +106 -0
  28. package/lib/core/src/config/app.config.js.map +1 -0
  29. package/lib/core/src/config/auth.config.d.ts +54 -0
  30. package/lib/core/src/config/auth.config.d.ts.map +1 -0
  31. package/lib/core/src/config/auth.config.js +88 -0
  32. package/lib/core/src/config/auth.config.js.map +1 -0
  33. package/lib/core/src/config/cache.config.d.ts +47 -0
  34. package/lib/core/src/config/cache.config.d.ts.map +1 -0
  35. package/lib/core/src/config/cache.config.js +225 -0
  36. package/lib/core/src/config/cache.config.js.map +1 -0
  37. package/lib/core/src/config/communications.config.d.ts +175 -0
  38. package/lib/core/src/config/communications.config.d.ts.map +1 -0
  39. package/lib/core/src/config/communications.config.js +219 -0
  40. package/lib/core/src/config/communications.config.js.map +1 -0
  41. package/lib/core/src/config/database.config.d.ts +68 -0
  42. package/lib/core/src/config/database.config.d.ts.map +1 -0
  43. package/lib/core/src/config/database.config.js +95 -0
  44. package/lib/core/src/config/database.config.js.map +1 -0
  45. package/lib/core/src/config/firebase-event-mapping.config.d.ts +41 -0
  46. package/lib/core/src/config/firebase-event-mapping.config.d.ts.map +1 -0
  47. package/lib/core/src/config/firebase-event-mapping.config.js +180 -0
  48. package/lib/core/src/config/firebase-event-mapping.config.js.map +1 -0
  49. package/lib/core/src/config/firestore.config.d.ts +61 -0
  50. package/lib/core/src/config/firestore.config.d.ts.map +1 -0
  51. package/lib/core/src/config/firestore.config.js +74 -0
  52. package/lib/core/src/config/firestore.config.js.map +1 -0
  53. package/lib/core/src/config/index.d.ts +15 -0
  54. package/lib/core/src/config/index.d.ts.map +1 -0
  55. package/lib/core/src/config/index.js +41 -0
  56. package/lib/core/src/config/index.js.map +1 -0
  57. package/lib/core/src/config/maps.config.d.ts +31 -0
  58. package/lib/core/src/config/maps.config.d.ts.map +1 -0
  59. package/lib/core/src/config/maps.config.js +50 -0
  60. package/lib/core/src/config/maps.config.js.map +1 -0
  61. package/lib/core/src/config/middleware.config.d.ts +57 -0
  62. package/lib/core/src/config/middleware.config.d.ts.map +1 -0
  63. package/lib/core/src/config/middleware.config.js +68 -0
  64. package/lib/core/src/config/middleware.config.js.map +1 -0
  65. package/lib/core/src/config/tokens.config.d.ts +53 -0
  66. package/lib/core/src/config/tokens.config.d.ts.map +1 -0
  67. package/lib/core/src/config/tokens.config.js +129 -0
  68. package/lib/core/src/config/tokens.config.js.map +1 -0
  69. package/lib/core/src/generator/generator.d.ts +38 -0
  70. package/lib/core/src/generator/generator.d.ts.map +1 -0
  71. package/lib/core/src/generator/generator.js +159 -0
  72. package/lib/core/src/generator/generator.js.map +1 -0
  73. package/lib/core/src/generator/index.d.ts +7 -0
  74. package/lib/core/src/generator/index.d.ts.map +1 -0
  75. package/lib/core/src/generator/index.js +23 -0
  76. package/lib/core/src/generator/index.js.map +1 -0
  77. package/lib/core/src/generator/parser.d.ts +10 -0
  78. package/lib/core/src/generator/parser.d.ts.map +1 -0
  79. package/lib/core/src/generator/parser.js +197 -0
  80. package/lib/core/src/generator/parser.js.map +1 -0
  81. package/lib/core/src/generator/types.d.ts +112 -0
  82. package/lib/core/src/generator/types.d.ts.map +1 -0
  83. package/lib/core/src/generator/types.js +7 -0
  84. package/lib/core/src/generator/types.js.map +1 -0
  85. package/lib/core/src/index.d.ts +19 -0
  86. package/lib/core/src/index.d.ts.map +1 -0
  87. package/lib/core/src/index.js +46 -0
  88. package/lib/core/src/index.js.map +1 -0
  89. package/lib/core/src/middleware/auth.middleware.d.ts +57 -0
  90. package/lib/core/src/middleware/auth.middleware.d.ts.map +1 -0
  91. package/lib/core/src/middleware/auth.middleware.js +256 -0
  92. package/lib/core/src/middleware/auth.middleware.js.map +1 -0
  93. package/lib/core/src/middleware/cors.middleware.d.ts +13 -0
  94. package/lib/core/src/middleware/cors.middleware.d.ts.map +1 -0
  95. package/lib/core/src/middleware/cors.middleware.js +50 -0
  96. package/lib/core/src/middleware/cors.middleware.js.map +1 -0
  97. package/lib/core/src/middleware/error.middleware.d.ts +46 -0
  98. package/lib/core/src/middleware/error.middleware.d.ts.map +1 -0
  99. package/lib/core/src/middleware/error.middleware.js +174 -0
  100. package/lib/core/src/middleware/error.middleware.js.map +1 -0
  101. package/lib/core/src/middleware/index.d.ts +11 -0
  102. package/lib/core/src/middleware/index.d.ts.map +1 -0
  103. package/lib/core/src/middleware/index.js +27 -0
  104. package/lib/core/src/middleware/index.js.map +1 -0
  105. package/lib/core/src/middleware/logging.middleware.d.ts +10 -0
  106. package/lib/core/src/middleware/logging.middleware.d.ts.map +1 -0
  107. package/lib/core/src/middleware/logging.middleware.js +87 -0
  108. package/lib/core/src/middleware/logging.middleware.js.map +1 -0
  109. package/lib/core/src/middleware/rateLimit.middleware.d.ts +26 -0
  110. package/lib/core/src/middleware/rateLimit.middleware.d.ts.map +1 -0
  111. package/lib/core/src/middleware/rateLimit.middleware.js +105 -0
  112. package/lib/core/src/middleware/rateLimit.middleware.js.map +1 -0
  113. package/lib/core/src/middleware/requestId.middleware.d.ts +11 -0
  114. package/lib/core/src/middleware/requestId.middleware.d.ts.map +1 -0
  115. package/lib/core/src/middleware/requestId.middleware.js +26 -0
  116. package/lib/core/src/middleware/requestId.middleware.js.map +1 -0
  117. package/lib/core/src/middleware/validation.middleware.d.ts +25 -0
  118. package/lib/core/src/middleware/validation.middleware.d.ts.map +1 -0
  119. package/lib/core/src/middleware/validation.middleware.js +133 -0
  120. package/lib/core/src/middleware/validation.middleware.js.map +1 -0
  121. package/lib/core/src/types/errors.d.ts +119 -0
  122. package/lib/core/src/types/errors.d.ts.map +1 -0
  123. package/lib/core/src/types/errors.js +210 -0
  124. package/lib/core/src/types/errors.js.map +1 -0
  125. package/lib/utils-cache-connector/src/cache-connector.d.ts +139 -0
  126. package/lib/utils-cache-connector/src/cache-connector.d.ts.map +1 -0
  127. package/lib/utils-cache-connector/src/cache-connector.js +277 -0
  128. package/lib/utils-cache-connector/src/cache-connector.js.map +1 -0
  129. package/lib/utils-cache-connector/src/index.d.ts +52 -0
  130. package/lib/utils-cache-connector/src/index.d.ts.map +1 -0
  131. package/lib/utils-cache-connector/src/index.js +103 -0
  132. package/lib/utils-cache-connector/src/index.js.map +1 -0
  133. package/lib/utils-cache-connector/src/providers/base-cache-provider.d.ts +95 -0
  134. package/lib/utils-cache-connector/src/providers/base-cache-provider.d.ts.map +1 -0
  135. package/lib/utils-cache-connector/src/providers/base-cache-provider.js +120 -0
  136. package/lib/utils-cache-connector/src/providers/base-cache-provider.js.map +1 -0
  137. package/lib/utils-cache-connector/src/providers/firestore-cache-provider.d.ts +58 -0
  138. package/lib/utils-cache-connector/src/providers/firestore-cache-provider.d.ts.map +1 -0
  139. package/lib/utils-cache-connector/src/providers/firestore-cache-provider.js +418 -0
  140. package/lib/utils-cache-connector/src/providers/firestore-cache-provider.js.map +1 -0
  141. package/lib/utils-cache-connector/src/providers/memory-cache-provider.d.ts +57 -0
  142. package/lib/utils-cache-connector/src/providers/memory-cache-provider.d.ts.map +1 -0
  143. package/lib/utils-cache-connector/src/providers/memory-cache-provider.js +217 -0
  144. package/lib/utils-cache-connector/src/providers/memory-cache-provider.js.map +1 -0
  145. package/lib/utils-cache-connector/src/providers/noop-cache-provider.d.ts +21 -0
  146. package/lib/utils-cache-connector/src/providers/noop-cache-provider.d.ts.map +1 -0
  147. package/lib/utils-cache-connector/src/providers/noop-cache-provider.js +42 -0
  148. package/lib/utils-cache-connector/src/providers/noop-cache-provider.js.map +1 -0
  149. package/lib/utils-cache-connector/src/providers/redis-cache-provider.d.ts +64 -0
  150. package/lib/utils-cache-connector/src/providers/redis-cache-provider.d.ts.map +1 -0
  151. package/lib/utils-cache-connector/src/providers/redis-cache-provider.js +414 -0
  152. package/lib/utils-cache-connector/src/providers/redis-cache-provider.js.map +1 -0
  153. package/lib/utils-cache-connector/src/types.d.ts +342 -0
  154. package/lib/utils-cache-connector/src/types.d.ts.map +1 -0
  155. package/lib/utils-cache-connector/src/types.js +8 -0
  156. package/lib/utils-cache-connector/src/types.js.map +1 -0
  157. package/lib/utils-events/src/event-bus.d.ts +42 -0
  158. package/lib/utils-events/src/event-bus.d.ts.map +1 -0
  159. package/lib/utils-events/src/event-bus.js +93 -0
  160. package/lib/utils-events/src/event-bus.js.map +1 -0
  161. package/lib/utils-events/src/event-types.d.ts +146 -0
  162. package/lib/utils-events/src/event-types.d.ts.map +1 -0
  163. package/lib/utils-events/src/event-types.js +49 -0
  164. package/lib/utils-events/src/event-types.js.map +1 -0
  165. package/lib/utils-events/src/index.d.ts +7 -0
  166. package/lib/utils-events/src/index.d.ts.map +1 -0
  167. package/lib/utils-events/src/index.js +11 -0
  168. package/lib/utils-events/src/index.js.map +1 -0
  169. package/lib/utils-logger/src/index.d.ts +12 -0
  170. package/lib/utils-logger/src/index.d.ts.map +1 -0
  171. package/lib/utils-logger/src/index.js +29 -0
  172. package/lib/utils-logger/src/index.js.map +1 -0
  173. package/lib/utils-logger/src/logger-types.d.ts +32 -0
  174. package/lib/utils-logger/src/logger-types.d.ts.map +1 -0
  175. package/lib/utils-logger/src/logger-types.js +17 -0
  176. package/lib/utils-logger/src/logger-types.js.map +1 -0
  177. package/lib/utils-logger/src/logger.d.ts +42 -0
  178. package/lib/utils-logger/src/logger.d.ts.map +1 -0
  179. package/lib/utils-logger/src/logger.js +123 -0
  180. package/lib/utils-logger/src/logger.js.map +1 -0
  181. package/package.json +49 -0
  182. package/src/templates/controller.hbs +48 -0
  183. package/src/templates/entity.hbs +80 -0
  184. package/src/templates/repository.hbs +56 -0
  185. 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":";AAAA;;GAEG;;;AAEH;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IAIrC,YAAY,OAAe,EAAE,SAAkB,EAAE,aAAmB;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,qFAAqF;QACrF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF;AAfD,oCAeC;AAED;;GAEG;AACH,MAAa,eAAgB,SAAQ,KAAK;IAGxC,YAAY,OAAe,EAAE,UAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF;AAZD,0CAYC;AAED;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IAGrC,YAAY,OAAe,EAAE,SAAkB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF;AAZD,oCAYC;AAED;;GAEG;AACH,MAAa,SAAU,SAAQ,KAAK;IAGlC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF;AAZD,8BAYC;AAED;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAKpC,YAAY,OAAe,EAAE,QAAkE;QAC7F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC;QAE7B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAhBD,kCAgBC;AAED;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IAKtC,YAAY,OAAe,EAAE,QAA+D;QAC1F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC;QAE7B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AAhBD,sCAgBC;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAI3C,YAAY,OAAe,EAAE,QAA8C;QACzE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC;QAE7B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AAdD,gDAcC;AAED;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAGjC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAZD,4BAYC;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,KAAK;IAGvC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF;AAZD,wCAYC;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,KAAK;IAGnC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF;AAZD,gCAYC;AAED;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IAGrC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF;AAZD,oCAYC;AAED;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAGpC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAZD,kCAYC;AAED;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAGjC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAZD,4BAYC;AAED;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IAGrC,YAAY,OAAe,EAAE,aAAmB;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAE3B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;CACF;AAZD,oCAYC"}
@@ -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"}