@ambiten/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 (304) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/bin/bootstrap.js +26 -0
  4. package/dist/ambiten-cache/ambitenCache.d.ts +64 -0
  5. package/dist/ambiten-cache/ambitenCache.d.ts.map +1 -0
  6. package/dist/ambiten-cache/ambitenCache.js +127 -0
  7. package/dist/ambiten-cache/index.d.ts +2 -0
  8. package/dist/ambiten-cache/index.d.ts.map +1 -0
  9. package/dist/ambiten-cache/index.js +4 -0
  10. package/dist/browser.d.ts +32 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +37 -0
  13. package/dist/cli/ambiten-core-cli.d.ts +4 -0
  14. package/dist/cli/ambiten-core-cli.d.ts.map +1 -0
  15. package/dist/cli/ambiten-core-cli.js +41 -0
  16. package/dist/cli/buildInteractiveConfig.d.ts +4 -0
  17. package/dist/cli/buildInteractiveConfig.d.ts.map +1 -0
  18. package/dist/cli/buildInteractiveConfig.js +198 -0
  19. package/dist/cli/index.d.ts +5 -0
  20. package/dist/cli/index.d.ts.map +1 -0
  21. package/dist/cli/index.js +7 -0
  22. package/dist/cli/prompt.d.ts +10 -0
  23. package/dist/cli/prompt.d.ts.map +1 -0
  24. package/dist/cli/prompt.js +48 -0
  25. package/dist/cli/types.d.ts +11 -0
  26. package/dist/cli/types.d.ts.map +1 -0
  27. package/dist/cli/types.js +2 -0
  28. package/dist/config/ambiten.config.schema.json +278 -0
  29. package/dist/config/index.d.ts +2 -0
  30. package/dist/config/index.d.ts.map +1 -0
  31. package/dist/config/index.js +4 -0
  32. package/dist/config/loadAmbitenConfig.d.ts +3 -0
  33. package/dist/config/loadAmbitenConfig.d.ts.map +1 -0
  34. package/dist/config/loadAmbitenConfig.js +131 -0
  35. package/dist/context/ambitenContext.d.ts +35 -0
  36. package/dist/context/ambitenContext.d.ts.map +1 -0
  37. package/dist/context/ambitenContext.js +147 -0
  38. package/dist/context/helpers/runManualTransaction.d.ts +3 -0
  39. package/dist/context/helpers/runManualTransaction.d.ts.map +1 -0
  40. package/dist/context/helpers/runManualTransaction.js +22 -0
  41. package/dist/context/helpers/transactionSession.d.ts +9 -0
  42. package/dist/context/helpers/transactionSession.d.ts.map +1 -0
  43. package/dist/context/helpers/transactionSession.js +8 -0
  44. package/dist/context/index.d.ts +4 -0
  45. package/dist/context/index.d.ts.map +1 -0
  46. package/dist/context/index.js +6 -0
  47. package/dist/debug/debugLog.d.ts +2 -0
  48. package/dist/debug/debugLog.d.ts.map +1 -0
  49. package/dist/debug/debugLog.js +23 -0
  50. package/dist/debug/index.d.ts +2 -0
  51. package/dist/debug/index.d.ts.map +1 -0
  52. package/dist/debug/index.js +4 -0
  53. package/dist/gc/ambitenGC.d.ts +49 -0
  54. package/dist/gc/ambitenGC.d.ts.map +1 -0
  55. package/dist/gc/ambitenGC.js +138 -0
  56. package/dist/gc/gcCron.browser.d.ts +2 -0
  57. package/dist/gc/gcCron.browser.d.ts.map +1 -0
  58. package/dist/gc/gcCron.browser.js +9 -0
  59. package/dist/gc/gcCron.node.d.ts +19 -0
  60. package/dist/gc/gcCron.node.d.ts.map +1 -0
  61. package/dist/gc/gcCron.node.js +47 -0
  62. package/dist/gc/gcManager.d.ts +37 -0
  63. package/dist/gc/gcManager.d.ts.map +1 -0
  64. package/dist/gc/gcManager.js +62 -0
  65. package/dist/gc/index.d.ts +5 -0
  66. package/dist/gc/index.d.ts.map +1 -0
  67. package/dist/gc/index.js +7 -0
  68. package/dist/graphql/ambitenGraphQL.d.ts +24 -0
  69. package/dist/graphql/ambitenGraphQL.d.ts.map +1 -0
  70. package/dist/graphql/ambitenGraphQL.js +215 -0
  71. package/dist/graphql/index.d.ts +2 -0
  72. package/dist/graphql/index.d.ts.map +1 -0
  73. package/dist/graphql/index.js +4 -0
  74. package/dist/index-browser.js +25 -0
  75. package/dist/index-browser.js.map +1 -0
  76. package/dist/index-cli.js +26 -0
  77. package/dist/index-cli.js.map +1 -0
  78. package/dist/index.d.ts +30 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +25 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/init-cli/generate.project.d.ts +9 -0
  83. package/dist/init-cli/generate.project.d.ts.map +1 -0
  84. package/dist/init-cli/generate.project.js +38 -0
  85. package/dist/instrumentation/index.d.ts +3 -0
  86. package/dist/instrumentation/index.d.ts.map +1 -0
  87. package/dist/instrumentation/index.js +5 -0
  88. package/dist/instrumentation/measureQuery.browser.d.ts +3 -0
  89. package/dist/instrumentation/measureQuery.browser.d.ts.map +1 -0
  90. package/dist/instrumentation/measureQuery.browser.js +6 -0
  91. package/dist/instrumentation/measureQueryWithErrors.d.ts +11 -0
  92. package/dist/instrumentation/measureQueryWithErrors.d.ts.map +1 -0
  93. package/dist/instrumentation/measureQueryWithErrors.js +90 -0
  94. package/dist/lib-core/ambitenClient.d.ts +115 -0
  95. package/dist/lib-core/ambitenClient.d.ts.map +1 -0
  96. package/dist/lib-core/ambitenClient.js +537 -0
  97. package/dist/lib-core/ambitenModelFactory.d.ts +979 -0
  98. package/dist/lib-core/ambitenModelFactory.d.ts.map +1 -0
  99. package/dist/lib-core/ambitenModelFactory.js +3984 -0
  100. package/dist/lib-core/ambitenSchema.d.ts +126 -0
  101. package/dist/lib-core/ambitenSchema.d.ts.map +1 -0
  102. package/dist/lib-core/ambitenSchema.js +247 -0
  103. package/dist/lib-core/bootstrap/ambitenBootstrap.d.ts +38 -0
  104. package/dist/lib-core/bootstrap/ambitenBootstrap.d.ts.map +1 -0
  105. package/dist/lib-core/bootstrap/ambitenBootstrap.js +381 -0
  106. package/dist/lib-core/bootstrap/index.d.ts +2 -0
  107. package/dist/lib-core/bootstrap/index.d.ts.map +1 -0
  108. package/dist/lib-core/bootstrap/index.js +4 -0
  109. package/dist/lib-core/index.d.ts +5 -0
  110. package/dist/lib-core/index.d.ts.map +1 -0
  111. package/dist/lib-core/index.js +7 -0
  112. package/dist/middleware/authorization/auth.d.ts +22 -0
  113. package/dist/middleware/authorization/auth.d.ts.map +1 -0
  114. package/dist/middleware/authorization/auth.js +37 -0
  115. package/dist/middleware/index.d.ts +4 -0
  116. package/dist/middleware/index.d.ts.map +1 -0
  117. package/dist/middleware/index.js +6 -0
  118. package/dist/middleware/rbac/rbacMiddleware.d.ts +103 -0
  119. package/dist/middleware/rbac/rbacMiddleware.d.ts.map +1 -0
  120. package/dist/middleware/rbac/rbacMiddleware.js +246 -0
  121. package/dist/middleware/rbac/rbacTypes.d.ts +4 -0
  122. package/dist/middleware/rbac/rbacTypes.d.ts.map +1 -0
  123. package/dist/middleware/rbac/rbacTypes.js +8 -0
  124. package/dist/plugins/index.d.ts +3 -0
  125. package/dist/plugins/index.d.ts.map +1 -0
  126. package/dist/plugins/index.js +5 -0
  127. package/dist/plugins/softDelete/applySoftDelete.d.ts +5 -0
  128. package/dist/plugins/softDelete/applySoftDelete.d.ts.map +1 -0
  129. package/dist/plugins/softDelete/applySoftDelete.js +139 -0
  130. package/dist/plugins/softDelete/types.d.ts +14 -0
  131. package/dist/plugins/softDelete/types.d.ts.map +1 -0
  132. package/dist/plugins/softDelete/types.js +2 -0
  133. package/dist/redis-manager/index.d.ts +2 -0
  134. package/dist/redis-manager/index.d.ts.map +1 -0
  135. package/dist/redis-manager/index.js +4 -0
  136. package/dist/redis-manager/redisClient.d.ts +32 -0
  137. package/dist/redis-manager/redisClient.d.ts.map +1 -0
  138. package/dist/redis-manager/redisClient.js +146 -0
  139. package/dist/tanancy/MultiTenantManager.d.ts +98 -0
  140. package/dist/tanancy/MultiTenantManager.d.ts.map +1 -0
  141. package/dist/tanancy/MultiTenantManager.js +190 -0
  142. package/dist/tanancy/TenantContext.d.ts +31 -0
  143. package/dist/tanancy/TenantContext.d.ts.map +1 -0
  144. package/dist/tanancy/TenantContext.js +59 -0
  145. package/dist/tanancy/TenantModelResolver.d.ts +10 -0
  146. package/dist/tanancy/TenantModelResolver.d.ts.map +1 -0
  147. package/dist/tanancy/TenantModelResolver.js +114 -0
  148. package/dist/tanancy/index.d.ts +5 -0
  149. package/dist/tanancy/index.d.ts.map +1 -0
  150. package/dist/tanancy/index.js +7 -0
  151. package/dist/tanancy/init/initMultiTenancy.d.ts +29 -0
  152. package/dist/tanancy/init/initMultiTenancy.d.ts.map +1 -0
  153. package/dist/tanancy/init/initMultiTenancy.js +62 -0
  154. package/dist/templates/generateDefaultConfigContent.d.ts +10 -0
  155. package/dist/templates/generateDefaultConfigContent.d.ts.map +1 -0
  156. package/dist/templates/generateDefaultConfigContent.js +108 -0
  157. package/dist/templates/generateGCManagerFile.d.ts +2 -0
  158. package/dist/templates/generateGCManagerFile.d.ts.map +1 -0
  159. package/dist/templates/generateGCManagerFile.js +39 -0
  160. package/dist/templates/generateGCRunnerFile.d.ts +2 -0
  161. package/dist/templates/generateGCRunnerFile.d.ts.map +1 -0
  162. package/dist/templates/generateGCRunnerFile.js +25 -0
  163. package/dist/templates/generateMainEntry.d.ts +3 -0
  164. package/dist/templates/generateMainEntry.d.ts.map +1 -0
  165. package/dist/templates/generateMainEntry.js +24 -0
  166. package/dist/templates/index.d.ts +6 -0
  167. package/dist/templates/index.d.ts.map +1 -0
  168. package/dist/templates/index.js +8 -0
  169. package/dist/templates/scaffold/structureGenerator.d.ts +4 -0
  170. package/dist/templates/scaffold/structureGenerator.d.ts.map +1 -0
  171. package/dist/templates/scaffold/structureGenerator.js +193 -0
  172. package/dist/types/GCConfig.d.ts +7 -0
  173. package/dist/types/GCConfig.d.ts.map +1 -0
  174. package/dist/types/GCConfig.js +2 -0
  175. package/dist/types/ambiten-runtime-type.d.ts +24 -0
  176. package/dist/types/ambiten-runtime-type.d.ts.map +1 -0
  177. package/dist/types/ambiten-runtime-type.js +2 -0
  178. package/dist/types/ambiten.client.type.d.ts +136 -0
  179. package/dist/types/ambiten.client.type.d.ts.map +1 -0
  180. package/dist/types/ambiten.client.type.js +3 -0
  181. package/dist/types/ambiten.model.type.d.ts +135 -0
  182. package/dist/types/ambiten.model.type.d.ts.map +1 -0
  183. package/dist/types/ambiten.model.type.js +4 -0
  184. package/dist/types/ambitenConfig.d.ts +103 -0
  185. package/dist/types/ambitenConfig.d.ts.map +1 -0
  186. package/dist/types/ambitenConfig.js +3 -0
  187. package/dist/types/bootstrapClient.type.d.ts +11 -0
  188. package/dist/types/bootstrapClient.type.d.ts.map +1 -0
  189. package/dist/types/bootstrapClient.type.js +2 -0
  190. package/dist/types/db.provider.d.ts +66 -0
  191. package/dist/types/db.provider.d.ts.map +1 -0
  192. package/dist/types/db.provider.js +2 -0
  193. package/dist/types/document.d.ts +7 -0
  194. package/dist/types/document.d.ts.map +1 -0
  195. package/dist/types/document.js +2 -0
  196. package/dist/types/event.type.d.ts +6 -0
  197. package/dist/types/event.type.d.ts.map +1 -0
  198. package/dist/types/event.type.js +27 -0
  199. package/dist/types/graphql.type.d.ts +22 -0
  200. package/dist/types/graphql.type.d.ts.map +1 -0
  201. package/dist/types/graphql.type.js +2 -0
  202. package/dist/types/index.d.ts +15 -0
  203. package/dist/types/index.d.ts.map +1 -0
  204. package/dist/types/index.js +17 -0
  205. package/dist/types/logger.types.d.ts +15 -0
  206. package/dist/types/logger.types.d.ts.map +1 -0
  207. package/dist/types/logger.types.js +3 -0
  208. package/dist/types/middleware/types.d.ts +28 -0
  209. package/dist/types/middleware/types.d.ts.map +1 -0
  210. package/dist/types/middleware/types.js +2 -0
  211. package/dist/types/result.utils.types.d.ts +7 -0
  212. package/dist/types/result.utils.types.d.ts.map +1 -0
  213. package/dist/types/result.utils.types.js +2 -0
  214. package/dist/types/schema.type.d.ts +23 -0
  215. package/dist/types/schema.type.d.ts.map +1 -0
  216. package/dist/types/schema.type.js +10 -0
  217. package/dist/types/user.type.d.ts +11 -0
  218. package/dist/types/user.type.d.ts.map +1 -0
  219. package/dist/types/user.type.js +2 -0
  220. package/dist/utils/AuthUtils.d.ts +15 -0
  221. package/dist/utils/AuthUtils.d.ts.map +1 -0
  222. package/dist/utils/AuthUtils.js +26 -0
  223. package/dist/utils/ModelRegistry.d.ts +15 -0
  224. package/dist/utils/ModelRegistry.d.ts.map +1 -0
  225. package/dist/utils/ModelRegistry.js +35 -0
  226. package/dist/utils/banner.d.ts +2 -0
  227. package/dist/utils/banner.d.ts.map +1 -0
  228. package/dist/utils/banner.js +20 -0
  229. package/dist/utils/builders/createModel.d.ts +37 -0
  230. package/dist/utils/builders/createModel.d.ts.map +1 -0
  231. package/dist/utils/builders/createModel.js +38 -0
  232. package/dist/utils/builders/getTenantDb.d.ts +12 -0
  233. package/dist/utils/builders/getTenantDb.d.ts.map +1 -0
  234. package/dist/utils/builders/getTenantDb.js +25 -0
  235. package/dist/utils/builders/index.d.ts +4 -0
  236. package/dist/utils/builders/index.d.ts.map +1 -0
  237. package/dist/utils/builders/index.js +6 -0
  238. package/dist/utils/builders/schema.d.ts +22 -0
  239. package/dist/utils/builders/schema.d.ts.map +1 -0
  240. package/dist/utils/builders/schema.js +26 -0
  241. package/dist/utils/cacheWithRedis.d.ts +27 -0
  242. package/dist/utils/cacheWithRedis.d.ts.map +1 -0
  243. package/dist/utils/cacheWithRedis.js +22 -0
  244. package/dist/utils/castId.d.ts +5 -0
  245. package/dist/utils/castId.d.ts.map +1 -0
  246. package/dist/utils/castId.js +52 -0
  247. package/dist/utils/color-palatte.d.ts +4 -0
  248. package/dist/utils/color-palatte.d.ts.map +1 -0
  249. package/dist/utils/color-palatte.js +24 -0
  250. package/dist/utils/configureAmbitenContext.d.ts +13 -0
  251. package/dist/utils/configureAmbitenContext.d.ts.map +1 -0
  252. package/dist/utils/configureAmbitenContext.js +35 -0
  253. package/dist/utils/detect-package-manager.d.ts +5 -0
  254. package/dist/utils/detect-package-manager.d.ts.map +1 -0
  255. package/dist/utils/detect-package-manager.js +59 -0
  256. package/dist/utils/ensureModelNameSafe.d.ts +12 -0
  257. package/dist/utils/ensureModelNameSafe.d.ts.map +1 -0
  258. package/dist/utils/ensureModelNameSafe.js +28 -0
  259. package/dist/utils/ensureRedis.d.ts +7 -0
  260. package/dist/utils/ensureRedis.d.ts.map +1 -0
  261. package/dist/utils/ensureRedis.js +40 -0
  262. package/dist/utils/error/ambitenError-handler.d.ts +24 -0
  263. package/dist/utils/error/ambitenError-handler.d.ts.map +1 -0
  264. package/dist/utils/error/ambitenError-handler.js +39 -0
  265. package/dist/utils/error/errorTypes.d.ts +27 -0
  266. package/dist/utils/error/errorTypes.d.ts.map +1 -0
  267. package/dist/utils/error/errorTypes.js +30 -0
  268. package/dist/utils/error/index.d.ts +3 -0
  269. package/dist/utils/error/index.d.ts.map +1 -0
  270. package/dist/utils/error/index.js +5 -0
  271. package/dist/utils/eventOptions.d.ts +38 -0
  272. package/dist/utils/eventOptions.d.ts.map +1 -0
  273. package/dist/utils/eventOptions.js +130 -0
  274. package/dist/utils/events.d.ts +5 -0
  275. package/dist/utils/events.d.ts.map +1 -0
  276. package/dist/utils/events.js +7 -0
  277. package/dist/utils/index.d.ts +23 -0
  278. package/dist/utils/index.d.ts.map +1 -0
  279. package/dist/utils/index.js +25 -0
  280. package/dist/utils/invalidateTenantCache.d.ts +18 -0
  281. package/dist/utils/invalidateTenantCache.d.ts.map +1 -0
  282. package/dist/utils/invalidateTenantCache.js +27 -0
  283. package/dist/utils/logger.d.ts +3 -0
  284. package/dist/utils/logger.d.ts.map +1 -0
  285. package/dist/utils/logger.js +27 -0
  286. package/dist/utils/modelLoader.d.ts +3 -0
  287. package/dist/utils/modelLoader.d.ts.map +1 -0
  288. package/dist/utils/modelLoader.js +41 -0
  289. package/dist/utils/resolveAmbitenOption.d.ts +2 -0
  290. package/dist/utils/resolveAmbitenOption.d.ts.map +1 -0
  291. package/dist/utils/resolveAmbitenOption.js +10 -0
  292. package/dist/utils/resolveRuntimeConfig.d.ts +22 -0
  293. package/dist/utils/resolveRuntimeConfig.d.ts.map +1 -0
  294. package/dist/utils/resolveRuntimeConfig.js +33 -0
  295. package/dist/utils/scaffoldLoger.d.ts +11 -0
  296. package/dist/utils/scaffoldLoger.d.ts.map +1 -0
  297. package/dist/utils/scaffoldLoger.js +68 -0
  298. package/dist/utils/symbols.d.ts +4 -0
  299. package/dist/utils/symbols.d.ts.map +1 -0
  300. package/dist/utils/symbols.js +6 -0
  301. package/dist/utils/time.d.ts +5 -0
  302. package/dist/utils/time.d.ts.map +1 -0
  303. package/dist/utils/time.js +39 -0
  304. package/package.json +180 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureModelNameSafe = ensureModelNameSafe;
