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.
- package/CHANGELOG.md +14 -0
- package/package.json +5 -2
- package/src/adapters/socket-adapter.d.ts +8 -0
- package/src/adapters/socket-adapter.js +11 -0
- package/src/adapters/socket-adapter.js.map +1 -0
- package/src/builders/route-decorators/auth-decorators.builder.d.ts +4 -4
- package/src/builders/route-decorators/auth-decorators.builder.js +9 -6
- package/src/builders/route-decorators/auth-decorators.builder.js.map +1 -1
- package/src/dtos/index.d.ts +1 -1
- package/src/dtos/index.js +1 -1
- package/src/dtos/index.js.map +1 -1
- package/src/dtos/many-entity.query.d.ts +3 -0
- package/src/dtos/{delete-many-entity.query.js → many-entity.query.js} +5 -5
- package/src/dtos/many-entity.query.js.map +1 -0
- package/src/dynamic-api.module.d.ts +2 -2
- package/src/dynamic-api.module.js +10 -7
- package/src/dynamic-api.module.js.map +1 -1
- package/src/filters/ws-exception/dynamic-api-ws-exception.filter.d.ts +5 -0
- package/src/filters/ws-exception/dynamic-api-ws-exception.filter.js +29 -0
- package/src/filters/ws-exception/dynamic-api-ws-exception.filter.js.map +1 -0
- package/src/gateways/base.gateway.d.ts +10 -0
- package/src/gateways/base.gateway.js +45 -0
- package/src/gateways/base.gateway.js.map +1 -0
- package/src/gateways/index.d.ts +1 -0
- package/src/gateways/index.js +18 -0
- package/src/gateways/index.js.map +1 -0
- package/src/helpers/controller-mixin.helper.js +2 -20
- package/src/helpers/controller-mixin.helper.js.map +1 -1
- package/src/helpers/format.helper.d.ts +7 -4
- package/src/helpers/format.helper.js +12 -4
- package/src/helpers/format.helper.js.map +1 -1
- package/src/helpers/index.d.ts +1 -0
- package/src/helpers/index.js +1 -0
- package/src/helpers/index.js.map +1 -1
- package/src/helpers/socket-config.helper.d.ts +5 -0
- package/src/helpers/socket-config.helper.js +30 -0
- package/src/helpers/socket-config.helper.js.map +1 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/interfaces/dynamic-api-global-state.interface.d.ts +3 -0
- package/src/interfaces/dynamic-api-options.interface.d.ts +3 -0
- package/src/interfaces/dynamic-api-options.interface.js.map +1 -1
- package/src/interfaces/dynamic-api-policy-handler.interface.d.ts +2 -2
- package/src/interfaces/dynamic-api-route-config.interface.d.ts +2 -0
- package/src/interfaces/dynamic-api-service-callback.interface.d.ts +2 -2
- package/src/interfaces/dynamic-api-web-socket.interface.d.ts +13 -0
- package/src/interfaces/dynamic-api-web-socket.interface.js +3 -0
- package/src/interfaces/dynamic-api-web-socket.interface.js.map +1 -0
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.js +1 -0
- package/src/interfaces/index.js.map +1 -1
- package/src/modules/auth/auth.helper.d.ts +7 -5
- package/src/modules/auth/auth.helper.js +29 -5
- package/src/modules/auth/auth.helper.js.map +1 -1
- package/src/modules/auth/auth.module.js +28 -10
- package/src/modules/auth/auth.module.js.map +1 -1
- package/src/modules/auth/guards/index.d.ts +4 -2
- package/src/modules/auth/guards/index.js +4 -2
- package/src/modules/auth/guards/index.js.map +1 -1
- package/src/modules/auth/guards/jwt-auth/jwt-auth.guard.js.map +1 -0
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.d.ts +5 -0
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js +57 -0
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js.map +1 -0
- package/src/modules/auth/guards/local-auth/local-auth.guard.js.map +1 -0
- package/src/modules/auth/guards/reset-password/reset-password.guard.d.ts +6 -0
- package/src/modules/auth/guards/reset-password/reset-password.guard.js +30 -0
- package/src/modules/auth/guards/reset-password/reset-password.guard.js.map +1 -0
- package/src/modules/auth/interfaces/auth-controller.interface.d.ts +3 -0
- package/src/modules/auth/interfaces/auth-gateway.interface.d.ts +16 -0
- package/src/modules/auth/interfaces/auth-gateway.interface.js +3 -0
- package/src/modules/auth/interfaces/auth-gateway.interface.js.map +1 -0
- package/src/modules/auth/interfaces/auth-options.interface.d.ts +15 -8
- package/src/modules/auth/interfaces/auth-service.interface.d.ts +1 -0
- package/src/modules/auth/interfaces/index.d.ts +1 -0
- package/src/modules/auth/interfaces/index.js +1 -0
- package/src/modules/auth/interfaces/index.js.map +1 -1
- package/src/modules/auth/mixins/auth-controller.mixin.d.ts +2 -2
- package/src/modules/auth/mixins/auth-controller.mixin.js +31 -5
- package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
- package/src/modules/auth/mixins/auth-gateway.mixin.d.ts +5 -0
- package/src/modules/auth/mixins/auth-gateway.mixin.js +191 -0
- package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -0
- package/src/modules/auth/mixins/auth-policies-guard.mixin.d.ts +6 -0
- package/src/modules/auth/mixins/auth-policies-guard.mixin.js +52 -0
- package/src/modules/auth/mixins/auth-policies-guard.mixin.js.map +1 -0
- package/src/modules/auth/mixins/index.d.ts +2 -1
- package/src/modules/auth/mixins/index.js +2 -1
- package/src/modules/auth/mixins/index.js.map +1 -1
- package/src/modules/auth/services/base-auth.service.d.ts +2 -0
- package/src/modules/auth/services/base-auth.service.js +27 -7
- package/src/modules/auth/services/base-auth.service.js.map +1 -1
- package/src/routes/create-many/create-many-body-dto.mixin.d.ts +7 -0
- package/src/routes/create-many/create-many-body-dto.mixin.js +30 -0
- package/src/routes/create-many/create-many-body-dto.mixin.js.map +1 -0
- package/src/routes/create-many/create-many-controller.interface.d.ts +5 -4
- package/src/routes/create-many/create-many-gateway.interface.d.ts +10 -0
- package/src/routes/create-many/create-many-gateway.interface.js +3 -0
- package/src/routes/create-many/create-many-gateway.interface.js.map +1 -0
- package/src/routes/create-many/create-many-gateway.mixin.d.ts +6 -0
- package/src/routes/create-many/create-many-gateway.mixin.js +60 -0
- package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -0
- package/src/routes/create-many/create-many.helper.d.ts +4 -2
- package/src/routes/create-many/create-many.helper.js +21 -1
- package/src/routes/create-many/create-many.helper.js.map +1 -1
- package/src/routes/create-many/create-many.module.d.ts +2 -2
- package/src/routes/create-many/create-many.module.js +12 -2
- package/src/routes/create-many/create-many.module.js.map +1 -1
- package/src/routes/create-many/index.d.ts +3 -0
- package/src/routes/create-many/index.js +3 -0
- package/src/routes/create-many/index.js.map +1 -1
- package/src/routes/create-one/create-one-gateway.interface.d.ts +9 -0
- package/src/routes/create-one/create-one-gateway.interface.js +3 -0
- package/src/routes/create-one/create-one-gateway.interface.js.map +1 -0
- package/src/routes/create-one/create-one-gateway.mixin.d.ts +6 -0
- package/src/routes/create-one/create-one-gateway.mixin.js +61 -0
- package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -0
- package/src/routes/create-one/create-one.helper.d.ts +4 -2
- package/src/routes/create-one/create-one.helper.js +21 -1
- package/src/routes/create-one/create-one.helper.js.map +1 -1
- package/src/routes/create-one/create-one.module.d.ts +2 -2
- package/src/routes/create-one/create-one.module.js +12 -2
- package/src/routes/create-one/create-one.module.js.map +1 -1
- package/src/routes/create-one/index.d.ts +2 -0
- package/src/routes/create-one/index.js +2 -0
- package/src/routes/create-one/index.js.map +1 -1
- package/src/routes/delete-many/delete-many-controller.interface.d.ts +2 -2
- package/src/routes/delete-many/delete-many-controller.mixin.js +1 -1
- package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-gateway.interface.d.ts +10 -0
- package/src/routes/delete-many/delete-many-gateway.interface.js +3 -0
- package/src/routes/delete-many/delete-many-gateway.interface.js.map +1 -0
- package/src/routes/delete-many/delete-many-gateway.mixin.d.ts +6 -0
- package/src/routes/delete-many/delete-many-gateway.mixin.js +60 -0
- package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -0
- package/src/routes/delete-many/delete-many.helper.d.ts +4 -2
- package/src/routes/delete-many/delete-many.helper.js +21 -1
- package/src/routes/delete-many/delete-many.helper.js.map +1 -1
- package/src/routes/delete-many/delete-many.module.d.ts +2 -2
- package/src/routes/delete-many/delete-many.module.js +12 -2
- package/src/routes/delete-many/delete-many.module.js.map +1 -1
- package/src/routes/delete-many/index.d.ts +2 -0
- package/src/routes/delete-many/index.js +2 -0
- package/src/routes/delete-many/index.js.map +1 -1
- package/src/routes/delete-one/delete-one-gateway.interface.d.ts +10 -0
- package/src/routes/delete-one/delete-one-gateway.interface.js +3 -0
- package/src/routes/delete-one/delete-one-gateway.interface.js.map +1 -0
- package/src/routes/delete-one/delete-one-gateway.mixin.d.ts +6 -0
- package/src/routes/delete-one/delete-one-gateway.mixin.js +60 -0
- package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -0
- package/src/routes/delete-one/delete-one.helper.d.ts +4 -2
- package/src/routes/delete-one/delete-one.helper.js +21 -1
- package/src/routes/delete-one/delete-one.helper.js.map +1 -1
- package/src/routes/delete-one/delete-one.module.d.ts +2 -2
- package/src/routes/delete-one/delete-one.module.js +12 -2
- package/src/routes/delete-one/delete-one.module.js.map +1 -1
- package/src/routes/delete-one/index.d.ts +2 -0
- package/src/routes/delete-one/index.js +2 -0
- package/src/routes/delete-one/index.js.map +1 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.js +1 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.interface.d.ts +10 -0
- package/src/routes/duplicate-many/duplicate-many-gateway.interface.js +3 -0
- package/src/routes/duplicate-many/duplicate-many-gateway.interface.js.map +1 -0
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.d.ts +6 -0
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +60 -0
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -0
- package/src/routes/duplicate-many/duplicate-many.helper.d.ts +4 -2
- package/src/routes/duplicate-many/duplicate-many.helper.js +21 -1
- package/src/routes/duplicate-many/duplicate-many.helper.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many.module.d.ts +2 -2
- package/src/routes/duplicate-many/duplicate-many.module.js +12 -2
- package/src/routes/duplicate-many/duplicate-many.module.js.map +1 -1
- package/src/routes/duplicate-many/index.d.ts +2 -0
- package/src/routes/duplicate-many/index.js +2 -0
- package/src/routes/duplicate-many/index.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.interface.d.ts +10 -0
- package/src/routes/duplicate-one/duplicate-one-gateway.interface.js +3 -0
- package/src/routes/duplicate-one/duplicate-one-gateway.interface.js.map +1 -0
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.d.ts +6 -0
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +60 -0
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -0
- package/src/routes/duplicate-one/duplicate-one.helper.d.ts +4 -2
- package/src/routes/duplicate-one/duplicate-one.helper.js +21 -1
- package/src/routes/duplicate-one/duplicate-one.helper.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one.module.d.ts +2 -2
- package/src/routes/duplicate-one/duplicate-one.module.js +12 -2
- package/src/routes/duplicate-one/duplicate-one.module.js.map +1 -1
- package/src/routes/duplicate-one/index.d.ts +2 -0
- package/src/routes/duplicate-one/index.js +2 -0
- package/src/routes/duplicate-one/index.js.map +1 -1
- package/src/routes/get-many/get-many-gateway.interface.d.ts +9 -0
- package/src/routes/get-many/get-many-gateway.interface.js +3 -0
- package/src/routes/get-many/get-many-gateway.interface.js.map +1 -0
- package/src/routes/get-many/get-many-gateway.mixin.d.ts +6 -0
- package/src/routes/get-many/get-many-gateway.mixin.js +56 -0
- package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -0
- package/src/routes/get-many/get-many.helper.d.ts +4 -2
- package/src/routes/get-many/get-many.helper.js +21 -1
- package/src/routes/get-many/get-many.helper.js.map +1 -1
- package/src/routes/get-many/get-many.module.d.ts +2 -2
- package/src/routes/get-many/get-many.module.js +12 -2
- package/src/routes/get-many/get-many.module.js.map +1 -1
- package/src/routes/get-many/index.d.ts +2 -0
- package/src/routes/get-many/index.js +2 -0
- package/src/routes/get-many/index.js.map +1 -1
- package/src/routes/get-one/get-one-gateway.interface.d.ts +10 -0
- package/src/routes/get-one/get-one-gateway.interface.js +3 -0
- package/src/routes/get-one/get-one-gateway.interface.js.map +1 -0
- package/src/routes/get-one/get-one-gateway.mixin.d.ts +6 -0
- package/src/routes/get-one/get-one-gateway.mixin.js +60 -0
- package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -0
- package/src/routes/get-one/get-one.helper.d.ts +4 -2
- package/src/routes/get-one/get-one.helper.js +21 -1
- package/src/routes/get-one/get-one.helper.js.map +1 -1
- package/src/routes/get-one/get-one.module.d.ts +2 -2
- package/src/routes/get-one/get-one.module.js +12 -2
- package/src/routes/get-one/get-one.module.js.map +1 -1
- package/src/routes/get-one/index.d.ts +2 -0
- package/src/routes/get-one/index.js +2 -0
- package/src/routes/get-one/index.js.map +1 -1
- package/src/routes/replace-one/index.d.ts +2 -0
- package/src/routes/replace-one/index.js +2 -0
- package/src/routes/replace-one/index.js.map +1 -1
- package/src/routes/replace-one/replace-one-gateway.interface.d.ts +10 -0
- package/src/routes/replace-one/replace-one-gateway.interface.js +3 -0
- package/src/routes/replace-one/replace-one-gateway.interface.js.map +1 -0
- package/src/routes/replace-one/replace-one-gateway.mixin.d.ts +6 -0
- package/src/routes/replace-one/replace-one-gateway.mixin.js +60 -0
- package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -0
- package/src/routes/replace-one/replace-one.helper.d.ts +4 -2
- package/src/routes/replace-one/replace-one.helper.js +21 -1
- package/src/routes/replace-one/replace-one.helper.js.map +1 -1
- package/src/routes/replace-one/replace-one.module.d.ts +2 -2
- package/src/routes/replace-one/replace-one.module.js +12 -2
- package/src/routes/replace-one/replace-one.module.js.map +1 -1
- package/src/routes/update-many/index.d.ts +2 -0
- package/src/routes/update-many/index.js +2 -0
- package/src/routes/update-many/index.js.map +1 -1
- package/src/routes/update-many/update-many-gateway.interface.d.ts +10 -0
- package/src/routes/update-many/update-many-gateway.interface.js +3 -0
- package/src/routes/update-many/update-many-gateway.interface.js.map +1 -0
- package/src/routes/update-many/update-many-gateway.mixin.d.ts +6 -0
- package/src/routes/update-many/update-many-gateway.mixin.js +63 -0
- package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -0
- package/src/routes/update-many/update-many.helper.d.ts +4 -2
- package/src/routes/update-many/update-many.helper.js +21 -1
- package/src/routes/update-many/update-many.helper.js.map +1 -1
- package/src/routes/update-many/update-many.module.d.ts +2 -2
- package/src/routes/update-many/update-many.module.js +12 -2
- package/src/routes/update-many/update-many.module.js.map +1 -1
- package/src/routes/update-one/update-one-gateway.interface.d.ts +10 -0
- package/src/routes/update-one/update-one-gateway.interface.js +3 -0
- package/src/routes/update-one/update-one-gateway.interface.js.map +1 -0
- package/src/routes/update-one/update-one-gateway.mixin.d.ts +6 -0
- package/src/routes/update-one/update-one-gateway.mixin.js +60 -0
- package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -0
- package/src/routes/update-one/update-one.helper.d.ts +4 -2
- package/src/routes/update-one/update-one.helper.js +21 -1
- package/src/routes/update-one/update-one.helper.js.map +1 -1
- package/src/routes/update-one/update-one.module.d.ts +2 -2
- package/src/routes/update-one/update-one.module.js +12 -2
- package/src/routes/update-one/update-one.module.js.map +1 -1
- package/src/services/base/base.service.d.ts +4 -3
- package/src/services/base/base.service.js +12 -5
- package/src/services/base/base.service.js.map +1 -1
- package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.js +4 -0
- package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.js.map +1 -1
- package/src/version.json +1 -1
- package/test/dynamic-api-for-root.e2e-spec.js +893 -476
- package/test/dynamic-api-for-root.e2e-spec.js.map +1 -1
- package/test/e2e.setup.d.ts +16 -1
- package/test/e2e.setup.js +62 -7
- package/test/e2e.setup.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/dtos/delete-many-entity.query.d.ts +0 -3
- package/src/dtos/delete-many-entity.query.js.map +0 -1
- package/src/modules/auth/guards/jwt-auth.guard.js.map +0 -1
- package/src/modules/auth/guards/local-auth.guard.js.map +0 -1
- package/src/modules/auth/mixins/auth-register-policies-guard.mixin.d.ts +0 -5
- package/src/modules/auth/mixins/auth-register-policies-guard.mixin.js +0 -31
- package/src/modules/auth/mixins/auth-register-policies-guard.mixin.js.map +0 -1
- /package/src/modules/auth/guards/{jwt-auth.guard.d.ts → jwt-auth/jwt-auth.guard.d.ts} +0 -0
- /package/src/modules/auth/guards/{jwt-auth.guard.js → jwt-auth/jwt-auth.guard.js} +0 -0
- /package/src/modules/auth/guards/{local-auth.guard.d.ts → local-auth/local-auth.guard.d.ts} +0 -0
- /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
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":";;;
|
|
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
|
|
33
|
-
export { PoliciesGuardConstructor, PoliciesGuard,
|
|
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: (
|
|
42
|
-
updateUserByEmail: (
|
|
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 @@
|
|
|
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';
|
package/src/interfaces/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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,
|
|
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":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"auth.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,qCAAyC;AACzC,+CAA+C;AAC/C,+CAAoD;AACpD,6CAA0C;AAC1C,mDAAsD;AACtD,uCAAiC;AACjC,mDAA0C;AAC1C,iDAAiD;AACjD,iEAA4D;AAC5D,gHAAyG;AAQzG,6CAA+C;AAU/C,qCAAiE;AACjE,yCAA6C;AAE7C,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AA+ItD,0DAAuB;AA9IzB,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AA+ItD,0DAAuB;AA9IzB,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAmJ1D,8DAAyB;AAjJ3B,SAAS,2BAA2B,CAClC,UAAwB,EACxB,aAA2B,EAC3B,gBAAkD;IAElD,IACM,aAAa,GADnB,MACM,aAAyC,SAAQ,IAAA,2BAAgB,EAAC,yBAAQ,CAAC;QAG/E,YAEE,WAAmD;YAEnD,KAAK,CAAC;gBACJ,aAAa,EAAE,UAAoB;gBACnC,aAAa,EAAE,aAAuB;aACvC,CAAC,CAAC;YALgB,gBAAW,GAAX,WAAW,CAAqB;YAJ3C,qBAAgB,GAAG,gBAAgB,CAAC;QAU9C,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,IAAY;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,8BAAqB,CAAC,qBAAqB,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,2BAAkB,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAA;IAzBK,aAAa;QADlB,IAAA,mBAAU,GAAE;QAKR,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;;OAJ9B,aAAa,CAyBlB;IAED,OAAO;QACL,OAAO,EAAE,yBAAyB;QAClC,QAAQ,EAAE,aAAa;KACxB,CAAC;AACJ,CAAC;AA2GC,kEAA2B;AAzG7B,SAAS,yBAAyB,CAChC,UAAwB,EACxB,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,GAAG,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAkC,EAC7G,gBAA+D,EAC/D,oBAAwE,EACxE,qBAAoE;IAEpE,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,0BAAuB;QAW/C,YAKE,KAAuC,EACpB,UAAsB,EACtB,aAA4B;YAE/C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YAJrB,UAAK,GAAL,KAAK,CAAe;YACpB,eAAU,GAAV,UAAU,CAAY;YACtB,kBAAa,GAAb,aAAa,CAAe;YAjBvC,WAAM,GAAG,UAAU,CAAC;YACpB,4BAAuB,GAAG,gBAAgB,CAAC;YAC3C,eAAU,GAAG,UAAU,CAAC;YACxB,kBAAa,GAAG,aAAa,CAAC;YAC9B,qBAAgB,GAAG,gBAAgB,CAAC;YAEpC,0BAAqB,GAAG,qBAAqB,CAAC;YAC9C,kBAAa,GAAG,aAAa,CAAC;YAC9B,yBAAoB,GAAG,oBAAoB,CAAC;QAYtD,CAAC;KACF,CAAA;IAtBK,WAAW;QAYZ,WAAA,IAAA,sBAAW,EACV,UAAU,CAAC,IAAI,EACf,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C,CAAA;yCACyB,gBAAK;YACA,gBAAU;YACP,wBAAa;OAlB7C,WAAW,CAsBhB;IAED,OAAO;QACL,OAAO,EAAE,uBAAuB;QAChC,QAAQ,EAAE,WAAW;KACtB,CAAC;AACJ,CAAC;AAoEC,8DAAyB;AAlE3B,SAAS,oBAAoB,CAC3B,UAAwB,EACxB,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAkC,EAC/E,eAA8D,EAC9D,qBAAwD,EACxD,oBAAwE,EACxE,oBAAwE;IAExE,IAGM,cAAc,GAHpB,MAGM,cAAe,SAAQ,IAAA,4BAAmB,EAC9C,UAAU,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,CACrB;QACC,YAEqB,OAA4B;YAE/C,KAAK,CAAC,OAAO,CAAC,CAAC;YAFI,YAAO,GAAP,OAAO,CAAqB;QAGjD,CAAC;KACF,CAAA;IAfK,cAAc;QAHnB,IAAA,mBAAU,EAAC,MAAM,CAAC;QAClB,IAAA,iBAAO,EAAC,MAAM,CAAC;QACf,IAAA,0BAAa,EAAC,qBAAqB,CAAC;QAWhC,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;;OAV9B,cAAc,CAenB;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAoCC,oDAAoB;AAlCtB,SAAS,iBAAiB,CACxB,UAAwB,EACxB,YAA4C,EAC5C,eAA8D,EAC9D,qBAAwD,EACxD,oBAAwE,EACxE,oBAAwE,EACxE,cAA8B;IAE9B,IAGM,WAAW,GAHjB,MAGM,WAAY,SAAQ,IAAA,yBAAgB,EACxC,UAAU,EACV,YAAY,IAAI,EAAE,EAClB,eAAe,IAAI,EAAE,EACrB,oBAAoB,EACpB,oBAAoB,CACrB;QACC,YAEqB,OAA4B,EAC5B,UAAsB;YAEzC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAHR,YAAO,GAAP,OAAO,CAAqB;YAC5B,eAAU,GAAV,UAAU,CAAY;QAG3C,CAAC;KACF,CAAA;IAdK,WAAW;QAHhB,IAAA,6BAAgB,EAAC,cAAc,CAAC;QAChC,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,0BAAa,EAAC,qBAAqB,CAAC;QAShC,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;iDAED,gBAAU;OAVvC,WAAW,CAchB;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAOC,8CAAiB"}
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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":";;;;;;;;;;AAAA,2CAAwC;AACxC,qCAAwC;AACxC,+CAAkD;AAClD,+CAAkD;AAClD,iEAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAwC;AACxC,qCAAwC;AACxC,+CAAkD;AAClD,+CAAkD;AAClD,iEAA4D;AAC5D,2CAAmF;AAEnF,6CAA6E;AAC7E,+CAMuB;AAEvB,6CAA2C;AAGpC,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,OAAO,CACZ,OAAsC,EACtC,eAAsB,EAAE;QAExB,MAAM,EACJ,UAAU,EACV,KAAK,EAAE,EACL,UAAU,EACV,aAAa,EACb,GAAG,KAAK,EACT,EACD,QAAQ,EACR,aAAa,EACb,aAAa,EACb,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAC1B,qBAAqB,EACrB,SAAS,GACV,GAAG,IAAI,CAAC,qBAAqB,CAAS,OAAO,CAAC,CAAC;QAEhD,MAAM,EACJ,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,8BAA8B,GAC/B,GAAG,aAAa,CAAC;QAClB,MAAM,oBAAoB,GAAuD,qBAAqB;YACpG,CAAC,CAAC,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,UAAU,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,8BAA8B,EAAE;YACpJ,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAG,IAAA,kCAAoB,EACzC,UAAU,EACV,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EACvC,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,CACd,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAA,uCAAyB,EACnD,UAAU,EACV,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,EACvC,QAAQ,CAAC,QAAQ,EACjB,oBAAoB,EACpB,aAAa,CAAC,QAAQ,CACvB,CAAC;QACF,MAAM,qBAAqB,GAAG,IAAA,yCAA2B,EACvD,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAClD,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,+BAAqB,EAAC,UAAU,CAAC,CAAC;QACjD,uCAA4B,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEjE,MAAM,cAAc,GAAG,IAAA,qCAA2B,EAChD,SAAS,IAAI,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC1D,CAAC;QAEF,MAAM,mBAAmB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD;gBACE,OAAO,EAAE,qCAAuB;gBAChC,QAAQ,EAAE,IAAA,+BAAiB,EACzB,UAAU,EACV;oBACE,UAAU;oBACV,aAAa;oBACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;iBACzC,EACD,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,cAAc,CACf;aACF;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,GAAG,YAAY;gBACf,yBAAc,CAAC,UAAU,CACvB;oBACE;wBACE,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,MAAM;qBACP;iBACF,EACD,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C;gBACD,yBAAc;gBACd,eAAS,CAAC,QAAQ,CAAC;oBACjB,MAAM,EAAE,IAAI;oBACZ,MAAM;oBACN,WAAW,EAAE,EAAE,SAAS,EAAE;iBAC3B,CAAC;aACH;YACD,SAAS,EAAE;gBACT,mBAAmB;gBACnB,qBAAqB;gBACrB,wBAAW;gBACX,wBAAa;gBACb,GAAG,mBAAmB;aACvB;YACD,WAAW,EAAE,CAAC,cAAc,CAAC;SAC9B,CAAC;IACJ,CAAC;IAOO,MAAM,CAAC,qBAAqB,CAA4B,EAC9D,UAAU,EACV,GAAG,EACH,KAAK,EACL,QAAQ,EACR,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,SAAS,GACqB;QAC9B,OAAO;YACL,UAAU,EAAE,UAAU;YACtB,GAAG,EAAE;gBACH,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,wBAAwB;gBAC/C,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI;aAClC;YACD,KAAK,EAAE;gBACL,GAAG,KAAK;gBACR,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,IAAI,OAAO,CAAiB;gBAC1D,aAAa,EAAE,CAAC,KAAK,EAAE,aAAa,IAAI,UAAU,CAAiB;gBACnE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,IAAI,EAAE;aAChD;YACD,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,IAAI,EAAE;gBAClD,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,gBAAgB;aAC/D;YACD,aAAa,EAAE;gBACb,GAAG,aAAa;gBAChB,yBAAyB,EAAE,aAAa,EAAE,yBAAyB,IAAI,EAAE;aAC1E;YACD,aAAa,EAAE;gBACb,GAAG,aAAa;gBAChB,UAAU,EAAE,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,OAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACrG,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,IAAI,EAAE;aAC9D;YACD,qBAAqB,EAAE,qBAAqB;YAC5C,SAAS;SACV,CAAC;IACJ,CAAC;CACF,CAAA;AAzJY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CAyJtB"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export * from './jwt-auth.guard';
|
|
2
|
-
export * from './
|
|
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("./
|
|
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,
|
|
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,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,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 @@
|
|
|
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,
|
|
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
|
|
25
|
-
|
|
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
|
-
|
|
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, };
|