@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,88 @@
1
+ "use strict";
2
+ /**
3
+ * Authentication Configuration
4
+ * JWT and auth provider settings
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AUTH_CONFIG = void 0;
8
+ exports.getEnabledAuthProvider = getEnabledAuthProvider;
9
+ exports.validateAuthConfig = validateAuthConfig;
10
+ exports.AUTH_CONFIG = {
11
+ jwt: {
12
+ issuer: process.env.JWT_ISSUER || 'backend-boilerplate',
13
+ audience: process.env.JWT_AUDIENCE || 'backend-boilerplate-api',
14
+ expiresIn: process.env.JWT_EXPIRES_IN || '1h',
15
+ refreshTokenExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d',
16
+ },
17
+ providers: {
18
+ firebase: {
19
+ enabled: true,
20
+ projectId: process.env.FIREBASE_PROJECT_ID,
21
+ },
22
+ auth0: {
23
+ enabled: !!process.env.AUTH0_DOMAIN,
24
+ domain: process.env.AUTH0_DOMAIN,
25
+ clientId: process.env.AUTH0_CLIENT_ID,
26
+ clientSecret: process.env.AUTH0_CLIENT_SECRET,
27
+ },
28
+ clerk: {
29
+ enabled: !!process.env.CLERK_API_KEY,
30
+ apiKey: process.env.CLERK_API_KEY,
31
+ },
32
+ },
33
+ blacklist: {
34
+ enabled: process.env.TOKEN_BLACKLIST_ENABLED !== 'false',
35
+ cleanupIntervalMs: parseInt(process.env.TOKEN_BLACKLIST_CLEANUP_INTERVAL || '3600000', 10), // 1 hour
36
+ retentionDays: parseInt(process.env.TOKEN_BLACKLIST_RETENTION_DAYS || '30', 10),
37
+ },
38
+ session: {
39
+ maxConcurrentSessions: parseInt(process.env.MAX_CONCURRENT_SESSIONS || '5', 10),
40
+ slidingExpiration: process.env.SLIDING_EXPIRATION !== 'false',
41
+ },
42
+ security: {
43
+ requireEmailVerification: process.env.REQUIRE_EMAIL_VERIFICATION === 'true',
44
+ requireMFA: process.env.REQUIRE_MFA === 'true',
45
+ passwordMinLength: parseInt(process.env.PASSWORD_MIN_LENGTH || '8', 10),
46
+ maxLoginAttempts: parseInt(process.env.MAX_LOGIN_ATTEMPTS || '5', 10),
47
+ lockoutDurationMinutes: parseInt(process.env.LOCKOUT_DURATION_MINUTES || '15', 10),
48
+ },
49
+ };
50
+ /**
51
+ * Get enabled auth provider
52
+ */
53
+ function getEnabledAuthProvider() {
54
+ var _a, _b;
55
+ if (exports.AUTH_CONFIG.providers.firebase.enabled)
56
+ return 'firebase';
57
+ if ((_a = exports.AUTH_CONFIG.providers.auth0) === null || _a === void 0 ? void 0 : _a.enabled)
58
+ return 'auth0';
59
+ if ((_b = exports.AUTH_CONFIG.providers.clerk) === null || _b === void 0 ? void 0 : _b.enabled)
60
+ return 'clerk';
61
+ return null;
62
+ }
63
+ /**
64
+ * Validate auth configuration
65
+ */
66
+ function validateAuthConfig() {
67
+ var _a;
68
+ const errors = [];
69
+ const enabledProvider = getEnabledAuthProvider();
70
+ if (!enabledProvider) {
71
+ errors.push('At least one auth provider must be enabled');
72
+ }
73
+ if (exports.AUTH_CONFIG.providers.firebase.enabled && !exports.AUTH_CONFIG.providers.firebase.projectId) {
74
+ errors.push('FIREBASE_PROJECT_ID is required when Firebase auth is enabled');
75
+ }
76
+ if ((_a = exports.AUTH_CONFIG.providers.auth0) === null || _a === void 0 ? void 0 : _a.enabled) {
77
+ if (!exports.AUTH_CONFIG.providers.auth0.domain) {
78
+ errors.push('AUTH0_DOMAIN is required when Auth0 is enabled');
79
+ }
80
+ if (!exports.AUTH_CONFIG.providers.auth0.clientId) {
81
+ errors.push('AUTH0_CLIENT_ID is required when Auth0 is enabled');
82
+ }
83
+ }
84
+ if (errors.length > 0) {
85
+ throw new Error(`Auth configuration validation failed:\n${errors.join('\n')}`);
86
+ }
87
+ }
88
+ //# sourceMappingURL=auth.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.config.js","sourceRoot":"","sources":["../../../../src/config/auth.config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA+FH,wDAKC;AAKD,gDAwBC;AAlFY,QAAA,WAAW,GAAe;IACrC,GAAG,EAAE;QACH,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,qBAAqB;QACvD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,yBAAyB;QAC/D,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI;QAC7C,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI;KAClE;IAED,SAAS,EAAE;QACT,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;SAC3C;QACD,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY;YACnC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;YAChC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;YACrC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;SAC9C;QACD,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;SAClC;KACF;IAED,SAAS,EAAE;QACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;QACxD,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,SAAS,EAAE,EAAE,CAAC,EAAE,SAAS;QACrG,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,IAAI,EAAE,EAAE,CAAC;KAChF;IAED,OAAO,EAAE;QACP,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,GAAG,EAAE,EAAE,CAAC;QAC/E,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,OAAO;KAC9D;IAED,QAAQ,EAAE;QACR,wBAAwB,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,MAAM;QAC3E,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;QAC9C,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,EAAE,EAAE,CAAC;QACvE,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,EAAE,EAAE,CAAC;QACrE,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI,EAAE,EAAE,CAAC;KACnF;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,sBAAsB;;IACpC,IAAI,mBAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAC9D,IAAI,MAAA,mBAAW,CAAC,SAAS,CAAC,KAAK,0CAAE,OAAO;QAAE,OAAO,OAAO,CAAC;IACzD,IAAI,MAAA,mBAAW,CAAC,SAAS,CAAC,KAAK,0CAAE,OAAO;QAAE,OAAO,OAAO,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB;;IAChC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,eAAe,GAAG,sBAAsB,EAAE,CAAC;IACjD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,mBAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,mBAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxF,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,MAAA,mBAAW,CAAC,SAAS,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAW,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,mBAAW,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Cache Configuration
3
+ *
4
+ * Multi-level caching configuration for the application.
5
+ *
6
+ * Configuration Hierarchy:
7
+ * 1. Global Project Config (Master Switch)
8
+ * 2. Repository-Level Config (Per-Entity)
9
+ * 3. Method-Level Options (Runtime)
10
+ *
11
+ * Usage:
12
+ * - Set CACHE_ENABLED=true to enable caching globally
13
+ * - Configure default provider and TTL
14
+ * - Individual repositories can opt-in and choose their provider
15
+ */
16
+ import { CacheConfig, CacheProviderType } from '@xbg/utils-cache-connector';
17
+ /**
18
+ * Global cache configuration
19
+ *
20
+ * Master Configuration:
21
+ * - enabled: Master switch - if false, all caching is disabled
22
+ * - defaultProvider: Default cache provider for repositories
23
+ * - defaultTTL: Default time-to-live in seconds
24
+ * - namespace: Cache key namespace for versioning
25
+ */
26
+ export declare const CACHE_CONFIG: CacheConfig;
27
+ /**
28
+ * Validate cache configuration
29
+ */
30
+ export declare function validateCacheConfig(): void;
31
+ /**
32
+ * Check if caching is enabled
33
+ */
34
+ export declare function isCacheEnabled(): boolean;
35
+ /**
36
+ * Get cache namespace
37
+ */
38
+ export declare function getCacheNamespace(): string;
39
+ /**
40
+ * Get default cache TTL
41
+ */
42
+ export declare function getDefaultCacheTTL(): number;
43
+ /**
44
+ * Get default cache provider
45
+ */
46
+ export declare function getDefaultCacheProvider(): CacheProviderType;
47
+ //# sourceMappingURL=cache.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.config.d.ts","sourceRoot":"","sources":["../../../../src/config/cache.config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,WAAW,EACX,iBAAiB,EAIlB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,WA+H1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA2D1C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ /**
3
+ * Cache Configuration
4
+ *
5
+ * Multi-level caching configuration for the application.
6
+ *
7
+ * Configuration Hierarchy:
8
+ * 1. Global Project Config (Master Switch)
9
+ * 2. Repository-Level Config (Per-Entity)
10
+ * 3. Method-Level Options (Runtime)
11
+ *
12
+ * Usage:
13
+ * - Set CACHE_ENABLED=true to enable caching globally
14
+ * - Configure default provider and TTL
15
+ * - Individual repositories can opt-in and choose their provider
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.CACHE_CONFIG = void 0;
19
+ exports.validateCacheConfig = validateCacheConfig;
20
+ exports.isCacheEnabled = isCacheEnabled;
21
+ exports.getCacheNamespace = getCacheNamespace;
22
+ exports.getDefaultCacheTTL = getDefaultCacheTTL;
23
+ exports.getDefaultCacheProvider = getDefaultCacheProvider;
24
+ /**
25
+ * Global cache configuration
26
+ *
27
+ * Master Configuration:
28
+ * - enabled: Master switch - if false, all caching is disabled
29
+ * - defaultProvider: Default cache provider for repositories
30
+ * - defaultTTL: Default time-to-live in seconds
31
+ * - namespace: Cache key namespace for versioning
32
+ */
33
+ exports.CACHE_CONFIG = {
34
+ /**
35
+ * Master switch - set to 'true' to enable caching globally
36
+ * Default: false (caching disabled for new projects)
37
+ */
38
+ enabled: process.env.CACHE_ENABLED === 'true',
39
+ /**
40
+ * Default provider for repositories that don't specify
41
+ * Options: 'memory', 'firestore', 'redis'
42
+ * Default: 'memory'
43
+ */
44
+ defaultProvider: process.env.CACHE_DEFAULT_PROVIDER || 'memory',
45
+ /**
46
+ * Default TTL in seconds (300 = 5 minutes)
47
+ */
48
+ defaultTTL: parseInt(process.env.CACHE_DEFAULT_TTL || '300', 10),
49
+ /**
50
+ * Cache namespace for versioning
51
+ * Change this to invalidate all cached data
52
+ * Default: 'v1'
53
+ */
54
+ namespace: process.env.CACHE_NAMESPACE || 'v1',
55
+ /**
56
+ * Provider-specific configurations
57
+ */
58
+ providers: {
59
+ /**
60
+ * Memory Cache Provider Configuration
61
+ *
62
+ * Best for:
63
+ * - Request-scoped caching
64
+ * - Hot data within a single function instance
65
+ * - Auth/permissions data
66
+ * - Configuration values
67
+ *
68
+ * Limitations:
69
+ * - Not shared across function instances
70
+ * - Lost on cold starts
71
+ * - Limited by instance memory
72
+ */
73
+ memory: {
74
+ /**
75
+ * Maximum cache size in bytes
76
+ * Default: 100MB
77
+ */
78
+ maxSize: parseInt(process.env.CACHE_MEMORY_MAX_SIZE_MB || '100', 10) * 1024 * 1024,
79
+ /**
80
+ * Cleanup check period in seconds
81
+ * Default: 60 seconds
82
+ */
83
+ checkPeriod: parseInt(process.env.CACHE_MEMORY_CHECK_PERIOD || '60', 10),
84
+ /**
85
+ * Whether to clone values (prevents mutations)
86
+ * Default: false (better performance)
87
+ */
88
+ useClones: process.env.CACHE_MEMORY_USE_CLONES === 'true',
89
+ },
90
+ /**
91
+ * Firestore Cache Provider Configuration
92
+ *
93
+ * Best for:
94
+ * - Medium-traffic repositories
95
+ * - Data shared across function instances
96
+ * - Cache data that should survive cold starts
97
+ *
98
+ * Trade-offs:
99
+ * - Latency: ~50-100ms (vs memory ~1-5ms)
100
+ * - Cost: Firestore read/write operations
101
+ * - Size limit: 1MB per document
102
+ */
103
+ firestore: {
104
+ /**
105
+ * Database to use for cache storage
106
+ * Default: 'main'
107
+ */
108
+ database: process.env.CACHE_FIRESTORE_DATABASE || 'main',
109
+ /**
110
+ * Collection name for cache entries
111
+ * Default: '_cache'
112
+ */
113
+ collection: process.env.CACHE_FIRESTORE_COLLECTION || '_cache',
114
+ /**
115
+ * Enable automatic cleanup of expired entries
116
+ * Default: true
117
+ */
118
+ enableCleanup: process.env.CACHE_FIRESTORE_ENABLE_CLEANUP !== 'false',
119
+ /**
120
+ * Cleanup interval in seconds
121
+ * Default: 3600 (1 hour)
122
+ */
123
+ cleanupInterval: parseInt(process.env.CACHE_FIRESTORE_CLEANUP_INTERVAL || '3600', 10),
124
+ },
125
+ /**
126
+ * Redis Cache Provider Configuration (Optional)
127
+ *
128
+ * Best for:
129
+ * - High-traffic applications (>1M requests/month)
130
+ * - Sub-10ms response time requirements
131
+ * - Cache sizes exceeding Firestore limits
132
+ * - Advanced features (pub/sub, sorted sets)
133
+ *
134
+ * Cost: ~$50/month minimum (Google Cloud Memorystore)
135
+ *
136
+ * Note: Only configured if CACHE_REDIS_HOST is set
137
+ */
138
+ redis: process.env.CACHE_REDIS_HOST
139
+ ? {
140
+ host: process.env.CACHE_REDIS_HOST,
141
+ port: parseInt(process.env.CACHE_REDIS_PORT || '6379', 10),
142
+ password: process.env.CACHE_REDIS_PASSWORD,
143
+ db: parseInt(process.env.CACHE_REDIS_DB || '0', 10),
144
+ connectTimeout: parseInt(process.env.CACHE_REDIS_CONNECT_TIMEOUT || '5000', 10),
145
+ tls: process.env.CACHE_REDIS_TLS === 'true',
146
+ }
147
+ : undefined,
148
+ },
149
+ };
150
+ /**
151
+ * Validate cache configuration
152
+ */
153
+ function validateCacheConfig() {
154
+ const errors = [];
155
+ // Validate default provider
156
+ const validProviders = ['memory', 'firestore', 'redis', 'noop'];
157
+ if (!validProviders.includes(exports.CACHE_CONFIG.defaultProvider)) {
158
+ errors.push(`Invalid default provider: ${exports.CACHE_CONFIG.defaultProvider}`);
159
+ }
160
+ // Validate default TTL
161
+ if (exports.CACHE_CONFIG.defaultTTL <= 0) {
162
+ errors.push('Default TTL must be greater than 0');
163
+ }
164
+ // Validate namespace
165
+ if (!exports.CACHE_CONFIG.namespace || exports.CACHE_CONFIG.namespace.trim() === '') {
166
+ errors.push('Cache namespace is required');
167
+ }
168
+ // Validate memory provider config
169
+ if (exports.CACHE_CONFIG.providers.memory.maxSize <= 0) {
170
+ errors.push('Memory cache max size must be greater than 0');
171
+ }
172
+ if (exports.CACHE_CONFIG.providers.memory.checkPeriod <= 0) {
173
+ errors.push('Memory cache check period must be greater than 0');
174
+ }
175
+ // Validate firestore provider config
176
+ if (!exports.CACHE_CONFIG.providers.firestore.database) {
177
+ errors.push('Firestore cache database is required');
178
+ }
179
+ if (!exports.CACHE_CONFIG.providers.firestore.collection) {
180
+ errors.push('Firestore cache collection is required');
181
+ }
182
+ if (exports.CACHE_CONFIG.providers.firestore.cleanupInterval <= 0) {
183
+ errors.push('Firestore cache cleanup interval must be greater than 0');
184
+ }
185
+ // Validate redis provider config if configured
186
+ if (exports.CACHE_CONFIG.providers.redis) {
187
+ if (!exports.CACHE_CONFIG.providers.redis.host) {
188
+ errors.push('Redis host is required when Redis is configured');
189
+ }
190
+ if (exports.CACHE_CONFIG.providers.redis.port <= 0 || exports.CACHE_CONFIG.providers.redis.port > 65535) {
191
+ errors.push('Redis port must be between 1 and 65535');
192
+ }
193
+ if (exports.CACHE_CONFIG.providers.redis.db < 0) {
194
+ errors.push('Redis database number must be >= 0');
195
+ }
196
+ }
197
+ if (errors.length > 0) {
198
+ throw new Error(`Cache configuration validation failed:\n${errors.join('\n')}`);
199
+ }
200
+ }
201
+ /**
202
+ * Check if caching is enabled
203
+ */
204
+ function isCacheEnabled() {
205
+ return exports.CACHE_CONFIG.enabled;
206
+ }
207
+ /**
208
+ * Get cache namespace
209
+ */
210
+ function getCacheNamespace() {
211
+ return exports.CACHE_CONFIG.namespace;
212
+ }
213
+ /**
214
+ * Get default cache TTL
215
+ */
216
+ function getDefaultCacheTTL() {
217
+ return exports.CACHE_CONFIG.defaultTTL;
218
+ }
219
+ /**
220
+ * Get default cache provider
221
+ */
222
+ function getDefaultCacheProvider() {
223
+ return exports.CACHE_CONFIG.defaultProvider;
224
+ }
225
+ //# sourceMappingURL=cache.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.config.js","sourceRoot":"","sources":["../../../../src/config/cache.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Communications Configuration
3
+ * Settings for Email, SMS, CRM, Realtime, Push Notifications, Journeys, ERP, Work Management, Survey, and Document integrations
4
+ */
5
+ export interface CommunicationsConfig {
6
+ email: EmailConfig;
7
+ sms: SMSConfig;
8
+ crm: CRMConfig;
9
+ realtime: RealtimeConfig;
10
+ pushNotifications: PushNotificationsConfig;
11
+ journey: JourneyConfig;
12
+ erp: ERPConfig;
13
+ workManagement: WorkManagementConfig;
14
+ survey: SurveyConfig;
15
+ document: DocumentConfig;
16
+ }
17
+ export interface EmailConfig {
18
+ enabled: boolean;
19
+ provider: 'mailjet' | 'ortto';
20
+ fromAddress: string;
21
+ fromName: string;
22
+ providers: {
23
+ mailjet?: {
24
+ apiKey: string;
25
+ secretKey: string;
26
+ };
27
+ ortto?: {
28
+ apiKey: string;
29
+ region?: string;
30
+ };
31
+ };
32
+ defaults: {
33
+ replyTo?: string;
34
+ trackOpens: boolean;
35
+ trackClicks: boolean;
36
+ };
37
+ }
38
+ export interface SMSConfig {
39
+ enabled: boolean;
40
+ provider: 'twilio' | 'messagebird';
41
+ providers: {
42
+ twilio?: {
43
+ accountSid: string;
44
+ authToken: string;
45
+ fromNumber: string;
46
+ };
47
+ messagebird?: {
48
+ apiKey: string;
49
+ originator: string;
50
+ fromNumber: string;
51
+ };
52
+ };
53
+ defaults: {
54
+ validityPeriod: number;
55
+ enableDeliveryReports: boolean;
56
+ };
57
+ }
58
+ export interface CRMConfig {
59
+ enabled: boolean;
60
+ provider: 'hubspot' | 'salesforce' | 'attio';
61
+ syncOnEvents: string[];
62
+ providers: {
63
+ hubspot?: {
64
+ apiKey: string;
65
+ };
66
+ salesforce?: {
67
+ clientId: string;
68
+ clientSecret: string;
69
+ loginUrl: string;
70
+ apiVersion: string;
71
+ };
72
+ attio?: {
73
+ apiKey: string;
74
+ };
75
+ };
76
+ sync: {
77
+ batchSize: number;
78
+ retryAttempts: number;
79
+ retryDelay: number;
80
+ };
81
+ }
82
+ export interface RealtimeConfig {
83
+ enabled: boolean;
84
+ provider: 'sse' | 'websocket';
85
+ providers: {
86
+ sse?: {
87
+ heartbeatInterval: number;
88
+ reconnectDelay: number;
89
+ };
90
+ websocket?: {
91
+ port: number;
92
+ path: string;
93
+ pingInterval: number;
94
+ pongTimeout: number;
95
+ };
96
+ };
97
+ }
98
+ export interface PushNotificationsConfig {
99
+ enabled: boolean;
100
+ provider: 'fcm';
101
+ providers: {
102
+ fcm?: {
103
+ projectId: string;
104
+ serviceAccountPath?: string;
105
+ };
106
+ };
107
+ }
108
+ export interface JourneyConfig {
109
+ enabled: boolean;
110
+ provider: 'ortto';
111
+ providers: {
112
+ ortto?: {
113
+ apiKey: string;
114
+ region?: string;
115
+ };
116
+ };
117
+ }
118
+ export interface ERPConfig {
119
+ enabled: boolean;
120
+ provider: 'workday';
121
+ providers: {
122
+ workday?: {
123
+ tenant: string;
124
+ clientId: string;
125
+ clientSecret: string;
126
+ apiVersion: string;
127
+ };
128
+ };
129
+ }
130
+ export interface WorkManagementConfig {
131
+ enabled: boolean;
132
+ provider: 'clickup' | 'monday' | 'notion';
133
+ providers: {
134
+ clickup?: {
135
+ apiKey: string;
136
+ teamId?: string;
137
+ };
138
+ monday?: {
139
+ apiKey: string;
140
+ };
141
+ notion?: {
142
+ apiKey: string;
143
+ databaseId?: string;
144
+ };
145
+ };
146
+ }
147
+ export interface SurveyConfig {
148
+ enabled: boolean;
149
+ provider: 'surveymonkey' | 'typeform';
150
+ providers: {
151
+ surveymonkey?: {
152
+ apiKey: string;
153
+ accessToken: string;
154
+ };
155
+ typeform?: {
156
+ apiKey: string;
157
+ accessToken: string;
158
+ };
159
+ };
160
+ }
161
+ export interface DocumentConfig {
162
+ enabled: boolean;
163
+ provider: 'pandadoc';
164
+ providers: {
165
+ pandadoc?: {
166
+ apiKey: string;
167
+ };
168
+ };
169
+ }
170
+ export declare const COMMUNICATIONS_CONFIG: CommunicationsConfig;
171
+ /**
172
+ * Validate communications configuration
173
+ */
174
+ export declare function validateCommunicationsConfig(): void;
175
+ //# sourceMappingURL=communications.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communications.config.d.ts","sourceRoot":"","sources":["../../../../src/config/communications.config.ts"],"names":[],"mappings":"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"}