4
+ /**
5
+ * Ensures that the provided model name is a valid, non-empty string.
6
+ * Throws an error if the model name is invalid.
7
+ *
8
+ * @param {string} collectionName - The collection name to validate.
9
+ * @returns {string} - The validated model name.
10
+ * @throws {Error} - If the model name is invalid.
11
+ * @example
12
+ * const safeModelName = ensureModelNameSafe('MyModel123');
13
+ */
14
+ function ensureModelNameSafe(collectionName) {
15
+ if (!collectionName || typeof collectionName !== 'string') {
16
+ throw new Error('Model name must be a non-empty string');
17
+ }
18
+ const trimmedName = collectionName.trim();
19
+ if (trimmedName.length === 0) {
20
+ throw new Error('Model name cannot be just whitespace');
21
+ }
22
+ // Optional: Enforce allowed characters (letters, numbers, underscores)
23
+ const nameRegex = /^[A-Za-z0-9_]+$/;
24
+ if (!nameRegex.test(trimmedName)) {
25
+ throw new Error('Model name must only contain letters, numbers, and underscores');
26
+ }
27
+ return trimmedName;
28
+ }
@@ -0,0 +1,7 @@
1
+ type RedisRuntimeTarget = {
2
+ publisher?: any;
3
+ subscriber?: any;
4
+ };
5
+ export declare function ensureRedis(this: RedisRuntimeTarget): Promise<RedisRuntimeTarget | undefined>;
6
+ export {};
7
+ //# sourceMappingURL=ensureRedis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureRedis.d.ts","sourceRoot":"","sources":["../../src/utils/ensureRedis.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC;AAEF,wBAAsB,WAAW,CAC/B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA+CzC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureRedis = ensureRedis;
4
+ const redis_manager_1 = require("../redis-manager");
5
+ async function ensureRedis() {
6
+ let publisher = this.publisher;
7
+ let subscriber = this.subscriber;
8
+ try {
9
+ const client = await redis_manager_1.redis.get();
10
+ if (!client) {
11
+ console.log('⚠️ Redis client not available from redis manager; skipping Redis initialization');
12
+ return this;
13
+ }
14
+ if (!client.isOpen && typeof client.connect === 'function') {
15
+ await client.connect();
16
+ }
17
+ if (!publisher) {
18
+ publisher = typeof client.duplicate === 'function' ? client.duplicate() : client;
19
+ if (publisher && typeof publisher.connect === 'function') {
20
+ await publisher.connect();
21
+ }
22
+ this.publisher = publisher;
23
+ }
24
+ if (!subscriber) {
25
+ subscriber = typeof client.duplicate === 'function' ? client.duplicate() : client;
26
+ if (subscriber && typeof subscriber.connect === 'function') {
27
+ await subscriber.connect();
28
+ }
29
+ this.subscriber = subscriber;
30
+ }
31
+ console.log('[info] Ensuring Redis connection...');
32
+ console.log('[info] Redis connection established');
33
+ return this;
34
+ }
35
+ catch (err) {
36
+ const message = err instanceof Error ? err.message : String(err);
37
+ console.log('[info] ⚠️ Redis connection skipped or failed:', message);
38
+ return this;
39
+ }
40
+ }
@@ -0,0 +1,24 @@
1
+ import { ErrorType } from './errorTypes';
2
+ export interface AmbitenErrorOptions {
3
+ type: ErrorType;
4
+ message: string;
5
+ cause?: unknown;
6
+ details?: Record<string, unknown>;
7
+ }
8
+ export declare class AmbitenError extends Error {
9
+ readonly type: ErrorType;
10
+ readonly details?: Record<string, unknown>;
11
+ constructor(options: AmbitenErrorOptions);
12
+ toJSON(): {
13
+ name: string;
14
+ type: ErrorType;
15
+ message: string;
16
+ details: Record<string, unknown> | undefined;
17
+ cause: unknown;
18
+ };
19
+ }
20
+ export declare function createAmbitenError(type: ErrorType, message: string, options?: {
21
+ cause?: unknown;
22
+ details?: Record<string, unknown>;
23
+ }): AmbitenError;
24
+ //# sourceMappingURL=ambitenError-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ambitenError-handler.d.ts","sourceRoot":"","sources":["../../../src/utils/error/ambitenError-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEtC,OAAO,EAAE,mBAAmB;IAUxC,MAAM;;;;;;;CAcP;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B,GACL,YAAY,CAOd"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AmbitenError = void 0;
4
+ exports.createAmbitenError = createAmbitenError;
5
+ class AmbitenError extends Error {
6
+ type;
7
+ details;
8
+ constructor(options) {
9
+ super(options.message, { cause: options.cause });
10
+ this.name = options.type;
11
+ this.type = options.type;
12
+ this.details = options.details;
13
+ Error.captureStackTrace?.(this, AmbitenError);
14
+ }
15
+ toJSON() {
16
+ return {
17
+ name: this.name,
18
+ type: this.type,
19
+ message: this.message,
20
+ details: this.details,
21
+ cause: this.cause instanceof Error
22
+ ? {
23
+ name: this.cause.name,
24
+ message: this.cause.message
25
+ }
26
+ : this.cause
27
+ };
28
+ }
29
+ }
30
+ exports.AmbitenError = AmbitenError;
31
+ function createAmbitenError(type, message, options = {}) {
32
+ return new AmbitenError({
33
+ type,
34
+ message,
35
+ cause: options.cause,
36
+ details: options.details
37
+ });
38
+ }
39
+ ;
@@ -0,0 +1,27 @@
1
+ export declare enum ErrorType {
2
+ AmbitenError = "AmbitenError",
3
+ AmbitenErrorType = "AmbitenErrorType",
4
+ AmbitenErrorStack = "AmbitenErrorStack",
5
+ AmbitenErrorMessage = "AmbitenErrorMessage",
6
+ AmbitenErrorCause = "AmbitenErrorCause",
7
+ AmbitenCollectionError = "CollectionError",
8
+ AmbitenParseError = "ParseError",
9
+ AmbitenBulkWriteError = "MongoBulkWriteError",
10
+ AmbitenConnectionError = "ConnectionError",
11
+ AmbitenSchemaError = "SchemaError",
12
+ AmbitenModelError = "ModelError",
13
+ INITIALIZATION_ERROR = "INITIALIZATION_ERROR",
14
+ Ambiten_ERROR = "Ambiten_ERROR",
15
+ NULL_OR_UNDEFINED = "NULL_OR_UNDEFINED",
16
+ INVALID_SCHEME_ERROR = "INVALID_SCHEME_ERROR",
17
+ CONNECTION_ERROR = "CONNECTION_ERROR",
18
+ UNEXPECTED_ERROR = "UNEXPECTED_ERROR",
19
+ SCHEMA_ERROR = "SCHEMA_ERROR",
20
+ SCHEMA_VALIDATION_ERROR = "SCHEMA_VALIDATION_ERROR",
21
+ NOT_FOUND = "NOT_FOUND",
22
+ NO_DATABASE_FOUND = "NO_DATABASE_FOUND",
23
+ NOT_FOUND_IN_CACHE = "NOT_FOUND_IN_CACHE",
24
+ VALIDATION_ERROR = "VALIDATION_ERROR",
25
+ UNIQUE_CONSTRAINT_VIOLATION = "UNIQUE_CONSTRAINT_VIOLATION"
26
+ }
27
+ //# sourceMappingURL=errorTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorTypes.d.ts","sourceRoot":"","sources":["../../../src/utils/error/errorTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IAEvC,sBAAsB,oBAAoB;IAC1C,iBAAiB,eAAe;IAChC,qBAAqB,wBAAwB;IAC7C,sBAAsB,oBAAoB;IAC1C,kBAAkB,gBAAgB;IAClC,iBAAiB,eAAe;IAEhC,oBAAoB,yBAAyB;IAC7C,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,oBAAoB,yBAAyB;IAC7C,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,uBAAuB,4BAA4B;IACnD,SAAS,cAAc;IACvB,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,2BAA2B,gCAAgC;CAC5D"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorType = void 0;
4
+ var ErrorType;
5
+ (function (ErrorType) {
6
+ ErrorType["AmbitenError"] = "AmbitenError";
7
+ ErrorType["AmbitenErrorType"] = "AmbitenErrorType";
8
+ ErrorType["AmbitenErrorStack"] = "AmbitenErrorStack";
9
+ ErrorType["AmbitenErrorMessage"] = "AmbitenErrorMessage";
10
+ ErrorType["AmbitenErrorCause"] = "AmbitenErrorCause";
11
+ ErrorType["AmbitenCollectionError"] = "CollectionError";
12
+ ErrorType["AmbitenParseError"] = "ParseError";
13
+ ErrorType["AmbitenBulkWriteError"] = "MongoBulkWriteError";
14
+ ErrorType["AmbitenConnectionError"] = "ConnectionError";
15
+ ErrorType["AmbitenSchemaError"] = "SchemaError";
16
+ ErrorType["AmbitenModelError"] = "ModelError";
17
+ ErrorType["INITIALIZATION_ERROR"] = "INITIALIZATION_ERROR";
18
+ ErrorType["Ambiten_ERROR"] = "Ambiten_ERROR";
19
+ ErrorType["NULL_OR_UNDEFINED"] = "NULL_OR_UNDEFINED";
20
+ ErrorType["INVALID_SCHEME_ERROR"] = "INVALID_SCHEME_ERROR";
21
+ ErrorType["CONNECTION_ERROR"] = "CONNECTION_ERROR";
22
+ ErrorType["UNEXPECTED_ERROR"] = "UNEXPECTED_ERROR";
23
+ ErrorType["SCHEMA_ERROR"] = "SCHEMA_ERROR";
24
+ ErrorType["SCHEMA_VALIDATION_ERROR"] = "SCHEMA_VALIDATION_ERROR";
25
+ ErrorType["NOT_FOUND"] = "NOT_FOUND";
26
+ ErrorType["NO_DATABASE_FOUND"] = "NO_DATABASE_FOUND";
27
+ ErrorType["NOT_FOUND_IN_CACHE"] = "NOT_FOUND_IN_CACHE";
28
+ ErrorType["VALIDATION_ERROR"] = "VALIDATION_ERROR";
29
+ ErrorType["UNIQUE_CONSTRAINT_VIOLATION"] = "UNIQUE_CONSTRAINT_VIOLATION";
30
+ })(ErrorType || (exports.ErrorType = ErrorType = {}));
@@ -0,0 +1,3 @@
1
+ export * from './ambitenError-handler';
2
+ export * from './errorTypes';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./ambitenError-handler"), exports);
5
+ tslib_1.__exportStar(require("./errorTypes"), exports);
@@ -0,0 +1,38 @@
1
+ import { LogLevel } from "@ambiten/logger";
2
+ import { EventType, ILogger } from "../types";
3
+ /**
4
+ * Returns the options object for the given event type.
5
+ * @param eventType - The type of the event.
6
+ * @returns The options for the event.
7
+ */
8
+ export declare function getEventOptions(eventType: EventType): Record<string, boolean>;
9
+ /**
10
+ * Returns the event type based on the options provided.
11
+ * @param options - The options for the event.
12
+ * @returns The event type, or null if not found.
13
+ */
14
+ export declare function getEventType(options: Record<string, any>): EventType | null;
15
+ /**
16
+ * Returns a human-readable description for the given event type.
17
+ * @param eventType - The type of the event.
18
+ * @returns The event description.
19
+ */
20
+ export declare function describeEvent(eventType: EventType): string;
21
+ /**
22
+ * Logs the event action using a provided logger.
23
+ * @param logger - The logger instance (must have a log method).
24
+ * @param eventType - The type of the event.
25
+ * @param message - Optional custom message.
26
+ * @param level - Log level (default: 'info').
27
+ * @param context - Optional context or payload to log.
28
+ */
29
+ export declare function logEvent(logger: ILogger, eventType: EventType, message?: string, level?: LogLevel, context?: any): void;
30
+ /**
31
+ * Logs an event with a default logger.
32
+ * @param eventType - The type of the event.
33
+ * @param message - Optional custom message.
34
+ * @param context - Optional context or payload to log.
35
+ * @param level - Log level (default: 'info').
36
+ */
37
+ export declare function logDefaultEvent(eventType: EventType, message?: string, level?: LogLevel, context?: any): EventType;
38
+ //# sourceMappingURL=eventOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventOptions.d.ts","sourceRoot":"","sources":["../../src/utils/eventOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAsC9C;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG7E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAU3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAyB1D;AAID;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACvB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,GAAE,QAAiB,EACxB,OAAO,CAAC,EAAE,GAAG,QAcb;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC9B,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,QAAQ,EAChB,OAAO,CAAC,EAAE,GAAG,aAKb"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEventOptions = getEventOptions;
4
+ exports.getEventType = getEventType;
5
+ exports.describeEvent = describeEvent;
6
+ exports.logEvent = logEvent;
7
+ exports.logDefaultEvent = logDefaultEvent;
8
+ const logger_1 = require("@ambiten/logger");
9
+ /**
10
+ * Mapping from event type to option key.
11
+ */
12
+ const eventOptionMap = {
13
+ "pre-save": "save",
14
+ "post-save": "save",
15
+ "pre-update": "update",
16
+ "post-update": "update",
17
+ "pre-delete": "delete",
18
+ "post-delete": "delete",
19
+ "aggregate": "aggregate",
20
+ "disconnect": "disconnect",
21
+ "connect": "connect",
22
+ "dropDatabase": "dropDatabase",
23
+ "createIndex": "index",
24
+ "dropIndex": "index",
25
+ "create": "create",
26
+ "find": "find",
27
+ "findOne": "find",
28
+ "insertOne": "insertOne",
29
+ "insertMany": "insertMany",
30
+ "updateOne": "updateOne",
31
+ "updateMany": "updateMany",
32
+ "deleteOne": "deleteOne",
33
+ "deleteMany": "deleteMany",
34
+ "pre-bulkWrite": "bulkWrite",
35
+ "post-bulkWrite": "bulkWrite",
36
+ "pre-insertMany": "insertMany",
37
+ "post-insertMany": "insertMany",
38
+ "pre-updateMany": "updateMany",
39
+ "post-updateMany": "updateMany",
40
+ "pre-deleteMany": "deleteMany",
41
+ "post-deleteMany": "deleteMany",
42
+ "transaction": "transaction"
43
+ };
44
+ /**
45
+ * Returns the options object for the given event type.
46
+ * @param eventType - The type of the event.
47
+ * @returns The options for the event.
48
+ */
49
+ function getEventOptions(eventType) {
50
+ const key = eventOptionMap[eventType] || eventType;
51
+ return { [key]: true };
52
+ }
53
+ /**
54
+ * Returns the event type based on the options provided.
55
+ * @param options - The options for the event.
56
+ * @returns The event type, or null if not found.
57
+ */
58
+ function getEventType(options) {
59
+ const key = Object.keys(options).find((k) => Object.values(eventOptionMap).includes(k));
60
+ if (!key)
61
+ return null;
62
+ // Find the first eventType that maps to this key
63
+ const eventType = Object.keys(eventOptionMap).find((et) => eventOptionMap[et] === key);
64
+ return eventType || null;
65
+ }
66
+ /**
67
+ * Returns a human-readable description for the given event type.
68
+ * @param eventType - The type of the event.
69
+ * @returns The event description.
70
+ */
71
+ function describeEvent(eventType) {
72
+ const descriptions = {
73
+ "pre-save": "Before Save",
74
+ "post-save": "After Save",
75
+ "pre-update": "Before Update",
76
+ "post-update": "After Update",
77
+ "pre-delete": "Before Delete",
78
+ "post-delete": "After Delete",
79
+ aggregate: "Aggregation",
80
+ disconnect: "Disconnect",
81
+ connect: "Connect",
82
+ dropDatabase: "Drop Database",
83
+ createIndex: "Create Index",
84
+ dropIndex: "Drop Index",
85
+ create: "Create",
86
+ find: "Find",
87
+ findOne: "Find One",
88
+ insertOne: "Insert One",
89
+ insertMany: "Insert Many",
90
+ updateOne: "Update One",
91
+ updateMany: "Update Many",
92
+ deleteOne: "Delete One",
93
+ deleteMany: "Delete Many",
94
+ };
95
+ return descriptions[eventType] || eventType;
96
+ }
97
+ ;
98
+ /**
99
+ * Logs the event action using a provided logger.
100
+ * @param logger - The logger instance (must have a log method).
101
+ * @param eventType - The type of the event.
102
+ * @param message - Optional custom message.
103
+ * @param level - Log level (default: 'info').
104
+ * @param context - Optional context or payload to log.
105
+ */
106
+ function logEvent(logger, eventType, message, level = 'info', context) {
107
+ const eventDesc = describeEvent(eventType);
108
+ const logMsg = message
109
+ ? `[Ambiten EVENT]: ${eventDesc}: ${message}`
110
+ : `[Ambiten] Event: ${eventDesc}`;
111
+ const log = {
112
+ level,
113
+ message: logMsg,
114
+ context
115
+ };
116
+ logger.info(`${log.level}${log.message} ${log.context ? JSON.stringify(log.context) : ''}`);
117
+ }
118
+ ;
119
+ /**
120
+ * Logs an event with a default logger.
121
+ * @param eventType - The type of the event.
122
+ * @param message - Optional custom message.
123
+ * @param context - Optional context or payload to log.
124
+ * @param level - Log level (default: 'info').
125
+ */
126
+ function logDefaultEvent(eventType, message, level, context) {
127
+ const logger = (0, logger_1.setupLogger)(); // Get the default logger instance
128
+ logEvent(logger, eventType, message, level, context);
129
+ return eventType;
130
+ }
@@ -0,0 +1,5 @@
1
+ export declare const DOCUMENT_INSERTED_EVENT = "DOCUMENT_INSERTED";
2
+ export declare const DOCUMENT_UPDATED_EVENT = "DOCUMENT_UPDATED";
3
+ export declare const DOCUMENT_DELETED_EVENT = "DOCUMENT_DELETED";
4
+ export declare const DB_CHANGE_EVENT = "DB_CHANGE_EVENT";
5
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/utils/events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DB_CHANGE_EVENT = exports.DOCUMENT_DELETED_EVENT = exports.DOCUMENT_UPDATED_EVENT = exports.DOCUMENT_INSERTED_EVENT = void 0;
4
+ exports.DOCUMENT_INSERTED_EVENT = 'DOCUMENT_INSERTED';
5
+ exports.DOCUMENT_UPDATED_EVENT = 'DOCUMENT_UPDATED';
6
+ exports.DOCUMENT_DELETED_EVENT = 'DOCUMENT_DELETED';
7
+ exports.DB_CHANGE_EVENT = 'DB_CHANGE_EVENT';
@@ -0,0 +1,23 @@
1
+ export * from './builders/createModel';
2
+ export * from './builders/schema';
3
+ export * from './ensureModelNameSafe';
4
+ export * from './ModelRegistry';
5
+ export * from './castId';
6
+ export * from './symbols';
7
+ export * from './error/ambitenError-handler';
8
+ export * from './error';
9
+ export * from './AuthUtils';
10
+ export * from './events';
11
+ export * from './cacheWithRedis';
12
+ export * from './logger';
13
+ export * from './eventOptions';
14
+ export * from './time';
15
+ export * from './modelLoader';
16
+ export * from './scaffoldLoger';
17
+ export * from './ensureRedis';
18
+ export * from './resolveAmbitenOption';
19
+ export * from './resolveRuntimeConfig';
20
+ export * from './configureAmbitenContext';
21
+ export * from './color-palatte';
22
+ export * from './detect-package-manager';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./builders/createModel"), exports);
5
+ tslib_1.__exportStar(require("./builders/schema"), exports);
6
+ tslib_1.__exportStar(require("./ensureModelNameSafe"), exports);
7
+ tslib_1.__exportStar(require("./ModelRegistry"), exports);
8
+ tslib_1.__exportStar(require("./castId"), exports);
9
+ tslib_1.__exportStar(require("./symbols"), exports);
10
+ tslib_1.__exportStar(require("./error/ambitenError-handler"), exports);
11
+ tslib_1.__exportStar(require("./error"), exports);
12
+ tslib_1.__exportStar(require("./AuthUtils"), exports);
13
+ tslib_1.__exportStar(require("./events"), exports);
14
+ tslib_1.__exportStar(require("./cacheWithRedis"), exports);
15
+ tslib_1.__exportStar(require("./logger"), exports);
16
+ tslib_1.__exportStar(require("./eventOptions"), exports);
17
+ tslib_1.__exportStar(require("./time"), exports);
18
+ tslib_1.__exportStar(require("./modelLoader"), exports);
19
+ tslib_1.__exportStar(require("./scaffoldLoger"), exports);
20
+ tslib_1.__exportStar(require("./ensureRedis"), exports);
21
+ tslib_1.__exportStar(require("./resolveAmbitenOption"), exports);
22
+ tslib_1.__exportStar(require("./resolveRuntimeConfig"), exports);
23
+ tslib_1.__exportStar(require("./configureAmbitenContext"), exports);
24
+ tslib_1.__exportStar(require("./color-palatte"), exports);
25
+ tslib_1.__exportStar(require("./detect-package-manager"), exports);
@@ -0,0 +1,18 @@
1
+ import { RedisClientType } from "redis";
2
+ import { redis } from "../redis-manager";
3
+ /**
4
+ * Invalidates the cache for a specific tenant by deleting all keys that match the tenant ID.
5
+ * Optionally, a namespace can be provided to further filter the keys.
6
+ *
7
+ * @param {RedisClientType} client - The Redis client instance.
8
+ * @param {string} tenantId - The ID of the tenant whose cache should be invalidated.
9
+ * @param {string} [namespace] - Optional namespace to filter keys.
10
+ * @example
11
+ * // Invalidate cache for tenant 'tenant123'
12
+ * invalidateTenantCache(redisClient, 'tenant123');
13
+ * @example
14
+ * // Invalidate cache for tenant 'tenant123' with namespace 'users'
15
+ * invalidateTenantCache(redisClient, 'tenant123', 'users');
16
+ */
17
+ export declare function invalidateTenantCache(client: typeof redis | RedisClientType, tenantId: string, namespace?: string): Promise<void>;
18
+ //# sourceMappingURL=invalidateTenantCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalidateTenantCache.d.ts","sourceRoot":"","sources":["../../src/utils/invalidateTenantCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,OAAO,KAAK,GAAG,eAAe,EACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,iBAWnB"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.invalidateTenantCache = invalidateTenantCache;
4
+ /**
5
+ * Invalidates the cache for a specific tenant by deleting all keys that match the tenant ID.
6
+ * Optionally, a namespace can be provided to further filter the keys.
7
+ *
8
+ * @param {RedisClientType} client - The Redis client instance.
9
+ * @param {string} tenantId - The ID of the tenant whose cache should be invalidated.
10
+ * @param {string} [namespace] - Optional namespace to filter keys.
11
+ * @example
12
+ * // Invalidate cache for tenant 'tenant123'
13
+ * invalidateTenantCache(redisClient, 'tenant123');
14
+ * @example
15
+ * // Invalidate cache for tenant 'tenant123' with namespace 'users'
16
+ * invalidateTenantCache(redisClient, 'tenant123', 'users');
17
+ */
18
+ async function invalidateTenantCache(client, tenantId, namespace) {
19
+ const pattern = namespace
20
+ ? `ambiten:${tenantId}:${namespace}:*`
21
+ : `ambiten:${tenantId}:*`;
22
+ const keys = await client.keys(pattern);
23
+ if (keys.length) {
24
+ await client.del(keys);
25
+ console.info(`🔁 Cleared ${keys.length} cache entries for ${tenantId}${namespace ? ` (${namespace})` : ''}`);
26
+ }
27
+ }
@@ -0,0 +1,3 @@
1
+ import type { AmbitenConfig } from '../types';
2
+ export declare function createBootstrapLogger(config?: AmbitenConfig['logger']): import("@ambiten/logger").ILogger;
3
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,aAAa,CAAC,QAAQ,CAE7B,qCAuBF"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBootstrapLogger = createBootstrapLogger;
4
+ const logger_1 = require("@ambiten/logger");
5
+ function createBootstrapLogger(config = {
6
+ transportConfigs: []
7
+ }) {
8
+ if (!config?.enabled) {
9
+ return (0, logger_1.setupLogger)({
10
+ level: 'warn',
11
+ colorize: false,
12
+ });
13
+ }
14
+ const loggerConfig = {
15
+ level: config.level ?? 'info',
16
+ colorize: config.colorize ?? true,
17
+ json: config.json ?? false,
18
+ transports: config.transports ?? [],
19
+ formatOptions: config.formatOptions,
20
+ hooks: config.hooks,
21
+ contextProvider: config.contextProvider,
22
+ enableMetrics: config.enableMetrics ?? { enabled: false },
23
+ circuitBreaker: config.circuitBreaker,
24
+ compress: config.compress ?? { enabled: false },
25
+ };
26
+ return (0, logger_1.setupLogger)(loggerConfig);
27
+ }
@@ -0,0 +1,3 @@
1
+ export declare function getModelFilesFromPath(dirPath: string): string[];
2
+ export declare function loadModelsFromPath(dirPath: string): Promise<any[]>;
3
+ //# sourceMappingURL=modelLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelLoader.d.ts","sourceRoot":"","sources":["../../src/utils/modelLoader.ts"],"names":[],"mappings":"AAGA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAe/D;AAKD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAkBxE"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getModelFilesFromPath = getModelFilesFromPath;
4
+ exports.loadModelsFromPath = loadModelsFromPath;
5
+ const tslib_1 = require("tslib");
6
+ const fs_1 = tslib_1.__importDefault(require("fs"));
7
+ const path_1 = tslib_1.__importDefault(require("path"));
8
+ function getModelFilesFromPath(dirPath) {
9
+ const files = [];
10
+ fs_1.default.readdirSync(dirPath).forEach((file) => {
11
+ const fullPath = path_1.default.join(dirPath, file);
12
+ const stat = fs_1.default.statSync(fullPath);
13
+ if (stat.isDirectory()) {
14
+ files.push(...getModelFilesFromPath(fullPath)); // Recursively load subfolders
15
+ }
16
+ else if (/\.(ts|js)$/.test(file)) {
17
+ files.push(fullPath);
18
+ }
19
+ });
20
+ return files;
21
+ }
22
+ ;
23
+ async function loadModelsFromPath(dirPath) {
24
+ const modelFiles = getModelFilesFromPath(dirPath);
25
+ const models = [];
26
+ for (const file of modelFiles) {
27
+ try {
28
+ const modelModule = await import(file);
29
+ if (modelModule.default) {
30
+ models.push(modelModule.default);
31
+ }
32
+ else {
33
+ console.warn(`No default export found in ${file}`);
34
+ }
35
+ }
36
+ catch (error) {
37
+ console.error(`Error loading model from ${file}:`, error);
38
+ }
39
+ }
40
+ return models;
41
+ }
@@ -0,0 +1,2 @@
1
+ export declare function resolveAmbitenOption<T>(values: Array<T | undefined>): T | undefined;
2
+ //# sourceMappingURL=resolveAmbitenOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveAmbitenOption.d.ts","sourceRoot":"","sources":["../../src/utils/resolveAmbitenOption.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAKnF"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveAmbitenOption = resolveAmbitenOption;
4
+ function resolveAmbitenOption(values) {
5
+ for (const value of values) {
6
+ if (value !== undefined)
7
+ return value;
8
+ }
9
+ return undefined;
10
+ }