@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,135 @@
|
|
|
1
|
+
import { AnyBulkWriteOperation, ClientSession, Collection, Filter, UpdateFilter } from "mongodb";
|
|
2
|
+
import { AmbitenClient, AmbitenSchema } from "../lib-core";
|
|
3
|
+
import { Document } from "./document";
|
|
4
|
+
import { DbProvider, ModelContext } from "./db.provider";
|
|
5
|
+
import { AmbitenMiddlewareOperation } from "./middleware/types";
|
|
6
|
+
/**
|
|
7
|
+
* Options for configuring an Ambiten model.
|
|
8
|
+
* @template T - The type of the document in the model.
|
|
9
|
+
*/
|
|
10
|
+
export interface AmbitenModelOptions<T extends Document = any> {
|
|
11
|
+
collectionName: string;
|
|
12
|
+
schema?: AmbitenSchema<T>;
|
|
13
|
+
Ambiten?: AmbitenClient;
|
|
14
|
+
provider?: DbProvider;
|
|
15
|
+
ctx?: ModelContext;
|
|
16
|
+
collection?: Collection<T>;
|
|
17
|
+
gcConfig?: {
|
|
18
|
+
ttl: number;
|
|
19
|
+
indexName?: string;
|
|
20
|
+
createdAtField?: string;
|
|
21
|
+
updatedAtField?: string;
|
|
22
|
+
enableGC?: boolean;
|
|
23
|
+
field?: string;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Represents a relationship between collections in MongoDB.
|
|
28
|
+
* @template T - The type of the document in the collection.
|
|
29
|
+
*/
|
|
30
|
+
export interface Relationship<T = any> {
|
|
31
|
+
/**
|
|
32
|
+
* The name of the referenced collection.
|
|
33
|
+
*/
|
|
34
|
+
ref: string;
|
|
35
|
+
/**
|
|
36
|
+
* The field in the current document that holds the reference.
|
|
37
|
+
*/
|
|
38
|
+
localField: keyof T;
|
|
39
|
+
}
|
|
40
|
+
export interface QueryCacheOptions {
|
|
41
|
+
enabled?: boolean;
|
|
42
|
+
ttl?: number;
|
|
43
|
+
tenantId: string;
|
|
44
|
+
tags?: string[];
|
|
45
|
+
namespace?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface QueryOptions {
|
|
48
|
+
cache?: boolean | QueryCacheOptions;
|
|
49
|
+
session?: ClientSession;
|
|
50
|
+
projection?: Record<string, 0 | 1>;
|
|
51
|
+
sort?: Record<string, 1 | -1>;
|
|
52
|
+
limit?: number;
|
|
53
|
+
skip?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface AmbitenHookPayload<T extends Document = Document> {
|
|
56
|
+
operation: AmbitenMiddlewareOperation;
|
|
57
|
+
collectionName: string;
|
|
58
|
+
tenantId?: string;
|
|
59
|
+
dbName?: string;
|
|
60
|
+
session?: ClientSession;
|
|
61
|
+
filter?: Filter<T>;
|
|
62
|
+
update?: UpdateFilter<T>;
|
|
63
|
+
doc?: Partial<T>;
|
|
64
|
+
docs?: Partial<T>[];
|
|
65
|
+
pipeline?: object[];
|
|
66
|
+
bulkUpdates?: {
|
|
67
|
+
filter: Partial<T>;
|
|
68
|
+
update: UpdateFilter<T>;
|
|
69
|
+
}[];
|
|
70
|
+
bulkOperations?: AnyBulkWriteOperation<T>[];
|
|
71
|
+
result?: unknown;
|
|
72
|
+
meta?: AmbitenOperationMeta;
|
|
73
|
+
}
|
|
74
|
+
export interface AmbitenOperationMeta {
|
|
75
|
+
/**
|
|
76
|
+
* Indicates the operation is executing inside a transaction boundary.
|
|
77
|
+
*/
|
|
78
|
+
transactional?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Indicates the operation is security-sensitive or explicitly access-controlled.
|
|
81
|
+
*/
|
|
82
|
+
secure?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Indicates the operation is part of a restore flow.
|
|
85
|
+
*/
|
|
86
|
+
restore?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Indicates the operation is performing a soft delete rather than a hard delete.
|
|
89
|
+
*/
|
|
90
|
+
softDelete?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Indicates the operation is part of garbage collection.
|
|
93
|
+
*/
|
|
94
|
+
gc?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Indicates the operation is a bulk write or bulk-style mutation.
|
|
97
|
+
*/
|
|
98
|
+
bulkWrite?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Indicates the operation is creating or handling a stream.
|
|
101
|
+
*/
|
|
102
|
+
streaming?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Indicates the operation result came from cache.
|
|
105
|
+
*/
|
|
106
|
+
cacheHit?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* User identifier associated with the operation, when available.
|
|
109
|
+
*/
|
|
110
|
+
userId?: string;
|
|
111
|
+
/**
|
|
112
|
+
* User role associated with the operation, when available.
|
|
113
|
+
*/
|
|
114
|
+
userRole?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Optional tenant policy or compliance classification.
|
|
117
|
+
* Reserved for future Sovereign Shield integration.
|
|
118
|
+
*/
|
|
119
|
+
policy?: string;
|
|
120
|
+
/**
|
|
121
|
+
* Optional region or sovereignty zone identifier.
|
|
122
|
+
* Reserved for future geofencing and data-governance features.
|
|
123
|
+
*/
|
|
124
|
+
region?: string;
|
|
125
|
+
/**
|
|
126
|
+
* Optional evidence or trace classification tag.
|
|
127
|
+
* Reserved for future evidence collection and audit systems.
|
|
128
|
+
*/
|
|
129
|
+
trace?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Free-form extension point for future enterprise features.
|
|
132
|
+
*/
|
|
133
|
+
extra?: Record<string, unknown>;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=ambiten.model.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambiten.model.type.d.ts","sourceRoot":"","sources":["../../src/types/ambiten.model.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { LoggerConfig } from '@ambiten/logger';
|
|
2
|
+
import { InitMultiTenancyOptions } from '../tanancy';
|
|
3
|
+
import { AmbitenModelOptions } from './ambiten.model.type';
|
|
4
|
+
import { SchemaDefinition } from './schema.type';
|
|
5
|
+
import { Document } from './document';
|
|
6
|
+
import { BootstrapClient } from './bootstrapClient.type';
|
|
7
|
+
export interface AmbitenLoggerSettings extends LoggerConfig {
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
logger?: LoggerConfig['logger'];
|
|
10
|
+
logLevel?: LoggerConfig['level'];
|
|
11
|
+
useColor?: boolean;
|
|
12
|
+
colorize?: LoggerConfig['colorize'];
|
|
13
|
+
transportConfigs: LoggerConfig['transportConfigs'];
|
|
14
|
+
transports?: LoggerConfig['transports'];
|
|
15
|
+
json?: boolean;
|
|
16
|
+
formatOptions?: LoggerConfig['formatOptions'];
|
|
17
|
+
excludedSources?: LoggerConfig['excludedSources'];
|
|
18
|
+
hooks?: LoggerConfig['hooks'];
|
|
19
|
+
enrichMetadata?: LoggerConfig['enrichMetadata'];
|
|
20
|
+
enableMetrics?: LoggerConfig['enableMetrics'];
|
|
21
|
+
shouldLog?: LoggerConfig['shouldLog'];
|
|
22
|
+
circuitBreaker?: LoggerConfig['circuitBreaker'];
|
|
23
|
+
compress?: LoggerConfig['compress'];
|
|
24
|
+
}
|
|
25
|
+
export interface AmbitenConfig {
|
|
26
|
+
projectName?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Optional externally provided bootstrap client/provider.
|
|
29
|
+
* If provided, bootstrap uses this instead of creating one from connection config.
|
|
30
|
+
*/
|
|
31
|
+
provider?: BootstrapClient;
|
|
32
|
+
mongoClient?: BootstrapClient;
|
|
33
|
+
/**
|
|
34
|
+
* Connection settings used when no provider/mongoClient is supplied.
|
|
35
|
+
*/
|
|
36
|
+
connection?: {
|
|
37
|
+
uri: string;
|
|
38
|
+
options?: Record<string, any>;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Optional default model/schema bootstrap config.
|
|
42
|
+
* These are runtime-facing defaults, not request resolver functions.
|
|
43
|
+
*/
|
|
44
|
+
model?: AmbitenModelOptions;
|
|
45
|
+
schema?: SchemaDefinition<Document>;
|
|
46
|
+
/**
|
|
47
|
+
* Multi-tenant runtime configuration.
|
|
48
|
+
*/
|
|
49
|
+
multiTenant?: {
|
|
50
|
+
enabled?: boolean;
|
|
51
|
+
headerKey?: string;
|
|
52
|
+
tenants?: Record<string, string>;
|
|
53
|
+
initOptions?: InitMultiTenancyOptions;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Logger configuration.
|
|
57
|
+
*/
|
|
58
|
+
logger?: AmbitenLoggerSettings;
|
|
59
|
+
/**
|
|
60
|
+
* Optional GraphQL auto-generation/bootstrap feature.
|
|
61
|
+
* Primarily useful for playgrounds, prototyping, and generated GraphQL flows.
|
|
62
|
+
*/
|
|
63
|
+
graphql?: {
|
|
64
|
+
enabled?: boolean;
|
|
65
|
+
subscriptions?: boolean;
|
|
66
|
+
playground?: boolean;
|
|
67
|
+
schemaOutputPath?: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Optional feature paths and integrations.
|
|
71
|
+
* These are especially useful for generated project structures and bootstrap discovery.
|
|
72
|
+
*/
|
|
73
|
+
features?: {
|
|
74
|
+
models?: string;
|
|
75
|
+
schemas?: string;
|
|
76
|
+
typeDefs?: string;
|
|
77
|
+
resolvers?: Record<string, any> | Record<string, any>[];
|
|
78
|
+
useRedisCache?: boolean;
|
|
79
|
+
redisUri?: string;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Advanced runtime configuration.
|
|
83
|
+
*/
|
|
84
|
+
advanced?: {
|
|
85
|
+
autoInstall?: boolean;
|
|
86
|
+
circuitBreaker?: {
|
|
87
|
+
enabled?: boolean;
|
|
88
|
+
retryAttempts?: number;
|
|
89
|
+
};
|
|
90
|
+
garbageCollector?: {
|
|
91
|
+
enabled?: boolean;
|
|
92
|
+
retentionPeriod?: number | string;
|
|
93
|
+
logResults?: boolean;
|
|
94
|
+
};
|
|
95
|
+
gcCron?: string;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Optional config metadata/versioning.
|
|
99
|
+
* Useful for generated config files and forward compatibility.
|
|
100
|
+
*/
|
|
101
|
+
configVersion?: string;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=ambitenConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ambitenConfig.d.ts","sourceRoot":"","sources":["../../src/types/ambitenConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Collection, MongoClient, ClientSession } from 'mongodb';
|
|
2
|
+
import { Document } from './document';
|
|
3
|
+
import { DbProvider, ModelContext } from './db.provider';
|
|
4
|
+
export interface BootstrapClient extends DbProvider {
|
|
5
|
+
connect(): Promise<this>;
|
|
6
|
+
close(): Promise<void>;
|
|
7
|
+
client(ctx?: ModelContext): Promise<MongoClient>;
|
|
8
|
+
startSession(ctx?: ModelContext): Promise<ClientSession>;
|
|
9
|
+
collection<T extends Document = Document>(collectionName: string, ctx?: ModelContext): Promise<Collection<T>>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=bootstrapClient.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrapClient.type.d.ts","sourceRoot":"","sources":["../../src/types/bootstrapClient.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzD,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACzD,UAAU,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EACtC,cAAc,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3B"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ClientSession, Db, MongoClient } from "mongodb";
|
|
2
|
+
import { AmbitenConfig } from "./ambitenConfig";
|
|
3
|
+
import { AmbitenOperationMeta } from "./ambiten.model.type";
|
|
4
|
+
export type ModelContext = {
|
|
5
|
+
tenantId?: string;
|
|
6
|
+
dbName?: string;
|
|
7
|
+
db?: Db;
|
|
8
|
+
collectionName?: string;
|
|
9
|
+
config?: AmbitenConfig;
|
|
10
|
+
session?: ClientSession;
|
|
11
|
+
withDeleted?: boolean;
|
|
12
|
+
onlyDeleted?: boolean;
|
|
13
|
+
hardDelete?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export interface DbProvider {
|
|
16
|
+
db(ctx?: ModelContext): Promise<Db>;
|
|
17
|
+
client?(ctx?: ModelContext): Promise<MongoClient>;
|
|
18
|
+
startSession?(ctx?: ModelContext): Promise<ClientSession>;
|
|
19
|
+
}
|
|
20
|
+
export interface AmbitenLoggerLike {
|
|
21
|
+
info?: (message: string, meta?: Record<string, any>) => void;
|
|
22
|
+
warn?: (message: string, meta?: Record<string, any>) => void;
|
|
23
|
+
error?: (message: string, meta?: Record<string, any>) => void;
|
|
24
|
+
debug?: (message: string, meta?: Record<string, any>) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface AmbitenContextState {
|
|
27
|
+
tenantId?: string;
|
|
28
|
+
requestId?: string;
|
|
29
|
+
dbName?: string;
|
|
30
|
+
collectionName?: string;
|
|
31
|
+
session?: ClientSession;
|
|
32
|
+
loggerMeta?: Record<string, any>;
|
|
33
|
+
logger?: AmbitenLoggerLike;
|
|
34
|
+
debug?: boolean;
|
|
35
|
+
meta?: AmbitenOperationMeta;
|
|
36
|
+
observer?: AmbitenQueryObserver;
|
|
37
|
+
budget?: AmbitenQuotaBudgetInput;
|
|
38
|
+
}
|
|
39
|
+
export interface AmbitenQueryObserver {
|
|
40
|
+
onQuery?: (payload: Record<string, any>) => void | Promise<void>;
|
|
41
|
+
onQueryError?: (payload: Record<string, any>) => void | Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
export interface AmbitenQuotaBudgetInput {
|
|
44
|
+
maxQueries?: number;
|
|
45
|
+
queriesExecuted?: number;
|
|
46
|
+
totalTimeMs?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface AmbitenQuotaBudget {
|
|
49
|
+
maxQueries: number;
|
|
50
|
+
queriesExecuted: number;
|
|
51
|
+
totalTimeMs: number;
|
|
52
|
+
}
|
|
53
|
+
export interface AmbitenCacheStats {
|
|
54
|
+
totalKeys: number;
|
|
55
|
+
tenantKeys?: number;
|
|
56
|
+
memoryUsageMb: number;
|
|
57
|
+
memoryUsageBytes: number;
|
|
58
|
+
hitRate: number;
|
|
59
|
+
missRate: number;
|
|
60
|
+
totalHits: number;
|
|
61
|
+
totalMisses: number;
|
|
62
|
+
totalRequests: number;
|
|
63
|
+
tenantId: string | null;
|
|
64
|
+
timestamp: string;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=db.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.provider.d.ts","sourceRoot":"","sources":["../../src/types/db.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/types/document.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents the types of events supported by Ambiten.
|
|
3
|
+
*/
|
|
4
|
+
export type EventType = 'pre-save' | 'post-save' | 'pre-update' | 'post-update' | 'pre-delete' | 'post-delete' | 'aggregate' | 'disconnect' | 'connect' | 'dropDatabase' | 'createIndex' | 'dropIndex' | 'create' | 'find' | 'findOne' | 'insertOne' | 'insertMany' | 'updateOne' | 'updateMany' | 'deleteOne' | 'deleteMany' | 'pre-bulkWrite' | 'post-bulkWrite' | 'pre-insertMany' | 'post-insertMany' | 'pre-updateMany' | 'post-updateMany' | 'pre-deleteMany' | 'post-deleteMany' | 'transaction';
|
|
5
|
+
export declare const eventTypes: EventType[];
|
|
6
|
+
//# sourceMappingURL=event.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.type.d.ts","sourceRoot":"","sources":["../../src/types/event.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAClB,UAAU,GACV,WAAW,GACX,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,aAAa,GACb,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,aAAa,GACb,WAAW,GACX,QAAQ,GACR,MAAM,GACN,SAAS,GACT,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,CAAA;AAEhB,eAAO,MAAM,UAAU,EAAE,SAAS,EAuBjC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eventTypes = void 0;
|
|
4
|
+
exports.eventTypes = [
|
|
5
|
+
'pre-save',
|
|
6
|
+
'post-save',
|
|
7
|
+
'pre-update',
|
|
8
|
+
'post-update',
|
|
9
|
+
'pre-delete',
|
|
10
|
+
'post-delete',
|
|
11
|
+
'aggregate',
|
|
12
|
+
'disconnect',
|
|
13
|
+
'connect',
|
|
14
|
+
'dropDatabase',
|
|
15
|
+
'createIndex',
|
|
16
|
+
'dropIndex',
|
|
17
|
+
'create',
|
|
18
|
+
'find',
|
|
19
|
+
'findOne',
|
|
20
|
+
'insertOne',
|
|
21
|
+
'insertMany',
|
|
22
|
+
'updateOne',
|
|
23
|
+
'updateMany',
|
|
24
|
+
'deleteOne',
|
|
25
|
+
'deleteMany',
|
|
26
|
+
'transaction'
|
|
27
|
+
];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BootstrapClient } from './bootstrapClient.type';
|
|
2
|
+
export type ResolverObject = Record<string, any>;
|
|
3
|
+
export interface AmbitenGraphQLOptions {
|
|
4
|
+
useRedis?: boolean;
|
|
5
|
+
customTypeDefs?: string[];
|
|
6
|
+
customResolvers?: ResolverObject[];
|
|
7
|
+
provider: BootstrapClient;
|
|
8
|
+
}
|
|
9
|
+
export interface AmbitenGraphQLUser {
|
|
10
|
+
id?: string;
|
|
11
|
+
role?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AmbitenGraphQLContext {
|
|
14
|
+
tenantId?: string;
|
|
15
|
+
requestId?: string;
|
|
16
|
+
dbName?: string;
|
|
17
|
+
collectionName?: string;
|
|
18
|
+
session?: import('mongodb').ClientSession;
|
|
19
|
+
user?: AmbitenGraphQLUser;
|
|
20
|
+
provider: BootstrapClient;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=graphql.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.type.d.ts","sourceRoot":"","sources":["../../src/types/graphql.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,aAAa,CAAC;IAC1C,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,eAAe,CAAC;CAC3B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * from './ambitenConfig';
|
|
2
|
+
export * from './schema.type';
|
|
3
|
+
export * from './ambiten.model.type';
|
|
4
|
+
export * from './user.type';
|
|
5
|
+
export * from './ambiten.client.type';
|
|
6
|
+
export * from './document';
|
|
7
|
+
export * from './event.type';
|
|
8
|
+
export * from './graphql.type';
|
|
9
|
+
export * from './GCConfig';
|
|
10
|
+
export * from './logger.types';
|
|
11
|
+
export * from './db.provider';
|
|
12
|
+
export * from './result.utils.types';
|
|
13
|
+
export * from './bootstrapClient.type';
|
|
14
|
+
export * from './middleware/types';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./ambitenConfig"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./schema.type"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./ambiten.model.type"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./user.type"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./ambiten.client.type"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./document"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./event.type"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./graphql.type"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./GCConfig"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./logger.types"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./db.provider"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./result.utils.types"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./bootstrapClient.type"), exports);
|
|
17
|
+
tslib_1.__exportStar(require("./middleware/types"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface NoOpLogger {
|
|
2
|
+
info: (message: string) => void;
|
|
3
|
+
warn: (message: string) => void;
|
|
4
|
+
error: (message: string) => void;
|
|
5
|
+
fatal: (message: string) => void;
|
|
6
|
+
debug: (message: string) => void;
|
|
7
|
+
}
|
|
8
|
+
export interface ILogger {
|
|
9
|
+
info(message: string): void;
|
|
10
|
+
warn(message: string): void;
|
|
11
|
+
error(message: string): void;
|
|
12
|
+
fatal(message: string): void;
|
|
13
|
+
debug(message: string): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=logger.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.types.d.ts","sourceRoot":"","sources":["../../src/types/logger.types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ClientSession, Filter, UpdateFilter, Document, AnyBulkWriteOperation } from 'mongodb';
|
|
2
|
+
import { AmbitenOperationMeta } from '../ambiten.model.type';
|
|
3
|
+
export type AmbitenMiddlewareOperation = 'find' | 'findOne' | 'create' | 'updateOne' | 'updateMany' | 'deleteOne' | 'deleteMany' | 'bulkInsert' | 'bulkWrite' | 'bulkUpdate' | 'aggregate' | 'findOneAndUpdate' | 'findOneAndDelete' | 'findOneAndReplace' | 'findOneAndUpsert' | 'restoreOne' | 'restoreMany' | 'runGC';
|
|
4
|
+
export interface AmbitenMiddlewareContext<T extends Document = Document> {
|
|
5
|
+
operation: AmbitenMiddlewareOperation;
|
|
6
|
+
modelName?: string;
|
|
7
|
+
collectionName: string;
|
|
8
|
+
tenantId?: string;
|
|
9
|
+
dbName?: string;
|
|
10
|
+
session?: ClientSession;
|
|
11
|
+
filter?: Filter<T>;
|
|
12
|
+
update?: UpdateFilter<T>;
|
|
13
|
+
doc?: Partial<T>;
|
|
14
|
+
docs?: Partial<T>[];
|
|
15
|
+
pipeline?: object[];
|
|
16
|
+
bulkUpdates?: {
|
|
17
|
+
filter: Partial<T>;
|
|
18
|
+
update: UpdateFilter<T>;
|
|
19
|
+
}[];
|
|
20
|
+
bulkOperations?: AnyBulkWriteOperation<T>[];
|
|
21
|
+
withDeleted?: boolean;
|
|
22
|
+
onlyDeleted?: boolean;
|
|
23
|
+
hardDelete?: boolean;
|
|
24
|
+
result?: unknown;
|
|
25
|
+
meta?: AmbitenOperationMeta;
|
|
26
|
+
}
|
|
27
|
+
export type AmbitenMiddlewareHandler<T extends Document = Document> = (ctx: AmbitenMiddlewareContext<T>) => Promise<void> | void;
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/middleware/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,MAAM,0BAA0B,GAClC,MAAM,GACN,SAAS,GACT,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,GACX,kBAAkB,GAClB,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,YAAY,GACZ,aAAa,GACb,OAAO,CAAC;AAEZ,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACrE,SAAS,EAAE,0BAA0B,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;KAAE,EAAE,CAAC;IAChE,cAAc,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAChE,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Document, EnhancedOmit, WithId } from "mongodb";
|
|
2
|
+
export type MongoDoc<T extends Document> = WithId<T>;
|
|
3
|
+
export type ModelResult<T extends Document> = EnhancedOmit<WithId<T>, "_id"> & {
|
|
4
|
+
_id: string;
|
|
5
|
+
};
|
|
6
|
+
export type ModelResultArray<T extends Document> = ModelResult<T>[];
|
|
7
|
+
//# sourceMappingURL=result.utils.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.utils.types.d.ts","sourceRoot":"","sources":["../../src/types/result.utils.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAY,MAAM,EAAE,MAAM,SAAS,CAAC;AAExE,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAErD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,QAAQ,IACxC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ObjectId } from "mongodb";
|
|
2
|
+
/**
|
|
3
|
+
* Represents the schema definition for a document.
|
|
4
|
+
* @template T - The type of the document.
|
|
5
|
+
*/
|
|
6
|
+
export type SchemaDefinition<T> = {
|
|
7
|
+
[key: string]: Record<keyof T, any>;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* MongoDB schema types.
|
|
11
|
+
*/
|
|
12
|
+
export declare const SchemaType: {
|
|
13
|
+
readonly Types: {
|
|
14
|
+
readonly ObjectId: typeof ObjectId;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Represents a hook function for middleware.
|
|
19
|
+
* @param {any} data - The data passed to the hook.
|
|
20
|
+
* @returns {Promise<void>} A promise that resolves when the hook is executed.
|
|
21
|
+
*/
|
|
22
|
+
export type HookFunction = (data: any) => Promise<void>;
|
|
23
|
+
//# sourceMappingURL=schema.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.type.d.ts","sourceRoot":"","sources":["../../src/types/schema.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;CACpC,CAAC;AAGF;;GAEG;AACH,eAAO,MAAM,UAAU;;;;CAEb,CAAC;AAKX;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.type.d.ts","sourceRoot":"","sources":["../../src/types/user.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG;IAClB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;CACvB,CAAC"}
|