mongodb-dynamic-api 2.3.16 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +5 -2
  3. package/src/adapters/socket-adapter.d.ts +8 -0
  4. package/src/adapters/socket-adapter.js +11 -0
  5. package/src/adapters/socket-adapter.js.map +1 -0
  6. package/src/builders/route-decorators/auth-decorators.builder.d.ts +4 -4
  7. package/src/builders/route-decorators/auth-decorators.builder.js +9 -6
  8. package/src/builders/route-decorators/auth-decorators.builder.js.map +1 -1
  9. package/src/dtos/index.d.ts +1 -1
  10. package/src/dtos/index.js +1 -1
  11. package/src/dtos/index.js.map +1 -1
  12. package/src/dtos/many-entity.query.d.ts +3 -0
  13. package/src/dtos/{delete-many-entity.query.js → many-entity.query.js} +5 -5
  14. package/src/dtos/many-entity.query.js.map +1 -0
  15. package/src/dynamic-api.module.d.ts +2 -2
  16. package/src/dynamic-api.module.js +10 -7
  17. package/src/dynamic-api.module.js.map +1 -1
  18. package/src/filters/ws-exception/dynamic-api-ws-exception.filter.d.ts +5 -0
  19. package/src/filters/ws-exception/dynamic-api-ws-exception.filter.js +29 -0
  20. package/src/filters/ws-exception/dynamic-api-ws-exception.filter.js.map +1 -0
  21. package/src/gateways/base.gateway.d.ts +10 -0
  22. package/src/gateways/base.gateway.js +45 -0
  23. package/src/gateways/base.gateway.js.map +1 -0
  24. package/src/gateways/index.d.ts +1 -0
  25. package/src/gateways/index.js +18 -0
  26. package/src/gateways/index.js.map +1 -0
  27. package/src/helpers/controller-mixin.helper.js +2 -20
  28. package/src/helpers/controller-mixin.helper.js.map +1 -1
  29. package/src/helpers/format.helper.d.ts +7 -4
  30. package/src/helpers/format.helper.js +12 -4
  31. package/src/helpers/format.helper.js.map +1 -1
  32. package/src/helpers/index.d.ts +1 -0
  33. package/src/helpers/index.js +1 -0
  34. package/src/helpers/index.js.map +1 -1
  35. package/src/helpers/socket-config.helper.d.ts +5 -0
  36. package/src/helpers/socket-config.helper.js +30 -0
  37. package/src/helpers/socket-config.helper.js.map +1 -0
  38. package/src/index.d.ts +1 -0
  39. package/src/index.js +1 -0
  40. package/src/index.js.map +1 -1
  41. package/src/interfaces/dynamic-api-global-state.interface.d.ts +3 -0
  42. package/src/interfaces/dynamic-api-options.interface.d.ts +3 -0
  43. package/src/interfaces/dynamic-api-options.interface.js.map +1 -1
  44. package/src/interfaces/dynamic-api-policy-handler.interface.d.ts +2 -2
  45. package/src/interfaces/dynamic-api-route-config.interface.d.ts +2 -0
  46. package/src/interfaces/dynamic-api-service-callback.interface.d.ts +2 -2
  47. package/src/interfaces/dynamic-api-web-socket.interface.d.ts +13 -0
  48. package/src/interfaces/dynamic-api-web-socket.interface.js +3 -0
  49. package/src/interfaces/dynamic-api-web-socket.interface.js.map +1 -0
  50. package/src/interfaces/index.d.ts +1 -0
  51. package/src/interfaces/index.js +1 -0
  52. package/src/interfaces/index.js.map +1 -1
  53. package/src/modules/auth/auth.helper.d.ts +7 -5
  54. package/src/modules/auth/auth.helper.js +29 -5
  55. package/src/modules/auth/auth.helper.js.map +1 -1
  56. package/src/modules/auth/auth.module.js +28 -10
  57. package/src/modules/auth/auth.module.js.map +1 -1
  58. package/src/modules/auth/guards/index.d.ts +4 -2
  59. package/src/modules/auth/guards/index.js +4 -2
  60. package/src/modules/auth/guards/index.js.map +1 -1
  61. package/src/modules/auth/guards/jwt-auth/jwt-auth.guard.js.map +1 -0
  62. package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.d.ts +5 -0
  63. package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js +57 -0
  64. package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js.map +1 -0
  65. package/src/modules/auth/guards/local-auth/local-auth.guard.js.map +1 -0
  66. package/src/modules/auth/guards/reset-password/reset-password.guard.d.ts +6 -0
  67. package/src/modules/auth/guards/reset-password/reset-password.guard.js +30 -0
  68. package/src/modules/auth/guards/reset-password/reset-password.guard.js.map +1 -0
  69. package/src/modules/auth/interfaces/auth-controller.interface.d.ts +3 -0
  70. package/src/modules/auth/interfaces/auth-gateway.interface.d.ts +16 -0
  71. package/src/modules/auth/interfaces/auth-gateway.interface.js +3 -0
  72. package/src/modules/auth/interfaces/auth-gateway.interface.js.map +1 -0
  73. package/src/modules/auth/interfaces/auth-options.interface.d.ts +15 -8
  74. package/src/modules/auth/interfaces/auth-service.interface.d.ts +1 -0
  75. package/src/modules/auth/interfaces/index.d.ts +1 -0
  76. package/src/modules/auth/interfaces/index.js +1 -0
  77. package/src/modules/auth/interfaces/index.js.map +1 -1
  78. package/src/modules/auth/mixins/auth-controller.mixin.d.ts +2 -2
  79. package/src/modules/auth/mixins/auth-controller.mixin.js +31 -5
  80. package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
  81. package/src/modules/auth/mixins/auth-gateway.mixin.d.ts +5 -0
  82. package/src/modules/auth/mixins/auth-gateway.mixin.js +191 -0
  83. package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -0
  84. package/src/modules/auth/mixins/auth-policies-guard.mixin.d.ts +6 -0
  85. package/src/modules/auth/mixins/auth-policies-guard.mixin.js +52 -0
  86. package/src/modules/auth/mixins/auth-policies-guard.mixin.js.map +1 -0
  87. package/src/modules/auth/mixins/index.d.ts +2 -1
  88. package/src/modules/auth/mixins/index.js +2 -1
  89. package/src/modules/auth/mixins/index.js.map +1 -1
  90. package/src/modules/auth/services/base-auth.service.d.ts +2 -0
  91. package/src/modules/auth/services/base-auth.service.js +27 -7
  92. package/src/modules/auth/services/base-auth.service.js.map +1 -1
  93. package/src/routes/create-many/create-many-body-dto.mixin.d.ts +7 -0
  94. package/src/routes/create-many/create-many-body-dto.mixin.js +30 -0
  95. package/src/routes/create-many/create-many-body-dto.mixin.js.map +1 -0
  96. package/src/routes/create-many/create-many-controller.interface.d.ts +5 -4
  97. package/src/routes/create-many/create-many-gateway.interface.d.ts +10 -0
  98. package/src/routes/create-many/create-many-gateway.interface.js +3 -0
  99. package/src/routes/create-many/create-many-gateway.interface.js.map +1 -0
  100. package/src/routes/create-many/create-many-gateway.mixin.d.ts +6 -0
  101. package/src/routes/create-many/create-many-gateway.mixin.js +60 -0
  102. package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -0
  103. package/src/routes/create-many/create-many.helper.d.ts +4 -2
  104. package/src/routes/create-many/create-many.helper.js +21 -1
  105. package/src/routes/create-many/create-many.helper.js.map +1 -1
  106. package/src/routes/create-many/create-many.module.d.ts +2 -2
  107. package/src/routes/create-many/create-many.module.js +12 -2
  108. package/src/routes/create-many/create-many.module.js.map +1 -1
  109. package/src/routes/create-many/index.d.ts +3 -0
  110. package/src/routes/create-many/index.js +3 -0
  111. package/src/routes/create-many/index.js.map +1 -1
  112. package/src/routes/create-one/create-one-gateway.interface.d.ts +9 -0
  113. package/src/routes/create-one/create-one-gateway.interface.js +3 -0
  114. package/src/routes/create-one/create-one-gateway.interface.js.map +1 -0
  115. package/src/routes/create-one/create-one-gateway.mixin.d.ts +6 -0
  116. package/src/routes/create-one/create-one-gateway.mixin.js +61 -0
  117. package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -0
  118. package/src/routes/create-one/create-one.helper.d.ts +4 -2
  119. package/src/routes/create-one/create-one.helper.js +21 -1
  120. package/src/routes/create-one/create-one.helper.js.map +1 -1
  121. package/src/routes/create-one/create-one.module.d.ts +2 -2
  122. package/src/routes/create-one/create-one.module.js +12 -2
  123. package/src/routes/create-one/create-one.module.js.map +1 -1
  124. package/src/routes/create-one/index.d.ts +2 -0
  125. package/src/routes/create-one/index.js +2 -0
  126. package/src/routes/create-one/index.js.map +1 -1
  127. package/src/routes/delete-many/delete-many-controller.interface.d.ts +2 -2
  128. package/src/routes/delete-many/delete-many-controller.mixin.js +1 -1
  129. package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
  130. package/src/routes/delete-many/delete-many-gateway.interface.d.ts +10 -0
  131. package/src/routes/delete-many/delete-many-gateway.interface.js +3 -0
  132. package/src/routes/delete-many/delete-many-gateway.interface.js.map +1 -0
  133. package/src/routes/delete-many/delete-many-gateway.mixin.d.ts +6 -0
  134. package/src/routes/delete-many/delete-many-gateway.mixin.js +60 -0
  135. package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -0
  136. package/src/routes/delete-many/delete-many.helper.d.ts +4 -2
  137. package/src/routes/delete-many/delete-many.helper.js +21 -1
  138. package/src/routes/delete-many/delete-many.helper.js.map +1 -1
  139. package/src/routes/delete-many/delete-many.module.d.ts +2 -2
  140. package/src/routes/delete-many/delete-many.module.js +12 -2
  141. package/src/routes/delete-many/delete-many.module.js.map +1 -1
  142. package/src/routes/delete-many/index.d.ts +2 -0
  143. package/src/routes/delete-many/index.js +2 -0
  144. package/src/routes/delete-many/index.js.map +1 -1
  145. package/src/routes/delete-one/delete-one-gateway.interface.d.ts +10 -0
  146. package/src/routes/delete-one/delete-one-gateway.interface.js +3 -0
  147. package/src/routes/delete-one/delete-one-gateway.interface.js.map +1 -0
  148. package/src/routes/delete-one/delete-one-gateway.mixin.d.ts +6 -0
  149. package/src/routes/delete-one/delete-one-gateway.mixin.js +60 -0
  150. package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -0
  151. package/src/routes/delete-one/delete-one.helper.d.ts +4 -2
  152. package/src/routes/delete-one/delete-one.helper.js +21 -1
  153. package/src/routes/delete-one/delete-one.helper.js.map +1 -1
  154. package/src/routes/delete-one/delete-one.module.d.ts +2 -2
  155. package/src/routes/delete-one/delete-one.module.js +12 -2
  156. package/src/routes/delete-one/delete-one.module.js.map +1 -1
  157. package/src/routes/delete-one/index.d.ts +2 -0
  158. package/src/routes/delete-one/index.js +2 -0
  159. package/src/routes/delete-one/index.js.map +1 -1
  160. package/src/routes/duplicate-many/base-duplicate-many.service.js +1 -1
  161. package/src/routes/duplicate-many/base-duplicate-many.service.js.map +1 -1
  162. package/src/routes/duplicate-many/duplicate-many-gateway.interface.d.ts +10 -0
  163. package/src/routes/duplicate-many/duplicate-many-gateway.interface.js +3 -0
  164. package/src/routes/duplicate-many/duplicate-many-gateway.interface.js.map +1 -0
  165. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.d.ts +6 -0
  166. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +60 -0
  167. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -0
  168. package/src/routes/duplicate-many/duplicate-many.helper.d.ts +4 -2
  169. package/src/routes/duplicate-many/duplicate-many.helper.js +21 -1
  170. package/src/routes/duplicate-many/duplicate-many.helper.js.map +1 -1
  171. package/src/routes/duplicate-many/duplicate-many.module.d.ts +2 -2
  172. package/src/routes/duplicate-many/duplicate-many.module.js +12 -2
  173. package/src/routes/duplicate-many/duplicate-many.module.js.map +1 -1
  174. package/src/routes/duplicate-many/index.d.ts +2 -0
  175. package/src/routes/duplicate-many/index.js +2 -0
  176. package/src/routes/duplicate-many/index.js.map +1 -1
  177. package/src/routes/duplicate-one/duplicate-one-gateway.interface.d.ts +10 -0
  178. package/src/routes/duplicate-one/duplicate-one-gateway.interface.js +3 -0
  179. package/src/routes/duplicate-one/duplicate-one-gateway.interface.js.map +1 -0
  180. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.d.ts +6 -0
  181. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +60 -0
  182. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -0
  183. package/src/routes/duplicate-one/duplicate-one.helper.d.ts +4 -2
  184. package/src/routes/duplicate-one/duplicate-one.helper.js +21 -1
  185. package/src/routes/duplicate-one/duplicate-one.helper.js.map +1 -1
  186. package/src/routes/duplicate-one/duplicate-one.module.d.ts +2 -2
  187. package/src/routes/duplicate-one/duplicate-one.module.js +12 -2
  188. package/src/routes/duplicate-one/duplicate-one.module.js.map +1 -1
  189. package/src/routes/duplicate-one/index.d.ts +2 -0
  190. package/src/routes/duplicate-one/index.js +2 -0
  191. package/src/routes/duplicate-one/index.js.map +1 -1
  192. package/src/routes/get-many/get-many-gateway.interface.d.ts +9 -0
  193. package/src/routes/get-many/get-many-gateway.interface.js +3 -0
  194. package/src/routes/get-many/get-many-gateway.interface.js.map +1 -0
  195. package/src/routes/get-many/get-many-gateway.mixin.d.ts +6 -0
  196. package/src/routes/get-many/get-many-gateway.mixin.js +56 -0
  197. package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -0
  198. package/src/routes/get-many/get-many.helper.d.ts +4 -2
  199. package/src/routes/get-many/get-many.helper.js +21 -1
  200. package/src/routes/get-many/get-many.helper.js.map +1 -1
  201. package/src/routes/get-many/get-many.module.d.ts +2 -2
  202. package/src/routes/get-many/get-many.module.js +12 -2
  203. package/src/routes/get-many/get-many.module.js.map +1 -1
  204. package/src/routes/get-many/index.d.ts +2 -0
  205. package/src/routes/get-many/index.js +2 -0
  206. package/src/routes/get-many/index.js.map +1 -1
  207. package/src/routes/get-one/get-one-gateway.interface.d.ts +10 -0
  208. package/src/routes/get-one/get-one-gateway.interface.js +3 -0
  209. package/src/routes/get-one/get-one-gateway.interface.js.map +1 -0
  210. package/src/routes/get-one/get-one-gateway.mixin.d.ts +6 -0
  211. package/src/routes/get-one/get-one-gateway.mixin.js +60 -0
  212. package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -0
  213. package/src/routes/get-one/get-one.helper.d.ts +4 -2
  214. package/src/routes/get-one/get-one.helper.js +21 -1
  215. package/src/routes/get-one/get-one.helper.js.map +1 -1
  216. package/src/routes/get-one/get-one.module.d.ts +2 -2
  217. package/src/routes/get-one/get-one.module.js +12 -2
  218. package/src/routes/get-one/get-one.module.js.map +1 -1
  219. package/src/routes/get-one/index.d.ts +2 -0
  220. package/src/routes/get-one/index.js +2 -0
  221. package/src/routes/get-one/index.js.map +1 -1
  222. package/src/routes/replace-one/index.d.ts +2 -0
  223. package/src/routes/replace-one/index.js +2 -0
  224. package/src/routes/replace-one/index.js.map +1 -1
  225. package/src/routes/replace-one/replace-one-gateway.interface.d.ts +10 -0
  226. package/src/routes/replace-one/replace-one-gateway.interface.js +3 -0
  227. package/src/routes/replace-one/replace-one-gateway.interface.js.map +1 -0
  228. package/src/routes/replace-one/replace-one-gateway.mixin.d.ts +6 -0
  229. package/src/routes/replace-one/replace-one-gateway.mixin.js +60 -0
  230. package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -0
  231. package/src/routes/replace-one/replace-one.helper.d.ts +4 -2
  232. package/src/routes/replace-one/replace-one.helper.js +21 -1
  233. package/src/routes/replace-one/replace-one.helper.js.map +1 -1
  234. package/src/routes/replace-one/replace-one.module.d.ts +2 -2
  235. package/src/routes/replace-one/replace-one.module.js +12 -2
  236. package/src/routes/replace-one/replace-one.module.js.map +1 -1
  237. package/src/routes/update-many/index.d.ts +2 -0
  238. package/src/routes/update-many/index.js +2 -0
  239. package/src/routes/update-many/index.js.map +1 -1
  240. package/src/routes/update-many/update-many-gateway.interface.d.ts +10 -0
  241. package/src/routes/update-many/update-many-gateway.interface.js +3 -0
  242. package/src/routes/update-many/update-many-gateway.interface.js.map +1 -0
  243. package/src/routes/update-many/update-many-gateway.mixin.d.ts +6 -0
  244. package/src/routes/update-many/update-many-gateway.mixin.js +63 -0
  245. package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -0
  246. package/src/routes/update-many/update-many.helper.d.ts +4 -2
  247. package/src/routes/update-many/update-many.helper.js +21 -1
  248. package/src/routes/update-many/update-many.helper.js.map +1 -1
  249. package/src/routes/update-many/update-many.module.d.ts +2 -2
  250. package/src/routes/update-many/update-many.module.js +12 -2
  251. package/src/routes/update-many/update-many.module.js.map +1 -1
  252. package/src/routes/update-one/update-one-gateway.interface.d.ts +10 -0
  253. package/src/routes/update-one/update-one-gateway.interface.js +3 -0
  254. package/src/routes/update-one/update-one-gateway.interface.js.map +1 -0
  255. package/src/routes/update-one/update-one-gateway.mixin.d.ts +6 -0
  256. package/src/routes/update-one/update-one-gateway.mixin.js +60 -0
  257. package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -0
  258. package/src/routes/update-one/update-one.helper.d.ts +4 -2
  259. package/src/routes/update-one/update-one.helper.js +21 -1
  260. package/src/routes/update-one/update-one.helper.js.map +1 -1
  261. package/src/routes/update-one/update-one.module.d.ts +2 -2
  262. package/src/routes/update-one/update-one.module.js +12 -2
  263. package/src/routes/update-one/update-one.module.js.map +1 -1
  264. package/src/services/base/base.service.d.ts +4 -3
  265. package/src/services/base/base.service.js +12 -5
  266. package/src/services/base/base.service.js.map +1 -1
  267. package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.js +4 -0
  268. package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.js.map +1 -1
  269. package/src/version.json +1 -1
  270. package/test/dynamic-api-for-root.e2e-spec.js +893 -476
  271. package/test/dynamic-api-for-root.e2e-spec.js.map +1 -1
  272. package/test/e2e.setup.d.ts +16 -1
  273. package/test/e2e.setup.js +62 -7
  274. package/test/e2e.setup.js.map +1 -1
  275. package/tsconfig.tsbuildinfo +1 -1
  276. package/src/dtos/delete-many-entity.query.d.ts +0 -3
  277. package/src/dtos/delete-many-entity.query.js.map +0 -1
  278. package/src/modules/auth/guards/jwt-auth.guard.js.map +0 -1
  279. package/src/modules/auth/guards/local-auth.guard.js.map +0 -1
  280. package/src/modules/auth/mixins/auth-register-policies-guard.mixin.d.ts +0 -5
  281. package/src/modules/auth/mixins/auth-register-policies-guard.mixin.js +0 -31
  282. package/src/modules/auth/mixins/auth-register-policies-guard.mixin.js.map +0 -1
  283. /package/src/modules/auth/guards/{jwt-auth.guard.d.ts → jwt-auth/jwt-auth.guard.d.ts} +0 -0
  284. /package/src/modules/auth/guards/{jwt-auth.guard.js → jwt-auth/jwt-auth.guard.js} +0 -0
  285. /package/src/modules/auth/guards/{local-auth.guard.d.ts → local-auth/local-auth.guard.d.ts} +0 -0
  286. /package/src/modules/auth/guards/{local-auth.guard.js → local-auth/local-auth.guard.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket-config.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/socket-config.helper.ts"],"names":[],"mappings":";;;AACA,+DAA2D;AAG3D,SAAS,mBAAmB,CAAC,YAAY,GAAG,EAAE;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,GAAG,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,CAAC,mBAAmB,GAAG,GAAG,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AACzE,CAAC;AAOD,SAAS,0BAA0B,CAAC,GAAqB,EAAE,YAAqB;IAC9E,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAElC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,GAAG;QACjC,IAAI,6BAA6B,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YAC5F,OAAO,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;YAC1G,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,mBAAmB,CAAC,IAAI,8BAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC;AAUqC,gEAA0B;AARhE,SAAS,2BAA2B,CAAC,OAAoC;IACvE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,OAAO,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACrD,CAAC;AAEQ,kEAA2B"}
package/src/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './builders';
2
2
  export * from './decorators';
3
3
  export * from './dtos';
4
+ export * from './gateways';
4
5
  export * from './guards';
5
6
  export * from './helpers';
6
7
  export * from './interceptors';
package/src/index.js CHANGED
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./builders"), exports);
18
18
  __exportStar(require("./decorators"), exports);
19
19
  __exportStar(require("./dtos"), exports);
20
+ __exportStar(require("./gateways"), exports);
20
21
  __exportStar(require("./guards"), exports);
21
22
  __exportStar(require("./helpers"), exports);
22
23
  __exportStar(require("./interceptors"), exports);
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,2CAAyB;AACzB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,uDAAqC"}
@@ -22,6 +22,7 @@
22
22
  /// <reference types="mongoose/types/validation" />
23
23
  /// <reference types="mongoose/types/virtuals" />
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
+ import { GatewayMetadata } from '@nestjs/websockets';
25
26
  import { Schema } from 'mongoose';
26
27
  import { RouteType } from './dynamic-api-route-type.type';
27
28
  type Credentials = {
@@ -44,6 +45,8 @@ interface DynamicApiGlobalState {
44
45
  isAuthEnabled: boolean;
45
46
  credentials: Credentials;
46
47
  jwtSecret: string | undefined;
48
+ jwtExpirationTime: string | number | undefined;
47
49
  routesConfig: RoutesConfig;
50
+ gatewayOptions: GatewayMetadata | undefined;
48
51
  }
49
52
  export { DynamicApiGlobalState, Credentials, EntitySchemas, RoutesConfig };
@@ -5,16 +5,19 @@ import { DynamicApiControllerOptions } from './dynamic-api-controller-options.in
5
5
  import { DynamicApiCacheOptions } from './dynamic-api-cache-options.interface';
6
6
  import { RoutesConfig } from './dynamic-api-global-state.interface';
7
7
  import { DynamicAPIRouteConfig } from './dynamic-api-route-config.interface';
8
+ import { DynamicApiWebSocketOptions } from './dynamic-api-web-socket.interface';
8
9
  declare const DYNAMIC_API_GLOBAL_STATE: unique symbol;
9
10
  interface DynamicApiForRootOptions<Entity extends BaseEntity = any> {
10
11
  useGlobalCache?: boolean;
11
12
  cacheOptions?: DynamicApiCacheOptions;
12
13
  useAuth?: DynamicApiAuthOptions<Entity>;
13
14
  routesConfig?: Partial<RoutesConfig>;
15
+ webSocket?: DynamicApiWebSocketOptions;
14
16
  }
15
17
  interface DynamicApiForFeatureOptions<Entity extends BaseEntity> {
16
18
  entity: Type<Entity>;
17
19
  controllerOptions: DynamicApiControllerOptions<Entity>;
18
20
  routes?: DynamicAPIRouteConfig<Entity>[];
21
+ webSocket?: DynamicApiWebSocketOptions;
19
22
  }
20
23
  export { DynamicApiForFeatureOptions, DynamicApiForRootOptions, DYNAMIC_API_GLOBAL_STATE };
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-api-options.interface.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interfaces/dynamic-api-options.interface.ts"],"names":[],"mappings":";;;AAQA,MAAM,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAeJ,4DAAwB"}
1
+ {"version":3,"file":"dynamic-api-options.interface.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interfaces/dynamic-api-options.interface.ts"],"names":[],"mappings":";;;AASA,MAAM,wBAAwB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAiBJ,4DAAwB"}
@@ -29,5 +29,5 @@ interface PoliciesGuard {
29
29
  canActivate(context: ExecutionContext): boolean | Promise<boolean>;
30
30
  }
31
31
  type PoliciesGuardConstructor<Entity extends BaseEntity> = new (model: Model<Entity>) => PoliciesGuard;
32
- type RegisterPoliciesGuardConstructor = new () => PoliciesGuard;
33
- export { PoliciesGuardConstructor, PoliciesGuard, RegisterPoliciesGuardConstructor };
32
+ type AuthPoliciesGuardConstructor = new () => PoliciesGuard;
33
+ export { PoliciesGuardConstructor, PoliciesGuard, AuthPoliciesGuardConstructor };
@@ -4,6 +4,7 @@ import { AbilityPredicate } from './dynamic-api-ability.interface';
4
4
  import { DTOsBundle } from './dynamic-api-route-dtos-bundle.type';
5
5
  import { RouteType } from './dynamic-api-route-type.type';
6
6
  import { DynamicApiServiceCallback } from './dynamic-api-service-callback.interface';
7
+ import { DynamicApiWebSocketOptions } from './dynamic-api-web-socket.interface';
7
8
  interface DynamicAPIRouteConfig<Entity extends BaseEntity> {
8
9
  type: RouteType;
9
10
  isPublic?: boolean;
@@ -13,5 +14,6 @@ interface DynamicAPIRouteConfig<Entity extends BaseEntity> {
13
14
  validationPipeOptions?: ValidationPipeOptions;
14
15
  abilityPredicate?: AbilityPredicate<Entity>;
15
16
  callback?: DynamicApiServiceCallback<Entity>;
17
+ webSocket?: DynamicApiWebSocketOptions;
16
18
  }
17
19
  export { DynamicAPIRouteConfig };
@@ -38,8 +38,8 @@ type DynamicApiCallbackMethods = {
38
38
  };
39
39
  type DynamicApiServiceCallback<Entity extends BaseEntity> = (entity: Entity, methods: DynamicApiCallbackMethods) => Promise<void>;
40
40
  type DynamicApiResetPasswordCallbackMethods<Entity extends BaseEntity, UpdateBy = 'userId'> = {
41
- findUserByEmail: (email: string) => Promise<Entity | undefined>;
42
- updateUserByEmail: (email: string, update: Partial<Entity>) => Promise<Entity | undefined>;
41
+ findUserByEmail: () => Promise<Entity>;
42
+ updateUserByEmail: (update: UpdateQuery<Entity> | UpdateWithAggregationPipeline) => Promise<Entity>;
43
43
  };
44
44
  type DynamicApiResetPasswordCallback<Entity extends BaseEntity> = (_: {
45
45
  resetPasswordToken: string;
@@ -0,0 +1,13 @@
1
+ import { GatewayMetadata } from '@nestjs/websockets';
2
+ import { Socket } from 'socket.io';
3
+ import { BaseEntity } from '../models';
4
+ interface ExtendedSocket<Entity extends BaseEntity = any> extends Socket {
5
+ user?: Entity;
6
+ }
7
+ type GatewayResponse<Data> = Promise<{
8
+ event: string;
9
+ data: Data;
10
+ }>;
11
+ type GatewayOptions = GatewayMetadata;
12
+ type DynamicApiWebSocketOptions = GatewayOptions | boolean;
13
+ export type { DynamicApiWebSocketOptions, ExtendedSocket, GatewayOptions, GatewayResponse };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dynamic-api-web-socket.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-api-web-socket.interface.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/interfaces/dynamic-api-web-socket.interface.ts"],"names":[],"mappings":""}
@@ -15,3 +15,4 @@ export * from './dynamic-api-schema-options.interface';
15
15
  export * from './dynamic-api-service-callback.interface';
16
16
  export * from './dynamic-api-service-provider.interface';
17
17
  export * from './dynamic-api-swagger-options.type';
18
+ export * from './dynamic-api-web-socket.interface';
@@ -31,4 +31,5 @@ __exportStar(require("./dynamic-api-schema-options.interface"), exports);
31
31
  __exportStar(require("./dynamic-api-service-callback.interface"), exports);
32
32
  __exportStar(require("./dynamic-api-service-provider.interface"), exports);
33
33
  __exportStar(require("./dynamic-api-swagger-options.type"), exports);
34
+ __exportStar(require("./dynamic-api-web-socket.interface"), exports);
34
35
  //# sourceMappingURL=index.js.map
@@ -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,yEAAuD;AACvD,uEAAqD;AACrD,kEAAgD;AAChD,yEAAuD;AACvD,uEAAqD;AACrD,uEAAqD;AACrD,kEAAgD;AAChD,oEAAkD;AAClD,gEAA8C;AAC9C,yEAAuD;AACvD,2EAAyD;AACzD,2EAAyD;AACzD,qEAAmD"}
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,yEAAuD;AACvD,uEAAqD;AACrD,kEAAgD;AAChD,yEAAuD;AACvD,uEAAqD;AACrD,uEAAqD;AACrD,kEAAgD;AAChD,oEAAkD;AAClD,gEAA8C;AAC9C,yEAAuD;AACvD,2EAAyD;AACzD,2EAAyD;AACzD,qEAAmD;AACnD,qEAAmD"}
@@ -1,10 +1,12 @@
1
1
  import { Type, ValidationPipeOptions } from '@nestjs/common';
2
- import { AuthAbilityPredicate, DynamicApiServiceCallback, DynamicAPIServiceProvider } from '../../interfaces';
2
+ import { AuthAbilityPredicate, DynamicApiServiceCallback, DynamicAPIServiceProvider, GatewayOptions } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
- import { AuthControllerConstructor, DynamicApiLoginOptions, DynamicApiRegisterOptions, DynamicApiResetPasswordOptions } from './interfaces';
4
+ import { AuthControllerConstructor, AuthGatewayConstructor, DynamicApiLoginOptions, DynamicApiRegisterOptions, DynamicApiResetPasswordOptions, DynamicApiUpdateAccountOptions } from './interfaces';
5
5
  declare const authServiceProviderName = "DynamicApiAuthService";
6
+ declare const authGatewayProviderName = "DynamicApiAuthGateway";
6
7
  declare const localStrategyProviderName = "DynamicApiLocalStrategy";
7
8
  declare function createLocalStrategyProvider<Entity extends BaseEntity>(loginField: keyof Entity, passwordField: keyof Entity, abilityPredicate: AuthAbilityPredicate | undefined): DynamicAPIServiceProvider;
8
- declare function createAuthServiceProvider<Entity extends BaseEntity>(userEntity: Type<Entity>, { loginField, passwordField, additionalFields, callback: loginCallback }: DynamicApiLoginOptions<Entity>, registerCallback: DynamicApiServiceCallback<Entity> | undefined, resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined): DynamicAPIServiceProvider;
9
- declare function createAuthController<Entity extends BaseEntity>(userEntity: Type<Entity>, { loginField, passwordField, additionalFields }: DynamicApiLoginOptions<Entity>, registerOptions: DynamicApiRegisterOptions<Entity> | undefined, validationPipeOptions: ValidationPipeOptions | undefined, resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined): AuthControllerConstructor<Entity>;
10
- export { authServiceProviderName, createAuthController, createAuthServiceProvider, createLocalStrategyProvider, localStrategyProviderName, };
9
+ declare function createAuthServiceProvider<Entity extends BaseEntity>(userEntity: Type<Entity>, { loginField, passwordField, additionalFields, callback: loginCallback }: DynamicApiLoginOptions<Entity>, registerCallback: DynamicApiServiceCallback<Entity> | undefined, resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined, updateAccountCallback: DynamicApiServiceCallback<Entity> | undefined): DynamicAPIServiceProvider;
10
+ declare function createAuthController<Entity extends BaseEntity>(userEntity: Type<Entity>, { loginField, passwordField, additionalFields }: DynamicApiLoginOptions<Entity>, registerOptions: DynamicApiRegisterOptions<Entity> | undefined, validationPipeOptions: ValidationPipeOptions | undefined, resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined, updateAccountOptions: DynamicApiUpdateAccountOptions<Entity> | undefined): AuthControllerConstructor<Entity>;
11
+ declare function createAuthGateway<Entity extends BaseEntity>(userEntity: Type<Entity>, loginOptions: DynamicApiLoginOptions<Entity>, registerOptions: DynamicApiRegisterOptions<Entity> | undefined, validationPipeOptions: ValidationPipeOptions | undefined, resetPasswordOptions: DynamicApiResetPasswordOptions<Entity> | undefined, updateAccountOptions: DynamicApiUpdateAccountOptions<Entity> | undefined, gatewayOptions: GatewayOptions): AuthGatewayConstructor<Entity>;
12
+ export { authServiceProviderName, authGatewayProviderName, createAuthController, createAuthServiceProvider, createAuthGateway, createLocalStrategyProvider, localStrategyProviderName, };
@@ -12,20 +12,25 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.localStrategyProviderName = exports.createLocalStrategyProvider = exports.createAuthServiceProvider = exports.createAuthController = exports.authServiceProviderName = void 0;
15
+ exports.localStrategyProviderName = exports.createLocalStrategyProvider = exports.createAuthGateway = exports.createAuthServiceProvider = exports.createAuthController = exports.authGatewayProviderName = exports.authServiceProviderName = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const jwt_1 = require("@nestjs/jwt");
18
18
  const mongoose_1 = require("@nestjs/mongoose");
19
19
  const passport_1 = require("@nestjs/passport");
20
20
  const swagger_1 = require("@nestjs/swagger");
21
+ const websockets_1 = require("@nestjs/websockets");
21
22
  const mongoose_2 = require("mongoose");
22
23
  const passport_local_1 = require("passport-local");
24
+ const decorators_1 = require("../../decorators");
23
25
  const dynamic_api_module_1 = require("../../dynamic-api.module");
26
+ const dynamic_api_ws_exception_filter_1 = require("../../filters/ws-exception/dynamic-api-ws-exception.filter");
24
27
  const services_1 = require("../../services");
25
28
  const mixins_1 = require("./mixins");
26
29
  const services_2 = require("./services");
27
30
  const authServiceProviderName = 'DynamicApiAuthService';
28
31
  exports.authServiceProviderName = authServiceProviderName;
32
+ const authGatewayProviderName = 'DynamicApiAuthGateway';
33
+ exports.authGatewayProviderName = authGatewayProviderName;
29
34
  const localStrategyProviderName = 'DynamicApiLocalStrategy';
30
35
  exports.localStrategyProviderName = localStrategyProviderName;
31
36
  function createLocalStrategyProvider(loginField, passwordField, abilityPredicate) {
@@ -60,7 +65,7 @@ function createLocalStrategyProvider(loginField, passwordField, abilityPredicate
60
65
  };
61
66
  }
62
67
  exports.createLocalStrategyProvider = createLocalStrategyProvider;
63
- function createAuthServiceProvider(userEntity, { loginField, passwordField, additionalFields = [], callback: loginCallback }, registerCallback, resetPasswordOptions) {
68
+ function createAuthServiceProvider(userEntity, { loginField, passwordField, additionalFields = [], callback: loginCallback }, registerCallback, resetPasswordOptions, updateAccountCallback) {
64
69
  let AuthService = class AuthService extends services_2.BaseAuthService {
65
70
  constructor(model, jwtService, bcryptService) {
66
71
  super(model, jwtService, bcryptService);
@@ -72,6 +77,7 @@ function createAuthServiceProvider(userEntity, { loginField, passwordField, addi
72
77
  this.loginField = loginField;
73
78
  this.passwordField = passwordField;
74
79
  this.registerCallback = registerCallback;
80
+ this.updateAccountCallback = updateAccountCallback;
75
81
  this.loginCallback = loginCallback;
76
82
  this.resetPasswordOptions = resetPasswordOptions;
77
83
  }
@@ -88,8 +94,8 @@ function createAuthServiceProvider(userEntity, { loginField, passwordField, addi
88
94
  };
89
95
  }
90
96
  exports.createAuthServiceProvider = createAuthServiceProvider;
91
- function createAuthController(userEntity, { loginField, passwordField, additionalFields }, registerOptions, validationPipeOptions, resetPasswordOptions) {
92
- let AuthController = class AuthController extends (0, mixins_1.AuthControllerMixin)(userEntity, loginField, passwordField, additionalFields, registerOptions ?? {}, resetPasswordOptions) {
97
+ function createAuthController(userEntity, { loginField, passwordField, additionalFields }, registerOptions, validationPipeOptions, resetPasswordOptions, updateAccountOptions) {
98
+ let AuthController = class AuthController extends (0, mixins_1.AuthControllerMixin)(userEntity, loginField, passwordField, additionalFields, registerOptions, resetPasswordOptions, updateAccountOptions) {
93
99
  constructor(service) {
94
100
  super(service);
95
101
  this.service = service;
@@ -98,11 +104,29 @@ function createAuthController(userEntity, { loginField, passwordField, additiona
98
104
  AuthController = __decorate([
99
105
  (0, common_1.Controller)('auth'),
100
106
  (0, swagger_1.ApiTags)('Auth'),
101
- (0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
107
+ (0, decorators_1.ValidatorPipe)(validationPipeOptions),
102
108
  __param(0, (0, common_1.Inject)(authServiceProviderName)),
103
109
  __metadata("design:paramtypes", [Object])
104
110
  ], AuthController);
105
111
  return AuthController;
106
112
  }
107
113
  exports.createAuthController = createAuthController;
114
+ function createAuthGateway(userEntity, loginOptions, registerOptions, validationPipeOptions, resetPasswordOptions, updateAccountOptions, gatewayOptions) {
115
+ let AuthGateway = class AuthGateway extends (0, mixins_1.AuthGatewayMixin)(userEntity, loginOptions ?? {}, registerOptions ?? {}, resetPasswordOptions, updateAccountOptions) {
116
+ constructor(service, jwtService) {
117
+ super(service, jwtService);
118
+ this.service = service;
119
+ this.jwtService = jwtService;
120
+ }
121
+ };
122
+ AuthGateway = __decorate([
123
+ (0, websockets_1.WebSocketGateway)(gatewayOptions),
124
+ (0, common_1.UseFilters)(new dynamic_api_ws_exception_filter_1.DynamicAPIWsExceptionFilter()),
125
+ (0, decorators_1.ValidatorPipe)(validationPipeOptions),
126
+ __param(0, (0, common_1.Inject)(authServiceProviderName)),
127
+ __metadata("design:paramtypes", [Object, jwt_1.JwtService])
128
+ ], AuthGateway);
129
+ return AuthGateway;
130
+ }
131
+ exports.createAuthGateway = createAuthGateway;
108
132
  //# sourceMappingURL=auth.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.helper.ts"],"names":[],"mappings":"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"}
@@ -19,16 +19,28 @@ const auth_helper_1 = require("./auth.helper");
19
19
  const strategies_1 = require("./strategies");
20
20
  let AuthModule = AuthModule_1 = class AuthModule {
21
21
  static forRoot(options, extraImports = []) {
22
- const { userEntity, login: { loginField, passwordField, ...login }, register, resetPassword, jwt: { secret, expiresIn }, validationPipeOptions, } = this.initializeAuthOptions(options);
23
- const { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, abilityPredicate, } = resetPassword;
22
+ const { userEntity, login: { loginField, passwordField, ...login }, register, updateAccount, resetPassword, jwt: { secret, expiresIn }, validationPipeOptions, webSocket, } = this.initializeAuthOptions(options);
23
+ const { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, changePasswordAbilityPredicate, } = resetPassword;
24
24
  const resetPasswordOptions = resetPasswordCallback
25
- ? { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, abilityPredicate }
25
+ ? { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, changePasswordAbilityPredicate: changePasswordAbilityPredicate }
26
26
  : undefined;
27
- const AuthController = (0, auth_helper_1.createAuthController)(userEntity, { loginField, passwordField, ...login }, register, validationPipeOptions, resetPasswordOptions);
28
- const AuthServiceProvider = (0, auth_helper_1.createAuthServiceProvider)(userEntity, { loginField, passwordField, ...login }, register.callback, resetPasswordOptions);
27
+ const AuthController = (0, auth_helper_1.createAuthController)(userEntity, { loginField, passwordField, ...login }, register, validationPipeOptions, resetPasswordOptions, updateAccount);
28
+ const AuthServiceProvider = (0, auth_helper_1.createAuthServiceProvider)(userEntity, { loginField, passwordField, ...login }, register.callback, resetPasswordOptions, updateAccount.callback);
29
29
  const LocalStrategyProvider = (0, auth_helper_1.createLocalStrategyProvider)(loginField, passwordField, login.abilityPredicate);
30
30
  const schema = (0, helpers_1.buildSchemaFromEntity)(userEntity);
31
31
  services_1.DynamicApiGlobalStateService.addEntitySchema(userEntity, schema);
32
+ const gatewayOptions = (0, helpers_1.initializeConfigFromOptions)(webSocket ?? dynamic_api_module_1.DynamicApiModule.state.get('gatewayOptions'));
33
+ const webSocketsProviders = !gatewayOptions ? [] : [
34
+ {
35
+ provide: auth_helper_1.authGatewayProviderName,
36
+ useClass: (0, auth_helper_1.createAuthGateway)(userEntity, {
37
+ loginField,
38
+ passwordField,
39
+ additionalFields: login.additionalFields,
40
+ abilityPredicate: login.abilityPredicate,
41
+ }, register, validationPipeOptions, resetPasswordOptions, updateAccount, gatewayOptions),
42
+ },
43
+ ];
32
44
  return {
33
45
  module: AuthModule_1,
34
46
  imports: [
@@ -51,13 +63,18 @@ let AuthModule = AuthModule_1 = class AuthModule {
51
63
  LocalStrategyProvider,
52
64
  strategies_1.JwtStrategy,
53
65
  services_1.BcryptService,
66
+ ...webSocketsProviders,
54
67
  ],
55
68
  controllers: [AuthController],
56
69
  };
57
70
  }
58
- static initializeAuthOptions({ userEntity, login, register, resetPassword, jwt, validationPipeOptions, }) {
71
+ static initializeAuthOptions({ userEntity, jwt, login, register, updateAccount, resetPassword, validationPipeOptions, webSocket, }) {
59
72
  return {
60
73
  userEntity: userEntity,
74
+ jwt: {
75
+ secret: jwt?.secret ?? 'dynamic-api-jwt-secret',
76
+ expiresIn: jwt?.expiresIn ?? '1d',
77
+ },
61
78
  login: {
62
79
  ...login,
63
80
  loginField: (login?.loginField ?? 'email'),
@@ -69,16 +86,17 @@ let AuthModule = AuthModule_1 = class AuthModule {
69
86
  additionalFields: register?.additionalFields ?? [],
70
87
  protected: register?.protected ?? !!register?.abilityPredicate,
71
88
  },
89
+ updateAccount: {
90
+ ...updateAccount,
91
+ additionalFieldsToExclude: updateAccount?.additionalFieldsToExclude ?? [],
92
+ },
72
93
  resetPassword: {
73
94
  ...resetPassword,
74
95
  emailField: (!resetPassword?.emailField ? 'email' : String(resetPassword.emailField)),
75
96
  expirationInMinutes: resetPassword?.expirationInMinutes ?? 10,
76
97
  },
77
- jwt: {
78
- secret: jwt?.secret ?? 'dynamic-api-jwt-secret',
79
- expiresIn: jwt?.expiresIn ?? '1d',
80
- },
81
98
  validationPipeOptions: validationPipeOptions,
99
+ webSocket,
82
100
  };
83
101
  }
84
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- export * from './jwt-auth.guard';
2
- export * from './local-auth.guard';
1
+ export * from './jwt-auth/jwt-auth.guard';
2
+ export * from './jwt-socket-auth/jwt-socket-auth.guard';
3
+ export * from './local-auth/local-auth.guard';
4
+ export * from './reset-password/reset-password.guard';
@@ -14,6 +14,8 @@ 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
- __exportStar(require("./jwt-auth.guard"), exports);
18
- __exportStar(require("./local-auth.guard"), exports);
17
+ __exportStar(require("./jwt-auth/jwt-auth.guard"), exports);
18
+ __exportStar(require("./jwt-socket-auth/jwt-socket-auth.guard"), exports);
19
+ __exportStar(require("./local-auth/local-auth.guard"), exports);
20
+ __exportStar(require("./reset-password/reset-password.guard"), exports);
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,0EAAwD;AACxD,gEAA8C;AAC9C,wEAAsD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-auth/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,+CAA6C;AAGtC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;CAAG,CAAA;AAAxC,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CAA4B"}
@@ -0,0 +1,5 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ export declare class JwtSocketAuthGuard implements CanActivate {
3
+ private readonly logger;
4
+ canActivate(context: ExecutionContext): Promise<boolean>;
5
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var JwtSocketAuthGuard_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.JwtSocketAuthGuard = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const jwt_1 = require("@nestjs/jwt");
13
+ const websockets_1 = require("@nestjs/websockets");
14
+ const lodash_1 = require("lodash");
15
+ const dynamic_api_module_1 = require("../../../../dynamic-api.module");
16
+ let JwtSocketAuthGuard = JwtSocketAuthGuard_1 = class JwtSocketAuthGuard {
17
+ constructor() {
18
+ this.logger = new common_1.Logger(JwtSocketAuthGuard_1.name);
19
+ }
20
+ async canActivate(context) {
21
+ const [socket] = context.getArgs();
22
+ const accessToken = socket.handshake.query.accessToken;
23
+ if (!accessToken) {
24
+ throw new websockets_1.WsException('Unauthorized');
25
+ }
26
+ const jwtService = new jwt_1.JwtService({
27
+ secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
28
+ signOptions: {
29
+ expiresIn: dynamic_api_module_1.DynamicApiModule.state.get('jwtExpirationTime'),
30
+ },
31
+ });
32
+ let verified;
33
+ try {
34
+ verified = await jwtService.verifyAsync(accessToken, {
35
+ secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
36
+ ignoreExpiration: false,
37
+ });
38
+ }
39
+ catch (e) {
40
+ this.logger.warn('jwtService.verify error');
41
+ this.logger.warn(e.message);
42
+ throw new common_1.UnauthorizedException('Unauthorized');
43
+ }
44
+ const { iat, exp, ...user } = verified;
45
+ if ((0, lodash_1.isEmpty)(user)) {
46
+ this.logger.warn('No user data');
47
+ throw new websockets_1.WsException('Unauthorized');
48
+ }
49
+ socket.user = user;
50
+ return true;
51
+ }
52
+ };
53
+ exports.JwtSocketAuthGuard = JwtSocketAuthGuard;
54
+ exports.JwtSocketAuthGuard = JwtSocketAuthGuard = JwtSocketAuthGuard_1 = __decorate([
55
+ (0, common_1.Injectable)()
56
+ ], JwtSocketAuthGuard);
57
+ //# sourceMappingURL=jwt-socket-auth.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-socket-auth.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA0G;AAC1G,qCAAyC;AACzC,mDAAiD;AACjD,mCAAiC;AACjC,uEAAkE;AAG3D,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAAxB;QACY,WAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IA2ChE,CAAC;IAzCQ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAEnC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAqB,CAAC;QAEjE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC;YAChC,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/C,WAAW,EAAE;gBACX,SAAS,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;aAC3D;SACF,CAAC,CAAC;QAEH,IAAI,QAAsC,CAAC;QAE3C,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;gBACnD,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,IAAI,8BAAqB,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;QAGD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;QAEvC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA5CY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CA4C9B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-auth.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/local-auth/local-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,+CAA6C;AAGtC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,IAAA,oBAAS,EAAC,OAAO,CAAC;CAAG,CAAA;AAA5C,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;GACA,cAAc,CAA8B"}
@@ -0,0 +1,6 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ export declare class ResetPasswordGuard implements CanActivate {
3
+ private readonly configured;
4
+ constructor(configured: boolean);
5
+ canActivate(_context: ExecutionContext): boolean;
6
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ResetPasswordGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ let ResetPasswordGuard = class ResetPasswordGuard {
15
+ constructor(configured) {
16
+ this.configured = configured;
17
+ }
18
+ canActivate(_context) {
19
+ if (!this.configured) {
20
+ throw new common_1.ServiceUnavailableException('This feature is not available');
21
+ }
22
+ return true;
23
+ }
24
+ };
25
+ exports.ResetPasswordGuard = ResetPasswordGuard;
26
+ exports.ResetPasswordGuard = ResetPasswordGuard = __decorate([
27
+ (0, common_1.Injectable)(),
28
+ __metadata("design:paramtypes", [Boolean])
29
+ ], ResetPasswordGuard);
30
+ //# sourceMappingURL=reset-password.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset-password.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/reset-password/reset-password.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwG;AAGjG,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAA6B,UAAmB;QAAnB,eAAU,GAAV,UAAU,CAAS;IAAG,CAAC;IAEpD,WAAW,CAAC,QAA0B;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,oCAA2B,CAAC,+BAA+B,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAVY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;;GACA,kBAAkB,CAU9B"}
@@ -6,6 +6,9 @@ interface AuthController<Entity extends BaseEntity> {
6
6
  login<Body>(req: any, body: Body): Promise<LoginResponse>;
7
7
  register<Body>(body: Body): Promise<LoginResponse>;
8
8
  getAccount(req: any): Promise<Partial<Entity>>;
9
+ updateAccount<Body>(req: {
10
+ user: Entity;
11
+ }, body: Body): Promise<Entity>;
9
12
  resetPassword(body: ResetPasswordDto): Promise<void>;
10
13
  changePassword(body: ChangePasswordDto): Promise<void>;
11
14
  }
@@ -0,0 +1,16 @@
1
+ import { JwtService } from '@nestjs/jwt';
2
+ import { ExtendedSocket, GatewayResponse } from '../../../interfaces';
3
+ import { BaseEntity } from '../../../models';
4
+ import { ChangePasswordDto } from '../dtos/change-password.dto';
5
+ import { ResetPasswordDto } from '../dtos/reset-password.dto';
6
+ import { AuthService, LoginResponse } from './auth-service.interface';
7
+ interface AuthGateway<Entity extends BaseEntity> {
8
+ login<Body>(socket: ExtendedSocket<Entity>, body: Body): GatewayResponse<LoginResponse>;
9
+ register<Body>(socket: ExtendedSocket<Entity>, body: Body): GatewayResponse<LoginResponse>;
10
+ getAccount(socket: ExtendedSocket<Entity>): GatewayResponse<Partial<Entity>>;
11
+ updateAccount<Body>(socket: ExtendedSocket<Entity>, body: Body): GatewayResponse<Partial<Entity>>;
12
+ resetPassword(body: ResetPasswordDto): GatewayResponse<void>;
13
+ changePassword(body: ChangePasswordDto): GatewayResponse<void>;
14
+ }
15
+ type AuthGatewayConstructor<Entity extends BaseEntity> = new (service: AuthService<Entity>, jwtService: JwtService) => AuthGateway<Entity>;
16
+ export type { AuthGateway, AuthGatewayConstructor };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=auth-gateway.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-gateway.interface.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/interfaces/auth-gateway.interface.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { Type, ValidationPipeOptions } from '@nestjs/common';
2
- import { DynamicApiResetPasswordCallback, DynamicApiServiceCallback, AuthAbilityPredicate } from '../../../interfaces';
2
+ import { AuthAbilityPredicate, DynamicApiResetPasswordCallback, DynamicApiServiceCallback, DynamicApiWebSocketOptions } from '../../../interfaces';
3
3
  import { BaseEntity } from '../../../models';
4
4
  type DynamicApiJWTOptions = {
5
5
  secret: string;
@@ -21,19 +21,26 @@ type DynamicApiRegisterOptions<Entity extends BaseEntity = any> = {
21
21
  required?: boolean;
22
22
  })[];
23
23
  };
24
- type DynamicApiResetPasswordOptions<Entity extends BaseEntity = any> = {
25
- emailField: keyof Entity | string;
26
- expirationInMinutes: number;
27
- resetPasswordCallback: DynamicApiResetPasswordCallback<Entity>;
28
- changePasswordCallback: DynamicApiServiceCallback<Entity>;
24
+ type DynamicApiUpdateAccountOptions<Entity extends BaseEntity = any> = {
25
+ callback?: DynamicApiServiceCallback<Entity>;
29
26
  abilityPredicate?: AuthAbilityPredicate;
27
+ additionalFieldsToExclude?: (keyof Entity)[];
28
+ };
29
+ type DynamicApiResetPasswordOptions<Entity extends BaseEntity = any> = {
30
+ emailField?: keyof Entity | string;
31
+ expirationInMinutes?: number;
32
+ resetPasswordCallback?: DynamicApiResetPasswordCallback<Entity>;
33
+ changePasswordCallback?: DynamicApiServiceCallback<Entity>;
34
+ changePasswordAbilityPredicate?: AuthAbilityPredicate;
30
35
  };
31
36
  type DynamicApiAuthOptions<Entity extends BaseEntity = any> = {
32
37
  userEntity: Type<Entity>;
38
+ jwt?: DynamicApiJWTOptions;
33
39
  login?: DynamicApiLoginOptions<Entity>;
34
40
  register?: DynamicApiRegisterOptions<Entity>;
35
- jwt?: DynamicApiJWTOptions;
41
+ updateAccount?: DynamicApiUpdateAccountOptions<Entity>;
36
42
  resetPassword?: Partial<DynamicApiResetPasswordOptions<Entity>>;
37
43
  validationPipeOptions?: ValidationPipeOptions;
44
+ webSocket?: DynamicApiWebSocketOptions;
38
45
  };
39
- export type { DynamicApiAuthOptions, DynamicApiRegisterOptions, DynamicApiJWTOptions, DynamicApiLoginOptions, DynamicApiResetPasswordOptions, };
46
+ export type { DynamicApiAuthOptions, DynamicApiRegisterOptions, DynamicApiUpdateAccountOptions, DynamicApiJWTOptions, DynamicApiLoginOptions, DynamicApiResetPasswordOptions, };