@novo-learning/service-lib 0.0.1

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 (34) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +14 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/modules/nest/jwt/authenticated-request.d.ts +4 -0
  5. package/dist/modules/nest/jwt/authenticated-request.js +3 -0
  6. package/dist/modules/nest/jwt/authenticated-request.js.map +1 -0
  7. package/dist/modules/nest/jwt/decorators/permission.decorator.d.ts +4 -0
  8. package/dist/modules/nest/jwt/decorators/permission.decorator.js +8 -0
  9. package/dist/modules/nest/jwt/decorators/permission.decorator.js.map +1 -0
  10. package/dist/modules/nest/jwt/decorators/public.decorator.d.ts +3 -0
  11. package/dist/modules/nest/jwt/decorators/public.decorator.js +8 -0
  12. package/dist/modules/nest/jwt/decorators/public.decorator.js.map +1 -0
  13. package/dist/modules/nest/jwt/entities/permissions.d.ts +7 -0
  14. package/dist/modules/nest/jwt/entities/permissions.js +12 -0
  15. package/dist/modules/nest/jwt/entities/permissions.js.map +1 -0
  16. package/dist/modules/nest/jwt/entities/user-data.d.ts +7 -0
  17. package/dist/modules/nest/jwt/entities/user-data.js +7 -0
  18. package/dist/modules/nest/jwt/entities/user-data.js.map +1 -0
  19. package/dist/modules/nest/jwt/guards/has-permission.guard.d.ts +10 -0
  20. package/dist/modules/nest/jwt/guards/has-permission.guard.js +40 -0
  21. package/dist/modules/nest/jwt/guards/has-permission.guard.js.map +1 -0
  22. package/dist/modules/nest/jwt/guards/jwt-auth.guard.d.ts +9 -0
  23. package/dist/modules/nest/jwt/guards/jwt-auth.guard.js +47 -0
  24. package/dist/modules/nest/jwt/guards/jwt-auth.guard.js.map +1 -0
  25. package/dist/modules/nest/jwt/index.d.ts +9 -0
  26. package/dist/modules/nest/jwt/index.js +22 -0
  27. package/dist/modules/nest/jwt/index.js.map +1 -0
  28. package/dist/modules/nest/jwt/jwt.module.d.ts +2 -0
  29. package/dist/modules/nest/jwt/jwt.module.js +36 -0
  30. package/dist/modules/nest/jwt/jwt.module.js.map +1 -0
  31. package/dist/modules/nest/jwt/strategies/jwt.strategy.d.ts +10 -0
  32. package/dist/modules/nest/jwt/strategies/jwt.strategy.js +35 -0
  33. package/dist/modules/nest/jwt/strategies/jwt.strategy.js.map +1 -0
  34. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ export * from './modules/nest/jwt';
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./modules/nest/jwt"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAmC"}
@@ -0,0 +1,4 @@
1
+ import { UserData } from './entities/user-data';
2
+ export declare type AuthenticatedRequest = Request & {
3
+ user: UserData;
4
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=authenticated-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticated-request.js","sourceRoot":"","sources":["../../../../src/modules/nest/jwt/authenticated-request.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { CustomDecorator } from '@nestjs/common';
2
+ import { PermissionType } from '../entities/permissions';
3
+ export declare const HAS_PERMISSION = "hasPermission";
4
+ export declare const HasPermission: (...permissions: PermissionType[]) => CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HasPermission = exports.HAS_PERMISSION = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.HAS_PERMISSION = 'hasPermission';
6
+ const HasPermission = (...permissions) => (0, common_1.SetMetadata)(exports.HAS_PERMISSION, permissions);
7
+ exports.HasPermission = HasPermission;
8
+ //# sourceMappingURL=permission.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.decorator.js","sourceRoot":"","sources":["../../../../../src/modules/nest/jwt/decorators/permission.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAGjD,QAAA,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,aAAa,GAAG,CAAC,GAAG,WAA6B,EAA2B,EAAE,CACzF,IAAA,oBAAW,EAAC,sBAAc,EAAE,WAAW,CAAC,CAAC;AAD9B,QAAA,aAAa,iBACiB"}
@@ -0,0 +1,3 @@
1
+ import { CustomDecorator } from '@nestjs/common';
2
+ export declare const IS_PUBLIC_KEY = "isPublic";
3
+ export declare const Public: () => CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Public = exports.IS_PUBLIC_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.IS_PUBLIC_KEY = 'isPublic';
6
+ const Public = () => (0, common_1.SetMetadata)(exports.IS_PUBLIC_KEY, true);
7
+ exports.Public = Public;
8
+ //# sourceMappingURL=public.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.decorator.js","sourceRoot":"","sources":["../../../../../src/modules/nest/jwt/decorators/public.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAEjD,QAAA,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,GAAG,GAA4B,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAzE,QAAA,MAAM,UAAmE"}
@@ -0,0 +1,7 @@
1
+ export declare enum PermissionType {
2
+ 'retrieve_asr_result' = "retrieve_asr_result",
3
+ 'retrieve_audio' = "retrieve_audio",
4
+ 'exercise_edit' = "exercise_edit",
5
+ 'exercise_delete' = "exercise_delete"
6
+ }
7
+ export declare const PermissionTypeName = "PermissionType";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PermissionTypeName = exports.PermissionType = void 0;
4
+ var PermissionType;
5
+ (function (PermissionType) {
6
+ PermissionType["retrieve_asr_result"] = "retrieve_asr_result";
7
+ PermissionType["retrieve_audio"] = "retrieve_audio";
8
+ PermissionType["exercise_edit"] = "exercise_edit";
9
+ PermissionType["exercise_delete"] = "exercise_delete";
10
+ })(PermissionType = exports.PermissionType || (exports.PermissionType = {}));
11
+ exports.PermissionTypeName = 'PermissionType';
12
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../../src/modules/nest/jwt/entities/permissions.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,6DAA6C,CAAA;IAC7C,mDAAmC,CAAA;IACnC,iDAAiC,CAAA;IACjC,qDAAqC,CAAA;AACvC,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB;AAEY,QAAA,kBAAkB,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { PermissionType } from './permissions';
2
+ export declare class UserData {
3
+ userId: string;
4
+ publisherId: string;
5
+ groupId?: string;
6
+ permissions?: PermissionType[];
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserData = void 0;
4
+ class UserData {
5
+ }
6
+ exports.UserData = UserData;
7
+ //# sourceMappingURL=user-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-data.js","sourceRoot":"","sources":["../../../../../src/modules/nest/jwt/entities/user-data.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAQ;CAKpB;AALD,4BAKC"}
@@ -0,0 +1,10 @@
1
+ import { ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ import { Observable } from 'rxjs';
4
+ declare const HasPermissionGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
5
+ export declare class HasPermissionGuard extends HasPermissionGuard_base {
6
+ private reflector;
7
+ constructor(reflector: Reflector);
8
+ canActivate(context: ExecutionContext): boolean | Promise<boolean> | Observable<boolean>;
9
+ }
10
+ export {};
@@ -0,0 +1,40 @@
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.HasPermissionGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const passport_1 = require("@nestjs/passport");
16
+ const permission_decorator_1 = require("../decorators/permission.decorator");
17
+ let HasPermissionGuard = class HasPermissionGuard extends (0, passport_1.AuthGuard)('has-permission') {
18
+ constructor(reflector) {
19
+ super();
20
+ this.reflector = reflector;
21
+ }
22
+ canActivate(context) {
23
+ const requiredPermissions = this.reflector.get(permission_decorator_1.HAS_PERMISSION, context.getHandler());
24
+ if (!requiredPermissions) {
25
+ return true;
26
+ }
27
+ const { user } = context.switchToHttp().getRequest();
28
+ const userPermissions = user?.permissions;
29
+ if (userPermissions == null) {
30
+ return false;
31
+ }
32
+ return requiredPermissions.some((permission) => userPermissions.includes(permission));
33
+ }
34
+ };
35
+ HasPermissionGuard = __decorate([
36
+ (0, common_1.Injectable)(),
37
+ __metadata("design:paramtypes", [core_1.Reflector])
38
+ ], HasPermissionGuard);
39
+ exports.HasPermissionGuard = HasPermissionGuard;
40
+ //# sourceMappingURL=has-permission.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-permission.guard.js","sourceRoot":"","sources":["../../../../../src/modules/nest/jwt/guards/has-permission.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA8D;AAC9D,uCAAyC;AACzC,+CAA6C;AAG7C,6EAAoE;AAIpE,IAAa,kBAAkB,GAA/B,MAAa,kBAAmB,SAAQ,IAAA,oBAAS,EAAC,gBAAgB,CAAC;IACjE,YAAoB,SAAoB;QACtC,KAAK,EAAE,CAAC;QADU,cAAS,GAAT,SAAS,CAAW;IAExC,CAAC;IAED,WAAW,CAAC,OAAyB;QACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAmB,qCAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACvG,IAAI,CAAC,mBAAmB,EAAE;YACxB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAA0B,CAAC;QAC7E,MAAM,eAAe,GAAG,IAAI,EAAE,WAAW,CAAC;QAC1C,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACxF,CAAC;CACF,CAAA;AAjBY,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAEoB,gBAAS;GAD7B,kBAAkB,CAiB9B;AAjBY,gDAAkB"}
@@ -0,0 +1,9 @@
1
+ import { ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ declare const JwtAuthGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
4
+ export declare class JwtAuthGuard extends JwtAuthGuard_base {
5
+ private reflector;
6
+ constructor(reflector: Reflector);
7
+ canActivate(context: ExecutionContext): Promise<boolean>;
8
+ }
9
+ export {};
@@ -0,0 +1,47 @@
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.JwtAuthGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const passport_1 = require("@nestjs/passport");
16
+ const rxjs_1 = require("rxjs");
17
+ const public_decorator_1 = require("../decorators/public.decorator");
18
+ let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)('jwt') {
19
+ constructor(reflector) {
20
+ super();
21
+ this.reflector = reflector;
22
+ }
23
+ async canActivate(context) {
24
+ const isPublic = this.reflector.getAllAndOverride(public_decorator_1.IS_PUBLIC_KEY, [
25
+ context.getHandler(),
26
+ context.getClass(),
27
+ ]);
28
+ try {
29
+ const validAuthUser = super.canActivate(context);
30
+ if (validAuthUser instanceof rxjs_1.Observable) {
31
+ return new Promise((resolve) => {
32
+ validAuthUser.pipe((0, rxjs_1.take)(1)).subscribe((valid) => resolve(valid || isPublic));
33
+ });
34
+ }
35
+ return (await validAuthUser) || isPublic;
36
+ }
37
+ catch (e) {
38
+ return isPublic;
39
+ }
40
+ }
41
+ };
42
+ JwtAuthGuard = __decorate([
43
+ (0, common_1.Injectable)(),
44
+ __metadata("design:paramtypes", [core_1.Reflector])
45
+ ], JwtAuthGuard);
46
+ exports.JwtAuthGuard = JwtAuthGuard;
47
+ //# sourceMappingURL=jwt-auth.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../../../../src/modules/nest/jwt/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA8D;AAC9D,uCAAyC;AACzC,+CAA6C;AAC7C,+BAAwC;AACxC,qEAA+D;AAG/D,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IAChD,YAAoB,SAAoB;QACtC,KAAK,EAAE,CAAC;QADU,cAAS,GAAT,SAAS,CAAW;IAExC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,gCAAa,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QACH,IAAI;YACF,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,aAAa,YAAY,iBAAU,EAAE;gBACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC7B,aAAa,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;gBAC/E,CAAC,CAAC,CAAC;aACJ;YACD,OAAO,CAAC,MAAM,aAAa,CAAC,IAAI,QAAQ,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,QAAQ,CAAC;SACjB;IACH,CAAC;CACF,CAAA;AAtBY,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAEoB,gBAAS;GAD7B,YAAY,CAsBxB;AAtBY,oCAAY"}
@@ -0,0 +1,9 @@
1
+ export * from './authenticated-request';
2
+ export * from './decorators/permission.decorator';
3
+ export * from './decorators/public.decorator';
4
+ export * from './entities/permissions';
5
+ export * from './entities/user-data';
6
+ export * from './guards/has-permission.guard';
7
+ export * from './guards/jwt-auth.guard';
8
+ export * from './jwt.module';
9
+ export * from './strategies/jwt.strategy';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./authenticated-request"), exports);
14
+ __exportStar(require("./decorators/permission.decorator"), exports);
15
+ __exportStar(require("./decorators/public.decorator"), exports);
16
+ __exportStar(require("./entities/permissions"), exports);
17
+ __exportStar(require("./entities/user-data"), exports);
18
+ __exportStar(require("./guards/has-permission.guard"), exports);
19
+ __exportStar(require("./guards/jwt-auth.guard"), exports);
20
+ __exportStar(require("./jwt.module"), exports);
21
+ __exportStar(require("./strategies/jwt.strategy"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/nest/jwt/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0DAAwC;AACxC,oEAAkD;AAClD,gEAA8C;AAC9C,yDAAuC;AACvC,uDAAqC;AACrC,gEAA8C;AAC9C,0DAAwC;AACxC,+CAA6B;AAC7B,4DAA0C"}
@@ -0,0 +1,2 @@
1
+ export declare class JwtModule {
2
+ }
@@ -0,0 +1,36 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.JwtModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ const core_1 = require("@nestjs/core");
13
+ const passport_1 = require("@nestjs/passport");
14
+ const jwt_auth_guard_1 = require("../jwt/guards/jwt-auth.guard");
15
+ const jwt_strategy_1 = require("../jwt/strategies/jwt.strategy");
16
+ const has_permission_guard_1 = require("./guards/has-permission.guard");
17
+ let JwtModule = class JwtModule {
18
+ };
19
+ JwtModule = __decorate([
20
+ (0, common_1.Module)({
21
+ imports: [config_1.ConfigModule, passport_1.PassportModule],
22
+ providers: [
23
+ {
24
+ provide: core_1.APP_GUARD,
25
+ useClass: jwt_auth_guard_1.JwtAuthGuard,
26
+ },
27
+ {
28
+ provide: core_1.APP_GUARD,
29
+ useClass: has_permission_guard_1.HasPermissionGuard,
30
+ },
31
+ jwt_strategy_1.JwtStrategy,
32
+ ],
33
+ })
34
+ ], JwtModule);
35
+ exports.JwtModule = JwtModule;
36
+ //# sourceMappingURL=jwt.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.module.js","sourceRoot":"","sources":["../../../../src/modules/nest/jwt/jwt.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,uCAAyC;AACzC,+CAAkD;AAClD,iEAA4D;AAC5D,iEAA6D;AAC7D,wEAAmE;AAgBnE,IAAa,SAAS,GAAtB,MAAa,SAAS;CAAG,CAAA;AAAZ,SAAS;IAdrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,EAAE,yBAAc,CAAC;QACvC,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,6BAAY;aACvB;YACD;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,yCAAkB;aAC7B;YACD,0BAAW;SACZ;KACF,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"}
@@ -0,0 +1,10 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { Strategy } from 'passport-jwt';
3
+ import { UserData } from '../entities/user-data';
4
+ declare const JwtStrategy_base: new (...args: any[]) => Strategy;
5
+ export declare class JwtStrategy extends JwtStrategy_base {
6
+ readonly config: ConfigService;
7
+ constructor(config: ConfigService);
8
+ validate(payload: UserData): Promise<UserData>;
9
+ }
10
+ export {};
@@ -0,0 +1,35 @@
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.JwtStrategy = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const config_1 = require("@nestjs/config");
15
+ const passport_1 = require("@nestjs/passport");
16
+ const passport_jwt_1 = require("passport-jwt");
17
+ let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(passport_jwt_1.Strategy) {
18
+ constructor(config) {
19
+ super({
20
+ jwtFromRequest: passport_jwt_1.ExtractJwt.fromAuthHeaderAsBearerToken(),
21
+ ignoreExpiration: false,
22
+ secretOrKey: config.get('JWT_SECRET'),
23
+ });
24
+ this.config = config;
25
+ }
26
+ async validate(payload) {
27
+ return payload;
28
+ }
29
+ };
30
+ JwtStrategy = __decorate([
31
+ (0, common_1.Injectable)(),
32
+ __metadata("design:paramtypes", [config_1.ConfigService])
33
+ ], JwtStrategy);
34
+ exports.JwtStrategy = JwtStrategy;
35
+ //# sourceMappingURL=jwt.strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../../../../src/modules/nest/jwt/strategies/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAC/C,+CAAoD;AACpD,+CAAoD;AAIpD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IACzD,YAAqB,MAAqB;QACxC,KAAK,CAAC;YACJ,cAAc,EAAE,yBAAU,CAAC,2BAA2B,EAAE;YACxD,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;SACtC,CAAC,CAAC;QALgB,WAAM,GAAN,MAAM,CAAe;IAM1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAiB;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAZY,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAEkB,sBAAa;GAD/B,WAAW,CAYvB;AAZY,kCAAW"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@novo-learning/service-lib",
3
+ "version": "0.0.1",
4
+ "description": "Common components for Novo services",
5
+ "license": "UNLICENSED",
6
+ "main": "dist/index.js",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "lint": "eslint \"src/**/*.ts\" --fix",
13
+ "test": "jest --passWithNoTests"
14
+ },
15
+ "dependencies": {
16
+ "@nestjs/common": "^8.2.4",
17
+ "@nestjs/config": "^1.1.5",
18
+ "@nestjs/core": "^8.2.4",
19
+ "@nestjs/passport": "^8.0.1",
20
+ "passport": "^0.5.2",
21
+ "passport-jwt": "^4.0.0"
22
+ },
23
+ "peerDependencies": {
24
+ "typescript": "^4.5.4",
25
+ "rxjs": "^7.1.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/jest": "^27.0.3",
29
+ "@types/passport": "^1.0.7",
30
+ "@types/passport-jwt": "^3.0.6",
31
+ "@typescript-eslint/eslint-plugin": "^5.8.0",
32
+ "eslint": "^8.4.1",
33
+ "eslint-config-prettier": "^8.3.0",
34
+ "eslint-plugin-prettier": "^4.0.0",
35
+ "jest": "^27.4.5",
36
+ "prettier": "^2.5.1",
37
+ "ts-jest": "^27.1.2"
38
+ }
39
+ }