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.
Files changed (202) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/package.json +5 -5
  3. package/src/decorators/derived-field.decorator.d.ts +11 -0
  4. package/src/decorators/derived-field.decorator.js +16 -0
  5. package/src/decorators/derived-field.decorator.js.map +1 -0
  6. package/src/decorators/index.d.ts +2 -0
  7. package/src/decorators/index.js +2 -0
  8. package/src/decorators/index.js.map +1 -1
  9. package/src/decorators/protected-field.decorator.d.ts +3 -0
  10. package/src/decorators/protected-field.decorator.js +13 -0
  11. package/src/decorators/protected-field.decorator.js.map +1 -0
  12. package/src/dynamic-api.module.js +1 -0
  13. package/src/dynamic-api.module.js.map +1 -1
  14. package/src/guards/base-policies.guard.d.ts +3 -1
  15. package/src/guards/base-policies.guard.js +2 -2
  16. package/src/guards/base-policies.guard.js.map +1 -1
  17. package/src/helpers/from-user.helper.d.ts +4 -0
  18. package/src/helpers/from-user.helper.js +20 -0
  19. package/src/helpers/from-user.helper.js.map +1 -0
  20. package/src/helpers/index.d.ts +1 -0
  21. package/src/helpers/index.js +1 -0
  22. package/src/helpers/index.js.map +1 -1
  23. package/src/helpers/mixin-data.helper.d.ts +3 -2
  24. package/src/helpers/mixin-data.helper.js +2 -1
  25. package/src/helpers/mixin-data.helper.js.map +1 -1
  26. package/src/index.d.ts +1 -0
  27. package/src/index.js +3 -0
  28. package/src/index.js.map +1 -1
  29. package/src/interfaces/dynamic-api-ability.interface.d.ts +2 -1
  30. package/src/interfaces/dynamic-api-cascade-config.interface.d.ts +9 -0
  31. package/src/interfaces/dynamic-api-cascade-config.interface.js +3 -0
  32. package/src/interfaces/dynamic-api-cascade-config.interface.js.map +1 -0
  33. package/src/interfaces/dynamic-api-global-state.interface.d.ts +1 -0
  34. package/src/interfaces/dynamic-api-request.interface.d.ts +4 -0
  35. package/src/interfaces/dynamic-api-request.interface.js +3 -0
  36. package/src/interfaces/dynamic-api-request.interface.js.map +1 -0
  37. package/src/interfaces/dynamic-api-route-config.interface.d.ts +9 -3
  38. package/src/interfaces/dynamic-api-service-before-save-callback.interface.d.ts +4 -1
  39. package/src/interfaces/dynamic-api-service-callback.interface.d.ts +26 -1
  40. package/src/interfaces/index.d.ts +2 -0
  41. package/src/interfaces/index.js +2 -0
  42. package/src/interfaces/index.js.map +1 -1
  43. package/src/mixins/entity-body.mixin.d.ts +3 -1
  44. package/src/mixins/entity-body.mixin.js +18 -0
  45. package/src/mixins/entity-body.mixin.js.map +1 -1
  46. package/src/mixins/policies-guard.mixin.d.ts +9 -3
  47. package/src/mixins/policies-guard.mixin.js +5 -2
  48. package/src/mixins/policies-guard.mixin.js.map +1 -1
  49. package/src/modules/auth/auth-operation-context.d.ts +5 -0
  50. package/src/modules/auth/auth-operation-context.js +9 -0
  51. package/src/modules/auth/auth-operation-context.js.map +1 -0
  52. package/src/modules/auth/auth.helper.js +1 -0
  53. package/src/modules/auth/auth.helper.js.map +1 -1
  54. package/src/modules/auth/index.d.ts +1 -0
  55. package/src/modules/auth/index.js +1 -0
  56. package/src/modules/auth/index.js.map +1 -1
  57. package/src/modules/auth/interfaces/auth-controller.interface.d.ts +1 -1
  58. package/src/modules/auth/interfaces/auth-gateway.interface.d.ts +1 -1
  59. package/src/modules/auth/interfaces/auth-options.interface.d.ts +1 -0
  60. package/src/modules/auth/interfaces/auth-service.interface.d.ts +1 -1
  61. package/src/modules/auth/mixins/auth-controller.mixin.d.ts +1 -1
  62. package/src/modules/auth/mixins/auth-controller.mixin.js +23 -7
  63. package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
  64. package/src/modules/auth/mixins/auth-gateway.mixin.js +7 -4
  65. package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -1
  66. package/src/modules/auth/services/base-auth.service.d.ts +2 -1
  67. package/src/modules/auth/services/base-auth.service.js +5 -0
  68. package/src/modules/auth/services/base-auth.service.js.map +1 -1
  69. package/src/routes/aggregate/aggregate-controller.interface.d.ts +3 -2
  70. package/src/routes/aggregate/aggregate-controller.mixin.js +2 -2
  71. package/src/routes/aggregate/aggregate-controller.mixin.js.map +1 -1
  72. package/src/routes/aggregate/aggregate-gateway.mixin.js +2 -2
  73. package/src/routes/aggregate/aggregate-gateway.mixin.js.map +1 -1
  74. package/src/routes/aggregate/aggregate.helper.d.ts +2 -2
  75. package/src/routes/aggregate/aggregate.helper.js +3 -1
  76. package/src/routes/aggregate/aggregate.helper.js.map +1 -1
  77. package/src/routes/aggregate/aggregate.module.js +1 -1
  78. package/src/routes/aggregate/aggregate.module.js.map +1 -1
  79. package/src/routes/aggregate/base-aggregate.service.d.ts +3 -1
  80. package/src/routes/aggregate/base-aggregate.service.js +6 -1
  81. package/src/routes/aggregate/base-aggregate.service.js.map +1 -1
  82. package/src/routes/create-many/base-create-many.service.js +2 -1
  83. package/src/routes/create-many/base-create-many.service.js.map +1 -1
  84. package/src/routes/create-many/create-many-controller.interface.d.ts +4 -3
  85. package/src/routes/create-many/create-many-controller.mixin.d.ts +1 -1
  86. package/src/routes/create-many/create-many-controller.mixin.js +3 -2
  87. package/src/routes/create-many/create-many-controller.mixin.js.map +1 -1
  88. package/src/routes/create-many/create-many-gateway.mixin.js +1 -1
  89. package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -1
  90. package/src/routes/create-one/base-create-one.service.js +2 -1
  91. package/src/routes/create-one/base-create-one.service.js.map +1 -1
  92. package/src/routes/create-one/create-one-controller.interface.d.ts +3 -2
  93. package/src/routes/create-one/create-one-controller.mixin.d.ts +1 -1
  94. package/src/routes/create-one/create-one-controller.mixin.js +4 -2
  95. package/src/routes/create-one/create-one-controller.mixin.js.map +1 -1
  96. package/src/routes/create-one/create-one-gateway.mixin.js +1 -1
  97. package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -1
  98. package/src/routes/delete-many/base-delete-many.service.d.ts +3 -1
  99. package/src/routes/delete-many/base-delete-many.service.js +22 -9
  100. package/src/routes/delete-many/base-delete-many.service.js.map +1 -1
  101. package/src/routes/delete-many/delete-many-controller.interface.d.ts +3 -3
  102. package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
  103. package/src/routes/delete-many/delete-many-gateway.mixin.js +1 -1
  104. package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -1
  105. package/src/routes/delete-many/delete-many.helper.d.ts +2 -2
  106. package/src/routes/delete-many/delete-many.helper.js +3 -1
  107. package/src/routes/delete-many/delete-many.helper.js.map +1 -1
  108. package/src/routes/delete-many/delete-many.module.js +1 -1
  109. package/src/routes/delete-many/delete-many.module.js.map +1 -1
  110. package/src/routes/delete-one/base-delete-one.service.d.ts +4 -1
  111. package/src/routes/delete-one/base-delete-one.service.js +30 -9
  112. package/src/routes/delete-one/base-delete-one.service.js.map +1 -1
  113. package/src/routes/delete-one/delete-one-controller.interface.d.ts +3 -3
  114. package/src/routes/delete-one/delete-one-controller.mixin.js.map +1 -1
  115. package/src/routes/delete-one/delete-one-gateway.mixin.js +1 -1
  116. package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -1
  117. package/src/routes/delete-one/delete-one.helper.d.ts +2 -2
  118. package/src/routes/delete-one/delete-one.helper.js +3 -1
  119. package/src/routes/delete-one/delete-one.helper.js.map +1 -1
  120. package/src/routes/delete-one/delete-one.module.js +1 -1
  121. package/src/routes/delete-one/delete-one.module.js.map +1 -1
  122. package/src/routes/duplicate-many/base-duplicate-many.service.js +2 -1
  123. package/src/routes/duplicate-many/base-duplicate-many.service.js.map +1 -1
  124. package/src/routes/duplicate-many/duplicate-many-controller.interface.d.ts +3 -2
  125. package/src/routes/duplicate-many/duplicate-many-controller.mixin.d.ts +1 -1
  126. package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +4 -2
  127. package/src/routes/duplicate-many/duplicate-many-controller.mixin.js.map +1 -1
  128. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +1 -1
  129. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -1
  130. package/src/routes/duplicate-one/base-duplicate-one.service.js +2 -1
  131. package/src/routes/duplicate-one/base-duplicate-one.service.js.map +1 -1
  132. package/src/routes/duplicate-one/duplicate-one-controller.interface.d.ts +3 -2
  133. package/src/routes/duplicate-one/duplicate-one-controller.mixin.d.ts +1 -1
  134. package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +4 -2
  135. package/src/routes/duplicate-one/duplicate-one-controller.mixin.js.map +1 -1
  136. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +1 -1
  137. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -1
  138. package/src/routes/get-many/base-get-many.service.d.ts +3 -1
  139. package/src/routes/get-many/base-get-many.service.js +5 -1
  140. package/src/routes/get-many/base-get-many.service.js.map +1 -1
  141. package/src/routes/get-many/get-many-controller.interface.d.ts +3 -2
  142. package/src/routes/get-many/get-many-controller.mixin.js +2 -2
  143. package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
  144. package/src/routes/get-many/get-many-gateway.mixin.js +2 -2
  145. package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -1
  146. package/src/routes/get-many/get-many.helper.d.ts +2 -2
  147. package/src/routes/get-many/get-many.helper.js +3 -1
  148. package/src/routes/get-many/get-many.helper.js.map +1 -1
  149. package/src/routes/get-many/get-many.module.js +1 -1
  150. package/src/routes/get-many/get-many.module.js.map +1 -1
  151. package/src/routes/get-one/get-one-controller.interface.d.ts +3 -2
  152. package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
  153. package/src/routes/get-one/get-one-gateway.mixin.js +1 -1
  154. package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -1
  155. package/src/routes/replace-one/base-replace-one.service.js +2 -1
  156. package/src/routes/replace-one/base-replace-one.service.js.map +1 -1
  157. package/src/routes/replace-one/replace-one-controller.interface.d.ts +3 -2
  158. package/src/routes/replace-one/replace-one-controller.mixin.d.ts +1 -1
  159. package/src/routes/replace-one/replace-one-controller.mixin.js +4 -2
  160. package/src/routes/replace-one/replace-one-controller.mixin.js.map +1 -1
  161. package/src/routes/replace-one/replace-one-gateway.mixin.js +1 -1
  162. package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -1
  163. package/src/routes/update-many/base-update-many.service.js +4 -2
  164. package/src/routes/update-many/base-update-many.service.js.map +1 -1
  165. package/src/routes/update-many/update-many-controller.interface.d.ts +3 -2
  166. package/src/routes/update-many/update-many-controller.mixin.d.ts +1 -1
  167. package/src/routes/update-many/update-many-controller.mixin.js +4 -2
  168. package/src/routes/update-many/update-many-controller.mixin.js.map +1 -1
  169. package/src/routes/update-many/update-many-gateway.mixin.js +1 -1
  170. package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -1
  171. package/src/routes/update-one/base-update-one.service.js +2 -1
  172. package/src/routes/update-one/base-update-one.service.js.map +1 -1
  173. package/src/routes/update-one/update-one-controller.interface.d.ts +3 -2
  174. package/src/routes/update-one/update-one-controller.mixin.d.ts +1 -1
  175. package/src/routes/update-one/update-one-controller.mixin.js +4 -2
  176. package/src/routes/update-one/update-one-controller.mixin.js.map +1 -1
  177. package/src/routes/update-one/update-one-gateway.mixin.js +1 -1
  178. package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -1
  179. package/src/services/base/base.service.d.ts +6 -1
  180. package/src/services/base/base.service.js +57 -1
  181. package/src/services/base/base.service.js.map +1 -1
  182. package/src/version.json +1 -1
  183. package/test/for-feature/ability-predicate-filter.e2e-spec.d.ts +1 -0
  184. package/test/for-feature/ability-predicate-filter.e2e-spec.js +106 -0
  185. package/test/for-feature/ability-predicate-filter.e2e-spec.js.map +1 -0
  186. package/test/for-feature/cascade-and-before-delete.e2e-spec.d.ts +1 -0
  187. package/test/for-feature/cascade-and-before-delete.e2e-spec.js +304 -0
  188. package/test/for-feature/cascade-and-before-delete.e2e-spec.js.map +1 -0
  189. package/test/for-feature/derived-fields-protected-from-user.e2e-spec.d.ts +1 -0
  190. package/test/for-feature/derived-fields-protected-from-user.e2e-spec.js +199 -0
  191. package/test/for-feature/derived-fields-protected-from-user.e2e-spec.js.map +1 -0
  192. package/test/for-feature/raw-update-callback-methods.e2e-spec.d.ts +1 -0
  193. package/test/for-feature/raw-update-callback-methods.e2e-spec.js +263 -0
  194. package/test/for-feature/raw-update-callback-methods.e2e-spec.js.map +1 -0
  195. package/test/for-root/auth-api-basic.e2e-spec.js +3 -1
  196. package/test/for-root/auth-api-basic.e2e-spec.js.map +1 -1
  197. package/test/for-root/auth-api-update-account.e2e-spec.d.ts +1 -0
  198. package/test/for-root/auth-api-update-account.e2e-spec.js +130 -0
  199. package/test/for-root/auth-api-update-account.e2e-spec.js.map +1 -0
  200. package/test/for-root/websockets-auth-basic.e2e-spec.js +1 -0
  201. package/test/for-root/websockets-auth-basic.e2e-spec.js.map +1 -1
  202. 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.6.1",
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": "^11.1.13",
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": "^6.0.1",
75
- "@release-it/conventional-changelog": "^8.0.1",
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": "^17.11.0",
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';
@@ -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,3 @@
1
+ declare const PROTECTED_FIELD_METADATA = "dynamic-api-module:protected-field";
2
+ declare function ProtectedField(): PropertyDecorator;
3
+ export { PROTECTED_FIELD_METADATA, ProtectedField };
@@ -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":"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"}
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"}
@@ -1,5 +1,6 @@
1
1
  export * from './controller-ability-predicates.helper';
