@edifice.io/edifice-nestjs-core 1.0.3 → 1.0.4

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 (94) hide show
  1. package/README.md +6 -6
  2. package/dist/appregistry/appregistry.service.js +2 -2
  3. package/dist/appregistry/appregistry.service.js.map +1 -1
  4. package/dist/config/configuration.d.ts +17 -0
  5. package/dist/config/configuration.js +27 -0
  6. package/dist/config/configuration.js.map +1 -1
  7. package/dist/core.module.js +18 -13
  8. package/dist/core.module.js.map +1 -1
  9. package/dist/database/migration.service.js +3 -3
  10. package/dist/database/migration.service.js.map +1 -1
  11. package/dist/frontend.controller.js +6 -6
  12. package/dist/frontend.controller.js.map +1 -1
  13. package/dist/health/health.controller.js +2 -2
  14. package/dist/health/health.controller.js.map +1 -1
  15. package/dist/i18n/i18n-bootstrap.service.d.ts +13 -0
  16. package/dist/i18n/i18n-bootstrap.service.js +54 -0
  17. package/dist/i18n/i18n-bootstrap.service.js.map +1 -0
  18. package/dist/i18n/i18n-lifecycle.controller.d.ts +17 -0
  19. package/dist/i18n/i18n-lifecycle.controller.js +55 -0
  20. package/dist/i18n/i18n-lifecycle.controller.js.map +1 -0
  21. package/dist/i18n/i18n.module.js +4 -1
  22. package/dist/i18n/i18n.module.js.map +1 -1
  23. package/dist/i18n/i18n.service.d.ts +1 -0
  24. package/dist/i18n/i18n.service.js +8 -0
  25. package/dist/i18n/i18n.service.js.map +1 -1
  26. package/dist/i18n/index.d.ts +2 -3
  27. package/dist/i18n/index.js +2 -2
  28. package/dist/i18n/index.js.map +1 -1
  29. package/dist/logger/request-logger.service.js +3 -2
  30. package/dist/logger/request-logger.service.js.map +1 -1
  31. package/dist/permission/admc.guard.d.ts +0 -3
  32. package/dist/permission/admc.guard.js +1 -18
  33. package/dist/permission/admc.guard.js.map +1 -1
  34. package/dist/permission/basicauth.guard.d.ts +12 -0
  35. package/dist/permission/basicauth.guard.js +54 -0
  36. package/dist/permission/basicauth.guard.js.map +1 -0
  37. package/dist/permission/decorators.d.ts +10 -0
  38. package/dist/permission/decorators.js +20 -0
  39. package/dist/permission/decorators.js.map +1 -0
  40. package/dist/permission/global.guard.d.ts +16 -0
  41. package/dist/permission/global.guard.js +68 -0
  42. package/dist/permission/global.guard.js.map +1 -0
  43. package/dist/permission/index.d.ts +4 -3
  44. package/dist/permission/index.js +4 -3
  45. package/dist/permission/index.js.map +1 -1
  46. package/dist/permission/permission.guard.d.ts +1 -1
  47. package/dist/permission/permission.guard.js +2 -18
  48. package/dist/permission/permission.guard.js.map +1 -1
  49. package/dist/permission/require-login.guard.d.ts +8 -0
  50. package/dist/permission/require-login.guard.js +49 -0
  51. package/dist/permission/require-login.guard.js.map +1 -0
  52. package/dist/redirect/redirect-lifecycle.controller.d.ts +15 -0
  53. package/dist/redirect/redirect-lifecycle.controller.js +48 -0
  54. package/dist/redirect/redirect-lifecycle.controller.js.map +1 -0
  55. package/dist/redirect/redirect.module.d.ts +2 -0
  56. package/dist/redirect/redirect.module.js +25 -0
  57. package/dist/redirect/redirect.module.js.map +1 -0
  58. package/dist/redirect/redirect.service.d.ts +28 -0
  59. package/dist/redirect/redirect.service.js +154 -0
  60. package/dist/redirect/redirect.service.js.map +1 -0
  61. package/dist/session/frontend-session.middleware.d.ts +10 -0
  62. package/dist/session/frontend-session.middleware.js +40 -0
  63. package/dist/session/frontend-session.middleware.js.map +1 -0
  64. package/dist/session/session.middleware.d.ts +8 -4
  65. package/dist/session/session.middleware.js +24 -6
  66. package/dist/session/session.middleware.js.map +1 -1
  67. package/dist/session/session.module.js +13 -2
  68. package/dist/session/session.module.js.map +1 -1
  69. package/dist/timeline/index.d.ts +2 -3
  70. package/dist/timeline/index.js +2 -2
  71. package/dist/timeline/index.js.map +1 -1
  72. package/dist/timeline/timeline-i18n-bootstrap.service.d.ts +13 -0
  73. package/dist/timeline/timeline-i18n-bootstrap.service.js +54 -0
  74. package/dist/timeline/timeline-i18n-bootstrap.service.js.map +1 -0
  75. package/dist/timeline/timeline-lifecycle.controller.d.ts +17 -0
  76. package/dist/timeline/timeline-lifecycle.controller.js +55 -0
  77. package/dist/timeline/timeline-lifecycle.controller.js.map +1 -0
  78. package/dist/timeline/timeline.module.js +4 -1
  79. package/dist/timeline/timeline.module.js.map +1 -1
  80. package/dist/timeline/timeline.service.d.ts +11 -0
  81. package/dist/timeline/timeline.service.js +98 -13
  82. package/dist/timeline/timeline.service.js.map +1 -1
  83. package/dist/timeline/timeline.types.d.ts +8 -0
  84. package/dist/tsconfig.tsbuildinfo +1 -1
  85. package/package.json +8 -8
  86. package/dist/permission/admc.decorator.d.ts +0 -2
  87. package/dist/permission/admc.decorator.js +0 -11
  88. package/dist/permission/admc.decorator.js.map +0 -1
  89. package/dist/permission/permission.decorator.d.ts +0 -2
  90. package/dist/permission/permission.decorator.js +0 -8
  91. package/dist/permission/permission.decorator.js.map +0 -1
  92. package/dist/permission/public.decorator.d.ts +0 -2
  93. package/dist/permission/public.decorator.js +0 -8
  94. package/dist/permission/public.decorator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,gDAA8B;AAC9B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,2DAAyC;AACzC,8DAA4C"}
