mongodb-dynamic-api 4.2.1 → 4.4.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/CHANGELOG.md +31 -0
- package/package.json +1 -1
- package/src/decorators/disable-cache.decorator.d.ts +3 -0
- package/src/decorators/disable-cache.decorator.js +9 -0
- package/src/decorators/disable-cache.decorator.js.map +1 -0
- package/src/decorators/index.d.ts +1 -0
- package/src/decorators/index.js +1 -0
- package/src/decorators/index.js.map +1 -1
- package/src/dynamic-api.module.js +6 -0
- package/src/dynamic-api.module.js.map +1 -1
- package/src/helpers/mixin-data.helper.d.ts +2 -1
- package/src/helpers/mixin-data.helper.js +12 -1
- package/src/helpers/mixin-data.helper.js.map +1 -1
- package/src/interceptors/dynamic-api-cache.interceptor.d.ts +1 -0
- package/src/interceptors/dynamic-api-cache.interceptor.js +19 -3
- package/src/interceptors/dynamic-api-cache.interceptor.js.map +1 -1
- package/src/interfaces/dynamic-api-controller-options.interface.d.ts +1 -0
- package/src/interfaces/dynamic-api-route-config.interface.d.ts +5 -4
- package/src/interfaces/dynamic-api-service-before-save-callback.interface.d.ts +47 -5
- package/src/interfaces/dynamic-api-service-callback.interface.d.ts +5 -3
- package/src/modules/auth/auth.helper.d.ts +2 -2
- package/src/modules/auth/auth.helper.js.map +1 -1
- package/src/modules/auth/interfaces/auth-options.interface.d.ts +9 -9
- package/src/modules/auth/services/base-auth.service.d.ts +7 -7
- package/src/routes/aggregate/aggregate-controller.mixin.js +3 -1
- package/src/routes/aggregate/aggregate-controller.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate.helper.d.ts +2 -2
- package/src/routes/aggregate/aggregate.helper.js.map +1 -1
- package/src/routes/aggregate/base-aggregate.service.d.ts +2 -2
- package/src/routes/cache-purge/cache-purge.helper.d.ts +8 -0
- package/src/routes/cache-purge/cache-purge.helper.js +74 -0
- package/src/routes/cache-purge/cache-purge.helper.js.map +1 -0
- package/src/routes/cache-purge/index.d.ts +1 -0
- package/src/routes/cache-purge/index.js +18 -0
- package/src/routes/cache-purge/index.js.map +1 -0
- package/src/routes/create-many/base-create-many.service.d.ts +3 -2
- package/src/routes/create-many/base-create-many.service.js +5 -1
- package/src/routes/create-many/base-create-many.service.js.map +1 -1
- package/src/routes/create-many/create-many.helper.d.ts +2 -2
- package/src/routes/create-many/create-many.helper.js +2 -1
- package/src/routes/create-many/create-many.helper.js.map +1 -1
- package/src/routes/create-many/create-many.module.js +1 -1
- package/src/routes/create-many/create-many.module.js.map +1 -1
- package/src/routes/create-one/base-create-one.service.d.ts +3 -3
- package/src/routes/create-one/create-one.helper.d.ts +2 -2
- package/src/routes/create-one/create-one.helper.js.map +1 -1
- package/src/routes/create-one/create-one.module.js.map +1 -1
- package/src/routes/delete-many/base-delete-many.service.d.ts +3 -0
- package/src/routes/delete-many/base-delete-many.service.js +13 -0
- package/src/routes/delete-many/base-delete-many.service.js.map +1 -1
- package/src/routes/delete-many/delete-many.helper.d.ts +2 -2
- package/src/routes/delete-many/delete-many.helper.js +3 -1
- package/src/routes/delete-many/delete-many.helper.js.map +1 -1
- package/src/routes/delete-many/delete-many.module.js +1 -1
- package/src/routes/delete-many/delete-many.module.js.map +1 -1
- package/src/routes/delete-one/base-delete-one.service.d.ts +3 -0
- package/src/routes/delete-one/base-delete-one.service.js +13 -0
- package/src/routes/delete-one/base-delete-one.service.js.map +1 -1
- package/src/routes/delete-one/delete-one.helper.d.ts +2 -2
- package/src/routes/delete-one/delete-one.helper.js +3 -1
- package/src/routes/delete-one/delete-one.helper.js.map +1 -1
- package/src/routes/delete-one/delete-one.module.js +1 -1
- package/src/routes/delete-one/delete-one.module.js.map +1 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.d.ts +3 -2
- package/src/routes/duplicate-many/base-duplicate-many.service.js +7 -2
- package/src/routes/duplicate-many/base-duplicate-many.service.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many.helper.d.ts +2 -2
- package/src/routes/duplicate-many/duplicate-many.helper.js +2 -1
- package/src/routes/duplicate-many/duplicate-many.helper.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many.module.js +1 -1
- package/src/routes/duplicate-many/duplicate-many.module.js.map +1 -1
- package/src/routes/duplicate-one/base-duplicate-one.service.d.ts +3 -2
- package/src/routes/duplicate-one/base-duplicate-one.service.js +7 -2
- package/src/routes/duplicate-one/base-duplicate-one.service.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one.helper.d.ts +2 -2
- package/src/routes/duplicate-one/duplicate-one.helper.js +2 -1
- package/src/routes/duplicate-one/duplicate-one.helper.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one.module.js +1 -1
- package/src/routes/duplicate-one/duplicate-one.module.js.map +1 -1
- package/src/routes/get-many/base-get-many.service.d.ts +2 -2
- package/src/routes/get-many/get-many-controller.mixin.js +3 -1
- package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
- package/src/routes/get-many/get-many.helper.d.ts +2 -2
- package/src/routes/get-many/get-many.helper.js.map +1 -1
- package/src/routes/get-one/base-get-one.service.d.ts +2 -2
- package/src/routes/get-one/get-one-controller.mixin.js +3 -1
- package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
- package/src/routes/get-one/get-one.helper.d.ts +2 -2
- package/src/routes/get-one/get-one.helper.js.map +1 -1
- package/src/routes/index.d.ts +1 -0
- package/src/routes/index.js +1 -0
- package/src/routes/index.js.map +1 -1
- package/src/routes/replace-one/base-replace-one.service.d.ts +3 -2
- package/src/routes/replace-one/base-replace-one.service.js +14 -3
- package/src/routes/replace-one/base-replace-one.service.js.map +1 -1
- package/src/routes/replace-one/replace-one.helper.d.ts +2 -2
- package/src/routes/replace-one/replace-one.helper.js +2 -1
- package/src/routes/replace-one/replace-one.helper.js.map +1 -1
- package/src/routes/replace-one/replace-one.module.js +1 -1
- package/src/routes/replace-one/replace-one.module.js.map +1 -1
- package/src/routes/update-many/base-update-many.service.d.ts +3 -2
- package/src/routes/update-many/base-update-many.service.js +17 -7
- package/src/routes/update-many/base-update-many.service.js.map +1 -1
- package/src/routes/update-many/update-many.helper.d.ts +2 -2
- package/src/routes/update-many/update-many.helper.js +2 -1
- package/src/routes/update-many/update-many.helper.js.map +1 -1
- package/src/routes/update-many/update-many.module.js +1 -1
- package/src/routes/update-many/update-many.module.js.map +1 -1
- package/src/routes/update-one/base-update-one.service.d.ts +3 -3
- package/src/routes/update-one/update-one.helper.d.ts +2 -2
- package/src/routes/update-one/update-one.helper.js.map +1 -1
- package/src/routes/update-one/update-one.module.js.map +1 -1
- package/src/version.json +1 -1
- package/test/for-root/auth-api-login.e2e-spec.js +63 -0
- package/test/for-root/auth-api-login.e2e-spec.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
|
|
3
|
+
## [4.4.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.3.0...v4.4.0) (2026-03-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
* pass existing entities to BeforeSaveListCallback in DuplicateMany and UpdateMany ([77b6872](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/77b6872e6852eb3199bae0f313f6ef20f101d815))
|
|
7
|
+
* update BeforeSaveListCallback to receive entities list and add AnyBeforeSaveCallback union type ([8b422b2](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/8b422b2821a660d6ce1dde01bfe470d6e3ce5275))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### interfaces
|
|
11
|
+
|
|
12
|
+
* **interfaces:** add BeforeSaveDeleteManyCallback type for delete-many route ([ce1d707](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ce1d7076b23c63de74e4b6e7ae44044e63d917a8))
|
|
13
|
+
* **interfaces:** add short aliases for callback types and deprecate verbose names ([aa6467f](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/aa6467f839a753770e40ebeaf0c742b11b67e3da))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### routes
|
|
17
|
+
|
|
18
|
+
* **routes:** pass beforeSaveCallback from routeConfig to service providers ([3d4ee6d](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/3d4ee6dd0103c9f9b797dc616da516f949e61eae))
|
|
19
|
+
|
|
20
|
+
## [4.3.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.2.1...v4.3.0) (2026-03-17)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### cache
|
|
24
|
+
|
|
25
|
+
* **cache:** add auto-generated cache purge endpoint per feature ([9504506](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/95045067862a25a4f6dbb1b7331b5c53d231235d))
|
|
26
|
+
* **cache:** add DisableCache decorator and metadata key ([cf2b074](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/cf2b074de08e7c652c5a8ace789029126f1fada9))
|
|
27
|
+
* **cache:** add disableCache option to controller and route interfaces ([935279b](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/935279bc40039e509c711ca13c2c45a72989f4b8))
|
|
28
|
+
* **cache:** apply disableCache metadata on read route controller mixins ([948ea95](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/948ea9510ee3cc00a5b9e2750cb5b075130fb128))
|
|
29
|
+
* **cache:** bypass cache directly in intercept() for non-cacheable requests ([d822e49](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/d822e499a64e69748cf6cc39047ecb86a43cea74))
|
|
30
|
+
* **cache:** check disableCache metadata and auto-purge on write operations ([2cb3e14](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/2cb3e14e5feb04274ede45f8cd3790a17aafa9ab))
|
|
31
|
+
* **cache:** exclude auth routes from cache regardless of global prefix or versioning ([062810c](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/062810cc1f9a4e77248daf29b78415ea8524121a))
|
|
32
|
+
* **cache:** resolve disableCache in getMixinData with route > controller priority ([2bf58a1](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/2bf58a17c3a13fc5a560579195eba15f3a04f3f5))
|
|
33
|
+
|
|
3
34
|
## [4.2.1](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.2.0...v4.2.1) (2026-03-17)
|
|
4
35
|
|
|
5
36
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DisableCache = exports.DISABLE_CACHE_KEY = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const DISABLE_CACHE_KEY = 'dynamicApiDisableCache';
|
|
6
|
+
exports.DISABLE_CACHE_KEY = DISABLE_CACHE_KEY;
|
|
7
|
+
const DisableCache = () => (0, common_1.SetMetadata)(DISABLE_CACHE_KEY, true);
|
|
8
|
+
exports.DisableCache = DisableCache;
|
|
9
|
+
//# sourceMappingURL=disable-cache.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-cache.decorator.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/decorators/disable-cache.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAE7C,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAG1C,8CAAiB;AAF1B,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAEpC,oCAAY"}
|
package/src/decorators/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./api-endpoint-visibility.decorator"), exports);
|
|
18
|
+
__exportStar(require("./disable-cache.decorator"), exports);
|
|
18
19
|
__exportStar(require("./public.decorator"), exports);
|
|
19
20
|
__exportStar(require("./schema-options.decorator"), exports);
|
|
20
21
|
__exportStar(require("./validator-pipe.decorator"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,qDAAmC;AACnC,6DAA2C;AAC3C,6DAA2C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,4DAA0C;AAC1C,qDAAmC;AACnC,6DAA2C;AAC3C,6DAA2C"}
|
|
@@ -85,6 +85,7 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
|
|
|
85
85
|
[castType('Aggregate'), castModule(routes_1.AggregateModule)],
|
|
86
86
|
]);
|
|
87
87
|
routes = this.setDefaultRoutes(this.state.get('routesConfig'), controllerRoutesConfig, routes);
|
|
88
|
+
const isCacheEnabledForFeature = this.state.get('isGlobalCacheEnabled') && !controllerOptions.disableCache;
|
|
88
89
|
const apiModule = {
|
|
89
90
|
module: DynamicApiModule_1,
|
|
90
91
|
imports: [
|
|
@@ -102,6 +103,11 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
|
|
|
102
103
|
return module.forFeature(databaseModule, entity, controllerOptions, { ...routeConfig, description }, version, validationPipeOptions ?? { transform: true }, routeWebSocket ?? featureWebSocket, extraImports, extraProviders, extraControllers);
|
|
103
104
|
}),
|
|
104
105
|
],
|
|
106
|
+
controllers: [
|
|
107
|
+
...(isCacheEnabledForFeature
|
|
108
|
+
? [(0, routes_1.createCachePurgeController)(entity, controllerOptions)]
|
|
109
|
+
: []),
|
|
110
|
+
],
|
|
105
111
|
providers: [
|
|
106
112
|
{
|
|
107
113
|
provide: core_1.APP_INTERCEPTOR,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-api.module.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/dynamic-api.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,yDAAmE;AACnE,2CAAuD;AACvD,uCAAqE;AACrE,8EAAyE;AACzE,+CAAkD;AAElD,yCAA8D;AAC9D,qCAAkD;AAClD,uCAA2H;AAC3H,iDAA4D;AAC5D,6CAAuQ;AAEvQ,uCAAsF;AACtF,
|
|
1
|
+
{"version":3,"file":"dynamic-api.module.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/dynamic-api.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Type } from '@nestjs/common';
|
|
2
2
|
import { AbilityPredicate, DynamicApiControllerOptions, DynamicAPIRouteConfig, RouteType } from '../interfaces';
|
|
3
3
|
import { BaseEntity } from '../models';
|
|
4
|
-
declare function getMixinData<Entity extends BaseEntity>(entity: Type<Entity>, { apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: DynamicApiControllerOptions<Entity>, { type: routeType, subPath, description, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, eventName, }: DynamicAPIRouteConfig<Entity>, isGateway?: boolean): {
|
|
4
|
+
declare function getMixinData<Entity extends BaseEntity>(entity: Type<Entity>, { apiTag, isPublic: isPublicController, disableCache: disableCacheController, abilityPredicates: controllerAbilityPredicates, }: DynamicApiControllerOptions<Entity>, { type: routeType, subPath, description, isPublic: isPublicRoute, disableCache: disableCacheRoute, abilityPredicate: routeAbilityPredicate, eventName, }: DynamicAPIRouteConfig<Entity>, isGateway?: boolean): {
|
|
5
5
|
routeType: RouteType;
|
|
6
6
|
displayedName: string;
|
|
7
7
|
description: string;
|
|
8
8
|
isPublic: boolean;
|
|
9
|
+
disableCache: boolean;
|
|
9
10
|
abilityPredicate: AbilityPredicate<Entity>;
|
|
10
11
|
event: string;
|
|
11
12
|
};
|
|
@@ -4,7 +4,7 @@ exports.getMixinData = getMixinData;
|
|
|
4
4
|
const lodash_1 = require("lodash");
|
|
5
5
|
const controller_ability_predicates_helper_1 = require("./controller-ability-predicates.helper");
|
|
6
6
|
const format_helper_1 = require("./format.helper");
|
|
7
|
-
function getMixinData(entity, { apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, subPath, description, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, eventName, }, isGateway = false) {
|
|
7
|
+
function getMixinData(entity, { apiTag, isPublic: isPublicController, disableCache: disableCacheController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, subPath, description, isPublic: isPublicRoute, disableCache: disableCacheRoute, abilityPredicate: routeAbilityPredicate, eventName, }, isGateway = false) {
|
|
8
8
|
const displayedName = (0, format_helper_1.getDisplayedName)(apiTag, entity.name, subPath);
|
|
9
9
|
let isPublic;
|
|
10
10
|
if (typeof isPublicRoute === 'boolean') {
|
|
@@ -16,6 +16,16 @@ function getMixinData(entity, { apiTag, isPublic: isPublicController, abilityPre
|
|
|
16
16
|
else {
|
|
17
17
|
isPublic = false;
|
|
18
18
|
}
|
|
19
|
+
let disableCache;
|
|
20
|
+
if (typeof disableCacheRoute === 'boolean') {
|
|
21
|
+
disableCache = disableCacheRoute;
|
|
22
|
+
}
|
|
23
|
+
else if (typeof disableCacheController === 'boolean') {
|
|
24
|
+
disableCache = disableCacheController;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
disableCache = false;
|
|
28
|
+
}
|
|
19
29
|
const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
|
|
20
30
|
const event = eventName ?? (0, lodash_1.kebabCase)(`${routeType}/${displayedName}`);
|
|
21
31
|
return {
|
|
@@ -23,6 +33,7 @@ function getMixinData(entity, { apiTag, isPublic: isPublicController, abilityPre
|
|
|
23
33
|
displayedName,
|
|
24
34
|
description,
|
|
25
35
|
isPublic,
|
|
36
|
+
disableCache,
|
|
26
37
|
abilityPredicate,
|
|
27
38
|
event,
|
|
28
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixin-data.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mixin-data.helper.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"mixin-data.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mixin-data.helper.ts"],"names":[],"mappings":";;AA8ES,oCAAY;AA7ErB,mCAAmC;AAQnC,iGAAqG;AACrG,mDAAmD;AAGnD,SAAS,YAAY,CACnB,MAAoB,EACpB,EACE,MAAM,EACN,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,sBAAsB,EACpC,iBAAiB,EAAE,2BAA2B,GACV,EACtC,EACE,IAAI,EAAE,SAAS,EACf,OAAO,EACP,WAAW,EACX,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,iBAAiB,EAC/B,gBAAgB,EAAE,qBAAqB,EACvC,SAAS,GACqB,EAChC,SAAS,GAAG,KAAK;IAUjB,MAAM,aAAa,GAAG,IAAA,gCAAgB,EAAC,MAAM,EAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtE,IAAI,QAAiB,CAAC;IACtB,IAAI,OAAO,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnD,QAAQ,GAAG,kBAAkB,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,YAAqB,CAAC;IAC1B,IAAI,OAAO,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,YAAY,GAAG,iBAAiB,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACvD,YAAY,GAAG,sBAAsB,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,IAAI,IAAA,kFAA2C,EAC3F,2BAA2B,EAC3B,SAAS,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,SAAS,IAAI,IAAA,kBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAEtE,OAAO;QACL,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -13,5 +13,6 @@ export declare class DynamicApiCacheInterceptor extends CacheInterceptor {
|
|
|
13
13
|
private readonly excludePaths;
|
|
14
14
|
constructor(cacheManager: Cache, reflector: Reflector, httpAdapterHost: HttpAdapterHost, state: DynamicApiGlobalState);
|
|
15
15
|
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
|
|
16
|
+
private static readonly AUTH_PATH_PATTERN;
|
|
16
17
|
isRequestCacheable(context: ExecutionContext): boolean;
|
|
17
18
|
}
|
|
@@ -11,13 +11,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
+
var DynamicApiCacheInterceptor_1;
|
|
14
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
16
|
exports.DynamicApiCacheInterceptor = void 0;
|
|
16
17
|
const cache_manager_1 = require("@nestjs/cache-manager");
|
|
17
18
|
const common_1 = require("@nestjs/common");
|
|
18
19
|
const core_1 = require("@nestjs/core");
|
|
19
20
|
const http_adapter_host_1 = require("@nestjs/core/helpers/http-adapter-host");
|
|
20
|
-
|
|
21
|
+
const rxjs_1 = require("rxjs");
|
|
22
|
+
const decorators_1 = require("../decorators");
|
|
23
|
+
let DynamicApiCacheInterceptor = DynamicApiCacheInterceptor_1 = class DynamicApiCacheInterceptor extends cache_manager_1.CacheInterceptor {
|
|
21
24
|
constructor(cacheManager, reflector, httpAdapterHost, state) {
|
|
22
25
|
super(cacheManager, reflector);
|
|
23
26
|
this.cacheManager = cacheManager;
|
|
@@ -34,18 +37,31 @@ let DynamicApiCacheInterceptor = class DynamicApiCacheInterceptor extends cache_
|
|
|
34
37
|
if (!this.state.isGlobalCacheEnabled) {
|
|
35
38
|
return Promise.resolve(next.handle());
|
|
36
39
|
}
|
|
40
|
+
const req = context.switchToHttp().getRequest();
|
|
41
|
+
const isWriteOperation = !this.allowedMethods.includes(req.method);
|
|
42
|
+
if (isWriteOperation) {
|
|
43
|
+
return Promise.resolve(next.handle().pipe((0, rxjs_1.tap)(() => { this.cacheManager.clear(); })));
|
|
44
|
+
}
|
|
45
|
+
if (!this.isRequestCacheable(context)) {
|
|
46
|
+
return Promise.resolve(next.handle());
|
|
47
|
+
}
|
|
37
48
|
return super.intercept(context, next);
|
|
38
49
|
}
|
|
39
50
|
isRequestCacheable(context) {
|
|
51
|
+
const disableCache = this.reflector.get(decorators_1.DISABLE_CACHE_KEY, context.getHandler());
|
|
52
|
+
if (disableCache === true) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
40
55
|
const req = context.switchToHttp().getRequest();
|
|
41
56
|
return (this.state.isGlobalCacheEnabled &&
|
|
42
57
|
this.allowedMethods.includes(req.method) &&
|
|
43
58
|
!this.excludePaths.includes(req.url) &&
|
|
44
|
-
!(this.state.isAuthEnabled && req.url
|
|
59
|
+
!(this.state.isAuthEnabled && DynamicApiCacheInterceptor_1.AUTH_PATH_PATTERN.test(req.url)));
|
|
45
60
|
}
|
|
46
61
|
};
|
|
47
62
|
exports.DynamicApiCacheInterceptor = DynamicApiCacheInterceptor;
|
|
48
|
-
|
|
63
|
+
DynamicApiCacheInterceptor.AUTH_PATH_PATTERN = /\/auth(\/|$|\?)/;
|
|
64
|
+
exports.DynamicApiCacheInterceptor = DynamicApiCacheInterceptor = DynamicApiCacheInterceptor_1 = __decorate([
|
|
49
65
|
(0, common_1.Injectable)(),
|
|
50
66
|
__param(0, (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER)),
|
|
51
67
|
__metadata("design:paramtypes", [Object, core_1.Reflector,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-api-cache.interceptor.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interceptors/dynamic-api-cache.interceptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynamic-api-cache.interceptor.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interceptors/dynamic-api-cache.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAwE;AACxE,2CAAmF;AACnF,uCAAyC;AACzC,8EAAyE;AAEzE,+BAAuC;AACvC,8CAAkD;AAK3C,IAAM,0BAA0B,kCAAhC,MAAM,0BAA2B,SAAQ,gCAAgB;IAM9D,YACyB,YAAsC,EAC1C,SAAoB,EACpB,eAAgC,EAClC,KAA4B;QAE7C,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QALW,iBAAY,GAAZ,YAAY,CAAO;QAC1C,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAClC,UAAK,GAAL,KAAK,CAAuB;QAT9B,iBAAY,GAAG;YAC9B,GAAG;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB;SACjC,CAAC;QASA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAChB,IAAA,UAAG,EAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAC1C,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAID,kBAAkB,CAAC,OAAyB;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAU,8BAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAChD,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,oBAAoB;YAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YACxC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,4BAA0B,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC;;AAtDU,gEAA0B;AAuCb,4CAAiB,GAAG,iBAAiB,AAApB,CAAqB;qCAvCnD,0BAA0B;IAFtC,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;6CACQ,gBAAS;QACH,mCAAe;GAT1C,0BAA0B,CAuDtC"}
|
|
@@ -7,6 +7,7 @@ interface DynamicApiControllerOptions<Entity extends BaseEntity> {
|
|
|
7
7
|
apiTag?: string;
|
|
8
8
|
version?: string;
|
|
9
9
|
isPublic?: boolean;
|
|
10
|
+
disableCache?: boolean;
|
|
10
11
|
validationPipeOptions?: ValidationPipeOptions;
|
|
11
12
|
abilityPredicates?: ControllerAbilityPredicate<Entity>[];
|
|
12
13
|
routesConfig?: Partial<RoutesConfig>;
|
|
@@ -4,20 +4,21 @@ import { AbilityPredicate } from './dynamic-api-ability.interface';
|
|
|
4
4
|
import { DynamicApiBroadcastConfig } from './dynamic-api-broadcast-config.interface';
|
|
5
5
|
import { DTOsBundle } from './dynamic-api-route-dtos-bundle.type';
|
|
6
6
|
import { RouteType } from './dynamic-api-route-type.type';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { AnyBeforeSaveCallback } from './dynamic-api-service-before-save-callback.interface';
|
|
8
|
+
import { AfterSaveCallback } from './dynamic-api-service-callback.interface';
|
|
9
9
|
import { DynamicApiWebSocketOptions } from './dynamic-api-web-socket.interface';
|
|
10
10
|
interface DynamicApiRouteConfig<Entity extends BaseEntity> {
|
|
11
11
|
type: RouteType;
|
|
12
12
|
isPublic?: boolean;
|
|
13
|
+
disableCache?: boolean;
|
|
13
14
|
description?: string;
|
|
14
15
|
version?: string;
|
|
15
16
|
subPath?: string;
|
|
16
17
|
dTOs?: DTOsBundle;
|
|
17
18
|
validationPipeOptions?: ValidationPipeOptions;
|
|
18
19
|
abilityPredicate?: AbilityPredicate<Entity>;
|
|
19
|
-
beforeSaveCallback?:
|
|
20
|
-
callback?:
|
|
20
|
+
beforeSaveCallback?: AnyBeforeSaveCallback<Entity>;
|
|
21
|
+
callback?: AfterSaveCallback<Entity>;
|
|
21
22
|
webSocket?: DynamicApiWebSocketOptions;
|
|
22
23
|
eventName?: string;
|
|
23
24
|
broadcast?: DynamicApiBroadcastConfig<Entity>;
|
|
@@ -1,11 +1,53 @@
|
|
|
1
1
|
import { BaseEntity } from '../models';
|
|
2
|
-
import {
|
|
3
|
-
type
|
|
2
|
+
import { CallbackMethods } from './dynamic-api-service-callback.interface';
|
|
3
|
+
type BeforeSaveCreateContext<Entity extends BaseEntity> = {
|
|
4
4
|
toCreate: Partial<Entity>;
|
|
5
5
|
};
|
|
6
|
-
type
|
|
6
|
+
type BeforeSaveCreateManyContext<Entity extends BaseEntity> = {
|
|
7
|
+
toCreate: Partial<Entity>[];
|
|
8
|
+
};
|
|
9
|
+
type BeforeSaveUpdateContext<Entity extends BaseEntity> = {
|
|
7
10
|
id: string;
|
|
8
11
|
update: Partial<Entity>;
|
|
9
12
|
};
|
|
10
|
-
type
|
|
11
|
-
|
|
13
|
+
type BeforeSaveUpdateManyContext<Entity extends BaseEntity> = {
|
|
14
|
+
ids: string[];
|
|
15
|
+
update: Partial<Entity>;
|
|
16
|
+
};
|
|
17
|
+
type BeforeSaveReplaceContext<Entity extends BaseEntity> = {
|
|
18
|
+
id: string;
|
|
19
|
+
replacement: Partial<Entity>;
|
|
20
|
+
};
|
|
21
|
+
type BeforeSaveDeleteContext = {
|
|
22
|
+
id: string;
|
|
23
|
+
};
|
|
24
|
+
type BeforeSaveDeleteManyContext = {
|
|
25
|
+
ids: string[];
|
|
26
|
+
};
|
|
27
|
+
type BeforeSaveDuplicateContext<Entity extends BaseEntity> = {
|
|
28
|
+
id: string;
|
|
29
|
+
override?: Partial<Entity>;
|
|
30
|
+
};
|
|
31
|
+
type BeforeSaveDuplicateManyContext<Entity extends BaseEntity> = {
|
|
32
|
+
ids: string[];
|
|
33
|
+
override?: Partial<Entity>;
|
|
34
|
+
};
|
|
35
|
+
type BeforeSaveCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = (entity: Entity | undefined, context: Context, methods: CallbackMethods) => Promise<Partial<Entity>>;
|
|
36
|
+
type BeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = (entities: Entity[] | undefined, context: Context, methods: CallbackMethods) => Promise<Partial<Entity>[]>;
|
|
37
|
+
type BeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = (entity: Entity | undefined, context: Context, methods: CallbackMethods) => Promise<void>;
|
|
38
|
+
type BeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = (entities: Entity[], context: Context, methods: CallbackMethods) => Promise<void>;
|
|
39
|
+
type AnyBeforeSaveCallback<Entity extends BaseEntity> = BeforeSaveCallback<Entity> | BeforeSaveListCallback<Entity> | BeforeSaveDeleteCallback<Entity> | BeforeSaveDeleteManyCallback<Entity>;
|
|
40
|
+
type DynamicApiServiceBeforeSaveCreateContext<Entity extends BaseEntity> = BeforeSaveCreateContext<Entity>;
|
|
41
|
+
type DynamicApiServiceBeforeSaveCreateManyContext<Entity extends BaseEntity> = BeforeSaveCreateManyContext<Entity>;
|
|
42
|
+
type DynamicApiServiceBeforeSaveUpdateContext<Entity extends BaseEntity> = BeforeSaveUpdateContext<Entity>;
|
|
43
|
+
type DynamicApiServiceBeforeSaveUpdateManyContext<Entity extends BaseEntity> = BeforeSaveUpdateManyContext<Entity>;
|
|
44
|
+
type DynamicApiServiceBeforeSaveReplaceContext<Entity extends BaseEntity> = BeforeSaveReplaceContext<Entity>;
|
|
45
|
+
type DynamicApiServiceBeforeSaveDeleteContext = BeforeSaveDeleteContext;
|
|
46
|
+
type DynamicApiServiceBeforeSaveDeleteManyContext = BeforeSaveDeleteManyContext;
|
|
47
|
+
type DynamicApiServiceBeforeSaveDuplicateContext<Entity extends BaseEntity> = BeforeSaveDuplicateContext<Entity>;
|
|
48
|
+
type DynamicApiServiceBeforeSaveDuplicateManyContext<Entity extends BaseEntity> = BeforeSaveDuplicateManyContext<Entity>;
|
|
49
|
+
type DynamicApiServiceBeforeSaveCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = BeforeSaveCallback<Entity, Context>;
|
|
50
|
+
type DynamicApiServiceBeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = BeforeSaveListCallback<Entity, Context>;
|
|
51
|
+
type DynamicApiServiceBeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = BeforeSaveDeleteCallback<Entity, Context>;
|
|
52
|
+
type DynamicApiServiceBeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown>> = BeforeSaveDeleteManyCallback<Entity, Context>;
|
|
53
|
+
export type { AnyBeforeSaveCallback, BeforeSaveCallback, BeforeSaveListCallback, BeforeSaveDeleteCallback, BeforeSaveDeleteManyCallback, BeforeSaveCreateContext, BeforeSaveCreateManyContext, BeforeSaveUpdateContext, BeforeSaveUpdateManyContext, BeforeSaveReplaceContext, BeforeSaveDeleteContext, BeforeSaveDeleteManyContext, BeforeSaveDuplicateContext, BeforeSaveDuplicateManyContext, DynamicApiServiceBeforeSaveCallback, DynamicApiServiceBeforeSaveListCallback, DynamicApiServiceBeforeSaveDeleteCallback, DynamicApiServiceBeforeSaveDeleteManyCallback, DynamicApiServiceBeforeSaveCreateContext, DynamicApiServiceBeforeSaveCreateManyContext, DynamicApiServiceBeforeSaveUpdateContext, DynamicApiServiceBeforeSaveUpdateManyContext, DynamicApiServiceBeforeSaveReplaceContext, DynamicApiServiceBeforeSaveDeleteContext, DynamicApiServiceBeforeSaveDeleteManyContext, DynamicApiServiceBeforeSaveDuplicateContext, DynamicApiServiceBeforeSaveDuplicateManyContext, };
|
|
@@ -3,7 +3,7 @@ import { PipelineStage } from 'mongodb-pipeline-builder';
|
|
|
3
3
|
import { FilterQuery, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
|
|
4
4
|
import { BaseEntity } from '../models';
|
|
5
5
|
import { DeleteResult, UpdateResult } from './dynamic-api-route-response.type';
|
|
6
|
-
type
|
|
6
|
+
type CallbackMethods = {
|
|
7
7
|
findManyDocuments<T>(entity: Type<T>, query: FilterQuery<T>): Promise<T[]>;
|
|
8
8
|
findOneDocument<T>(entity: Type<T>, query: FilterQuery<T>): Promise<T | undefined>;
|
|
9
9
|
createManyDocuments<T>(entity: Type<T>, data: Partial<T>[]): Promise<T[]>;
|
|
@@ -14,7 +14,9 @@ type DynamicApiCallbackMethods = {
|
|
|
14
14
|
deleteOneDocument<T>(entity: Type<T>, id: string): Promise<DeleteResult>;
|
|
15
15
|
aggregateDocuments<T>(entity: Type<T>, pipeline: PipelineStage[]): Promise<T[]>;
|
|
16
16
|
};
|
|
17
|
-
type
|
|
17
|
+
type DynamicApiCallbackMethods = CallbackMethods;
|
|
18
|
+
type AfterSaveCallback<Entity extends BaseEntity> = (entity: Entity, methods: CallbackMethods) => Promise<void>;
|
|
19
|
+
type DynamicApiServiceCallback<Entity extends BaseEntity> = AfterSaveCallback<Entity>;
|
|
18
20
|
type DynamicApiResetPasswordCallbackMethods<Entity extends BaseEntity, UpdateBy = 'userId'> = {
|
|
19
21
|
findUserByEmail: () => Promise<Entity>;
|
|
20
22
|
updateUserByEmail: (update: UpdateQuery<Entity> | UpdateWithAggregationPipeline) => Promise<Entity>;
|
|
@@ -23,4 +25,4 @@ type DynamicApiResetPasswordCallback<Entity extends BaseEntity> = (_: {
|
|
|
23
25
|
resetPasswordToken: string;
|
|
24
26
|
email: string;
|
|
25
27
|
}, methods: DynamicApiResetPasswordCallbackMethods<Entity>) => Promise<void>;
|
|
26
|
-
export type { DynamicApiServiceCallback, DynamicApiResetPasswordCallback, DynamicApiCallbackMethods, DynamicApiResetPasswordCallbackMethods, };
|
|
28
|
+
export type { AfterSaveCallback, DynamicApiServiceCallback, DynamicApiResetPasswordCallback, DynamicApiCallbackMethods, DynamicApiResetPasswordCallbackMethods, CallbackMethods, };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import { AuthAbilityPredicate,
|
|
2
|
+
import { AuthAbilityPredicate, AfterSaveCallback, DynamicAPIServiceProvider, GatewayOptions } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { AuthControllerConstructor, AuthGatewayConstructor, DynamicApiGetAccountOptions, DynamicApiLoginOptions, DynamicApiRefreshTokenOptions, DynamicApiRegisterOptions, DynamicApiResetPasswordOptions, DynamicApiUpdateAccountOptions } from './interfaces';
|
|
5
5
|
declare const authServiceProviderName = "DynamicApiAuthService";
|
|
6
6
|
declare const authGatewayProviderName = "DynamicApiAuthGateway";
|
|
7
7
|
declare const localStrategyProviderName = "DynamicApiLocalStrategy";
|
|
8
8
|
declare function createLocalStrategyProvider<Entity extends BaseEntity>(loginField: keyof Entity, passwordField: keyof Entity, abilityPredicate: AuthAbilityPredicate | undefined, customValidate?: (req: any) => Promise<Entity | null>, useStrategy?: Type<any>): DynamicAPIServiceProvider;
|
|
9
|
-
declare function createAuthServiceProvider<Entity extends BaseEntity>(userEntity: Type<Entity>, { loginField, passwordField, additionalFields, callback: loginCallback }: DynamicApiLoginOptions<Entity>, getAccountCallback:
|
|
9
|
+
declare function createAuthServiceProvider<Entity extends BaseEntity>(userEntity: Type<Entity>, { loginField, passwordField, additionalFields, callback: loginCallback }: DynamicApiLoginOptions<Entity>, getAccountCallback: AfterSaveCallback<Entity> | undefined, register: DynamicApiRegisterOptions<Entity> | undefined, resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined, updateAccount: DynamicApiUpdateAccountOptions<Entity> | undefined, refreshToken?: DynamicApiRefreshTokenOptions<Entity>): DynamicAPIServiceProvider;
|
|
10
10
|
type CreateAuthControllerOptions<Entity extends BaseEntity> = {
|
|
11
11
|
getAccountOptions?: DynamicApiGetAccountOptions<Entity>;
|
|
12
12
|
registerOptions?: DynamicApiRegisterOptions<Entity>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.helper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"auth.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ModuleMetadata, NestInterceptor, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
2
|
import type { Request } from 'express';
|
|
3
|
-
import { AuthAbilityPredicate, BroadcastAbilityPredicate, BroadcastRooms, DynamicApiResetPasswordCallback,
|
|
3
|
+
import { AuthAbilityPredicate, BroadcastAbilityPredicate, BroadcastRooms, DynamicApiResetPasswordCallback, BeforeSaveCallback, AfterSaveCallback, DynamicApiWebSocketOptions } from '../../../interfaces';
|
|
4
4
|
import { BaseEntity } from '../../../models';
|
|
5
5
|
type DynamicApiJWTOptions = {
|
|
6
6
|
secret: string;
|
|
@@ -17,7 +17,7 @@ type DynamicApiAuthBroadcastConfig<Entity extends BaseEntity = any> = {
|
|
|
17
17
|
type DynamicApiLoginOptions<Entity extends BaseEntity = any> = {
|
|
18
18
|
loginField?: keyof Entity;
|
|
19
19
|
passwordField?: keyof Entity;
|
|
20
|
-
callback?:
|
|
20
|
+
callback?: AfterSaveCallback<Entity>;
|
|
21
21
|
abilityPredicate?: AuthAbilityPredicate;
|
|
22
22
|
additionalFields?: (keyof Entity)[];
|
|
23
23
|
useInterceptors?: Type<NestInterceptor>[];
|
|
@@ -26,13 +26,13 @@ type DynamicApiLoginOptions<Entity extends BaseEntity = any> = {
|
|
|
26
26
|
useStrategy?: Type<any>;
|
|
27
27
|
};
|
|
28
28
|
type DynamicApiGetAccountOptions<Entity extends BaseEntity = any> = {
|
|
29
|
-
callback?:
|
|
29
|
+
callback?: AfterSaveCallback<Entity>;
|
|
30
30
|
useInterceptors?: Type<NestInterceptor>[];
|
|
31
31
|
broadcast?: DynamicApiAuthBroadcastConfig<Entity>;
|
|
32
32
|
};
|
|
33
33
|
type DynamicApiRegisterOptions<Entity extends BaseEntity = any> = {
|
|
34
|
-
beforeSaveCallback?:
|
|
35
|
-
callback?:
|
|
34
|
+
beforeSaveCallback?: BeforeSaveCallback<Entity>;
|
|
35
|
+
callback?: AfterSaveCallback<Entity>;
|
|
36
36
|
protected?: boolean;
|
|
37
37
|
abilityPredicate?: AuthAbilityPredicate;
|
|
38
38
|
additionalFields?: (keyof Entity | {
|
|
@@ -43,8 +43,8 @@ type DynamicApiRegisterOptions<Entity extends BaseEntity = any> = {
|
|
|
43
43
|
broadcast?: DynamicApiAuthBroadcastConfig<Entity>;
|
|
44
44
|
};
|
|
45
45
|
type DynamicApiUpdateAccountOptions<Entity extends BaseEntity = any> = {
|
|
46
|
-
beforeSaveCallback?:
|
|
47
|
-
callback?:
|
|
46
|
+
beforeSaveCallback?: BeforeSaveCallback<Entity>;
|
|
47
|
+
callback?: AfterSaveCallback<Entity>;
|
|
48
48
|
abilityPredicate?: AuthAbilityPredicate;
|
|
49
49
|
additionalFieldsToExclude?: (keyof Entity)[];
|
|
50
50
|
useInterceptors?: Type<NestInterceptor>[];
|
|
@@ -53,10 +53,10 @@ type DynamicApiUpdateAccountOptions<Entity extends BaseEntity = any> = {
|
|
|
53
53
|
type DynamicApiResetPasswordOptions<Entity extends BaseEntity = any> = {
|
|
54
54
|
emailField?: keyof Entity | string;
|
|
55
55
|
expirationInMinutes?: number;
|
|
56
|
-
beforeChangePasswordCallback?:
|
|
56
|
+
beforeChangePasswordCallback?: BeforeSaveCallback<Entity>;
|
|
57
57
|
resetPasswordCallback?: DynamicApiResetPasswordCallback<Entity>;
|
|
58
58
|
resetPasswordUseInterceptors?: Type<NestInterceptor>[];
|
|
59
|
-
changePasswordCallback?:
|
|
59
|
+
changePasswordCallback?: AfterSaveCallback<Entity>;
|
|
60
60
|
changePasswordAbilityPredicate?: AuthAbilityPredicate;
|
|
61
61
|
changePasswordUseInterceptors?: Type<NestInterceptor>[];
|
|
62
62
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type } from '@nestjs/common';
|
|
2
2
|
import { JwtService } from '@nestjs/jwt';
|
|
3
3
|
import { Model } from 'mongoose';
|
|
4
|
-
import {
|
|
4
|
+
import { BeforeSaveCallback, AfterSaveCallback } from '../../../interfaces';
|
|
5
5
|
import { BaseEntity } from '../../../models';
|
|
6
6
|
import { BaseService, BcryptService } from '../../../services';
|
|
7
7
|
import { DynamicApiResetPasswordOptions } from '../interfaces';
|
|
@@ -13,12 +13,12 @@ export declare abstract class BaseAuthService<Entity extends BaseEntity> extends
|
|
|
13
13
|
protected loginField: keyof Entity;
|
|
14
14
|
protected passwordField: keyof Entity;
|
|
15
15
|
protected additionalRequestFields: (keyof Entity)[];
|
|
16
|
-
protected beforeRegisterCallback:
|
|
17
|
-
protected registerCallback:
|
|
18
|
-
protected beforeUpdateAccountCallback:
|
|
19
|
-
protected updateAccountCallback:
|
|
20
|
-
protected loginCallback:
|
|
21
|
-
protected getAccountCallback:
|
|
16
|
+
protected beforeRegisterCallback: BeforeSaveCallback<Entity>;
|
|
17
|
+
protected registerCallback: AfterSaveCallback<Entity> | undefined;
|
|
18
|
+
protected beforeUpdateAccountCallback: BeforeSaveCallback<Entity>;
|
|
19
|
+
protected updateAccountCallback: AfterSaveCallback<Entity> | undefined;
|
|
20
|
+
protected loginCallback: AfterSaveCallback<Entity> | undefined;
|
|
21
|
+
protected getAccountCallback: AfterSaveCallback<Entity> | undefined;
|
|
22
22
|
protected resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined;
|
|
23
23
|
protected refreshTokenField: keyof Entity | undefined;
|
|
24
24
|
private resetPasswordCallbackMethods;
|
|
@@ -16,11 +16,12 @@ exports.AggregateControllerMixin = AggregateControllerMixin;
|
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const class_transformer_1 = require("class-transformer");
|
|
18
18
|
const builders_1 = require("../../builders");
|
|
19
|
+
const decorators_1 = require("../../decorators");
|
|
19
20
|
const helpers_1 = require("../../helpers");
|
|
20
21
|
const mixins_1 = require("../../mixins");
|
|
21
22
|
const aggregate_presenter_mixin_1 = require("./aggregate-presenter.mixin");
|
|
22
23
|
function AggregateControllerMixin(entity, controllerOptions, { dTOs, useInterceptors = [], isArrayResponse, ...routeConfig }, version) {
|
|
23
|
-
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
24
|
+
const { routeType, displayedName, description, isPublic, disableCache, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
24
25
|
if (!dTOs?.query) {
|
|
25
26
|
throw new common_1.BadRequestException('Query DTO is required');
|
|
26
27
|
}
|
|
@@ -67,6 +68,7 @@ function AggregateControllerMixin(entity, controllerOptions, { dTOs, useIntercep
|
|
|
67
68
|
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
68
69
|
(0, common_1.UseGuards)(AggregatePoliciesGuard),
|
|
69
70
|
(0, common_1.UseInterceptors)(...useInterceptors),
|
|
71
|
+
(0, common_1.SetMetadata)(decorators_1.DISABLE_CACHE_KEY, disableCache),
|
|
70
72
|
__param(0, (0, common_1.Query)()),
|
|
71
73
|
__metadata("design:type", Function),
|
|
72
74
|
__metadata("design:paramtypes", [AggregateQuery]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"aggregate-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-controller.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import { DynamicApiControllerOptions, DynamicAPIRouteConfig,
|
|
2
|
+
import { DynamicApiControllerOptions, DynamicAPIRouteConfig, AfterSaveCallback, DynamicAPIServiceProvider, GatewayOptions } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { AggregateControllerConstructor } from './aggregate-controller.interface';
|
|
5
5
|
import { AggregateGatewayConstructor } from './aggregate-gateway.interface';
|
|
6
|
-
declare function createAggregateServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, displayedName: string, version: string | undefined, callback:
|
|
6
|
+
declare function createAggregateServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, displayedName: string, version: string | undefined, callback: AfterSaveCallback<Entity> | undefined): DynamicAPIServiceProvider;
|
|
7
7
|
declare function createAggregateController<Entity extends BaseEntity>(entity: Type<Entity>, displayedName: string, { useInterceptors, ...controllerOptions }: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): AggregateControllerConstructor<Entity>;
|
|
8
8
|
declare function createAggregateGateway<Entity extends BaseEntity>(entity: Type<Entity>, displayedName: string, { useInterceptors, ...controllerOptions }: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions, gatewayOptions?: GatewayOptions): AggregateGatewayConstructor<Entity>;
|
|
9
9
|
export { createAggregateController, createAggregateGateway, createAggregateServiceProvider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAqIS,8DAAyB;AAAE,wDAAsB;AAAE,wEAA8B;AArI1F,2CAOwB;AACxB,qCAAyC;AACzC,+CAA+C;AAC/C,6CAA0C;AAC1C,mDAAsD;AACtD,uCAAiC;AACjC,iDAAiD;AACjD,iEAA4D;AAC5D,2CAA4C;AAQ5C,qEAAgE;AAEhE,6EAAwE;AAExE,uEAAkE;AAGlE,SAAS,8BAA8B,CACrC,MAAoB,EACpB,aAAqB,EACrB,OAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"aggregate.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate.helper.ts"],"names":[],"mappings":"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"}
|