2
2
  export * from './format.helper';
3
+ export * from './from-user.helper';
3
4
  export * from './lodash.helper';
4
5
  export * from './mixin-data.helper';
5
6
  export * from './repository.helper';
@@ -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);
@@ -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":";;AA8ES,oCAAY;AA7ErB,mDAA4C;AAQ5C,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,yBAAS,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"}
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
@@ -14,3 +14,4 @@ export * from './routes';
14
14
  export * from './services';
15
15
  export * from './utils';
16
16
  export * from './dynamic-api.module';
17
+ export { AuthOperationContext, getAuthOperationContext } from './modules/auth/auth-operation-context';
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":";;;;;;;;;;;;;;;;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"}
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,9 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { BaseEntity } from '../models';
3
+ interface CascadeConfig {
4
+ entity: Type<BaseEntity>;
5
+ foreignKey: string;
6
+ on: 'delete' | 'softDelete';
7
+ softDelete?: boolean;
8
+ }
9
+ export { CascadeConfig };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dynamic-api-cascade-config.interface.js.map
@@ -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,4 @@
1
+ interface DynamicApiRequest {
2
+ user?: unknown;
3
+ }
4
+ export type { DynamicApiRequest };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dynamic-api-request.interface.js.map
@@ -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';
@@ -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"}