@@ -25,8 +25,9 @@ let RequestLogger = class RequestLogger {
25
25
  constructor(req) {
26
26
  this.req = req;
27
27
  const session = req.raw.entSession;
28
+ const baseLogger = (0, pino_1.default)().child({ engine: 'vertx' });
28
29
  if (session) {
29
- this.logger = (0, pino_1.default)().child({
30
+ this.logger = baseLogger.child({
30
31
  id: req.id,
31
32
  path: req.path,
32
33
  method: req.method,
@@ -34,7 +35,7 @@ let RequestLogger = class RequestLogger {
34
35
  });
35
36
  }
36
37
  else {
37
- this.logger = (0, pino_1.default)();
38
+ this.logger = baseLogger;
38
39
  }
39
40
  }
40
41
  info(message, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"request-logger.service.js","sourceRoot":"","sources":["../../src/logger/request-logger.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA2D;AAC3D,uCAAuC;AAEvC,gDAAgD;AAIzC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGsB;IAFtC,MAAM,CAAc;IAE5B,YAA8C,GAAY;QAAZ,QAAG,GAAH,GAAG,CAAS;QAExD,MAAM,OAAO,GAAyB,GAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAC1D,IAAI,OAAO,EAAE,CAAC;YAEZ,IAAI,CAAC,MAAM,GAAG,IAAA,cAAI,GAAE,CAAC,KAAK,CAAC;gBACzB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,IAAA,cAAI,GAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAGD,IAAI,CAAC,OAAe,EAAE,OAAiC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAiC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CACH,QAAuB,EACvB,OAA+C;QAG/C,OAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AA3CY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,OAAO,EAAE,CAAC;IAItB,WAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;;GAHjB,aAAa,CA2CzB"}
1
+ {"version":3,"file":"request-logger.service.js","sourceRoot":"","sources":["../../src/logger/request-logger.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAA2D;AAC3D,uCAAuC;AAEvC,gDAAgD;AAIzC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGsB;IAFtC,MAAM,CAAc;IAE5B,YAA8C,GAAY;QAAZ,QAAG,GAAH,GAAG,CAAS;QAExD,MAAM,OAAO,GAAyB,GAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAA,cAAI,GAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YAEZ,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC7B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QAC3B,CAAC;IACH,CAAC;IAGD,IAAI,CAAC,OAAe,EAAE,OAAiC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAiC;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CACH,QAAuB,EACvB,OAA+C;QAG/C,OAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF,CAAA;AA5CY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,OAAO,EAAE,CAAC;IAItB,WAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;;GAHjB,aAAa,CA4CzB"}
@@ -1,7 +1,4 @@
1
1
  import { CanActivate, ExecutionContext } from '@nestjs/common';
2
- import { Reflector } from '@nestjs/core';
3
2
  export declare class AdmcGuard implements CanActivate {
4
- private reflector;
5
- constructor(reflector: Reflector);
6
3
  canActivate(context: ExecutionContext): boolean;
7
4
  }
@@ -5,27 +5,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
8
  Object.defineProperty(exports, "__esModule", { value: true });
12
9
  exports.AdmcGuard = void 0;
13
10
  const common_1 = require("@nestjs/common");
14
- const core_1 = require("@nestjs/core");
15
- const admc_decorator_1 = require("./admc.decorator");
16
11
  let AdmcGuard = class AdmcGuard {
17
- reflector;
18
- constructor(reflector) {
19
- this.reflector = reflector;
20
- }
21
12
  canActivate(context) {
22
- const requireAdmc = this.reflector.getAllAndOverride(admc_decorator_1.ADMC_KEY, [
23
- context.getHandler(),
24
- context.getClass(),
25
- ]);
26
- if (!requireAdmc) {
27
- return true;
28
- }
29
13
  const request = context.switchToHttp().getRequest();
30
14
  const session = request?.raw.entSession;
31
15
  if (!session) {
@@ -39,7 +23,6 @@ let AdmcGuard = class AdmcGuard {
39
23
  };
40
24
  exports.AdmcGuard = AdmcGuard;
41
25
  exports.AdmcGuard = AdmcGuard = __decorate([
42
- (0, common_1.Injectable)(),
43
- __metadata("design:paramtypes", [core_1.Reflector])
26
+ (0, common_1.Injectable)()
44
27
  ], AdmcGuard);
45
28
  //# sourceMappingURL=admc.guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admc.guard.js","sourceRoot":"","sources":["../../src/permission/admc.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,uCAAyC;AACzC,qDAA4C;AAIrC,IAAM,SAAS,GAAf,MAAM,SAAS;IACA;IAApB,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,WAAW,CAAC,OAAyB;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,yBAAQ,EAAE;YACtE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QAGH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAkB,CAAC;QACpE,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,8BAAqB,CAAC,kBAAkB,CAAC,CAAC;QACtD,CAAC;QAGD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,8BAAqB,CAC7B,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA9BY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAEoB,gBAAS;GAD7B,SAAS,CA8BrB"}
1
+ {"version":3,"file":"admc.guard.js","sourceRoot":"","sources":["../../src/permission/admc.guard.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAKwB;AAIjB,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,WAAW,CAAC,OAAyB;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAkB,CAAC;QACpE,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,8BAAqB,CAAC,kBAAkB,CAAC,CAAC;QACtD,CAAC;QAGD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,8BAAqB,CAC7B,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAlBY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;GACA,SAAS,CAkBrB"}
@@ -0,0 +1,12 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ import { ConfigService } from '@nestjs/config';
4
+ export declare class BasicAuthGuard implements CanActivate {
5
+ protected readonly reflector: Reflector;
6
+ private readonly configService;
7
+ private readonly enabled;
8
+ private readonly usrFromConfig;
9
+ private readonly pwdFromConfig;
10
+ constructor(reflector: Reflector, configService: ConfigService);
11
+ canActivate(context: ExecutionContext): boolean;
12
+ }
@@ -0,0 +1,54 @@
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.BasicAuthGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const config_1 = require("@nestjs/config");
16
+ let BasicAuthGuard = class BasicAuthGuard {
17
+ reflector;
18
+ configService;
19
+ enabled;
20
+ usrFromConfig;
21
+ pwdFromConfig;
22
+ constructor(reflector, configService) {
23
+ this.reflector = reflector;
24
+ this.configService = configService;
25
+ this.enabled = this.configService.get('basicAuth.enabled', false);
26
+ this.usrFromConfig = this.configService.get('basicAuth.user');
27
+ this.pwdFromConfig = this.configService.get('basicAuth.pass');
28
+ }
29
+ canActivate(context) {
30
+ if (!this.enabled) {
31
+ return false;
32
+ }
33
+ else {
34
+ try {
35
+ const request = context.switchToHttp().getRequest();
36
+ const b64auth = (request.headers.authorization || '').split(' ')[1] || '';
37
+ const [username, password] = Buffer.from(b64auth, 'base64')
38
+ .toString()
39
+ .split(':');
40
+ return (username === this.usrFromConfig && password === this.pwdFromConfig);
41
+ }
42
+ catch (_error) {
43
+ return false;
44
+ }
45
+ }
46
+ }
47
+ };
48
+ exports.BasicAuthGuard = BasicAuthGuard;
49
+ exports.BasicAuthGuard = BasicAuthGuard = __decorate([
50
+ (0, common_1.Injectable)(),
51
+ __metadata("design:paramtypes", [core_1.Reflector,
52
+ config_1.ConfigService])
53
+ ], BasicAuthGuard);
54
+ //# sourceMappingURL=basicauth.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basicauth.guard.js","sourceRoot":"","sources":["../../src/permission/basicauth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2E;AAC3E,uCAAyC;AACzC,2CAA+C;AAGxC,IAAM,cAAc,GAApB,MAAM,cAAc;IAKJ;IACF;IALF,OAAO,CAAU;IACjB,aAAa,CAAS;IACtB,aAAa,CAAS;IACvC,YACqB,SAAoB,EACtB,aAA4B;QAD1B,cAAS,GAAT,SAAS,CAAW;QACtB,kBAAa,GAAb,aAAa,CAAe;QAG7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAU,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,gBAAgB,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,gBAAgB,CAAC,CAAC;IACxE,CAAC;IACD,WAAW,CAAC,OAAyB;QAEnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;gBAEpD,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;qBACxD,QAAQ,EAAE;qBACV,KAAK,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,CACL,QAAQ,KAAK,IAAI,CAAC,aAAa,IAAI,QAAQ,KAAK,IAAI,CAAC,aAAa,CACnE,CAAC;YACJ,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAlCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAMqB,gBAAS;QACP,sBAAa;GANpC,cAAc,CAkC1B"}
@@ -0,0 +1,10 @@
1
+ export declare const ADMC_KEY = "require_admc";
2
+ export declare const BASIC_AUTH_KEY = "basic_auth";
3
+ export declare const IS_PUBLIC_KEY = "is_public";
4
+ export declare const PERMISSION_KEY = "required_permission";
5
+ export declare const REQUIRE_LOGIN_KEY = "require_login";
6
+ export declare const Public: () => import("@nestjs/common").CustomDecorator<string>;
7
+ export declare const BasicAuth: () => import("@nestjs/common").CustomDecorator<string>;
8
+ export declare const RequireAdmc: () => import("@nestjs/common").CustomDecorator<string>;
9
+ export declare const RequirePermission: (permission: string | false) => import("@nestjs/common").CustomDecorator<string>;
10
+ export declare const RequireLogin: () => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequireLogin = exports.RequirePermission = exports.RequireAdmc = exports.BasicAuth = exports.Public = exports.REQUIRE_LOGIN_KEY = exports.PERMISSION_KEY = exports.IS_PUBLIC_KEY = exports.BASIC_AUTH_KEY = exports.ADMC_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.ADMC_KEY = 'require_admc';
6
+ exports.BASIC_AUTH_KEY = 'basic_auth';
7
+ exports.IS_PUBLIC_KEY = 'is_public';
8
+ exports.PERMISSION_KEY = 'required_permission';
9
+ exports.REQUIRE_LOGIN_KEY = 'require_login';
10
+ const Public = () => (0, common_1.SetMetadata)(exports.IS_PUBLIC_KEY, true);
11
+ exports.Public = Public;
12
+ const BasicAuth = () => (0, common_1.SetMetadata)(exports.BASIC_AUTH_KEY, true);
13
+ exports.BasicAuth = BasicAuth;
14
+ const RequireAdmc = () => (0, common_1.SetMetadata)(exports.ADMC_KEY, true);
15
+ exports.RequireAdmc = RequireAdmc;
16
+ const RequirePermission = (permission) => (0, common_1.SetMetadata)(exports.PERMISSION_KEY, permission);
17
+ exports.RequirePermission = RequirePermission;
18
+ const RequireLogin = () => (0, common_1.SetMetadata)(exports.REQUIRE_LOGIN_KEY, true);
19
+ exports.RequireLogin = RequireLogin;
20
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/permission/decorators.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAEhC,QAAA,QAAQ,GAAG,cAAc,CAAC;AAC1B,QAAA,cAAc,GAAG,YAAY,CAAC;AAC9B,QAAA,aAAa,GAAG,WAAW,CAAC;AAC5B,QAAA,cAAc,GAAG,qBAAqB,CAAC;AACvC,QAAA,iBAAiB,GAAG,eAAe,CAAC;AAK1C,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,MAAM,UAA0C;AAMtD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,sBAAc,EAAE,IAAI,CAAC,CAAC;AAApD,QAAA,SAAS,aAA2C;AAM1D,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,gBAAQ,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,WAAW,eAAqC;AAKtD,MAAM,iBAAiB,GAAG,CAAC,UAA0B,EAAE,EAAE,CAC9D,IAAA,oBAAW,EAAC,sBAAc,EAAE,UAAU,CAAC,CAAC;AAD7B,QAAA,iBAAiB,qBACY;AAEnC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,yBAAiB,EAAE,IAAI,CAAC,CAAC;AAA1D,QAAA,YAAY,gBAA8C"}
@@ -0,0 +1,16 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ import { PermissionGuard } from './permission.guard';
4
+ import { AdmcGuard } from './admc.guard';
5
+ import { BasicAuthGuard } from './basicauth.guard';
6
+ import { RequireLoginGuard } from './require-login.guard';
7
+ export declare class GlobalGuard implements CanActivate {
8
+ private readonly reflector;
9
+ private readonly basicAuthGuard;
10
+ private readonly admcGuard;
11
+ private readonly permissionGuard;
12
+ private readonly requireLoginGuard;
13
+ constructor(reflector: Reflector, basicAuthGuard: BasicAuthGuard, admcGuard: AdmcGuard, permissionGuard: PermissionGuard, requireLoginGuard: RequireLoginGuard);
14
+ canActivate(context: ExecutionContext): boolean;
15
+ private findDecorator;
16
+ }
@@ -0,0 +1,68 @@
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.GlobalGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const core_1 = require("@nestjs/core");
15
+ const permission_guard_1 = require("./permission.guard");
16
+ const admc_guard_1 = require("./admc.guard");
17
+ const basicauth_guard_1 = require("./basicauth.guard");
18
+ const require_login_guard_1 = require("./require-login.guard");
19
+ const decorators_1 = require("./decorators");
20
+ let GlobalGuard = class GlobalGuard {
21
+ reflector;
22
+ basicAuthGuard;
23
+ admcGuard;
24
+ permissionGuard;
25
+ requireLoginGuard;
26
+ constructor(reflector, basicAuthGuard, admcGuard, permissionGuard, requireLoginGuard) {
27
+ this.reflector = reflector;
28
+ this.basicAuthGuard = basicAuthGuard;
29
+ this.admcGuard = admcGuard;
30
+ this.permissionGuard = permissionGuard;
31
+ this.requireLoginGuard = requireLoginGuard;
32
+ }
33
+ canActivate(context) {
34
+ if (this.findDecorator(decorators_1.IS_PUBLIC_KEY, context)) {
35
+ return true;
36
+ }
37
+ if (this.findDecorator(decorators_1.BASIC_AUTH_KEY, context)) {
38
+ if (this.basicAuthGuard.canActivate(context)) {
39
+ return true;
40
+ }
41
+ }
42
+ if (this.findDecorator(decorators_1.REQUIRE_LOGIN_KEY, context)) {
43
+ return this.requireLoginGuard.canActivate(context);
44
+ }
45
+ if (this.findDecorator(decorators_1.ADMC_KEY, context)) {
46
+ if (this.admcGuard.canActivate(context)) {
47
+ return true;
48
+ }
49
+ }
50
+ return this.permissionGuard.canActivate(context);
51
+ }
52
+ findDecorator(key, context) {
53
+ return this.reflector.getAllAndOverride(key, [
54
+ context.getHandler(),
55
+ context.getClass(),
56
+ ]);
57
+ }
58
+ };
59
+ exports.GlobalGuard = GlobalGuard;
60
+ exports.GlobalGuard = GlobalGuard = __decorate([
61
+ (0, common_1.Injectable)(),
62
+ __metadata("design:paramtypes", [core_1.Reflector,
63
+ basicauth_guard_1.BasicAuthGuard,
64
+ admc_guard_1.AdmcGuard,
65
+ permission_guard_1.PermissionGuard,
66
+ require_login_guard_1.RequireLoginGuard])
67
+ ], GlobalGuard);
68
+ //# sourceMappingURL=global.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.guard.js","sourceRoot":"","sources":["../../src/permission/global.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2E;AAC3E,uCAAyC;AACzC,yDAAqD;AACrD,6CAAyC;AACzC,uDAAmD;AACnD,+DAA0D;AAC1D,6CAKsB;AAaf,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEH;IACA;IACA;IACA;IACA;IALnB,YACmB,SAAoB,EACpB,cAA8B,EAC9B,SAAoB,EACpB,eAAgC,EAChC,iBAAoC;QAJpC,cAAS,GAAT,SAAS,CAAW;QACpB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAEJ,WAAW,CAAC,OAAyB;QAEnC,IAAI,IAAI,CAAC,aAAa,CAAU,0BAAa,EAAE,OAAO,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,IAAI,IAAI,CAAC,aAAa,CAAU,2BAAc,EAAE,OAAO,CAAC,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;QAEH,CAAC;QAGD,IAAI,IAAI,CAAC,aAAa,CAAU,8BAAiB,EAAE,OAAO,CAAC,EAAE,CAAC;YAE5D,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QAGD,IAAI,IAAI,CAAC,aAAa,CAAU,qBAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;QAEH,CAAC;QAGD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAEO,aAAa,CACnB,GAAW,EACX,OAAyB;QAEzB,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAI,GAAG,EAAE;YAC9C,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAlDY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGmB,gBAAS;QACJ,gCAAc;QACnB,sBAAS;QACH,kCAAe;QACb,uCAAiB;GAN5C,WAAW,CAkDvB"}
@@ -1,5 +1,6 @@
1
- export * from './admc.decorator';
1
+ export * from './decorators';
2
2
  export * from './admc.guard';
3
- export * from './permission.decorator';
3
+ export * from './basicauth.guard';
4
4
  export * from './permission.guard';
5
- export * from './public.decorator';
5
+ export * from './global.guard';
6
+ export * from './require-login.guard';
@@ -14,9 +14,10 @@ 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("./admc.decorator"), exports);
17
+ __exportStar(require("./decorators"), exports);
18
18
  __exportStar(require("./admc.guard"), exports);
19
- __exportStar(require("./permission.decorator"), exports);
19
+ __exportStar(require("./basicauth.guard"), exports);
20
20
  __exportStar(require("./permission.guard"), exports);
21
- __exportStar(require("./public.decorator"), exports);
21
+ __exportStar(require("./global.guard"), exports);
22
+ __exportStar(require("./require-login.guard"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/permission/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,+CAA6B;AAC7B,yDAAuC;AACvC,qDAAmC;AACnC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/permission/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,oDAAkC;AAClC,qDAAmC;AACnC,iDAA+B;AAC/B,wDAAsC"}
@@ -1,7 +1,7 @@
1
1
  import { CanActivate, ExecutionContext } from '@nestjs/common';
2
2
  import { Reflector } from '@nestjs/core';
3
3
  export declare class PermissionGuard implements CanActivate {
4
- private reflector;
4
+ protected readonly reflector: Reflector;
5
5
  constructor(reflector: Reflector);
6
6
  canActivate(context: ExecutionContext): boolean;
7
7
  }
@@ -12,30 +12,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PermissionGuard = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const core_1 = require("@nestjs/core");
15
- const permission_decorator_1 = require("./permission.decorator");
16
- const admc_decorator_1 = require("./admc.decorator");
17
- const public_decorator_1 = require("./public.decorator");
15
+ const decorators_1 = require("./decorators");
18
16
  let PermissionGuard = class PermissionGuard {
19
17
  reflector;
20
18
  constructor(reflector) {
21
19
  this.reflector = reflector;
22
20
  }
23
21
  canActivate(context) {
24
- const requireAdmc = this.reflector.getAllAndOverride(admc_decorator_1.ADMC_KEY, [
25
- context.getHandler(),
26
- context.getClass(),
27
- ]);
28
- if (requireAdmc) {
29
- return true;
30
- }
31
- const isPublic = this.reflector.getAllAndOverride(public_decorator_1.IS_PUBLIC_KEY, [
32
- context.getHandler(),
33
- context.getClass(),
34
- ]);
35
- if (isPublic) {
36
- return true;
37
- }
38
- const requiredPermission = this.reflector.getAllAndOverride(permission_decorator_1.PERMISSION_KEY, [context.getHandler(), context.getClass()]);
22
+ const requiredPermission = this.reflector.getAllAndOverride(decorators_1.PERMISSION_KEY, [context.getHandler(), context.getClass()]);
39
23
  if (requiredPermission === undefined) {
40
24
  throw new common_1.UnauthorizedException('Permission not defined');
41
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../src/permission/permission.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,uCAAyC;AACzC,iEAAwD;AAExD,qDAA4C;AAC5C,yDAAmD;AAG5C,IAAM,eAAe,GAArB,MAAM,eAAe;IACN;IAApB,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,WAAW,CAAC,OAAyB;QAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,yBAAQ,EAAE;YACtE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QAGH,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,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,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACzD,qCAAc,EACd,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAC3C,CAAC;QACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,8BAAqB,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAkB,CAAC;QACpE,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,8BAAqB,CAAC,kBAAkB,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1D,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAC/C,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,8BAAqB,CAC7B,gCAAgC,kBAAkB,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA3DY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEoB,gBAAS;GAD7B,eAAe,CA2D3B"}
1
+ {"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../../src/permission/permission.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,uCAAyC;AACzC,6CAA8C;AAIvC,IAAM,eAAe,GAArB,MAAM,eAAe;IACK;IAA/B,YAA+B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEvD,WAAW,CAAC,OAAyB;QACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CACzD,2BAAc,EACd,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAC3C,CAAC;QACF,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,8BAAqB,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAkB,CAAC;QACpE,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,8BAAqB,CAAC,kBAAkB,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1D,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAC/C,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,8BAAqB,CAC7B,gCAAgC,kBAAkB,EAAE,CACrD,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAvCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAE+B,gBAAS;GADxC,eAAe,CAuC3B"}
@@ -0,0 +1,8 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { RedirectService } from '../redirect/redirect.service';
3
+ export declare class RequireLoginGuard implements CanActivate {
4
+ private readonly redirectService;
5
+ private readonly logger;
6
+ constructor(redirectService: RedirectService);
7
+ canActivate(context: ExecutionContext): boolean;
8
+ }
@@ -0,0 +1,49 @@
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
+ var RequireLoginGuard_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RequireLoginGuard = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const redirect_service_1 = require("../redirect/redirect.service");
16
+ let RequireLoginGuard = RequireLoginGuard_1 = class RequireLoginGuard {
17
+ redirectService;
18
+ logger = new common_1.Logger(RequireLoginGuard_1.name);
19
+ constructor(redirectService) {
20
+ this.redirectService = redirectService;
21
+ }
22
+ canActivate(context) {
23
+ const request = context.switchToHttp().getRequest();
24
+ const response = context.switchToHttp().getResponse();
25
+ const session = request?.raw.entSession;
26
+ if (session) {
27
+ this.logger.debug('Session found, allowing request');
28
+ return true;
29
+ }
30
+ this.logger.debug({
31
+ url: request.url,
32
+ session: request.entSession,
33
+ headers: request.headers,
34
+ }, 'No session, building redirect');
35
+ const redirect = this.redirectService.buildRedirectUrl(request);
36
+ this.logger.debug({ location: redirect.location }, 'Redirecting to login');
37
+ response
38
+ .code(redirect.statusCode)
39
+ .header('Location', redirect.location)
40
+ .send();
41
+ return false;
42
+ }
43
+ };
44
+ exports.RequireLoginGuard = RequireLoginGuard;
45
+ exports.RequireLoginGuard = RequireLoginGuard = RequireLoginGuard_1 = __decorate([
46
+ (0, common_1.Injectable)(),
47
+ __metadata("design:paramtypes", [redirect_service_1.RedirectService])
48
+ ], RequireLoginGuard);
49
+ //# sourceMappingURL=require-login.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-login.guard.js","sourceRoot":"","sources":["../../src/permission/require-login.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAKwB;AAExB,mEAA+D;AAkBxD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAEC;IADZ,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7D,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEjE,WAAW,CAAC,OAAyB;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAkB,CAAC;QACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAgB,CAAC;QACpE,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;QAExC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;YACE,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,UAAU;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD,+BAA+B,CAChC,CAAC;QAGF,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAG3E,QAAQ;aACL,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;aACzB,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC;aACrC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAlCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGmC,kCAAe;GAFlD,iBAAiB,CAkC7B"}
@@ -0,0 +1,15 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { NatsContext } from '@nestjs/microservices';
3
+ import { RedirectService } from './redirect.service';
4
+ export declare class RedirectLifecycleController implements OnModuleInit {
5
+ private readonly redirectService;
6
+ private readonly logger;
7
+ constructor(redirectService: RedirectService);
8
+ onModuleInit(): void;
9
+ onInfraStarted(data: ApplicationStatusPayload, ctx: NatsContext): void;
10
+ }
11
+ interface ApplicationStatusPayload {
12
+ application?: string;
13
+ version?: string;
14
+ }
15
+ export {};
@@ -0,0 +1,48 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var RedirectLifecycleController_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.RedirectLifecycleController = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const microservices_1 = require("@nestjs/microservices");
19
+ const redirect_service_1 = require("./redirect.service");
20
+ let RedirectLifecycleController = RedirectLifecycleController_1 = class RedirectLifecycleController {
21
+ redirectService;
22
+ logger = new common_1.Logger(RedirectLifecycleController_1.name);
23
+ constructor(redirectService) {
24
+ this.redirectService = redirectService;
25
+ this.logger.log('RedirectLifecycleController instantiated');
26
+ }
27
+ onModuleInit() {
28
+ this.logger.log('RedirectLifecycleController module init');
29
+ }
30
+ onInfraStarted(data, ctx) {
31
+ this.logger.log({ subject: ctx.getSubject(), data }, 'Received application.starter.start event, refreshing redirect config');
32
+ void this.redirectService.refreshConfig();
33
+ }
34
+ };
35
+ exports.RedirectLifecycleController = RedirectLifecycleController;
36
+ __decorate([
37
+ (0, microservices_1.EventPattern)('application.starter.start'),
38
+ __param(0, (0, microservices_1.Payload)()),
39
+ __param(1, (0, microservices_1.Ctx)()),
40
+ __metadata("design:type", Function),
41
+ __metadata("design:paramtypes", [Object, microservices_1.NatsContext]),
42
+ __metadata("design:returntype", void 0)
43
+ ], RedirectLifecycleController.prototype, "onInfraStarted", null);
44
+ exports.RedirectLifecycleController = RedirectLifecycleController = RedirectLifecycleController_1 = __decorate([
45
+ (0, common_1.Controller)(),
46
+ __metadata("design:paramtypes", [redirect_service_1.RedirectService])
47
+ ], RedirectLifecycleController);
48
+ //# sourceMappingURL=redirect-lifecycle.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect-lifecycle.controller.js","sourceRoot":"","sources":["../../src/redirect/redirect-lifecycle.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAkE;AAClE,yDAAgF;AAChF,yDAAqD;AAU9C,IAAM,2BAA2B,mCAAjC,MAAM,2BAA2B;IAGT;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;IAEvE,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,YAAY;QACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAmBD,cAAc,CACD,IAA8B,EAClC,GAAgB;QAEvB,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EACnC,sEAAsE,CACvE,CAAC;QACF,KAAK,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC;CACF,CAAA;AAtCY,kEAA2B;AA4BtC;IADC,IAAA,4BAAY,EAAC,2BAA2B,CAAC;IAEvC,WAAA,IAAA,uBAAO,GAAE,CAAA;IACT,WAAA,IAAA,mBAAG,GAAE,CAAA;;6CAAM,2BAAW;;iEAOxB;sCArCU,2BAA2B;IADvC,IAAA,mBAAU,GAAE;qCAImC,kCAAe;GAHlD,2BAA2B,CAsCvC"}
@@ -0,0 +1,2 @@
1
+ export declare class RedirectModule {
2
+ }
@@ -0,0 +1,25 @@
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.RedirectModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const redirect_service_1 = require("./redirect.service");
12
+ const redirect_lifecycle_controller_1 = require("./redirect-lifecycle.controller");
13
+ const nats_1 = require("../nats");
14
+ let RedirectModule = class RedirectModule {
15
+ };
16
+ exports.RedirectModule = RedirectModule;
17
+ exports.RedirectModule = RedirectModule = __decorate([
18
+ (0, common_1.Module)({
19
+ imports: [nats_1.NatsModule],
20
+ controllers: [redirect_lifecycle_controller_1.RedirectLifecycleController],
21
+ providers: [redirect_service_1.RedirectService],
22
+ exports: [redirect_service_1.RedirectService],
23
+ })
24
+ ], RedirectModule);
25
+ //# sourceMappingURL=redirect.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect.module.js","sourceRoot":"","sources":["../../src/redirect/redirect.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,yDAAqD;AACrD,mFAA8E;AAC9E,kCAAqC;AAQ9B,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAN1B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,iBAAU,CAAC;QACrB,WAAW,EAAE,CAAC,2DAA2B,CAAC;QAC1C,SAAS,EAAE,CAAC,kCAAe,CAAC;QAC5B,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
@@ -0,0 +1,28 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { OnModuleInit } from '@nestjs/common';
3
+ import { FastifyRequest } from 'fastify';
4
+ import { EntNatsServiceClient } from '@edifice.io/edifice-ent-client';
5
+ export interface RedirectResult {
6
+ location: string;
7
+ statusCode: number;
8
+ }
9
+ export declare class RedirectService implements OnModuleInit {
10
+ private readonly natsClient;
11
+ private readonly configService;
12
+ private readonly logger;
13
+ private readonly defaults;
14
+ private configCache;
15
+ private readonly appPrefix;
16
+ constructor(natsClient: EntNatsServiceClient, configService: ConfigService);
17
+ onModuleInit(): Promise<void>;
18
+ refreshConfig(): Promise<void>;
19
+ buildRedirectUrl(request: FastifyRequest): RedirectResult;
20
+ getConfigForHost(host: string): {
21
+ loginUri: string;
22
+ callbackParam: string;
23
+ };
24
+ private getFullPath;
25
+ private getHost;
26
+ private getScheme;
27
+ private checkIfAllowedHost;
28
+ }