mongodb-dynamic-api 4.6.1 → 4.8.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 +38 -0
- package/package.json +5 -5
- package/src/decorators/derived-field.decorator.d.ts +11 -0
- package/src/decorators/derived-field.decorator.js +16 -0
- package/src/decorators/derived-field.decorator.js.map +1 -0
- package/src/decorators/index.d.ts +2 -0
- package/src/decorators/index.js +2 -0
- package/src/decorators/index.js.map +1 -1
- package/src/decorators/protected-field.decorator.d.ts +3 -0
- package/src/decorators/protected-field.decorator.js +13 -0
- package/src/decorators/protected-field.decorator.js.map +1 -0
- package/src/dynamic-api.module.js +1 -0
- package/src/dynamic-api.module.js.map +1 -1
- package/src/guards/base-policies.guard.d.ts +3 -1
- package/src/guards/base-policies.guard.js +2 -2
- package/src/guards/base-policies.guard.js.map +1 -1
- package/src/helpers/from-user.helper.d.ts +4 -0
- package/src/helpers/from-user.helper.js +20 -0
- package/src/helpers/from-user.helper.js.map +1 -0
- package/src/helpers/index.d.ts +1 -0
- package/src/helpers/index.js +1 -0
- package/src/helpers/index.js.map +1 -1
- package/src/helpers/mixin-data.helper.d.ts +3 -2
- package/src/helpers/mixin-data.helper.js +2 -1
- package/src/helpers/mixin-data.helper.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +3 -0
- package/src/index.js.map +1 -1
- package/src/interfaces/dynamic-api-ability.interface.d.ts +2 -1
- package/src/interfaces/dynamic-api-cascade-config.interface.d.ts +9 -0
- package/src/interfaces/dynamic-api-cascade-config.interface.js +3 -0
- package/src/interfaces/dynamic-api-cascade-config.interface.js.map +1 -0
- package/src/interfaces/dynamic-api-global-state.interface.d.ts +1 -0
- package/src/interfaces/dynamic-api-request.interface.d.ts +4 -0
- package/src/interfaces/dynamic-api-request.interface.js +3 -0
- package/src/interfaces/dynamic-api-request.interface.js.map +1 -0
- package/src/interfaces/dynamic-api-route-config.interface.d.ts +9 -3
- package/src/interfaces/dynamic-api-service-before-save-callback.interface.d.ts +4 -1
- package/src/interfaces/dynamic-api-service-callback.interface.d.ts +26 -1
- package/src/interfaces/index.d.ts +2 -0
- package/src/interfaces/index.js +2 -0
- package/src/interfaces/index.js.map +1 -1
- package/src/mixins/entity-body.mixin.d.ts +3 -1
- package/src/mixins/entity-body.mixin.js +18 -0
- package/src/mixins/entity-body.mixin.js.map +1 -1
- package/src/mixins/policies-guard.mixin.d.ts +9 -3
- package/src/mixins/policies-guard.mixin.js +5 -2
- package/src/mixins/policies-guard.mixin.js.map +1 -1
- package/src/modules/auth/auth-operation-context.d.ts +5 -0
- package/src/modules/auth/auth-operation-context.js +9 -0
- package/src/modules/auth/auth-operation-context.js.map +1 -0
- package/src/modules/auth/auth.helper.js +1 -0
- package/src/modules/auth/auth.helper.js.map +1 -1
- package/src/modules/auth/index.d.ts +1 -0
- package/src/modules/auth/index.js +1 -0
- package/src/modules/auth/index.js.map +1 -1
- package/src/modules/auth/interfaces/auth-controller.interface.d.ts +1 -1
- package/src/modules/auth/interfaces/auth-gateway.interface.d.ts +1 -1
- package/src/modules/auth/interfaces/auth-options.interface.d.ts +1 -0
- package/src/modules/auth/interfaces/auth-service.interface.d.ts +1 -1
- package/src/modules/auth/mixins/auth-controller.mixin.d.ts +1 -1
- package/src/modules/auth/mixins/auth-controller.mixin.js +23 -7
- package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
- package/src/modules/auth/mixins/auth-gateway.mixin.js +7 -4
- package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -1
- package/src/modules/auth/services/base-auth.service.d.ts +2 -1
- package/src/modules/auth/services/base-auth.service.js +5 -0
- package/src/modules/auth/services/base-auth.service.js.map +1 -1
- package/src/routes/aggregate/aggregate-controller.interface.d.ts +3 -2
- package/src/routes/aggregate/aggregate-controller.mixin.js +2 -2
- package/src/routes/aggregate/aggregate-controller.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate-gateway.mixin.js +2 -2
- package/src/routes/aggregate/aggregate-gateway.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate.helper.d.ts +2 -2
- package/src/routes/aggregate/aggregate.helper.js +3 -1
- package/src/routes/aggregate/aggregate.helper.js.map +1 -1
- package/src/routes/aggregate/aggregate.module.js +1 -1
- package/src/routes/aggregate/aggregate.module.js.map +1 -1
- package/src/routes/aggregate/base-aggregate.service.d.ts +3 -1
- package/src/routes/aggregate/base-aggregate.service.js +6 -1
- package/src/routes/aggregate/base-aggregate.service.js.map +1 -1
- package/src/routes/create-many/base-create-many.service.js +2 -1
- package/src/routes/create-many/base-create-many.service.js.map +1 -1
- package/src/routes/create-many/create-many-controller.interface.d.ts +4 -3
- package/src/routes/create-many/create-many-controller.mixin.d.ts +1 -1
- package/src/routes/create-many/create-many-controller.mixin.js +3 -2
- package/src/routes/create-many/create-many-controller.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-gateway.mixin.js +1 -1
- package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -1
- package/src/routes/create-one/base-create-one.service.js +2 -1
- package/src/routes/create-one/base-create-one.service.js.map +1 -1
- package/src/routes/create-one/create-one-controller.interface.d.ts +3 -2
- package/src/routes/create-one/create-one-controller.mixin.d.ts +1 -1
- package/src/routes/create-one/create-one-controller.mixin.js +4 -2
- package/src/routes/create-one/create-one-controller.mixin.js.map +1 -1
- package/src/routes/create-one/create-one-gateway.mixin.js +1 -1
- package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -1
- package/src/routes/delete-many/base-delete-many.service.d.ts +3 -1
- package/src/routes/delete-many/base-delete-many.service.js +22 -9
- package/src/routes/delete-many/base-delete-many.service.js.map +1 -1
- package/src/routes/delete-many/delete-many-controller.interface.d.ts +3 -3
- package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-gateway.mixin.js +1 -1
- package/src/routes/delete-many/delete-many-gateway.mixin.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 +4 -1
- package/src/routes/delete-one/base-delete-one.service.js +30 -9
- package/src/routes/delete-one/base-delete-one.service.js.map +1 -1
- package/src/routes/delete-one/delete-one-controller.interface.d.ts +3 -3
- package/src/routes/delete-one/delete-one-controller.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one-gateway.mixin.js +1 -1
- package/src/routes/delete-one/delete-one-gateway.mixin.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.js +2 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.interface.d.ts +3 -2
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.d.ts +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +4 -2
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-one/base-duplicate-one.service.js +2 -1
- package/src/routes/duplicate-one/base-duplicate-one.service.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.interface.d.ts +3 -2
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.d.ts +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +4 -2
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -1
- package/src/routes/get-many/base-get-many.service.d.ts +3 -1
- package/src/routes/get-many/base-get-many.service.js +5 -1
- package/src/routes/get-many/base-get-many.service.js.map +1 -1
- package/src/routes/get-many/get-many-controller.interface.d.ts +3 -2
- package/src/routes/get-many/get-many-controller.mixin.js +2 -2
- package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-gateway.mixin.js +2 -2
- package/src/routes/get-many/get-many-gateway.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 +3 -1
- package/src/routes/get-many/get-many.helper.js.map +1 -1
- package/src/routes/get-many/get-many.module.js +1 -1
- package/src/routes/get-many/get-many.module.js.map +1 -1
- package/src/routes/get-one/get-one-controller.interface.d.ts +3 -2
- package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-gateway.mixin.js +1 -1
- package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -1
- package/src/routes/replace-one/base-replace-one.service.js +2 -1
- package/src/routes/replace-one/base-replace-one.service.js.map +1 -1
- package/src/routes/replace-one/replace-one-controller.interface.d.ts +3 -2
- package/src/routes/replace-one/replace-one-controller.mixin.d.ts +1 -1
- package/src/routes/replace-one/replace-one-controller.mixin.js +4 -2
- package/src/routes/replace-one/replace-one-controller.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-gateway.mixin.js +1 -1
- package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -1
- package/src/routes/update-many/base-update-many.service.js +4 -2
- package/src/routes/update-many/base-update-many.service.js.map +1 -1
- package/src/routes/update-many/update-many-controller.interface.d.ts +3 -2
- package/src/routes/update-many/update-many-controller.mixin.d.ts +1 -1
- package/src/routes/update-many/update-many-controller.mixin.js +4 -2
- package/src/routes/update-many/update-many-controller.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-gateway.mixin.js +1 -1
- package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -1
- package/src/routes/update-one/base-update-one.service.js +2 -1
- package/src/routes/update-one/base-update-one.service.js.map +1 -1
- package/src/routes/update-one/update-one-controller.interface.d.ts +3 -2
- package/src/routes/update-one/update-one-controller.mixin.d.ts +1 -1
- package/src/routes/update-one/update-one-controller.mixin.js +4 -2
- package/src/routes/update-one/update-one-controller.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-gateway.mixin.js +1 -1
- package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -1
- package/src/services/base/base.service.d.ts +6 -1
- package/src/services/base/base.service.js +57 -1
- package/src/services/base/base.service.js.map +1 -1
- package/src/version.json +1 -1
- package/test/for-feature/ability-predicate-filter.e2e-spec.d.ts +1 -0
- package/test/for-feature/ability-predicate-filter.e2e-spec.js +106 -0
- package/test/for-feature/ability-predicate-filter.e2e-spec.js.map +1 -0
- package/test/for-feature/cascade-and-before-delete.e2e-spec.d.ts +1 -0
- package/test/for-feature/cascade-and-before-delete.e2e-spec.js +304 -0
- package/test/for-feature/cascade-and-before-delete.e2e-spec.js.map +1 -0
- package/test/for-feature/derived-fields-protected-from-user.e2e-spec.d.ts +1 -0
- package/test/for-feature/derived-fields-protected-from-user.e2e-spec.js +199 -0
- package/test/for-feature/derived-fields-protected-from-user.e2e-spec.js.map +1 -0
- package/test/for-feature/raw-update-callback-methods.e2e-spec.d.ts +1 -0
- package/test/for-feature/raw-update-callback-methods.e2e-spec.js +263 -0
- package/test/for-feature/raw-update-callback-methods.e2e-spec.js.map +1 -0
- package/test/for-root/auth-api-basic.e2e-spec.js +3 -1
- package/test/for-root/auth-api-basic.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-update-account.e2e-spec.d.ts +1 -0
- package/test/for-root/auth-api-update-account.e2e-spec.js +130 -0
- package/test/for-root/auth-api-update-account.e2e-spec.js.map +1 -0
- package/test/for-root/websockets-auth-basic.e2e-spec.js +1 -0
- package/test/for-root/websockets-auth-basic.e2e-spec.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
|
|
3
|
+
## [4.8.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.7.0...v4.8.0) (2026-05-24)
|
|
4
|
+
|
|
5
|
+
### cascade
|
|
6
|
+
|
|
7
|
+
* **cascade:** add cascade delete and beforeDeleteCallback hook ([d4f3122](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/d4f312268114c901a36467ad6a8f9348e3d11f95))
|
|
8
|
+
|
|
9
|
+
### callbacks
|
|
10
|
+
|
|
11
|
+
* **callbacks:** add rawUpdateOneDocument and rawUpdateManyDocuments to CallbackMethods ([c0b3dfa](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/c0b3dfab500b983e506daaed7680b806e1ed64c8))
|
|
12
|
+
|
|
13
|
+
### get-many,aggregate
|
|
14
|
+
|
|
15
|
+
* **get-many,aggregate:** add predicateBehavior 'filter' option ([0d5d478](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/0d5d478fb4227a658d908ec967c9ba23cb8da235))
|
|
16
|
+
|
|
17
|
+
## [4.7.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.6.1...v4.7.0) (2026-05-24)
|
|
18
|
+
|
|
19
|
+
### interfaces
|
|
20
|
+
|
|
21
|
+
* **interfaces:** add DynamicApiRequest typed interface ([a7e6558](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/a7e65582f5f83fd1bf499a94941340111a097470))
|
|
22
|
+
|
|
23
|
+
### decorators
|
|
24
|
+
|
|
25
|
+
* **decorators:** add @DerivedField and @ProtectedField decorators ([d01b52a](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/d01b52a588ba138b38b708c52e7c660b8c53d897))
|
|
26
|
+
* **decorators:** fix @DerivedField on update and @ProtectedField runtime strip ([4eaf187](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/4eaf187404cd60953a9cc5895bb3063eec308679))
|
|
27
|
+
|
|
28
|
+
### auth
|
|
29
|
+
|
|
30
|
+
* **auth:** implement refreshTokenOnUpdate and operation context ([3044a50](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/3044a50fdbbeb018d7469ebf5221f5eae3637191))
|
|
31
|
+
* **auth:** remove unnecessary type assertions flagged by SonarQube ([dad0a7a](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/dad0a7ae70ecd8384a900a61fb8cc59530b2855b))
|
|
32
|
+
|
|
33
|
+
### dynamic-api-config
|
|
34
|
+
|
|
35
|
+
* **dynamic-api-config:** add missing refreshTokenOnUpdate field in spec config ([0e3c41b](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/0e3c41bbf2a3f05b9c8e6bf761c88ee22d7869e9))
|
|
36
|
+
|
|
37
|
+
### agent
|
|
38
|
+
|
|
39
|
+
* **agent:** install caveman skills and project documentation ([533db4d](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/533db4dfe902334abf12d1e8590ff6a2978a32d9))
|
|
40
|
+
|
|
3
41
|
## [4.6.1](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.6.0...v4.6.1) (2026-03-27)
|
|
4
42
|
|
|
5
43
|
## [4.6.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.5.0...v4.6.0) (2026-03-26)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mongodb-dynamic-api",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.0",
|
|
4
4
|
"description": "Auto generated CRUD API for MongoDB using NestJS",
|
|
5
5
|
"readmeFilename": "README.md",
|
|
6
6
|
"main": "index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@nestjs/cache-manager": "^3.0.1",
|
|
44
44
|
"@nestjs/common": "^11.1.13",
|
|
45
|
-
"@nestjs/core": "
|
|
45
|
+
"@nestjs/core": "11.1.18",
|
|
46
46
|
"@nestjs/jwt": "^11.0.2",
|
|
47
47
|
"@nestjs/mongoose": "^11.0.4",
|
|
48
48
|
"@nestjs/passport": "^11.0.5",
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
"@nestjs/cli": "^11.0.16",
|
|
72
72
|
"@nestjs/schematics": "^11.0.9",
|
|
73
73
|
"@nestjs/testing": "^11.1.16",
|
|
74
|
-
"@release-it/bumper": "^
|
|
75
|
-
"@release-it/conventional-changelog": "^
|
|
74
|
+
"@release-it/bumper": "^7.0.5",
|
|
75
|
+
"@release-it/conventional-changelog": "^11.0.0",
|
|
76
76
|
"@swc/cli": "^0.3.9",
|
|
77
77
|
"@swc/core": "^1.4.0",
|
|
78
78
|
"@types/bcrypt": "^5.0.2",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"jest-sonar-reporter": "^2.0.0",
|
|
95
95
|
"lcov-result-merger": "^5.0.1",
|
|
96
96
|
"prettier": "^3.2.5",
|
|
97
|
-
"release-it": "^
|
|
97
|
+
"release-it": "^20.0.1",
|
|
98
98
|
"source-map-support": "^0.5.21",
|
|
99
99
|
"supertest": "^6.3.4",
|
|
100
100
|
"ts-jest": "^29.1.2",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const DERIVED_FIELD_METADATA = "dynamic-api-module:derived-field";
|
|
2
|
+
declare const DERIVED_FIELD_KEYS_METADATA = "dynamic-api-module:derived-field-keys";
|
|
3
|
+
interface DerivedFieldOptions {
|
|
4
|
+
on?: 'save' | 'read' | 'both';
|
|
5
|
+
}
|
|
6
|
+
interface DerivedFieldMeta<Entity> {
|
|
7
|
+
computeFn: (entity: Partial<Entity>) => unknown;
|
|
8
|
+
on: 'save' | 'read' | 'both';
|
|
9
|
+
}
|
|
10
|
+
declare function DerivedField<Entity>(computeFn: (entity: Partial<Entity>) => unknown, options?: DerivedFieldOptions): PropertyDecorator;
|
|
11
|
+
export { DERIVED_FIELD_METADATA, DERIVED_FIELD_KEYS_METADATA, DerivedField, DerivedFieldMeta, DerivedFieldOptions };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DERIVED_FIELD_KEYS_METADATA = exports.DERIVED_FIELD_METADATA = void 0;
|
|
4
|
+
exports.DerivedField = DerivedField;
|
|
5
|
+
const DERIVED_FIELD_METADATA = 'dynamic-api-module:derived-field';
|
|
6
|
+
exports.DERIVED_FIELD_METADATA = DERIVED_FIELD_METADATA;
|
|
7
|
+
const DERIVED_FIELD_KEYS_METADATA = 'dynamic-api-module:derived-field-keys';
|
|
8
|
+
exports.DERIVED_FIELD_KEYS_METADATA = DERIVED_FIELD_KEYS_METADATA;
|
|
9
|
+
function DerivedField(computeFn, options) {
|
|
10
|
+
return (target, propertyKey) => {
|
|
11
|
+
const existing = Reflect.getMetadata(DERIVED_FIELD_KEYS_METADATA, target) ?? [];
|
|
12
|
+
Reflect.defineMetadata(DERIVED_FIELD_KEYS_METADATA, [...existing, propertyKey], target);
|
|
13
|
+
Reflect.defineMetadata(DERIVED_FIELD_METADATA, { computeFn, on: options?.on ?? 'save' }, target, propertyKey);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=derived-field.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derived-field.decorator.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/decorators/derived-field.decorator.ts"],"names":[],"mappings":";;;AAmC8D,oCAAY;AAnC1E,MAAM,sBAAsB,GAAG,kCAAkC,CAAC;AAmCzD,wDAAsB;AAlC/B,MAAM,2BAA2B,GAAG,uCAAuC,CAAC;AAkC3C,kEAA2B;AAvB5D,SAAS,YAAY,CACnB,SAA+C,EAC/C,OAA6B;IAE7B,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACtD,MAAM,QAAQ,GACZ,OAAO,CAAC,WAAW,CAAC,2BAA2B,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAEjE,OAAO,CAAC,cAAc,CACpB,2BAA2B,EAC3B,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,EAC1B,MAAM,CACP,CAAC;QAEF,OAAO,CAAC,cAAc,CACpB,sBAAsB,EACtB,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAqC,EAC3E,MAAM,EACN,WAAW,CACZ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export * from './api-endpoint-visibility.decorator';
|
|
2
|
+
export * from './derived-field.decorator';
|
|
2
3
|
export * from './disable-cache.decorator';
|
|
4
|
+
export * from './protected-field.decorator';
|
|
3
5
|
export * from './public.decorator';
|
|
4
6
|
export * from './schema-options.decorator';
|
|
5
7
|
export * from './validator-pipe.decorator';
|
package/src/decorators/index.js
CHANGED
|
@@ -15,7 +15,9 @@ 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("./derived-field.decorator"), exports);
|
|
18
19
|
__exportStar(require("./disable-cache.decorator"), exports);
|
|
20
|
+
__exportStar(require("./protected-field.decorator"), exports);
|
|
19
21
|
__exportStar(require("./public.decorator"), exports);
|
|
20
22
|
__exportStar(require("./schema-options.decorator"), exports);
|
|
21
23
|
__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,4DAA0C;AAC1C,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,4DAA0C;AAC1C,8DAA4C;AAC5C,qDAAmC;AACnC,6DAA2C;AAC3C,6DAA2C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROTECTED_FIELD_METADATA = void 0;
|
|
4
|
+
exports.ProtectedField = ProtectedField;
|
|
5
|
+
const PROTECTED_FIELD_METADATA = 'dynamic-api-module:protected-field';
|
|
6
|
+
exports.PROTECTED_FIELD_METADATA = PROTECTED_FIELD_METADATA;
|
|
7
|
+
function ProtectedField() {
|
|
8
|
+
return (target, propertyKey) => {
|
|
9
|
+
const existing = Reflect.getMetadata(PROTECTED_FIELD_METADATA, target) ?? [];
|
|
10
|
+
Reflect.defineMetadata(PROTECTED_FIELD_METADATA, [...existing, propertyKey], target);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=protected-field.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protected-field.decorator.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/decorators/protected-field.decorator.ts"],"names":[],"mappings":";;;AAemC,wCAAc;AAfjD,MAAM,wBAAwB,GAAG,oCAAoC,CAAC;AAe7D,4DAAwB;AAbjC,SAAS,cAAc;IACrB,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACtD,MAAM,QAAQ,GACZ,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAE9D,OAAO,CAAC,cAAc,CACpB,wBAAwB,EACxB,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,EAC1B,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -146,6 +146,7 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
|
|
|
146
146
|
jwtRefreshTokenExpiresIn: useAuth.jwt?.refreshTokenExpiresIn ?? '7d',
|
|
147
147
|
jwtRefreshSecret: useAuth.jwt?.refreshSecret,
|
|
148
148
|
jwtRefreshUseCookie: useAuth.refreshToken?.useCookie ?? false,
|
|
149
|
+
refreshTokenOnUpdate: useAuth.updateAccount?.refreshTokenOnUpdate ?? false,
|
|
149
150
|
gatewayOptions: (0, helpers_1.initializeConfigFromOptions)(webSocket),
|
|
150
151
|
} : {}),
|
|
151
152
|
...(routesConfig?.excluded?.length || routesConfig?.defaults.length ? {
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"dynamic-api.module.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/dynamic-api.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CanActivate, ExecutionContext, Type } from '@nestjs/common';
|
|
2
2
|
import { PipelineStage } from 'mongodb-pipeline-builder';
|
|
3
3
|
import { Model } from 'mongoose';
|
|
4
|
-
import { AbilityPredicate, RouteType } from '../interfaces';
|
|
4
|
+
import { AbilityPredicate, PredicateBehavior, RouteType } from '../interfaces';
|
|
5
5
|
import { BaseEntity } from '../models';
|
|
6
6
|
import { BaseService } from '../services';
|
|
7
7
|
declare abstract class BasePoliciesGuard<Entity extends BaseEntity> extends BaseService<Entity> implements CanActivate {
|
|
@@ -9,6 +9,7 @@ declare abstract class BasePoliciesGuard<Entity extends BaseEntity> extends Base
|
|
|
9
9
|
protected routeType: RouteType;
|
|
10
10
|
protected entity: Type<Entity>;
|
|
11
11
|
protected abilityPredicate: AbilityPredicate<Entity> | undefined;
|
|
12
|
+
protected predicateBehavior: PredicateBehavior | undefined;
|
|
12
13
|
protected queryToPipeline?: (query: unknown) => PipelineStage[];
|
|
13
14
|
protected constructor(model: Model<Entity>);
|
|
14
15
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
@@ -17,6 +18,7 @@ declare abstract class BaseSocketPoliciesGuard<Entity extends BaseEntity> extend
|
|
|
17
18
|
protected readonly model: Model<Entity>;
|
|
18
19
|
protected routeType: RouteType;
|
|
19
20
|
protected abilityPredicate: AbilityPredicate<Entity> | undefined;
|
|
21
|
+
protected predicateBehavior: PredicateBehavior | undefined;
|
|
20
22
|
protected entity: Type<Entity>;
|
|
21
23
|
protected queryToPipeline?: (query: unknown) => PipelineStage[];
|
|
22
24
|
protected isPublic: boolean | undefined;
|
|
@@ -12,7 +12,7 @@ class BasePoliciesGuard extends services_1.BaseService {
|
|
|
12
12
|
}
|
|
13
13
|
async canActivate(context) {
|
|
14
14
|
const { user, query, params } = context.switchToHttp().getRequest();
|
|
15
|
-
if (this.abilityPredicate) {
|
|
15
|
+
if (this.abilityPredicate && this.predicateBehavior !== 'filter') {
|
|
16
16
|
if (!user) {
|
|
17
17
|
throw new common_1.ForbiddenException('Access Denied');
|
|
18
18
|
}
|
|
@@ -57,7 +57,7 @@ class BaseSocketPoliciesGuard extends services_1.BaseService {
|
|
|
57
57
|
this.logger.warn('No user data in socket');
|
|
58
58
|
throw new websockets_1.WsException('Access Denied');
|
|
59
59
|
}
|
|
60
|
-
if (this.abilityPredicate) {
|
|
60
|
+
if (this.abilityPredicate && this.predicateBehavior !== 'filter') {
|
|
61
61
|
try {
|
|
62
62
|
this.user = socket.user;
|
|
63
63
|
const { id } = data || {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":";;;AAAA,2CAAyF;AACzF,mDAAiD;AAIjD,sCAAoD;AAEpD,0CAA0C;AAG1C,MAAe,iBAA6C,SAAQ,sBAAmB;
|
|
1
|
+
{"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BaseEntity } from '../models';
|
|
2
|
+
import { FromUserMap } from '../interfaces';
|
|
3
|
+
declare function applyFromUser<Entity extends BaseEntity>(partial: Partial<Entity>, fromUser: FromUserMap<Entity> | undefined, user: unknown): Partial<Entity>;
|
|
4
|
+
export { applyFromUser };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyFromUser = applyFromUser;
|
|
4
|
+
function applyFromUser(partial, fromUser, user) {
|
|
5
|
+
if (!fromUser || !user) {
|
|
6
|
+
return partial;
|
|
7
|
+
}
|
|
8
|
+
const result = { ...partial };
|
|
9
|
+
for (const field of Object.keys(fromUser)) {
|
|
10
|
+
const source = fromUser[field];
|
|
11
|
+
if (typeof source === 'function') {
|
|
12
|
+
result[field] = source(user);
|
|
13
|
+
}
|
|
14
|
+
else if (typeof source === 'string' && typeof user === 'object') {
|
|
15
|
+
result[field] = user[source];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=from-user.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"from-user.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/from-user.helper.ts"],"names":[],"mappings":";;AAiCS,sCAAa;AAxBtB,SAAS,aAAa,CACpB,OAAwB,EACxB,QAAyC,EACzC,IAAa;IAEb,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;IAE/C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAqB,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAyB,CAAC;QACvD,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClE,MAAM,CAAC,KAAK,CAAC,GAAI,IAAgC,CAAC,MAAM,CAAyB,CAAC;QACpF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/src/helpers/index.d.ts
CHANGED
package/src/helpers/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./controller-ability-predicates.helper"), exports);
|
|
18
18
|
__exportStar(require("./format.helper"), exports);
|
|
19
|
+
__exportStar(require("./from-user.helper"), exports);
|
|
19
20
|
__exportStar(require("./lodash.helper"), exports);
|
|
20
21
|
__exportStar(require("./mixin-data.helper"), exports);
|
|
21
22
|
__exportStar(require("./repository.helper"), exports);
|
package/src/helpers/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,kDAAgC;AAChC,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,4DAA0C;AAC1C,6DAA2C;AAC3C,kDAAgC;AAChC,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C;AAC3C,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,kDAAgC;AAChC,qDAAmC;AACnC,kDAAgC;AAChC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,4DAA0C;AAC1C,6DAA2C;AAC3C,kDAAgC;AAChC,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C;AAC3C,oDAAkC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Type } from '@nestjs/common';
|
|
2
|
-
import { AbilityPredicate, DynamicApiControllerOptions, DynamicAPIRouteConfig, RouteType } from '../interfaces';
|
|
2
|
+
import { AbilityPredicate, DynamicApiControllerOptions, DynamicAPIRouteConfig, PredicateBehavior, RouteType } from '../interfaces';
|
|
3
3
|
import { BaseEntity } from '../models';
|
|
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): {
|
|
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, predicateBehavior, eventName, }: DynamicAPIRouteConfig<Entity>, isGateway?: boolean): {
|
|
5
5
|
routeType: RouteType;
|
|
6
6
|
displayedName: string;
|
|
7
7
|
description: string;
|
|
8
8
|
isPublic: boolean;
|
|
9
9
|
disableCache: boolean;
|
|
10
10
|
abilityPredicate: AbilityPredicate<Entity>;
|
|
11
|
+
predicateBehavior: PredicateBehavior | undefined;
|
|
11
12
|
event: string;
|
|
12
13
|
};
|
|
13
14
|
export { getMixinData };
|
|
@@ -4,7 +4,7 @@ exports.getMixinData = getMixinData;
|
|
|
4
4
|
const lodash_helper_1 = require("./lodash.helper");
|
|
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, disableCache: disableCacheController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, subPath, description, isPublic: isPublicRoute, disableCache: disableCacheRoute, 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, predicateBehavior, 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') {
|
|
@@ -35,6 +35,7 @@ function getMixinData(entity, { apiTag, isPublic: isPublicController, disableCac
|
|
|
35
35
|
isPublic,
|
|
36
36
|
disableCache,
|
|
37
37
|
abilityPredicate,
|
|
38
|
+
predicateBehavior,
|
|
38
39
|
event,
|
|
39
40
|
};
|
|
40
41
|
}
|
|
@@ -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":";;AAkFS,oCAAY;AAjFrB,mDAA4C;AAS5C,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,iBAAiB,EACjB,SAAS,GACqB,EAChC,SAAS,GAAG,KAAK;IAWjB,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,yBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAEtE,OAAO;QACL,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,iBAAiB;QACjB,KAAK;KACN,CAAC;AACJ,CAAC"}
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.getAuthOperationContext = void 0;
|
|
17
18
|
__exportStar(require("./builders"), exports);
|
|
18
19
|
__exportStar(require("./decorators"), exports);
|
|
19
20
|
__exportStar(require("./dtos"), exports);
|
|
@@ -30,4 +31,6 @@ __exportStar(require("./routes"), exports);
|
|
|
30
31
|
__exportStar(require("./services"), exports);
|
|
31
32
|
__exportStar(require("./utils"), exports);
|
|
32
33
|
__exportStar(require("./dynamic-api.module"), exports);
|
|
34
|
+
var auth_operation_context_1 = require("./modules/auth/auth-operation-context");
|
|
35
|
+
Object.defineProperty(exports, "getAuthOperationContext", { enumerable: true, get: function () { return auth_operation_context_1.getAuthOperationContext; } });
|
|
33
36
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB;AACxB,uDAAqC;AACrC,gFAAsG;AAAvE,iIAAA,uBAAuB,OAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseEntity } from '../models';
|
|
2
2
|
import { RouteType } from './dynamic-api-route-type.type';
|
|
3
|
+
type PredicateBehavior = 'filter' | 'throw';
|
|
3
4
|
type AbilityPredicate<Entity extends BaseEntity, User = any> = (entity: Entity, user: User) => boolean;
|
|
4
5
|
type AuthAbilityPredicate<User = any, Body = unknown> = (user: User, body?: Body) => boolean;
|
|
5
6
|
type BroadcastAbilityPredicate<ResponseData extends object, User = any> = (data: ResponseData, user: User) => boolean;
|
|
@@ -8,4 +9,4 @@ type ControllerAbilityPredicate<Entity extends BaseEntity> = {
|
|
|
8
9
|
targets: RouteType[];
|
|
9
10
|
predicate: AbilityPredicate<Entity>;
|
|
10
11
|
};
|
|
11
|
-
export { ControllerAbilityPredicate, AuthAbilityPredicate, AbilityPredicate, BroadcastAbilityPredicate, BroadcastRooms, };
|
|
12
|
+
export { PredicateBehavior, ControllerAbilityPredicate, AuthAbilityPredicate, AbilityPredicate, BroadcastAbilityPredicate, BroadcastRooms, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-api-cascade-config.interface.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interfaces/dynamic-api-cascade-config.interface.ts"],"names":[],"mappings":""}
|
|
@@ -25,6 +25,7 @@ interface DynamicApiGlobalState {
|
|
|
25
25
|
jwtRefreshTokenExpiresIn: string | number | undefined;
|
|
26
26
|
jwtRefreshSecret: string | undefined;
|
|
27
27
|
jwtRefreshUseCookie: boolean | undefined;
|
|
28
|
+
refreshTokenOnUpdate: boolean;
|
|
28
29
|
routesConfig: RoutesConfig;
|
|
29
30
|
gatewayOptions: GatewayMetadata | undefined;
|
|
30
31
|
broadcastGatewayOptions: GatewayMetadata | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-api-request.interface.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interfaces/dynamic-api-request.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { NestInterceptor, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
2
|
import { BaseEntity } from '../models';
|
|
3
|
-
import { AbilityPredicate } from './dynamic-api-ability.interface';
|
|
3
|
+
import { AbilityPredicate, PredicateBehavior } from './dynamic-api-ability.interface';
|
|
4
4
|
import { DynamicApiBroadcastConfig } from './dynamic-api-broadcast-config.interface';
|
|
5
|
+
import { CascadeConfig } from './dynamic-api-cascade-config.interface';
|
|
5
6
|
import { DTOsBundle } from './dynamic-api-route-dtos-bundle.type';
|
|
6
7
|
import { RouteType } from './dynamic-api-route-type.type';
|
|
7
|
-
import { AnyBeforeSaveCallback } from './dynamic-api-service-before-save-callback.interface';
|
|
8
|
+
import { AnyBeforeDeleteCallback, AnyBeforeSaveCallback } from './dynamic-api-service-before-save-callback.interface';
|
|
8
9
|
import { AfterSaveCallback } from './dynamic-api-service-callback.interface';
|
|
9
10
|
import { DynamicApiWebSocketOptions } from './dynamic-api-web-socket.interface';
|
|
11
|
+
type FromUserMap<Entity> = Partial<Record<keyof Entity, string | ((user: unknown) => unknown)>>;
|
|
10
12
|
interface DynamicApiRouteConfig<Entity extends BaseEntity> {
|
|
11
13
|
type: RouteType;
|
|
12
14
|
isPublic?: boolean;
|
|
@@ -17,13 +19,17 @@ interface DynamicApiRouteConfig<Entity extends BaseEntity> {
|
|
|
17
19
|
dTOs?: DTOsBundle;
|
|
18
20
|
validationPipeOptions?: ValidationPipeOptions;
|
|
19
21
|
abilityPredicate?: AbilityPredicate<Entity>;
|
|
22
|
+
predicateBehavior?: PredicateBehavior;
|
|
20
23
|
beforeSaveCallback?: AnyBeforeSaveCallback<Entity>;
|
|
24
|
+
beforeDeleteCallback?: AnyBeforeDeleteCallback<Entity>;
|
|
25
|
+
cascade?: CascadeConfig[];
|
|
21
26
|
callback?: AfterSaveCallback<Entity>;
|
|
22
27
|
webSocket?: DynamicApiWebSocketOptions;
|
|
23
28
|
eventName?: string;
|
|
24
29
|
broadcast?: DynamicApiBroadcastConfig<Entity>;
|
|
25
30
|
isArrayResponse?: boolean;
|
|
26
31
|
useInterceptors?: Type<NestInterceptor>[];
|
|
32
|
+
fromUser?: FromUserMap<Entity>;
|
|
27
33
|
}
|
|
28
34
|
type DynamicAPIRouteConfig<Entity extends BaseEntity> = DynamicApiRouteConfig<Entity>;
|
|
29
|
-
export { DynamicApiRouteConfig, DynamicAPIRouteConfig };
|
|
35
|
+
export { DynamicApiRouteConfig, DynamicAPIRouteConfig, FromUserMap };
|
|
@@ -37,6 +37,9 @@ type BeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string,
|
|
|
37
37
|
type BeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entity: Entity | undefined, context: Context, methods: CallbackMethods, user?: User) => Promise<void>;
|
|
38
38
|
type BeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entities: Entity[], context: Context, methods: CallbackMethods, user?: User) => Promise<void>;
|
|
39
39
|
type AnyBeforeSaveCallback<Entity extends BaseEntity, User = unknown> = BeforeSaveCallback<Entity, unknown, User> | BeforeSaveListCallback<Entity, unknown, User> | BeforeSaveDeleteCallback<Entity, unknown, User> | BeforeSaveDeleteManyCallback<Entity, unknown, User>;
|
|
40
|
+
type BeforeDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entity: Entity | undefined, context: Context, methods: CallbackMethods, user?: User) => Promise<void>;
|
|
41
|
+
type BeforeDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entities: Entity[], context: Context, methods: CallbackMethods, user?: User) => Promise<void>;
|
|
42
|
+
type AnyBeforeDeleteCallback<Entity extends BaseEntity, User = unknown> = BeforeDeleteCallback<Entity, BeforeSaveDeleteContext, User> | BeforeDeleteManyCallback<Entity, BeforeSaveDeleteManyContext, User>;
|
|
40
43
|
type DynamicApiServiceBeforeSaveCreateContext<Entity extends BaseEntity> = BeforeSaveCreateContext<Entity>;
|
|
41
44
|
type DynamicApiServiceBeforeSaveCreateManyContext<Entity extends BaseEntity> = BeforeSaveCreateManyContext<Entity>;
|
|
42
45
|
type DynamicApiServiceBeforeSaveUpdateContext<Entity extends BaseEntity> = BeforeSaveUpdateContext<Entity>;
|
|
@@ -50,4 +53,4 @@ type DynamicApiServiceBeforeSaveCallback<Entity extends BaseEntity, Context = Re
|
|
|
50
53
|
type DynamicApiServiceBeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = BeforeSaveListCallback<Entity, Context, User>;
|
|
51
54
|
type DynamicApiServiceBeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = BeforeSaveDeleteCallback<Entity, Context, User>;
|
|
52
55
|
type DynamicApiServiceBeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = BeforeSaveDeleteManyCallback<Entity, Context, User>;
|
|
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, };
|
|
56
|
+
export type { AnyBeforeDeleteCallback, BeforeDeleteCallback, BeforeDeleteManyCallback, 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,6 +3,29 @@ 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 MongoUpdateOperators<T> = {
|
|
7
|
+
$set?: Partial<T>;
|
|
8
|
+
$unset?: Partial<Record<keyof T, '' | 1 | true>>;
|
|
9
|
+
$push?: Partial<{
|
|
10
|
+
[K in keyof T]: T[K] extends Array<infer U> ? U | {
|
|
11
|
+
$each: U[];
|
|
12
|
+
$position?: number;
|
|
13
|
+
$slice?: number;
|
|
14
|
+
$sort?: Record<string, 1 | -1>;
|
|
15
|
+
} : never;
|
|
16
|
+
}>;
|
|
17
|
+
$pull?: Partial<{
|
|
18
|
+
[K in keyof T]: T[K] extends Array<infer U> ? Partial<U> | FilterQuery<U> : never;
|
|
19
|
+
}>;
|
|
20
|
+
$inc?: Partial<Record<keyof T, number>>;
|
|
21
|
+
$addToSet?: Partial<{
|
|
22
|
+
[K in keyof T]: T[K] extends Array<infer U> ? U | {
|
|
23
|
+
$each: U[];
|
|
24
|
+
} : never;
|
|
25
|
+
}>;
|
|
26
|
+
$pop?: Partial<Record<keyof T, -1 | 1>>;
|
|
27
|
+
$rename?: Partial<Record<keyof T, string>>;
|
|
28
|
+
};
|
|
6
29
|
type CallbackMethods = {
|
|
7
30
|
findManyDocuments<T>(entity: Type<T>, query: FilterQuery<T>): Promise<T[]>;
|
|
8
31
|
findOneDocument<T>(entity: Type<T>, query: FilterQuery<T>): Promise<T | undefined>;
|
|
@@ -10,6 +33,8 @@ type CallbackMethods = {
|
|
|
10
33
|
createOneDocument<T>(entity: Type<T>, data: Partial<T>): Promise<T>;
|
|
11
34
|
updateManyDocuments<T>(entity: Type<T>, query: FilterQuery<T>, update: UpdateQuery<T> | UpdateWithAggregationPipeline): Promise<UpdateResult>;
|
|
12
35
|
updateOneDocument<T>(entity: Type<T>, query: FilterQuery<T>, update: UpdateQuery<T> | UpdateWithAggregationPipeline): Promise<UpdateResult>;
|
|
36
|
+
rawUpdateManyDocuments<T>(entity: Type<T>, filter: FilterQuery<T>, update: MongoUpdateOperators<T>): Promise<UpdateResult>;
|
|
37
|
+
rawUpdateOneDocument<T>(entity: Type<T>, filter: FilterQuery<T>, update: MongoUpdateOperators<T>): Promise<UpdateResult>;
|
|
13
38
|
deleteManyDocuments<T>(entity: Type<T>, ids: string[]): Promise<DeleteResult>;
|
|
14
39
|
deleteOneDocument<T>(entity: Type<T>, id: string): Promise<DeleteResult>;
|
|
15
40
|
aggregateDocuments<T>(entity: Type<T>, pipeline: PipelineStage[]): Promise<T[]>;
|
|
@@ -25,4 +50,4 @@ type DynamicApiResetPasswordCallback<Entity extends BaseEntity> = (_: {
|
|
|
25
50
|
resetPasswordToken: string;
|
|
26
51
|
email: string;
|
|
27
52
|
}, methods: DynamicApiResetPasswordCallbackMethods<Entity>) => Promise<void>;
|
|
28
|
-
export type { AfterSaveCallback, DynamicApiServiceCallback, DynamicApiResetPasswordCallback, DynamicApiCallbackMethods, DynamicApiResetPasswordCallbackMethods, CallbackMethods, };
|
|
53
|
+
export type { AfterSaveCallback, DynamicApiServiceCallback, DynamicApiResetPasswordCallback, DynamicApiCallbackMethods, DynamicApiResetPasswordCallbackMethods, CallbackMethods, MongoUpdateOperators, };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export * from './dynamic-api-controller-options.interface';
|
|
2
|
+
export * from './dynamic-api-request.interface';
|
|
2
3
|
export * from './dynamic-api-decorator-builder.interface';
|
|
3
4
|
export * from './dynamic-api-cache-options.interface';
|
|
4
5
|
export * from './dynamic-api-ability.interface';
|
|
5
6
|
export * from './dynamic-api-broadcast-config.interface';
|
|
7
|
+
export * from './dynamic-api-cascade-config.interface';
|
|
6
8
|
export * from './dynamic-api-entity-mappers.interface';
|
|
7
9
|
export * from './dynamic-api-global-state.interface';
|
|
8
10
|
export * from './dynamic-api-options.interface';
|
package/src/interfaces/index.js
CHANGED
|
@@ -15,10 +15,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./dynamic-api-controller-options.interface"), exports);
|
|
18
|
+
__exportStar(require("./dynamic-api-request.interface"), exports);
|
|
18
19
|
__exportStar(require("./dynamic-api-decorator-builder.interface"), exports);
|
|
19
20
|
__exportStar(require("./dynamic-api-cache-options.interface"), exports);
|
|
20
21
|
__exportStar(require("./dynamic-api-ability.interface"), exports);
|
|
21
22
|
__exportStar(require("./dynamic-api-broadcast-config.interface"), exports);
|
|
23
|
+
__exportStar(require("./dynamic-api-cascade-config.interface"), exports);
|
|
22
24
|
__exportStar(require("./dynamic-api-entity-mappers.interface"), exports);
|
|
23
25
|
__exportStar(require("./dynamic-api-global-state.interface"), exports);
|
|
24
26
|
__exportStar(require("./dynamic-api-options.interface"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6EAA2D;AAC3D,4EAA0D;AAC1D,wEAAsD;AACtD,kEAAgD;AAChD,2EAAyD;AACzD,yEAAuD;AACvD,uEAAqD;AACrD,kEAAgD;AAChD,yEAAuD;AACvD,uEAAqD;AACrD,uEAAqD;AACrD,kEAAgD;AAChD,oEAAkD;AAClD,gEAA8C;AAC9C,yEAAuD;AACvD,uFAAqE;AACrE,2EAAyD;AACzD,2EAAyD;AACzD,qEAAmD;AACnD,qEAAmD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6EAA2D;AAC3D,kEAAgD;AAChD,4EAA0D;AAC1D,wEAAsD;AACtD,kEAAgD;AAChD,2EAAyD;AACzD,yEAAuD;AACvD,yEAAuD;AACvD,uEAAqD;AACrD,kEAAgD;AAChD,yEAAuD;AACvD,uEAAqD;AACrD,uEAAqD;AACrD,kEAAgD;AAChD,oEAAkD;AAClD,gEAA8C;AAC9C,yEAAuD;AACvD,uFAAqE;AACrE,2EAAyD;AACzD,2EAAyD;AACzD,qEAAmD;AACnD,qEAAmD"}
|