@tc-libs/api-key 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +11 -0
  2. package/package.json +11 -0
  3. package/src/api-key.module.d.ts +2 -0
  4. package/src/api-key.module.js +20 -0
  5. package/src/api-key.module.js.map +1 -0
  6. package/src/api-key.module.options.d.ts +8 -0
  7. package/src/api-key.module.options.js +5 -0
  8. package/src/api-key.module.options.js.map +1 -0
  9. package/src/constants/api-key.constant.d.ts +1 -0
  10. package/src/constants/api-key.constant.js +5 -0
  11. package/src/constants/api-key.constant.js.map +1 -0
  12. package/src/constants/api-key.doc.d.ts +15 -0
  13. package/src/constants/api-key.doc.js +24 -0
  14. package/src/constants/api-key.doc.js.map +1 -0
  15. package/src/constants/api-key.list.constant.d.ts +7 -0
  16. package/src/constants/api-key.list.constant.js +11 -0
  17. package/src/constants/api-key.list.constant.js.map +1 -0
  18. package/src/constants/api-key.permissions.constants.d.ts +2 -0
  19. package/src/constants/api-key.permissions.constants.js +9 -0
  20. package/src/constants/api-key.permissions.constants.js.map +1 -0
  21. package/src/constants/index.d.ts +4 -0
  22. package/src/constants/index.js +8 -0
  23. package/src/constants/index.js.map +1 -0
  24. package/src/controllers/api-key.admin.controller.d.ts +11 -0
  25. package/src/controllers/api-key.admin.controller.js +97 -0
  26. package/src/controllers/api-key.admin.controller.js.map +1 -0
  27. package/src/controllers/api-key.controller.d.ts +16 -0
  28. package/src/controllers/api-key.controller.js +156 -0
  29. package/src/controllers/api-key.controller.js.map +1 -0
  30. package/src/controllers/api-key.public.controller.d.ts +16 -0
  31. package/src/controllers/api-key.public.controller.js +144 -0
  32. package/src/controllers/api-key.public.controller.js.map +1 -0
  33. package/src/controllers/index.d.ts +3 -0
  34. package/src/controllers/index.js +7 -0
  35. package/src/controllers/index.js.map +1 -0
  36. package/src/decorators/api-key.admin.decorator.d.ts +5 -0
  37. package/src/decorators/api-key.admin.decorator.js +26 -0
  38. package/src/decorators/api-key.admin.decorator.js.map +1 -0
  39. package/src/decorators/api-key.decorator.d.ts +3 -0
  40. package/src/decorators/api-key.decorator.js +18 -0
  41. package/src/decorators/api-key.decorator.js.map +1 -0
  42. package/src/decorators/api-key.public.decorator.d.ts +1 -0
  43. package/src/decorators/api-key.public.decorator.js +10 -0
  44. package/src/decorators/api-key.public.decorator.js.map +1 -0
  45. package/src/decorators/index.d.ts +2 -0
  46. package/src/decorators/index.js +6 -0
  47. package/src/decorators/index.js.map +1 -0
  48. package/src/docs/api-key.admin.doc.d.ts +7 -0
  49. package/src/docs/api-key.admin.doc.js +105 -0
  50. package/src/docs/api-key.admin.doc.js.map +1 -0
  51. package/src/docs/api-key.public.doc.d.ts +1 -0
  52. package/src/docs/api-key.public.doc.js +18 -0
  53. package/src/docs/api-key.public.doc.js.map +1 -0
  54. package/src/docs/index.d.ts +2 -0
  55. package/src/docs/index.js +6 -0
  56. package/src/docs/index.js.map +1 -0
  57. package/src/dtos/api-key.active.dto.d.ts +3 -0
  58. package/src/dtos/api-key.active.dto.js +22 -0
  59. package/src/dtos/api-key.active.dto.js.map +1 -0
  60. package/src/dtos/api-key.create.dto.d.ts +11 -0
  61. package/src/dtos/api-key.create.dto.js +62 -0
  62. package/src/dtos/api-key.create.dto.js.map +1 -0
  63. package/src/dtos/api-key.request.dto.d.ts +3 -0
  64. package/src/dtos/api-key.request.dto.js +23 -0
  65. package/src/dtos/api-key.request.dto.js.map +1 -0
  66. package/src/dtos/api-key.update-date.dto.d.ts +4 -0
  67. package/src/dtos/api-key.update-date.dto.js +39 -0
  68. package/src/dtos/api-key.update-date.dto.js.map +1 -0
  69. package/src/dtos/api-key.update.dto.d.ts +5 -0
  70. package/src/dtos/api-key.update.dto.js +12 -0
  71. package/src/dtos/api-key.update.dto.js.map +1 -0
  72. package/src/dtos/index.d.ts +5 -0
  73. package/src/dtos/index.js +9 -0
  74. package/src/dtos/index.js.map +1 -0
  75. package/src/errors/409/api.409.api-key.error.d.ts +7 -0
  76. package/src/errors/409/api.409.api-key.error.js +11 -0
  77. package/src/errors/409/api.409.api-key.error.js.map +1 -0
  78. package/src/guards/api-key.active.guard.d.ts +7 -0
  79. package/src/guards/api-key.active.guard.js +30 -0
  80. package/src/guards/api-key.active.guard.js.map +1 -0
  81. package/src/guards/api-key.expired.guard.d.ts +7 -0
  82. package/src/guards/api-key.expired.guard.js +29 -0
  83. package/src/guards/api-key.expired.guard.js.map +1 -0
  84. package/src/guards/api-key.not-found.guard.d.ts +4 -0
  85. package/src/guards/api-key.not-found.guard.js +20 -0
  86. package/src/guards/api-key.not-found.guard.js.map +1 -0
  87. package/src/guards/api-key.put-to-request-by-user.guard.d.ts +7 -0
  88. package/src/guards/api-key.put-to-request-by-user.guard.js +31 -0
  89. package/src/guards/api-key.put-to-request-by-user.guard.js.map +1 -0
  90. package/src/guards/api-key.put-to-request.guard.d.ts +7 -0
  91. package/src/guards/api-key.put-to-request.guard.js +25 -0
  92. package/src/guards/api-key.put-to-request.guard.js.map +1 -0
  93. package/src/guards/index.d.ts +6 -0
  94. package/src/guards/index.js +10 -0
  95. package/src/guards/index.js.map +1 -0
  96. package/src/guards/x-api-key/api-key.x-api-key.guard.d.ts +8 -0
  97. package/src/guards/x-api-key/api-key.x-api-key.guard.js +35 -0
  98. package/src/guards/x-api-key/api-key.x-api-key.guard.js.map +1 -0
  99. package/src/guards/x-api-key/api-key.x-api-key.strategy.d.ts +14 -0
  100. package/src/guards/x-api-key/api-key.x-api-key.strategy.js +69 -0
  101. package/src/guards/x-api-key/api-key.x-api-key.strategy.js.map +1 -0
  102. package/src/index.d.ts +12 -0
  103. package/src/index.js +16 -0
  104. package/src/index.js.map +1 -0
  105. package/src/interfaces/api-key.interface.d.ts +10 -0
  106. package/src/interfaces/api-key.interface.js +3 -0
  107. package/src/interfaces/api-key.interface.js.map +1 -0
  108. package/src/interfaces/index.d.ts +1 -0
  109. package/src/interfaces/index.js +5 -0
  110. package/src/interfaces/index.js.map +1 -0
  111. package/src/repository/api-key.repository.module.d.ts +2 -0
  112. package/src/repository/api-key.repository.module.js +27 -0
  113. package/src/repository/api-key.repository.module.js.map +1 -0
  114. package/src/repository/entities/api-key.entity.d.ts +21 -0
  115. package/src/repository/entities/api-key.entity.js +98 -0
  116. package/src/repository/entities/api-key.entity.js.map +1 -0
  117. package/src/repository/index.d.ts +3 -0
  118. package/src/repository/index.js +7 -0
  119. package/src/repository/index.js.map +1 -0
  120. package/src/repository/repositories/api-key.repository.d.ts +11 -0
  121. package/src/repository/repositories/api-key.repository.js +28 -0
  122. package/src/repository/repositories/api-key.repository.js.map +1 -0
  123. package/src/serializations/api-key.create.serialization.d.ts +6 -0
  124. package/src/serializations/api-key.create.serialization.js +18 -0
  125. package/src/serializations/api-key.create.serialization.js.map +1 -0
  126. package/src/serializations/api-key.get.serialization.d.ts +13 -0
  127. package/src/serializations/api-key.get.serialization.js +86 -0
  128. package/src/serializations/api-key.get.serialization.js.map +1 -0
  129. package/src/serializations/api-key.list.serialization.d.ts +5 -0
  130. package/src/serializations/api-key.list.serialization.js +11 -0
  131. package/src/serializations/api-key.list.serialization.js.map +1 -0
  132. package/src/serializations/api-key.reset.serialization.d.ts +3 -0
  133. package/src/serializations/api-key.reset.serialization.js +8 -0
  134. package/src/serializations/api-key.reset.serialization.js.map +1 -0
  135. package/src/serializations/index.d.ts +4 -0
  136. package/src/serializations/index.js +8 -0
  137. package/src/serializations/index.js.map +1 -0
  138. package/src/services/api-key.service.d.ts +34 -0
  139. package/src/services/api-key.service.js +136 -0
  140. package/src/services/api-key.service.js.map +1 -0
  141. package/src/services/index.d.ts +1 -0
  142. package/src/services/index.js +5 -0
  143. package/src/services/index.js.map +1 -0
  144. package/src/tasks/api-key.inactive.task.d.ts +6 -0
  145. package/src/tasks/api-key.inactive.task.js +35 -0
  146. package/src/tasks/api-key.inactive.task.js.map +1 -0
  147. package/src/tasks/index.d.ts +1 -0
  148. package/src/tasks/index.js +5 -0
  149. package/src/tasks/index.js.map +1 -0
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyUpdateDto = void 0;
4
+ const swagger_1 = require("@nestjs/swagger");
5
+ const api_key_create_dto_1 = require("./api-key.create.dto");
6
+ class ApiKeyUpdateDto extends (0, swagger_1.PickType)(api_key_create_dto_1.ApiKeyCreateDto, [
7
+ 'name',
8
+ 'description',
9
+ ]) {
10
+ }
11
+ exports.ApiKeyUpdateDto = ApiKeyUpdateDto;
12
+ //# sourceMappingURL=api-key.update.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.update.dto.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/dtos/api-key.update.dto.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,6DAAuD;AAEvD,MAAa,eAAgB,SAAQ,IAAA,kBAAQ,EAAC,oCAAe,EAAE;IAC7D,MAAM;IACN,aAAa;CACL,CAAC;CAAG;AAHd,0CAGc"}
@@ -0,0 +1,5 @@
1
+ export * from './api-key.active.dto';
2
+ export * from './api-key.create.dto';
3
+ export * from './api-key.request.dto';
4
+ export * from './api-key.update-date.dto';
5
+ export * from './api-key.update.dto';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./api-key.active.dto"), exports);
5
+ tslib_1.__exportStar(require("./api-key.create.dto"), exports);
6
+ tslib_1.__exportStar(require("./api-key.request.dto"), exports);
7
+ tslib_1.__exportStar(require("./api-key.update-date.dto"), exports);
8
+ tslib_1.__exportStar(require("./api-key.update.dto"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/dtos/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,+DAAqC;AACrC,gEAAsC;AACtC,oEAA0C;AAC1C,+DAAqC"}
@@ -0,0 +1,7 @@
1
+ import { Api409Error } from '@tc-libs/errors';
2
+ export type Api409ApiKeyCappedErrorType = {
3
+ max: number;
4
+ };
5
+ export declare class Api409ApiKeyCappedError extends Api409Error {
6
+ constructor(data: Api409ApiKeyCappedErrorType);
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Api409ApiKeyCappedError = void 0;
4
+ const errors_1 = require("@tc-libs/errors");
5
+ class Api409ApiKeyCappedError extends errors_1.Api409Error {
6
+ constructor(data) {
7
+ super('error.409.api_key_capped', 40941, `User can have max [${data.max}] api keys.`);
8
+ }
9
+ }
10
+ exports.Api409ApiKeyCappedError = Api409ApiKeyCappedError;
11
+ //# sourceMappingURL=api.409.api-key.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.409.api-key.error.js","sourceRoot":"","sources":["../../../../../../packages/api-key/src/errors/409/api.409.api-key.error.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAM9C,MAAa,uBAAwB,SAAQ,oBAAW;IACtD,YAAY,IAAiC;QAC3C,KAAK,CACH,0BAA0B,EAC1B,KAAK,EACL,sBAAsB,IAAI,CAAC,GAAG,aAAa,CAC5C,CAAC;IACJ,CAAC;CACF;AARD,0DAQC"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ export declare class ApiKeyActiveGuard implements CanActivate {
4
+ private reflector;
5
+ constructor(reflector: Reflector);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyActiveGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const core_1 = require("@nestjs/core");
7
+ const constants_1 = require("../constants");
8
+ const errors_1 = require("@tc-libs/errors");
9
+ let ApiKeyActiveGuard = class ApiKeyActiveGuard {
10
+ constructor(reflector) {
11
+ this.reflector = reflector;
12
+ }
13
+ async canActivate(context) {
14
+ const required = this.reflector.getAllAndOverride(constants_1.API_KEY_ACTIVE_META_KEY, [context.getHandler(), context.getClass()]);
15
+ if (!required) {
16
+ return true;
17
+ }
18
+ const { __apiKey } = context.switchToHttp().getRequest();
19
+ if (!required.includes(__apiKey.active)) {
20
+ throw new errors_1.Api403ApiKeyInactiveError();
21
+ }
22
+ return true;
23
+ }
24
+ };
25
+ exports.ApiKeyActiveGuard = ApiKeyActiveGuard;
26
+ exports.ApiKeyActiveGuard = ApiKeyActiveGuard = tslib_1.__decorate([
27
+ (0, common_1.Injectable)(),
28
+ tslib_1.__metadata("design:paramtypes", [core_1.Reflector])
29
+ ], ApiKeyActiveGuard);
30
+ //# sourceMappingURL=api-key.active.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.active.guard.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/guards/api-key.active.guard.ts"],"names":[],"mappings":";;;;AAAA,2CAA2E;AAC3E,uCAAyC;AACzC,4CAAuD;AACvD,4CAA4D;AAGrD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,QAAQ,GAAc,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC1D,mCAAuB,EACvB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAC3C,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAEzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,kCAAyB,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AApBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;6CAEoB,gBAAS;GAD7B,iBAAiB,CAoB7B"}
@@ -0,0 +1,7 @@
1
+ import { DateService } from '@tc-libs/helper';
2
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
3
+ export declare class ApiKeyExpiredGuard implements CanActivate {
4
+ private readonly helperDateService;
5
+ constructor(helperDateService: DateService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyExpiredGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const helper_1 = require("@tc-libs/helper");
6
+ const errors_1 = require("@tc-libs/errors");
7
+ const common_1 = require("@nestjs/common");
8
+ let ApiKeyExpiredGuard = class ApiKeyExpiredGuard {
9
+ constructor(helperDateService) {
10
+ this.helperDateService = helperDateService;
11
+ }
12
+ async canActivate(context) {
13
+ const { __apiKey } = context.switchToHttp().getRequest();
14
+ const today = this.helperDateService.create();
15
+ if (__apiKey.startDate && __apiKey.endDate && today > __apiKey.endDate) {
16
+ throw new errors_1.Api400ApiKeyExpiredError({
17
+ endDate: __apiKey.endDate,
18
+ ts: today,
19
+ });
20
+ }
21
+ return true;
22
+ }
23
+ };
24
+ exports.ApiKeyExpiredGuard = ApiKeyExpiredGuard;
25
+ exports.ApiKeyExpiredGuard = ApiKeyExpiredGuard = tslib_1.__decorate([
26
+ (0, common_1.Injectable)(),
27
+ tslib_1.__metadata("design:paramtypes", [helper_1.DateService])
28
+ ], ApiKeyExpiredGuard);
29
+ //# sourceMappingURL=api-key.expired.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.expired.guard.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/guards/api-key.expired.guard.ts"],"names":[],"mappings":";;;;AAAA,4CAA8C;AAC9C,4CAA2D;AAC3D,2CAA2E;AAGpE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAA6B,iBAA8B;QAA9B,sBAAiB,GAAjB,iBAAiB,CAAa;IAAG,CAAC;IAE/D,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACzD,MAAM,KAAK,GAAS,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAEpD,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvE,MAAM,IAAI,iCAAwB,CAAC;gBACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,EAAE,EAAE,KAAK;aACV,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAfY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;6CAEqC,oBAAW;GADhD,kBAAkB,CAe9B"}
@@ -0,0 +1,4 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ export declare class ApiKeyNotFoundGuard implements CanActivate {
3
+ canActivate(context: ExecutionContext): Promise<boolean>;
4
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyNotFoundGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const errors_1 = require("@tc-libs/errors");
6
+ const common_1 = require("@nestjs/common");
7
+ let ApiKeyNotFoundGuard = class ApiKeyNotFoundGuard {
8
+ async canActivate(context) {
9
+ const { __apiKey } = context.switchToHttp().getRequest();
10
+ if (!__apiKey) {
11
+ throw new errors_1.Api403ApiKeyNotFoundError();
12
+ }
13
+ return true;
14
+ }
15
+ };
16
+ exports.ApiKeyNotFoundGuard = ApiKeyNotFoundGuard;
17
+ exports.ApiKeyNotFoundGuard = ApiKeyNotFoundGuard = tslib_1.__decorate([
18
+ (0, common_1.Injectable)()
19
+ ], ApiKeyNotFoundGuard);
20
+ //# sourceMappingURL=api-key.not-found.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.not-found.guard.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/guards/api-key.not-found.guard.ts"],"names":[],"mappings":";;;;AAAA,4CAA4D;AAC5D,2CAA2E;AAGpE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,kCAAyB,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AATY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAS/B"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { ApiKeyService } from '../services';
3
+ export declare class ApiKeyPutToRequestByUserGuard implements CanActivate {
4
+ private readonly _apiKey;
5
+ constructor(_apiKey: ApiKeyService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyPutToRequestByUserGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const services_1 = require("../services");
7
+ let ApiKeyPutToRequestByUserGuard = class ApiKeyPutToRequestByUserGuard {
8
+ constructor(_apiKey) {
9
+ this._apiKey = _apiKey;
10
+ }
11
+ async canActivate(context) {
12
+ const request = context.switchToHttp().getRequest();
13
+ // deconstruct params and user
14
+ const { params, user } = request;
15
+ const { apiKey } = params;
16
+ const check = await this._apiKey.findOne({
17
+ _id: apiKey,
18
+ user: user._id,
19
+ }, {
20
+ join: true,
21
+ });
22
+ request.__apiKey = check;
23
+ return true;
24
+ }
25
+ };
26
+ exports.ApiKeyPutToRequestByUserGuard = ApiKeyPutToRequestByUserGuard;
27
+ exports.ApiKeyPutToRequestByUserGuard = ApiKeyPutToRequestByUserGuard = tslib_1.__decorate([
28
+ (0, common_1.Injectable)(),
29
+ tslib_1.__metadata("design:paramtypes", [services_1.ApiKeyService])
30
+ ], ApiKeyPutToRequestByUserGuard);
31
+ //# sourceMappingURL=api-key.put-to-request-by-user.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.put-to-request-by-user.guard.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/guards/api-key.put-to-request-by-user.guard.ts"],"names":[],"mappings":";;;;AAAA,2CAA2E;AAC3E,0CAA4C;AAIrC,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACxC,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAEvD,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,8BAA8B;QAC9B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,KAAK,GAAc,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACjD;YACE,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,IAAI,CAAC,GAAG;SACf,EACD;YACE,IAAI,EAAE,IAAI;SACX,CACF,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AArBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,mBAAU,GAAE;6CAE2B,wBAAa;GADxC,6BAA6B,CAqBzC"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { ApiKeyService } from '../services';
3
+ export declare class ApiKeyPutToRequestGuard implements CanActivate {
4
+ private readonly apiKeyService;
5
+ constructor(apiKeyService: ApiKeyService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyPutToRequestGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const services_1 = require("../services");
7
+ let ApiKeyPutToRequestGuard = class ApiKeyPutToRequestGuard {
8
+ constructor(apiKeyService) {
9
+ this.apiKeyService = apiKeyService;
10
+ }
11
+ async canActivate(context) {
12
+ const request = context.switchToHttp().getRequest();
13
+ const { params } = request;
14
+ const { apiKey } = params;
15
+ const check = await this.apiKeyService.findById(apiKey);
16
+ request.__apiKey = check;
17
+ return true;
18
+ }
19
+ };
20
+ exports.ApiKeyPutToRequestGuard = ApiKeyPutToRequestGuard;
21
+ exports.ApiKeyPutToRequestGuard = ApiKeyPutToRequestGuard = tslib_1.__decorate([
22
+ (0, common_1.Injectable)(),
23
+ tslib_1.__metadata("design:paramtypes", [services_1.ApiKeyService])
24
+ ], ApiKeyPutToRequestGuard);
25
+ //# sourceMappingURL=api-key.put-to-request.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.put-to-request.guard.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/guards/api-key.put-to-request.guard.ts"],"names":[],"mappings":";;;;AAAA,2CAA2E;AAC3E,0CAA4C;AAIrC,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE1B,MAAM,KAAK,GAAc,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAbY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;6CAEiC,wBAAa;GAD9C,uBAAuB,CAanC"}
@@ -0,0 +1,6 @@
1
+ export * from './x-api-key/api-key.x-api-key.guard';
2
+ export * from './x-api-key/api-key.x-api-key.strategy';
3
+ export * from './api-key.active.guard';
4
+ export * from './api-key.expired.guard';
5
+ export * from './api-key.not-found.guard';
6
+ export * from './api-key.put-to-request.guard';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./x-api-key/api-key.x-api-key.guard"), exports);
5
+ tslib_1.__exportStar(require("./x-api-key/api-key.x-api-key.strategy"), exports);
6
+ tslib_1.__exportStar(require("./api-key.active.guard"), exports);
7
+ tslib_1.__exportStar(require("./api-key.expired.guard"), exports);
8
+ tslib_1.__exportStar(require("./api-key.not-found.guard"), exports);
9
+ tslib_1.__exportStar(require("./api-key.put-to-request.guard"), exports);
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/guards/index.ts"],"names":[],"mappings":";;;AAAA,8EAAoD;AACpD,iFAAuD;AACvD,iEAAuC;AACvC,kEAAwC;AACxC,oEAA0C;AAC1C,yEAA+C"}
@@ -0,0 +1,8 @@
1
+ import { ExecutionContext } from '@nestjs/common';
2
+ declare const ApiKeyXApiKeyGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
3
+ export declare class ApiKeyXApiKeyGuard extends ApiKeyXApiKeyGuard_base {
4
+ constructor();
5
+ canActivate(context: ExecutionContext): boolean | Promise<boolean> | import("rxjs").Observable<boolean>;
6
+ handleRequest<IApiKeyPayload = any>(err: Record<string, any>, apiKey: IApiKeyPayload, info: Error | string): IApiKeyPayload;
7
+ }
8
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyXApiKeyGuard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const passport_1 = require("@nestjs/passport");
6
+ const common_1 = require("@nestjs/common");
7
+ const passport_headerapikey_1 = require("passport-headerapikey");
8
+ const errors_1 = require("@tc-libs/errors");
9
+ let ApiKeyXApiKeyGuard = class ApiKeyXApiKeyGuard extends (0, passport_1.AuthGuard)('api-key') {
10
+ constructor() {
11
+ super();
12
+ }
13
+ canActivate(context) {
14
+ return super.canActivate(context);
15
+ }
16
+ handleRequest(err, apiKey, info) {
17
+ if (err || !apiKey) {
18
+ if (info instanceof passport_headerapikey_1.BadRequestError &&
19
+ info.message === 'Missing API Key') {
20
+ throw new errors_1.Api401ApiKeyInvalidError();
21
+ }
22
+ else if (err instanceof errors_1.Api403Error) {
23
+ throw err;
24
+ }
25
+ throw new errors_1.Api401ApiKeyInvalidError();
26
+ }
27
+ return apiKey;
28
+ }
29
+ };
30
+ exports.ApiKeyXApiKeyGuard = ApiKeyXApiKeyGuard;
31
+ exports.ApiKeyXApiKeyGuard = ApiKeyXApiKeyGuard = tslib_1.__decorate([
32
+ (0, common_1.Injectable)(),
33
+ tslib_1.__metadata("design:paramtypes", [])
34
+ ], ApiKeyXApiKeyGuard);
35
+ //# sourceMappingURL=api-key.x-api-key.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.x-api-key.guard.js","sourceRoot":"","sources":["../../../../../../packages/api-key/src/guards/x-api-key/api-key.x-api-key.guard.ts"],"names":[],"mappings":";;;;AAAA,+CAA6C;AAC7C,2CAA8D;AAC9D,iEAAwD;AACxD,4CAAwE;AAGjE,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,IAAA,oBAAS,EAAC,SAAS,CAAC;IAC1D;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEQ,WAAW,CAAC,OAAyB;QAC5C,OAAO,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEQ,aAAa,CACpB,GAAwB,EACxB,MAAsB,EACtB,IAAoB;QAEpB,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,IACE,IAAI,YAAY,uCAAe;gBAC/B,IAAI,CAAC,OAAO,KAAK,iBAAiB,EAClC,CAAC;gBACD,MAAM,IAAI,iCAAwB,EAAE,CAAC;YACvC,CAAC;iBAAM,IAAI,GAAG,YAAY,oBAAW,EAAE,CAAC;gBACtC,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,MAAM,IAAI,iCAAwB,EAAE,CAAC;QACvC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA7BY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;;GACA,kBAAkB,CA6B9B"}
@@ -0,0 +1,14 @@
1
+ import { DateService } from '@tc-libs/helper';
2
+ import { IRequestApp } from '@tc-libs/request';
3
+ import Strategy from 'passport-headerapikey';
4
+ import { ApiKeyService } from '../../services';
5
+ import { IUserPayloadSerialization, IUserService } from '@tc-libs/user';
6
+ declare const ApiKeyXApiKeyStrategy_base: new (...args: any[]) => Strategy;
7
+ export declare class ApiKeyXApiKeyStrategy extends ApiKeyXApiKeyStrategy_base {
8
+ private readonly apiKeyService;
9
+ private readonly _date;
10
+ private readonly _user;
11
+ constructor(apiKeyService: ApiKeyService, _date: DateService, _user: IUserService);
12
+ validate(apiKey: string, verified: (error?: Error, user?: IUserPayloadSerialization, info?: string | number) => Promise<void>, req: IRequestApp): Promise<void>;
13
+ }
14
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyXApiKeyStrategy = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const helper_1 = require("@tc-libs/helper");
6
+ const errors_1 = require("@tc-libs/errors");
7
+ const common_1 = require("@nestjs/common");
8
+ const passport_1 = require("@nestjs/passport");
9
+ const passport_headerapikey_1 = tslib_1.__importDefault(require("passport-headerapikey"));
10
+ const services_1 = require("../../services");
11
+ let ApiKeyXApiKeyStrategy = class ApiKeyXApiKeyStrategy extends (0, passport_1.PassportStrategy)(passport_headerapikey_1.default, 'api-key') {
12
+ constructor(apiKeyService, _date, _user) {
13
+ super({ header: 'X-API-KEY', prefix: '' }, true, async (apiKey, verified, req) => this.validate(apiKey, verified, req));
14
+ this.apiKeyService = apiKeyService;
15
+ this._date = _date;
16
+ this._user = _user;
17
+ }
18
+ async validate(apiKey, verified, req) {
19
+ const xApiKey = apiKey.split(':');
20
+ if (xApiKey.length !== 2) {
21
+ verified(new errors_1.Api401ApiKeyInvalidError());
22
+ return;
23
+ }
24
+ const key = xApiKey[0];
25
+ const today = this._date.create();
26
+ const authApi = await this.apiKeyService.findOneByActiveKey(key);
27
+ if (!authApi) {
28
+ verified(new errors_1.Api403ApiKeyNotFoundError());
29
+ return;
30
+ }
31
+ else if (!authApi.active) {
32
+ verified(new errors_1.Api403ApiKeyInactiveError());
33
+ return;
34
+ }
35
+ else if (authApi.startDate &&
36
+ authApi.endDate &&
37
+ (authApi.startDate < today || authApi.endDate > today)) {
38
+ verified(new errors_1.Api403ApiKeyExpiredError());
39
+ }
40
+ const validateApiKey = await this.apiKeyService.validateHashApiKey(apiKey, authApi.hash);
41
+ if (!validateApiKey) {
42
+ verified(new errors_1.Api401ApiKeyInvalidError());
43
+ return;
44
+ }
45
+ req.apiKey = {
46
+ _id: `${authApi._id}`,
47
+ key: authApi.key,
48
+ name: authApi.name,
49
+ };
50
+ const user = await this._user.findById(authApi.user);
51
+ verified(undefined, {
52
+ _id: authApi.user.toString(),
53
+ accessFor: authApi.accessFor,
54
+ rememberMe: true,
55
+ email: user.email,
56
+ firstName: user.firstName,
57
+ lastName: user.lastName,
58
+ lang: user.lang,
59
+ });
60
+ return;
61
+ }
62
+ };
63
+ exports.ApiKeyXApiKeyStrategy = ApiKeyXApiKeyStrategy;
64
+ exports.ApiKeyXApiKeyStrategy = ApiKeyXApiKeyStrategy = tslib_1.__decorate([
65
+ (0, common_1.Injectable)(),
66
+ tslib_1.__metadata("design:paramtypes", [services_1.ApiKeyService,
67
+ helper_1.DateService, Object])
68
+ ], ApiKeyXApiKeyStrategy);
69
+ //# sourceMappingURL=api-key.x-api-key.strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.x-api-key.strategy.js","sourceRoot":"","sources":["../../../../../../packages/api-key/src/guards/x-api-key/api-key.x-api-key.strategy.ts"],"names":[],"mappings":"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"}
package/src/index.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export * from './constants';
2
+ export * from './controllers';
3
+ export * from './decorators';
4
+ export * from './docs';
5
+ export * from './dtos';
6
+ export * from './guards';
7
+ export * from './interfaces';
8
+ export * from './repository';
9
+ export * from './serializations';
10
+ export * from './services';
11
+ export * from './tasks';
12
+ export * from './api-key.module';
package/src/index.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./constants"), exports);
5
+ tslib_1.__exportStar(require("./controllers"), exports);
6
+ tslib_1.__exportStar(require("./decorators"), exports);
7
+ tslib_1.__exportStar(require("./docs"), exports);
8
+ tslib_1.__exportStar(require("./dtos"), exports);
9
+ tslib_1.__exportStar(require("./guards"), exports);
10
+ tslib_1.__exportStar(require("./interfaces"), exports);
11
+ tslib_1.__exportStar(require("./repository"), exports);
12
+ tslib_1.__exportStar(require("./serializations"), exports);
13
+ tslib_1.__exportStar(require("./services"), exports);
14
+ tslib_1.__exportStar(require("./tasks"), exports);
15
+ tslib_1.__exportStar(require("./api-key.module"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/api-key/src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,wDAA8B;AAC9B,uDAA6B;AAC7B,iDAAuB;AACvB,iDAAuB;AACvB,mDAAyB;AACzB,uDAA6B;AAC7B,uDAA6B;AAC7B,2DAAiC;AACjC,qDAA2B;AAC3B,kDAAwB;AACxB,2DAAiC"}
@@ -0,0 +1,10 @@
1
+ import { ApiKeyDoc } from '../repository';
2
+ export interface IApiKeyPayload {
3
+ _id: string;
4
+ key: string;
5
+ name: string;
6
+ }
7
+ export interface IApiKeyCreated {
8
+ secret: string;
9
+ doc: ApiKeyDoc;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=api-key.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.interface.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/interfaces/api-key.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './api-key.interface';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./api-key.interface"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC"}
@@ -0,0 +1,2 @@
1
+ export declare class ApiKeyRepositoryModule {
2
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiKeyRepositoryModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const mongoose_1 = require("@nestjs/mongoose");
7
+ const api_key_entity_1 = require("./entities/api-key.entity");
8
+ const api_key_repository_1 = require("./repositories/api-key.repository");
9
+ let ApiKeyRepositoryModule = class ApiKeyRepositoryModule {
10
+ };
11
+ exports.ApiKeyRepositoryModule = ApiKeyRepositoryModule;
12
+ exports.ApiKeyRepositoryModule = ApiKeyRepositoryModule = tslib_1.__decorate([
13
+ (0, common_1.Module)({
14
+ providers: [api_key_repository_1.ApiKeyRepository],
15
+ exports: [api_key_repository_1.ApiKeyRepository],
16
+ controllers: [],
17
+ imports: [
18
+ mongoose_1.MongooseModule.forFeature([
19
+ {
20
+ name: api_key_entity_1.ApiKeyEntity.name,
21
+ schema: api_key_entity_1.ApiKeySchema,
22
+ },
23
+ ]),
24
+ ],
25
+ })
26
+ ], ApiKeyRepositoryModule);
27
+ //# sourceMappingURL=api-key.repository.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key.repository.module.js","sourceRoot":"","sources":["../../../../../packages/api-key/src/repository/api-key.repository.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,+CAAkD;AAClD,8DAAuE;AACvE,0EAAqE;AAe9D,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,wDAAsB;iCAAtB,sBAAsB;IAblC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,qCAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,qCAAgB,CAAC;QAC3B,WAAW,EAAE,EAAE;QACf,OAAO,EAAE;YACP,yBAAc,CAAC,UAAU,CAAC;gBACxB;oBACE,IAAI,EAAE,6BAAY,CAAC,IAAI;oBACvB,MAAM,EAAE,6BAAY;iBACrB;aACF,CAAC;SACH;KACF,CAAC;GACW,sBAAsB,CAAG"}
@@ -0,0 +1,21 @@
1
+ import { ENUM_AUTH_ACCESS_FOR } from '@tc-libs/authentication';
2
+ import { DatabaseMongoEntityAbstract } from '@tc-libs/database';
3
+ import { Document } from 'mongoose';
4
+ export declare const ApiKeyDatabaseName = "apikeys";
5
+ export declare class ApiKeyEntity extends DatabaseMongoEntityAbstract {
6
+ user: string;
7
+ accessFor: ENUM_AUTH_ACCESS_FOR;
8
+ name: string;
9
+ description?: string;
10
+ key: string;
11
+ hash: string;
12
+ active: boolean;
13
+ startDate?: Date;
14
+ endDate?: Date;
15
+ }
16
+ export declare const ApiKeySchema: import("mongoose").Schema<ApiKeyEntity, import("mongoose").Model<ApiKeyEntity, any, any, any, Document<unknown, any, ApiKeyEntity> & ApiKeyEntity & Required<{
17
+ _id: import("mongoose").Types.ObjectId;
18
+ }>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, ApiKeyEntity, Document<unknown, {}, ApiKeyEntity> & ApiKeyEntity & Required<{
19
+ _id: import("mongoose").Types.ObjectId;
20
+ }>>;
21
+ export type ApiKeyDoc = ApiKeyEntity & Document;