@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.
- package/LICENSE +21 -0
- package/README.md +247 -0
- package/bin/bootstrap.js +26 -0
- package/dist/ambiten-cache/ambitenCache.d.ts +64 -0
- package/dist/ambiten-cache/ambitenCache.d.ts.map +1 -0
- package/dist/ambiten-cache/ambitenCache.js +127 -0
- package/dist/ambiten-cache/index.d.ts +2 -0
- package/dist/ambiten-cache/index.d.ts.map +1 -0
- package/dist/ambiten-cache/index.js +4 -0
- package/dist/browser.d.ts +32 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +37 -0
- package/dist/cli/ambiten-core-cli.d.ts +4 -0
- package/dist/cli/ambiten-core-cli.d.ts.map +1 -0
- package/dist/cli/ambiten-core-cli.js +41 -0
- package/dist/cli/buildInteractiveConfig.d.ts +4 -0
- package/dist/cli/buildInteractiveConfig.d.ts.map +1 -0
- package/dist/cli/buildInteractiveConfig.js +198 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/prompt.d.ts +10 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +48 -0
- package/dist/cli/types.d.ts +11 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/config/ambiten.config.schema.json +278 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/loadAmbitenConfig.d.ts +3 -0
- package/dist/config/loadAmbitenConfig.d.ts.map +1 -0
- package/dist/config/loadAmbitenConfig.js +131 -0
- package/dist/context/ambitenContext.d.ts +35 -0
- package/dist/context/ambitenContext.d.ts.map +1 -0
- package/dist/context/ambitenContext.js +147 -0
- package/dist/context/helpers/runManualTransaction.d.ts +3 -0
- package/dist/context/helpers/runManualTransaction.d.ts.map +1 -0
- package/dist/context/helpers/runManualTransaction.js +22 -0
- package/dist/context/helpers/transactionSession.d.ts +9 -0
- package/dist/context/helpers/transactionSession.d.ts.map +1 -0
- package/dist/context/helpers/transactionSession.js +8 -0
- package/dist/context/index.d.ts +4 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +6 -0
- package/dist/debug/debugLog.d.ts +2 -0
- package/dist/debug/debugLog.d.ts.map +1 -0
- package/dist/debug/debugLog.js +23 -0
- package/dist/debug/index.d.ts +2 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/index.js +4 -0
- package/dist/gc/ambitenGC.d.ts +49 -0
- package/dist/gc/ambitenGC.d.ts.map +1 -0
- package/dist/gc/ambitenGC.js +138 -0
- package/dist/gc/gcCron.browser.d.ts +2 -0
- package/dist/gc/gcCron.browser.d.ts.map +1 -0
- package/dist/gc/gcCron.browser.js +9 -0
- package/dist/gc/gcCron.node.d.ts +19 -0
- package/dist/gc/gcCron.node.d.ts.map +1 -0
- package/dist/gc/gcCron.node.js +47 -0
- package/dist/gc/gcManager.d.ts +37 -0
- package/dist/gc/gcManager.d.ts.map +1 -0
- package/dist/gc/gcManager.js +62 -0
- package/dist/gc/index.d.ts +5 -0
- package/dist/gc/index.d.ts.map +1 -0
- package/dist/gc/index.js +7 -0
- package/dist/graphql/ambitenGraphQL.d.ts +24 -0
- package/dist/graphql/ambitenGraphQL.d.ts.map +1 -0
- package/dist/graphql/ambitenGraphQL.js +215 -0
- package/dist/graphql/index.d.ts +2 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +4 -0
- package/dist/index-browser.js +25 -0
- package/dist/index-browser.js.map +1 -0
- package/dist/index-cli.js +26 -0
- package/dist/index-cli.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/init-cli/generate.project.d.ts +9 -0
- package/dist/init-cli/generate.project.d.ts.map +1 -0
- package/dist/init-cli/generate.project.js +38 -0
- package/dist/instrumentation/index.d.ts +3 -0
- package/dist/instrumentation/index.d.ts.map +1 -0
- package/dist/instrumentation/index.js +5 -0
- package/dist/instrumentation/measureQuery.browser.d.ts +3 -0
- package/dist/instrumentation/measureQuery.browser.d.ts.map +1 -0
- package/dist/instrumentation/measureQuery.browser.js +6 -0
- package/dist/instrumentation/measureQueryWithErrors.d.ts +11 -0
- package/dist/instrumentation/measureQueryWithErrors.d.ts.map +1 -0
- package/dist/instrumentation/measureQueryWithErrors.js +90 -0
- package/dist/lib-core/ambitenClient.d.ts +115 -0
- package/dist/lib-core/ambitenClient.d.ts.map +1 -0
- package/dist/lib-core/ambitenClient.js +537 -0
- package/dist/lib-core/ambitenModelFactory.d.ts +979 -0
- package/dist/lib-core/ambitenModelFactory.d.ts.map +1 -0
- package/dist/lib-core/ambitenModelFactory.js +3984 -0
- package/dist/lib-core/ambitenSchema.d.ts +126 -0
- package/dist/lib-core/ambitenSchema.d.ts.map +1 -0
- package/dist/lib-core/ambitenSchema.js +247 -0
- package/dist/lib-core/bootstrap/ambitenBootstrap.d.ts +38 -0
- package/dist/lib-core/bootstrap/ambitenBootstrap.d.ts.map +1 -0
- package/dist/lib-core/bootstrap/ambitenBootstrap.js +381 -0
- package/dist/lib-core/bootstrap/index.d.ts +2 -0
- package/dist/lib-core/bootstrap/index.d.ts.map +1 -0
- package/dist/lib-core/bootstrap/index.js +4 -0
- package/dist/lib-core/index.d.ts +5 -0
- package/dist/lib-core/index.d.ts.map +1 -0
- package/dist/lib-core/index.js +7 -0
- package/dist/middleware/authorization/auth.d.ts +22 -0
- package/dist/middleware/authorization/auth.d.ts.map +1 -0
- package/dist/middleware/authorization/auth.js +37 -0
- package/dist/middleware/index.d.ts +4 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +6 -0
- package/dist/middleware/rbac/rbacMiddleware.d.ts +103 -0
- package/dist/middleware/rbac/rbacMiddleware.d.ts.map +1 -0
- package/dist/middleware/rbac/rbacMiddleware.js +246 -0
- package/dist/middleware/rbac/rbacTypes.d.ts +4 -0
- package/dist/middleware/rbac/rbacTypes.d.ts.map +1 -0
- package/dist/middleware/rbac/rbacTypes.js +8 -0
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +5 -0
- package/dist/plugins/softDelete/applySoftDelete.d.ts +5 -0
- package/dist/plugins/softDelete/applySoftDelete.d.ts.map +1 -0
- package/dist/plugins/softDelete/applySoftDelete.js +139 -0
- package/dist/plugins/softDelete/types.d.ts +14 -0
- package/dist/plugins/softDelete/types.d.ts.map +1 -0
- package/dist/plugins/softDelete/types.js +2 -0
- package/dist/redis-manager/index.d.ts +2 -0
- package/dist/redis-manager/index.d.ts.map +1 -0
- package/dist/redis-manager/index.js +4 -0
- package/dist/redis-manager/redisClient.d.ts +32 -0
- package/dist/redis-manager/redisClient.d.ts.map +1 -0
- package/dist/redis-manager/redisClient.js +146 -0
- package/dist/tanancy/MultiTenantManager.d.ts +98 -0
- package/dist/tanancy/MultiTenantManager.d.ts.map +1 -0
- package/dist/tanancy/MultiTenantManager.js +190 -0
- package/dist/tanancy/TenantContext.d.ts +31 -0
- package/dist/tanancy/TenantContext.d.ts.map +1 -0
- package/dist/tanancy/TenantContext.js +59 -0
- package/dist/tanancy/TenantModelResolver.d.ts +10 -0
- package/dist/tanancy/TenantModelResolver.d.ts.map +1 -0
- package/dist/tanancy/TenantModelResolver.js +114 -0
- package/dist/tanancy/index.d.ts +5 -0
- package/dist/tanancy/index.d.ts.map +1 -0
- package/dist/tanancy/index.js +7 -0
- package/dist/tanancy/init/initMultiTenancy.d.ts +29 -0
- package/dist/tanancy/init/initMultiTenancy.d.ts.map +1 -0
- package/dist/tanancy/init/initMultiTenancy.js +62 -0
- package/dist/templates/generateDefaultConfigContent.d.ts +10 -0
- package/dist/templates/generateDefaultConfigContent.d.ts.map +1 -0
- package/dist/templates/generateDefaultConfigContent.js +108 -0
- package/dist/templates/generateGCManagerFile.d.ts +2 -0
- package/dist/templates/generateGCManagerFile.d.ts.map +1 -0
- package/dist/templates/generateGCManagerFile.js +39 -0
- package/dist/templates/generateGCRunnerFile.d.ts +2 -0
- package/dist/templates/generateGCRunnerFile.d.ts.map +1 -0
- package/dist/templates/generateGCRunnerFile.js +25 -0
- package/dist/templates/generateMainEntry.d.ts +3 -0
- package/dist/templates/generateMainEntry.d.ts.map +1 -0
- package/dist/templates/generateMainEntry.js +24 -0
- package/dist/templates/index.d.ts +6 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +8 -0
- package/dist/templates/scaffold/structureGenerator.d.ts +4 -0
- package/dist/templates/scaffold/structureGenerator.d.ts.map +1 -0
- package/dist/templates/scaffold/structureGenerator.js +193 -0
- package/dist/types/GCConfig.d.ts +7 -0
- package/dist/types/GCConfig.d.ts.map +1 -0
- package/dist/types/GCConfig.js +2 -0
- package/dist/types/ambiten-runtime-type.d.ts +24 -0
- package/dist/types/ambiten-runtime-type.d.ts.map +1 -0
- package/dist/types/ambiten-runtime-type.js +2 -0
- package/dist/types/ambiten.client.type.d.ts +136 -0
- package/dist/types/ambiten.client.type.d.ts.map +1 -0
- package/dist/types/ambiten.client.type.js +3 -0
- package/dist/types/ambiten.model.type.d.ts +135 -0
- package/dist/types/ambiten.model.type.d.ts.map +1 -0
- package/dist/types/ambiten.model.type.js +4 -0
- package/dist/types/ambitenConfig.d.ts +103 -0
- package/dist/types/ambitenConfig.d.ts.map +1 -0
- package/dist/types/ambitenConfig.js +3 -0
- package/dist/types/bootstrapClient.type.d.ts +11 -0
- package/dist/types/bootstrapClient.type.d.ts.map +1 -0
- package/dist/types/bootstrapClient.type.js +2 -0
- package/dist/types/db.provider.d.ts +66 -0
- package/dist/types/db.provider.d.ts.map +1 -0
- package/dist/types/db.provider.js +2 -0
- package/dist/types/document.d.ts +7 -0
- package/dist/types/document.d.ts.map +1 -0
- package/dist/types/document.js +2 -0
- package/dist/types/event.type.d.ts +6 -0
- package/dist/types/event.type.d.ts.map +1 -0
- package/dist/types/event.type.js +27 -0
- package/dist/types/graphql.type.d.ts +22 -0
- package/dist/types/graphql.type.d.ts.map +1 -0
- package/dist/types/graphql.type.js +2 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +17 -0
- package/dist/types/logger.types.d.ts +15 -0
- package/dist/types/logger.types.d.ts.map +1 -0
- package/dist/types/logger.types.js +3 -0
- package/dist/types/middleware/types.d.ts +28 -0
- package/dist/types/middleware/types.d.ts.map +1 -0
- package/dist/types/middleware/types.js +2 -0
- package/dist/types/result.utils.types.d.ts +7 -0
- package/dist/types/result.utils.types.d.ts.map +1 -0
- package/dist/types/result.utils.types.js +2 -0
- package/dist/types/schema.type.d.ts +23 -0
- package/dist/types/schema.type.d.ts.map +1 -0
- package/dist/types/schema.type.js +10 -0
- package/dist/types/user.type.d.ts +11 -0
- package/dist/types/user.type.d.ts.map +1 -0
- package/dist/types/user.type.js +2 -0
- package/dist/utils/AuthUtils.d.ts +15 -0
- package/dist/utils/AuthUtils.d.ts.map +1 -0
- package/dist/utils/AuthUtils.js +26 -0
- package/dist/utils/ModelRegistry.d.ts +15 -0
- package/dist/utils/ModelRegistry.d.ts.map +1 -0
- package/dist/utils/ModelRegistry.js +35 -0
- package/dist/utils/banner.d.ts +2 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +20 -0
- package/dist/utils/builders/createModel.d.ts +37 -0
- package/dist/utils/builders/createModel.d.ts.map +1 -0
- package/dist/utils/builders/createModel.js +38 -0
- package/dist/utils/builders/getTenantDb.d.ts +12 -0
- package/dist/utils/builders/getTenantDb.d.ts.map +1 -0
- package/dist/utils/builders/getTenantDb.js +25 -0
- package/dist/utils/builders/index.d.ts +4 -0
- package/dist/utils/builders/index.d.ts.map +1 -0
- package/dist/utils/builders/index.js +6 -0
- package/dist/utils/builders/schema.d.ts +22 -0
- package/dist/utils/builders/schema.d.ts.map +1 -0
- package/dist/utils/builders/schema.js +26 -0
- package/dist/utils/cacheWithRedis.d.ts +27 -0
- package/dist/utils/cacheWithRedis.d.ts.map +1 -0
- package/dist/utils/cacheWithRedis.js +22 -0
- package/dist/utils/castId.d.ts +5 -0
- package/dist/utils/castId.d.ts.map +1 -0
- package/dist/utils/castId.js +52 -0
- package/dist/utils/color-palatte.d.ts +4 -0
- package/dist/utils/color-palatte.d.ts.map +1 -0
- package/dist/utils/color-palatte.js +24 -0
- package/dist/utils/configureAmbitenContext.d.ts +13 -0
- package/dist/utils/configureAmbitenContext.d.ts.map +1 -0
- package/dist/utils/configureAmbitenContext.js +35 -0
- package/dist/utils/detect-package-manager.d.ts +5 -0
- package/dist/utils/detect-package-manager.d.ts.map +1 -0
- package/dist/utils/detect-package-manager.js +59 -0
- package/dist/utils/ensureModelNameSafe.d.ts +12 -0
- package/dist/utils/ensureModelNameSafe.d.ts.map +1 -0
- package/dist/utils/ensureModelNameSafe.js +28 -0
- package/dist/utils/ensureRedis.d.ts +7 -0
- package/dist/utils/ensureRedis.d.ts.map +1 -0
- package/dist/utils/ensureRedis.js +40 -0
- package/dist/utils/error/ambitenError-handler.d.ts +24 -0
- package/dist/utils/error/ambitenError-handler.d.ts.map +1 -0
- package/dist/utils/error/ambitenError-handler.js +39 -0
- package/dist/utils/error/errorTypes.d.ts +27 -0
- package/dist/utils/error/errorTypes.d.ts.map +1 -0
- package/dist/utils/error/errorTypes.js +30 -0
- package/dist/utils/error/index.d.ts +3 -0
- package/dist/utils/error/index.d.ts.map +1 -0
- package/dist/utils/error/index.js +5 -0
- package/dist/utils/eventOptions.d.ts +38 -0
- package/dist/utils/eventOptions.d.ts.map +1 -0
- package/dist/utils/eventOptions.js +130 -0
- package/dist/utils/events.d.ts +5 -0
- package/dist/utils/events.d.ts.map +1 -0
- package/dist/utils/events.js +7 -0
- package/dist/utils/index.d.ts +23 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +25 -0
- package/dist/utils/invalidateTenantCache.d.ts +18 -0
- package/dist/utils/invalidateTenantCache.d.ts.map +1 -0
- package/dist/utils/invalidateTenantCache.js +27 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +27 -0
- package/dist/utils/modelLoader.d.ts +3 -0
- package/dist/utils/modelLoader.d.ts.map +1 -0
- package/dist/utils/modelLoader.js +41 -0
- package/dist/utils/resolveAmbitenOption.d.ts +2 -0
- package/dist/utils/resolveAmbitenOption.d.ts.map +1 -0
- package/dist/utils/resolveAmbitenOption.js +10 -0
- package/dist/utils/resolveRuntimeConfig.d.ts +22 -0
- package/dist/utils/resolveRuntimeConfig.d.ts.map +1 -0
- package/dist/utils/resolveRuntimeConfig.js +33 -0
- package/dist/utils/scaffoldLoger.d.ts +11 -0
- package/dist/utils/scaffoldLoger.d.ts.map +1 -0
- package/dist/utils/scaffoldLoger.js +68 -0
- package/dist/utils/symbols.d.ts +4 -0
- package/dist/utils/symbols.d.ts.map +1 -0
- package/dist/utils/symbols.js +6 -0
- package/dist/utils/time.d.ts +5 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +39 -0
- 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 @@
|
|
|
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 @@
|
|
|
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,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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|