@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,217 @@
1
+ "use strict";
2
+ /**
3
+ * Memory Cache Provider
4
+ *
5
+ * In-memory cache provider using Map data structure.
6
+ * Features:
7
+ * - TTL-based expiration
8
+ * - LRU eviction when max size is reached
9
+ * - Automatic cleanup of expired entries
10
+ * - Tag-based invalidation
11
+ *
12
+ * Best for:
13
+ * - Request-scoped caching
14
+ * - Hot data within a single function instance
15
+ * - Auth/permissions data
16
+ * - Configuration values
17
+ *
18
+ * Limitations:
19
+ * - Not shared across function instances
20
+ * - Lost on cold starts
21
+ * - Limited by instance memory
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.MemoryCacheProvider = void 0;
25
+ const base_cache_provider_1 = require("./base-cache-provider");
26
+ class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
27
+ constructor(config) {
28
+ super();
29
+ this.config = config;
30
+ this.cleanupInterval = null;
31
+ this.currentSize = 0;
32
+ this.cache = new Map();
33
+ // Start automatic cleanup
34
+ this.startCleanup();
35
+ }
36
+ getType() {
37
+ return 'memory';
38
+ }
39
+ async get(key) {
40
+ const entry = this.cache.get(key);
41
+ if (!entry) {
42
+ this.recordMiss();
43
+ return null;
44
+ }
45
+ // Check if expired
46
+ if (this.isExpired(entry.metadata.expiresAt)) {
47
+ this.cache.delete(key);
48
+ this.recordExpiration();
49
+ this.recordMiss();
50
+ return null;
51
+ }
52
+ // Update access metadata
53
+ entry.metadata.hitCount++;
54
+ entry.metadata.lastAccessedAt = new Date();
55
+ this.recordHit();
56
+ // Return clone if configured (prevents mutations)
57
+ if (this.config.useClones) {
58
+ return JSON.parse(JSON.stringify(entry.value));
59
+ }
60
+ return entry.value;
61
+ }
62
+ async getWithMetadata(key) {
63
+ const value = await this.get(key);
64
+ if (value === null) {
65
+ return null;
66
+ }
67
+ const entry = this.cache.get(key);
68
+ return {
69
+ key,
70
+ value,
71
+ metadata: Object.assign({}, entry.metadata),
72
+ };
73
+ }
74
+ async set(key, value, options = {}) {
75
+ const ttl = options.ttl || 300; // Default 5 minutes
76
+ const tags = options.tags || [];
77
+ // Estimate size
78
+ const size = this.estimateSize(value);
79
+ // Check if we need to evict (before adding new entry)
80
+ if (this.currentSize + size > this.config.maxSize) {
81
+ await this.evictLRU(size);
82
+ }
83
+ // Create entry
84
+ const entry = {
85
+ value: this.config.useClones ? JSON.parse(JSON.stringify(value)) : value,
86
+ metadata: Object.assign(Object.assign({}, this.createMetadata(ttl, tags)), { size }),
87
+ };
88
+ // Store in cache
89
+ this.cache.set(key, entry);
90
+ this.currentSize += size;
91
+ this.updateEntryCount(this.cache.size);
92
+ this.updateSize(this.currentSize);
93
+ }
94
+ async delete(key) {
95
+ const entry = this.cache.get(key);
96
+ if (!entry) {
97
+ return false;
98
+ }
99
+ this.cache.delete(key);
100
+ this.currentSize -= entry.metadata.size || 0;
101
+ this.updateEntryCount(this.cache.size);
102
+ this.updateSize(this.currentSize);
103
+ return true;
104
+ }
105
+ async has(key) {
106
+ const entry = this.cache.get(key);
107
+ if (!entry) {
108
+ return false;
109
+ }
110
+ // Check if expired
111
+ if (this.isExpired(entry.metadata.expiresAt)) {
112
+ this.cache.delete(key);
113
+ this.recordExpiration();
114
+ return false;
115
+ }
116
+ return true;
117
+ }
118
+ async invalidateByTags(tags) {
119
+ let count = 0;
120
+ for (const [key, entry] of this.cache.entries()) {
121
+ // Check if entry has any of the specified tags
122
+ const hasTag = tags.some((tag) => entry.metadata.tags.includes(tag));
123
+ if (hasTag) {
124
+ this.cache.delete(key);
125
+ this.currentSize -= entry.metadata.size || 0;
126
+ count++;
127
+ }
128
+ }
129
+ this.updateEntryCount(this.cache.size);
130
+ this.updateSize(this.currentSize);
131
+ return count;
132
+ }
133
+ async invalidateByPattern(pattern, mode = 'prefix') {
134
+ let count = 0;
135
+ for (const [key, entry] of this.cache.entries()) {
136
+ if (this.matchPattern(key, pattern, mode)) {
137
+ this.cache.delete(key);
138
+ this.currentSize -= entry.metadata.size || 0;
139
+ count++;
140
+ }
141
+ }
142
+ this.updateEntryCount(this.cache.size);
143
+ this.updateSize(this.currentSize);
144
+ return count;
145
+ }
146
+ async clear() {
147
+ this.cache.clear();
148
+ this.currentSize = 0;
149
+ this.updateEntryCount(0);
150
+ this.updateSize(0);
151
+ }
152
+ async cleanup() {
153
+ let count = 0;
154
+ for (const [key, entry] of this.cache.entries()) {
155
+ if (this.isExpired(entry.metadata.expiresAt)) {
156
+ this.cache.delete(key);
157
+ this.currentSize -= entry.metadata.size || 0;
158
+ this.recordExpiration();
159
+ count++;
160
+ }
161
+ }
162
+ this.updateEntryCount(this.cache.size);
163
+ this.updateSize(this.currentSize);
164
+ return count;
165
+ }
166
+ /**
167
+ * Evict least recently used entries to make space
168
+ */
169
+ async evictLRU(requiredSpace) {
170
+ // Sort entries by last accessed time
171
+ const entries = Array.from(this.cache.entries()).sort((a, b) => a[1].metadata.lastAccessedAt.getTime() - b[1].metadata.lastAccessedAt.getTime());
172
+ let freedSpace = 0;
173
+ for (const [key, entry] of entries) {
174
+ if (freedSpace >= requiredSpace) {
175
+ break;
176
+ }
177
+ this.cache.delete(key);
178
+ const entrySize = entry.metadata.size || 0;
179
+ this.currentSize -= entrySize;
180
+ freedSpace += entrySize;
181
+ this.recordEviction();
182
+ }
183
+ this.updateEntryCount(this.cache.size);
184
+ this.updateSize(this.currentSize);
185
+ }
186
+ /**
187
+ * Start automatic cleanup of expired entries
188
+ */
189
+ startCleanup() {
190
+ if (this.cleanupInterval) {
191
+ return;
192
+ }
193
+ this.cleanupInterval = setInterval(async () => {
194
+ await this.cleanup();
195
+ }, this.config.checkPeriod * 1000);
196
+ // Don't prevent Node.js from exiting
197
+ this.cleanupInterval.unref();
198
+ }
199
+ /**
200
+ * Stop automatic cleanup
201
+ */
202
+ stopCleanup() {
203
+ if (this.cleanupInterval) {
204
+ clearInterval(this.cleanupInterval);
205
+ this.cleanupInterval = null;
206
+ }
207
+ }
208
+ /**
209
+ * Cleanup on provider destruction
210
+ */
211
+ destroy() {
212
+ this.stopCleanup();
213
+ this.cache.clear();
214
+ }
215
+ }
216
+ exports.MemoryCacheProvider = MemoryCacheProvider;
217
+ //# sourceMappingURL=memory-cache-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-cache-provider.js","sourceRoot":"","sources":["../../../../../utils-cache-connector/src/providers/memory-cache-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * NoOp Cache Provider
3
+ *
4
+ * A no-operation cache provider used when caching is globally disabled.
5
+ * All operations are no-ops that return immediately without doing anything.
6
+ * This ensures zero performance overhead when caching is turned off.
7
+ */
8
+ import { BaseCacheProvider } from './base-cache-provider';
9
+ import { CacheProviderType, CacheSetOptions, CacheEntry } from '../types';
10
+ export declare class NoOpCacheProvider extends BaseCacheProvider {
11
+ getType(): CacheProviderType;
12
+ get<T>(_key: string): Promise<T | null>;
13
+ getWithMetadata<T>(_key: string): Promise<CacheEntry<T> | null>;
14
+ set<T>(_key: string, _value: T, _options?: CacheSetOptions): Promise<void>;
15
+ delete(_key: string): Promise<boolean>;
16
+ has(_key: string): Promise<boolean>;
17
+ invalidateByTags(_tags: string[]): Promise<number>;
18
+ invalidateByPattern(_pattern: string, _mode?: 'prefix' | 'suffix' | 'contains'): Promise<number>;
19
+ clear(): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=noop-cache-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-cache-provider.d.ts","sourceRoot":"","sources":["../../../../../utils-cache-connector/src/providers/noop-cache-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE1E,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,OAAO,IAAI,iBAAiB;IAItB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAIvC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAI/D,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAInC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * NoOp Cache Provider
4
+ *
5
+ * A no-operation cache provider used when caching is globally disabled.
6
+ * All operations are no-ops that return immediately without doing anything.
7
+ * This ensures zero performance overhead when caching is turned off.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NoOpCacheProvider = void 0;
11
+ const base_cache_provider_1 = require("./base-cache-provider");
12
+ class NoOpCacheProvider extends base_cache_provider_1.BaseCacheProvider {
13
+ getType() {
14
+ return 'noop';
15
+ }
16
+ async get(_key) {
17
+ return null;
18
+ }
19
+ async getWithMetadata(_key) {
20
+ return null;
21
+ }
22
+ async set(_key, _value, _options) {
23
+ // No-op
24
+ }
25
+ async delete(_key) {
26
+ return false;
27
+ }
28
+ async has(_key) {
29
+ return false;
30
+ }
31
+ async invalidateByTags(_tags) {
32
+ return 0;
33
+ }
34
+ async invalidateByPattern(_pattern, _mode) {
35
+ return 0;
36
+ }
37
+ async clear() {
38
+ // No-op
39
+ }
40
+ }
41
+ exports.NoOpCacheProvider = NoOpCacheProvider;
42
+ //# sourceMappingURL=noop-cache-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noop-cache-provider.js","sourceRoot":"","sources":["../../../../../utils-cache-connector/src/providers/noop-cache-provider.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,+DAA0D;AAG1D,MAAa,iBAAkB,SAAQ,uCAAiB;IACtD,OAAO;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,IAAY;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAI,IAAY;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,MAAS,EAAE,QAA0B;QAC9D,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAe;QACpC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,KAAwC;QAClF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,KAAK;QACT,QAAQ;IACV,CAAC;CACF;AApCD,8CAoCC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Redis Cache Provider
3
+ *
4
+ * Redis-based cache provider for high-performance distributed caching.
5
+ *
6
+ * Features:
7
+ * - Sub-10ms response times
8
+ * - Distributed caching across all instances
9
+ * - Pub/sub for distributed invalidation
10
+ * - Advanced data structures (Sets for tags)
11
+ * - Connection pooling
12
+ * - Automatic reconnection
13
+ *
14
+ * Best for:
15
+ * - High-traffic applications (>1M requests/month)
16
+ * - Sub-10ms response time requirements
17
+ * - Large cache sizes exceeding Firestore limits
18
+ * - Advanced caching patterns
19
+ *
20
+ * Trade-offs:
21
+ * - Cost: ~$50/month minimum (Google Cloud Memorystore)
22
+ * - Infrastructure: Requires Redis server
23
+ * - Complexity: Additional service to manage
24
+ */
25
+ import { BaseCacheProvider } from './base-cache-provider';
26
+ import { CacheProviderType, CacheSetOptions, CacheEntry, RedisCacheProviderConfig } from '../types';
27
+ export declare class RedisCacheProvider extends BaseCacheProvider {
28
+ private config;
29
+ private client;
30
+ private isConnected;
31
+ constructor(config: RedisCacheProviderConfig);
32
+ /**
33
+ * Setup Redis event handlers
34
+ */
35
+ private setupEventHandlers;
36
+ getType(): CacheProviderType;
37
+ /**
38
+ * Build tag set key
39
+ */
40
+ private buildTagKey;
41
+ /**
42
+ * Build metadata key
43
+ */
44
+ private buildMetaKey;
45
+ get<T>(key: string): Promise<T | null>;
46
+ getWithMetadata<T>(key: string): Promise<CacheEntry<T> | null>;
47
+ set<T>(key: string, value: T, options?: CacheSetOptions): Promise<void>;
48
+ delete(key: string): Promise<boolean>;
49
+ has(key: string): Promise<boolean>;
50
+ invalidateByTags(tags: string[]): Promise<number>;
51
+ invalidateByPattern(pattern: string, mode?: 'prefix' | 'suffix' | 'contains'): Promise<number>;
52
+ clear(): Promise<void>;
53
+ cleanup(): Promise<number>;
54
+ getStats(): Promise<any>;
55
+ /**
56
+ * Check if Redis is connected
57
+ */
58
+ isReady(): boolean;
59
+ /**
60
+ * Cleanup on provider destruction
61
+ */
62
+ destroy(): void;
63
+ }
64
+ //# sourceMappingURL=redis-cache-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-cache-provider.d.ts","sourceRoot":"","sources":["../../../../../utils-cache-connector/src/providers/redis-cache-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAelB,qBAAa,kBAAmB,SAAQ,iBAAiB;IAI3C,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAkB;gBAEjB,MAAM,EAAE,wBAAwB;IAqBpD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,IAAI,iBAAiB;IAI5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,YAAY;IAId,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IA4DtC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAkD9D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiD3E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoCrC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBlC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA2CjD,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,QAAQ,GAAG,QAAQ,GAAG,UAAqB,GAChD,OAAO,CAAC,MAAM,CAAC;IA4DZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBtB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAM1B,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC;IAwB9B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB"}