@skyapp-labs/blueprint-backend-core 1.6.0 → 1.7.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 (75) hide show
  1. package/CHANGELOG.md +16 -10
  2. package/dist/common/decorators/otp-length-aware.decorator.d.ts +3 -0
  3. package/dist/common/decorators/otp-length-aware.decorator.d.ts.map +1 -0
  4. package/dist/common/decorators/otp-length-aware.decorator.js +8 -0
  5. package/dist/common/decorators/otp-length-aware.decorator.js.map +1 -0
  6. package/dist/common/decorators/pin-length-aware.decorator.d.ts +3 -0
  7. package/dist/common/decorators/pin-length-aware.decorator.d.ts.map +1 -0
  8. package/dist/common/decorators/pin-length-aware.decorator.js +8 -0
  9. package/dist/common/decorators/pin-length-aware.decorator.js.map +1 -0
  10. package/dist/common/pipes/config-aware-validation.pipe.d.ts.map +1 -1
  11. package/dist/common/pipes/config-aware-validation.pipe.js +13 -4
  12. package/dist/common/pipes/config-aware-validation.pipe.js.map +1 -1
  13. package/dist/common/validators/is-configured-otp-length.validator.d.ts +9 -0
  14. package/dist/common/validators/is-configured-otp-length.validator.d.ts.map +1 -0
  15. package/dist/common/validators/is-configured-otp-length.validator.js +40 -0
  16. package/dist/common/validators/is-configured-otp-length.validator.js.map +1 -0
  17. package/dist/common/validators/is-configured-pin-length.validator.d.ts +7 -0
  18. package/dist/common/validators/is-configured-pin-length.validator.d.ts.map +1 -0
  19. package/dist/common/validators/is-configured-pin-length.validator.js +43 -0
  20. package/dist/common/validators/is-configured-pin-length.validator.js.map +1 -0
  21. package/dist/database/seeds/settings.seed.d.ts.map +1 -1
  22. package/dist/database/seeds/settings.seed.js +16 -0
  23. package/dist/database/seeds/settings.seed.js.map +1 -1
  24. package/dist/modules/auth/controllers/pin.controller.d.ts +1 -0
  25. package/dist/modules/auth/controllers/pin.controller.d.ts.map +1 -1
  26. package/dist/modules/auth/controllers/pin.controller.js +35 -0
  27. package/dist/modules/auth/controllers/pin.controller.js.map +1 -1
  28. package/dist/modules/auth/dto/login-phone.dto.d.ts +2 -1
  29. package/dist/modules/auth/dto/login-phone.dto.d.ts.map +1 -1
  30. package/dist/modules/auth/dto/login-phone.dto.js +9 -3
  31. package/dist/modules/auth/dto/login-phone.dto.js.map +1 -1
  32. package/dist/modules/auth/dto/otp.dto.d.ts.map +1 -1
  33. package/dist/modules/auth/dto/otp.dto.js +6 -2
  34. package/dist/modules/auth/dto/otp.dto.js.map +1 -1
  35. package/dist/modules/auth/dto/pin.dto.d.ts +7 -4
  36. package/dist/modules/auth/dto/pin.dto.d.ts.map +1 -1
  37. package/dist/modules/auth/dto/pin.dto.js +45 -20
  38. package/dist/modules/auth/dto/pin.dto.js.map +1 -1
  39. package/dist/modules/auth/dto/register-phone.dto.d.ts +2 -1
  40. package/dist/modules/auth/dto/register-phone.dto.d.ts.map +1 -1
  41. package/dist/modules/auth/dto/register-phone.dto.js +9 -5
  42. package/dist/modules/auth/dto/register-phone.dto.js.map +1 -1
  43. package/dist/modules/auth/services/pin-auth.service.d.ts +2 -0
  44. package/dist/modules/auth/services/pin-auth.service.d.ts.map +1 -1
  45. package/dist/modules/auth/services/pin-auth.service.js +27 -0
  46. package/dist/modules/auth/services/pin-auth.service.js.map +1 -1
  47. package/dist/modules/otp/constants/otp.constants.d.ts +4 -1
  48. package/dist/modules/otp/constants/otp.constants.d.ts.map +1 -1
  49. package/dist/modules/otp/constants/otp.constants.js +14 -2
  50. package/dist/modules/otp/constants/otp.constants.js.map +1 -1
  51. package/dist/modules/otp/dto/verify-email.dto.d.ts.map +1 -1
  52. package/dist/modules/otp/dto/verify-email.dto.js +2 -1
  53. package/dist/modules/otp/dto/verify-email.dto.js.map +1 -1
  54. package/dist/modules/otp/dto/verify-otp.dto.d.ts.map +1 -1
  55. package/dist/modules/otp/dto/verify-otp.dto.js +2 -1
  56. package/dist/modules/otp/dto/verify-otp.dto.js.map +1 -1
  57. package/dist/modules/otp/services/otp.session.store.d.ts.map +1 -1
  58. package/dist/modules/otp/services/otp.session.store.js +5 -1
  59. package/dist/modules/otp/services/otp.session.store.js.map +1 -1
  60. package/dist/modules/otp/utils/otp.utils.d.ts.map +1 -1
  61. package/dist/modules/otp/utils/otp.utils.js +4 -2
  62. package/dist/modules/otp/utils/otp.utils.js.map +1 -1
  63. package/dist/modules/settings/constants/settings.defaults.d.ts +2 -0
  64. package/dist/modules/settings/constants/settings.defaults.d.ts.map +1 -1
  65. package/dist/modules/settings/constants/settings.defaults.js +2 -0
  66. package/dist/modules/settings/constants/settings.defaults.js.map +1 -1
  67. package/dist/modules/settings/constants/settings.keys.d.ts +2 -0
  68. package/dist/modules/settings/constants/settings.keys.d.ts.map +1 -1
  69. package/dist/modules/settings/constants/settings.keys.js +2 -0
  70. package/dist/modules/settings/constants/settings.keys.js.map +1 -1
  71. package/dist/modules/settings/controllers/settings.controller.d.ts.map +1 -1
  72. package/dist/modules/settings/controllers/settings.controller.js +8 -0
  73. package/dist/modules/settings/controllers/settings.controller.js.map +1 -1
  74. package/dist/tsconfig.tsbuildinfo +1 -1
  75. package/package.json +1 -1
@@ -9,13 +9,20 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PinStatusDto = exports.RemovePinDto = exports.VerifyPinDto = exports.ChangePinDto = exports.SetPinDto = void 0;
12
+ exports.PinStatusDto = exports.RemovePinDto = exports.VerifyPinDto = exports.ChangePinDto = exports.SetPinDto = exports.PinLengthAwareDto = void 0;
13
13
  const swagger_1 = require("@nestjs/swagger");
14
14
  const class_validator_1 = require("class-validator");
15
- const PIN_REGEX = /^\d{4,8}$/;
16
- const PIN_DESCRIPTION = 'Numeric PIN (4–8 digits)';
17
- class SetPinDto {
15
+ const pin_length_aware_decorator_1 = require("../../../common/decorators/pin-length-aware.decorator");
16
+ const is_configured_pin_length_validator_1 = require("../../../common/validators/is-configured-pin-length.validator");
17
+ class PinLengthAwareDto {
18
18
  }
19
+ exports.PinLengthAwareDto = PinLengthAwareDto;
20
+ __decorate([
21
+ (0, class_validator_1.IsOptional)(),
22
+ __metadata("design:type", Number)
23
+ ], PinLengthAwareDto.prototype, "_pinLength", void 0);
24
+ let SetPinDto = class SetPinDto extends PinLengthAwareDto {
25
+ };
19
26
  exports.SetPinDto = SetPinDto;
20
27
  __decorate([
21
28
  (0, swagger_1.ApiProperty)({
@@ -27,13 +34,19 @@ __decorate([
27
34
  __metadata("design:type", String)
28
35
  ], SetPinDto.prototype, "type", void 0);
29
36
  __decorate([
30
- (0, swagger_1.ApiProperty)({ description: PIN_DESCRIPTION, example: '1234' }),
37
+ (0, swagger_1.ApiProperty)({
38
+ description: 'Numeric PIN (length configured via pin.length setting)',
39
+ example: '123456',
40
+ }),
31
41
  (0, class_validator_1.IsString)(),
32
- (0, class_validator_1.Matches)(PIN_REGEX, { message: PIN_DESCRIPTION }),
42
+ (0, is_configured_pin_length_validator_1.IsConfiguredPinLength)(),
33
43
  __metadata("design:type", String)
34
44
  ], SetPinDto.prototype, "pin", void 0);
35
- class ChangePinDto {
36
- }
45
+ exports.SetPinDto = SetPinDto = __decorate([
46
+ (0, pin_length_aware_decorator_1.PinLengthAware)()
47
+ ], SetPinDto);
48
+ let ChangePinDto = class ChangePinDto extends PinLengthAwareDto {
49
+ };
37
50
  exports.ChangePinDto = ChangePinDto;
38
51
  __decorate([
39
52
  (0, swagger_1.ApiProperty)({
@@ -45,19 +58,22 @@ __decorate([
45
58
  __metadata("design:type", String)
46
59
  ], ChangePinDto.prototype, "type", void 0);
47
60
  __decorate([
48
- (0, swagger_1.ApiProperty)({ description: 'Current PIN (4–8 digits)', example: '1234' }),
61
+ (0, swagger_1.ApiProperty)({ description: 'Current PIN', example: '123456' }),
49
62
  (0, class_validator_1.IsString)(),
50
- (0, class_validator_1.Matches)(PIN_REGEX, { message: PIN_DESCRIPTION }),
63
+ (0, is_configured_pin_length_validator_1.IsConfiguredPinLength)(),
51
64
  __metadata("design:type", String)
52
65
  ], ChangePinDto.prototype, "currentPin", void 0);
53
66
  __decorate([
54
- (0, swagger_1.ApiProperty)({ description: 'New PIN (4–8 digits)', example: '5678' }),
67
+ (0, swagger_1.ApiProperty)({ description: 'New PIN', example: '654321' }),
55
68
  (0, class_validator_1.IsString)(),
56
- (0, class_validator_1.Matches)(PIN_REGEX, { message: PIN_DESCRIPTION }),
69
+ (0, is_configured_pin_length_validator_1.IsConfiguredPinLength)(),
57
70
  __metadata("design:type", String)
58
71
  ], ChangePinDto.prototype, "newPin", void 0);
59
- class VerifyPinDto {
60
- }
72
+ exports.ChangePinDto = ChangePinDto = __decorate([
73
+ (0, pin_length_aware_decorator_1.PinLengthAware)()
74
+ ], ChangePinDto);
75
+ let VerifyPinDto = class VerifyPinDto extends PinLengthAwareDto {
76
+ };
61
77
  exports.VerifyPinDto = VerifyPinDto;
62
78
  __decorate([
63
79
  (0, swagger_1.ApiProperty)({
@@ -69,13 +85,19 @@ __decorate([
69
85
  __metadata("design:type", String)
70
86
  ], VerifyPinDto.prototype, "type", void 0);
71
87
  __decorate([
72
- (0, swagger_1.ApiProperty)({ description: PIN_DESCRIPTION, example: '1234' }),
88
+ (0, swagger_1.ApiProperty)({
89
+ description: 'Numeric PIN (length configured via pin.length setting)',
90
+ example: '123456',
91
+ }),
73
92
  (0, class_validator_1.IsString)(),
74
- (0, class_validator_1.Matches)(PIN_REGEX, { message: PIN_DESCRIPTION }),
93
+ (0, is_configured_pin_length_validator_1.IsConfiguredPinLength)(),
75
94
  __metadata("design:type", String)
76
95
  ], VerifyPinDto.prototype, "pin", void 0);
77
- class RemovePinDto {
78
- }
96
+ exports.VerifyPinDto = VerifyPinDto = __decorate([
97
+ (0, pin_length_aware_decorator_1.PinLengthAware)()
98
+ ], VerifyPinDto);
99
+ let RemovePinDto = class RemovePinDto extends PinLengthAwareDto {
100
+ };
79
101
  exports.RemovePinDto = RemovePinDto;
80
102
  __decorate([
81
103
  (0, swagger_1.ApiProperty)({
@@ -87,11 +109,14 @@ __decorate([
87
109
  __metadata("design:type", String)
88
110
  ], RemovePinDto.prototype, "type", void 0);
89
111
  __decorate([
90
- (0, swagger_1.ApiProperty)({ description: 'Current PIN — required to confirm removal', example: '1234' }),
112
+ (0, swagger_1.ApiProperty)({ description: 'Current PIN — required to confirm removal', example: '123456' }),
91
113
  (0, class_validator_1.IsString)(),
92
- (0, class_validator_1.Matches)(PIN_REGEX, { message: PIN_DESCRIPTION }),
114
+ (0, is_configured_pin_length_validator_1.IsConfiguredPinLength)(),
93
115
  __metadata("design:type", String)
94
116
  ], RemovePinDto.prototype, "currentPin", void 0);
117
+ exports.RemovePinDto = RemovePinDto = __decorate([
118
+ (0, pin_length_aware_decorator_1.PinLengthAware)()
119
+ ], RemovePinDto);
95
120
  class PinStatusDto {
96
121
  }
97
122
  exports.PinStatusDto = PinStatusDto;
@@ -1 +1 @@
1
- {"version":3,"file":"pin.dto.js","sourceRoot":"","sources":["../../../../src/modules/auth/dto/pin.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pin.dto.js","sourceRoot":"","sources":["../../../../src/modules/auth/dto/pin.dto.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { CreateUserProfileDto } from '../../profile/dto/create-user-profile.dto';
2
- export declare class RegisterPhoneDto {
2
+ import { PinLengthAwareDto } from './pin.dto';
3
+ export declare class RegisterPhoneDto extends PinLengthAwareDto {
3
4
  verificationToken: string;
4
5
  pin?: string;
5
6
  password?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"register-phone.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/dto/register-phone.dto.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,qBAAa,gBAAgB;IAE5B,iBAAiB,EAAG,MAAM,CAAC;IAM3B,GAAG,CAAC,EAAE,MAAM,CAAC;IAKb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAC/B"}
1
+ {"version":3,"file":"register-phone.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/dto/register-phone.dto.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAGjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,qBACa,gBAAiB,SAAQ,iBAAiB;IAEtD,iBAAiB,EAAG,MAAM,CAAC;IAI3B,GAAG,CAAC,EAAE,MAAM,CAAC;IAKb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAC/B"}
@@ -13,8 +13,11 @@ exports.RegisterPhoneDto = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const create_user_profile_dto_1 = require("../../profile/dto/create-user-profile.dto");
16
- class RegisterPhoneDto {
17
- }
16
+ const pin_length_aware_decorator_1 = require("../../../common/decorators/pin-length-aware.decorator");
17
+ const is_configured_pin_length_validator_1 = require("../../../common/validators/is-configured-pin-length.validator");
18
+ const pin_dto_1 = require("./pin.dto");
19
+ let RegisterPhoneDto = class RegisterPhoneDto extends pin_dto_1.PinLengthAwareDto {
20
+ };
18
21
  exports.RegisterPhoneDto = RegisterPhoneDto;
19
22
  __decorate([
20
23
  (0, class_validator_1.IsString)(),
@@ -22,9 +25,7 @@ __decorate([
22
25
  ], RegisterPhoneDto.prototype, "verificationToken", void 0);
23
26
  __decorate([
24
27
  (0, class_validator_1.IsOptional)(),
25
- (0, class_validator_1.Matches)(/^\d{4,8}$/, {
26
- message: 'PIN must be between 4 and 8 digits',
27
- }),
28
+ (0, is_configured_pin_length_validator_1.IsConfiguredPinLength)(),
28
29
  __metadata("design:type", String)
29
30
  ], RegisterPhoneDto.prototype, "pin", void 0);
30
31
  __decorate([
@@ -39,4 +40,7 @@ __decorate([
39
40
  (0, class_transformer_1.Type)(() => create_user_profile_dto_1.CreateUserProfileDto),
40
41
  __metadata("design:type", create_user_profile_dto_1.CreateUserProfileDto)
41
42
  ], RegisterPhoneDto.prototype, "profile", void 0);
43
+ exports.RegisterPhoneDto = RegisterPhoneDto = __decorate([
44
+ (0, pin_length_aware_decorator_1.PinLengthAware)()
45
+ ], RegisterPhoneDto);
42
46
  //# sourceMappingURL=register-phone.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-phone.dto.js","sourceRoot":"","sources":["../../../../src/modules/auth/dto/register-phone.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAA2F;AAE3F,yDAAyC;AAEzC,uFAAiF;AAEjF,MAAa,gBAAgB;CAmB5B;AAnBD,4CAmBC;AAjBA;IADC,IAAA,0BAAQ,GAAE;;2DACgB;AAM3B;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,EAAC,WAAW,EAAE;QACrB,OAAO,EAAE,oCAAoC;KAC7C,CAAC;;6CACW;AAKb;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;;kDACK;AAKlB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,8CAAoB,CAAC;8BACvB,8CAAoB;iDAAC"}
1
+ {"version":3,"file":"register-phone.dto.js","sourceRoot":"","sources":["../../../../src/modules/auth/dto/register-phone.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAAkF;AAElF,yDAAyC;AAEzC,uFAAiF;AACjF,sGAAuF;AACvF,sHAAsG;AACtG,uCAA8C;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,2BAAiB;CAiBtD,CAAA;AAjBY,4CAAgB;AAE5B;IADC,IAAA,0BAAQ,GAAE;;2DACgB;AAI3B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0DAAqB,GAAE;;6CACX;AAKb;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,CAAC,CAAC;;kDACK;AAKlB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,8CAAoB,CAAC;8BACvB,8CAAoB;iDAAC;2BAhBnB,gBAAgB;IAD5B,IAAA,2CAAc,GAAE;GACJ,gBAAgB,CAiB5B"}
@@ -19,10 +19,12 @@ export declare class PinAuthService {
19
19
  removePin(userId: string, dto: RemovePinDto): Promise<{
20
20
  message: string;
21
21
  }>;
22
+ getPinStatusForType(userId: string, type: string): Promise<PinStatusDto>;
22
23
  getPinStatus(userId: string): Promise<PinStatusDto[]>;
23
24
  private loadPinRecord;
24
25
  private assertPinCorrect;
25
26
  private getAllowedTypes;
26
27
  private assertAllowedType;
28
+ private assertPinLength;
27
29
  }
28
30
  //# sourceMappingURL=pin-auth.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pin-auth.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/pin-auth.service.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnG,qBACa,cAAc;IAKzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IALjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAIxC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAC5B,eAAe,EAAE,eAAe;IAU5C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BpE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAuB1E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAkB1E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAkB1E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YA4B7C,aAAa;YAmBb,gBAAgB;IAwD9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;CAQzB"}
1
+ {"version":3,"file":"pin-auth.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/services/pin-auth.service.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnG,qBACa,cAAc;IAKzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IALjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAIxC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAC5B,eAAe,EAAE,eAAe;IAU5C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA8BpE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAyB1E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB1E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAkB1E,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAwBxE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YA4B7C,aAAa;YAmBb,gBAAgB;IAwD9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;CAMvB"}
@@ -62,6 +62,7 @@ let PinAuthService = PinAuthService_1 = class PinAuthService {
62
62
  }
63
63
  async setPin(userId, dto) {
64
64
  this.assertAllowedType(dto.type);
65
+ this.assertPinLength(dto.pin);
65
66
  const existing = await this.pinRepo.findOne({ where: { userId, type: dto.type } });
66
67
  if (existing) {
67
68
  throw new common_1.ConflictException(`A ${dto.type} PIN is already set. Use the change-pin endpoint to update it.`);
@@ -78,6 +79,8 @@ let PinAuthService = PinAuthService_1 = class PinAuthService {
78
79
  }
79
80
  async changePin(userId, dto) {
80
81
  this.assertAllowedType(dto.type);
82
+ this.assertPinLength(dto.currentPin);
83
+ this.assertPinLength(dto.newPin);
81
84
  const record = await this.loadPinRecord(userId, dto.type);
82
85
  await this.assertPinCorrect(record, dto.currentPin);
83
86
  record.pinHash = await argon2.hash(dto.newPin);
@@ -90,6 +93,7 @@ let PinAuthService = PinAuthService_1 = class PinAuthService {
90
93
  }
91
94
  async verifyPin(userId, dto) {
92
95
  this.assertAllowedType(dto.type);
96
+ this.assertPinLength(dto.pin);
93
97
  const record = await this.loadPinRecord(userId, dto.type);
94
98
  await this.assertPinCorrect(record, dto.pin);
95
99
  record.lastVerifiedAt = new Date();
@@ -99,12 +103,29 @@ let PinAuthService = PinAuthService_1 = class PinAuthService {
99
103
  }
100
104
  async removePin(userId, dto) {
101
105
  this.assertAllowedType(dto.type);
106
+ this.assertPinLength(dto.currentPin);
102
107
  const record = await this.loadPinRecord(userId, dto.type);
103
108
  await this.assertPinCorrect(record, dto.currentPin);
104
109
  await this.pinRepo.remove(record);
105
110
  this.logger.log({ event: 'PIN_REMOVED', userId, type: dto.type });
106
111
  return { message: `${dto.type} PIN removed successfully.` };
107
112
  }
113
+ async getPinStatusForType(userId, type) {
114
+ this.assertAllowedType(type);
115
+ const record = await this.pinRepo.findOne({ where: { userId, type } });
116
+ const now = new Date();
117
+ if (!record) {
118
+ return { type, isSet: false, isLocked: false };
119
+ }
120
+ return {
121
+ type,
122
+ isSet: true,
123
+ pinUpdatedAt: record.pinUpdatedAt,
124
+ lastVerifiedAt: record.lastVerifiedAt,
125
+ isLocked: !!(record.lockedUntil && record.lockedUntil > now),
126
+ lockedUntil: record.lockedUntil,
127
+ };
128
+ }
108
129
  async getPinStatus(userId) {
109
130
  const allowedTypes = this.getAllowedTypes();
110
131
  const records = await this.pinRepo.find({ where: { userId } });
@@ -182,6 +203,12 @@ let PinAuthService = PinAuthService_1 = class PinAuthService {
182
203
  throw new common_1.BadRequestException(`Unknown PIN type "${type}". Allowed types: ${allowed.join(', ')}.`);
183
204
  }
184
205
  }
206
+ assertPinLength(pin) {
207
+ const length = this.settingsService.get(settings_keys_1.SETTING_KEYS.PIN_LENGTH);
208
+ if (!new RegExp(`^\\d{${length}}$`).test(pin)) {
209
+ throw new common_1.BadRequestException(`PIN must be exactly ${length} digits.`);
210
+ }
211
+ }
185
212
  };
186
213
  exports.PinAuthService = PinAuthService;
187
214
  exports.PinAuthService = PinAuthService = PinAuthService_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"pin-auth.service.js","sourceRoot":"","sources":["../../../../src/modules/auth/services/pin-auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pin-auth.service.js","sourceRoot":"","sources":["../../../../src/modules/auth/services/pin-auth.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- export declare const OTP_CODE_LENGTH = 6;
1
+ export declare const OTP_MIN_LENGTH = 4;
2
+ export declare const OTP_MAX_LENGTH = 6;
3
+ export declare function clampOtpCodeLength(length: number): number;
4
+ export declare function isValidOtpCode(value: string): boolean;
2
5
  export declare const OTP_CORRELATION_TTL_SECONDS = 120;
3
6
  export declare function renderOtpTemplate(template: string, code: string): string;
4
7
  //# sourceMappingURL=otp.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"otp.constants.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/constants/otp.constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,IAAI,CAAC;AAOjC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAQ/C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE"}
1
+ {"version":3,"file":"otp.constants.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/constants/otp.constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,IAAI,CAAC;AAGhC,eAAO,MAAM,cAAc,IAAI,CAAC;AAGhC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzD;AAGD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAOD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAQ/C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE"}
@@ -1,8 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OTP_CORRELATION_TTL_SECONDS = exports.OTP_CODE_LENGTH = void 0;
3
+ exports.OTP_CORRELATION_TTL_SECONDS = exports.OTP_MAX_LENGTH = exports.OTP_MIN_LENGTH = void 0;
4
+ exports.clampOtpCodeLength = clampOtpCodeLength;
5
+ exports.isValidOtpCode = isValidOtpCode;
4
6
  exports.renderOtpTemplate = renderOtpTemplate;
5
- exports.OTP_CODE_LENGTH = 6;
7
+ exports.OTP_MIN_LENGTH = 4;
8
+ exports.OTP_MAX_LENGTH = 6;
9
+ function clampOtpCodeLength(length) {
10
+ const n = Math.trunc(Number(length));
11
+ if (!Number.isFinite(n) || n < exports.OTP_MIN_LENGTH)
12
+ return exports.OTP_MIN_LENGTH;
13
+ return Math.min(n, exports.OTP_MAX_LENGTH);
14
+ }
15
+ function isValidOtpCode(value) {
16
+ return /^\d+$/.test(value) && value.length >= exports.OTP_MIN_LENGTH && value.length <= exports.OTP_MAX_LENGTH;
17
+ }
6
18
  exports.OTP_CORRELATION_TTL_SECONDS = 120;
7
19
  function renderOtpTemplate(template, code) {
8
20
  return template.replace(/\{code\}/g, code);
@@ -1 +1 @@
1
- {"version":3,"file":"otp.constants.js","sourceRoot":"","sources":["../../../../src/modules/otp/constants/otp.constants.ts"],"names":[],"mappings":";;;AAqBA,8CAEC;AAjBY,QAAA,eAAe,GAAG,CAAC,CAAC;AAOpB,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAQ/C,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,IAAY;IAC/D,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"otp.constants.js","sourceRoot":"","sources":["../../../../src/modules/otp/constants/otp.constants.ts"],"names":[],"mappings":";;;AAWA,gDAIC;AAGD,wCAEC;AAeD,8CAEC;AAhCY,QAAA,cAAc,GAAG,CAAC,CAAC;AAGnB,QAAA,cAAc,GAAG,CAAC,CAAC;AAGhC,SAAgB,kBAAkB,CAAC,MAAc;IAChD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,sBAAc;QAAE,OAAO,sBAAc,CAAC;IACrE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAc,CAAC,CAAC;AACpC,CAAC;AAGD,SAAgB,cAAc,CAAC,KAAa;IAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,sBAAc,IAAI,KAAK,CAAC,MAAM,IAAI,sBAAc,CAAC;AAChG,CAAC;AAOY,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAQ/C,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,IAAY;IAC/D,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify-email.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-email.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IAE1B,KAAK,EAAG,MAAM,CAAC;IAIf,GAAG,EAAG,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"verify-email.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-email.dto.ts"],"names":[],"mappings":"AAKA,qBAAa,cAAc;IAE1B,KAAK,EAAG,MAAM,CAAC;IAIf,GAAG,EAAG,MAAM,CAAC;CACb"}
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.VerifyEmailDto = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
+ const is_configured_otp_length_validator_1 = require("../../../common/validators/is-configured-otp-length.validator");
14
15
  class VerifyEmailDto {
15
16
  }
16
17
  exports.VerifyEmailDto = VerifyEmailDto;
@@ -20,7 +21,7 @@ __decorate([
20
21
  ], VerifyEmailDto.prototype, "email", void 0);
21
22
  __decorate([
22
23
  (0, class_validator_1.IsString)(),
23
- (0, class_validator_1.Length)(4, 8),
24
+ (0, is_configured_otp_length_validator_1.IsConfiguredOtpLength)(),
24
25
  __metadata("design:type", String)
25
26
  ], VerifyEmailDto.prototype, "otp", void 0);
26
27
  //# sourceMappingURL=verify-email.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-email.dto.js","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-email.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAA4D;AAE5D,MAAa,cAAc;CAO1B;AAPD,wCAOC;AALA;IADC,IAAA,yBAAO,GAAE;;6CACK;AAIf;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,CAAC,CAAC;;2CACA"}
1
+ {"version":3,"file":"verify-email.dto.js","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-email.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAAoD;AACpD,sHAAsG;AAEtG,MAAa,cAAc;CAO1B;AAPD,wCAOC;AALA;IADC,IAAA,yBAAO,GAAE;;6CACK;AAIf;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,0DAAqB,GAAE;;2CACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify-otp.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-otp.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,YAAY;IAGxB,WAAW,EAAG,MAAM,CAAC;IAIrB,GAAG,EAAG,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"verify-otp.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-otp.dto.ts"],"names":[],"mappings":"AAKA,qBAAa,YAAY;IAGxB,WAAW,EAAG,MAAM,CAAC;IAIrB,GAAG,EAAG,MAAM,CAAC;CACb"}
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.VerifyOtpDto = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
+ const is_configured_otp_length_validator_1 = require("../../../common/validators/is-configured-otp-length.validator");
14
15
  class VerifyOtpDto {
15
16
  }
16
17
  exports.VerifyOtpDto = VerifyOtpDto;
@@ -21,7 +22,7 @@ __decorate([
21
22
  ], VerifyOtpDto.prototype, "phoneNumber", void 0);
22
23
  __decorate([
23
24
  (0, class_validator_1.IsString)(),
24
- (0, class_validator_1.Length)(4, 8),
25
+ (0, is_configured_otp_length_validator_1.IsConfiguredOtpLength)(),
25
26
  __metadata("design:type", String)
26
27
  ], VerifyOtpDto.prototype, "otp", void 0);
27
28
  //# sourceMappingURL=verify-otp.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-otp.dto.js","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-otp.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAA4D;AAE5D,MAAa,YAAY;CAQxB;AARD,oCAQC;AALA;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,yBAAO,EAAC,oBAAoB,CAAC;;iDACT;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,CAAC,EAAE,CAAC,CAAC;;yCACA"}
1
+ {"version":3,"file":"verify-otp.dto.js","sourceRoot":"","sources":["../../../../src/modules/otp/dto/verify-otp.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAAoD;AACpD,sHAAsG;AAEtG,MAAa,YAAY;CAQxB;AARD,oCAQC;AALA;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,yBAAO,EAAC,oBAAoB,CAAC;;iDACT;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,0DAAqB,GAAE;;yCACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"otp.session.store.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/services/otp.session.store.ts"],"names":[],"mappings":"AAUA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAgC,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAG3E,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;CACzB;AAED,qBACa,eAAe;IAM1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAGtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IATjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAKzC,KAAK,EAAE,OAAO,GAAG,IAAI,EAGrB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,eAAe,EAAE,eAAe;IAGlD,SAAS,IAAI,OAAO;IAgBd,aAAa,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,KAAK,GAAG,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC;IAiGvB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB1D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,0BAA0B,CAC/B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,gBAAgB,CAAC;IA+D5B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;IAItB,OAAO,KAAK,MAAM,GAEjB;CACD"}
1
+ {"version":3,"file":"otp.session.store.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/services/otp.session.store.ts"],"names":[],"mappings":"AAUA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAgC,MAAM,oBAAoB,CAAC;AAQlF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAG3E,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;CACzB;AAED,qBACa,eAAe;IAM1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAGtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe;IATjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAKzC,KAAK,EAAE,OAAO,GAAG,IAAI,EAGrB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,eAAe,EAAE,eAAe;IAGlD,SAAS,IAAI,OAAO;IAgBd,aAAa,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,KAAK,GAAG,OAAO,EACxB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC;IAyGvB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB1D,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,0BAA0B,CAC/B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,gBAAgB,CAAC;IA+D5B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;IAItB,OAAO,KAAK,MAAM,GAEjB;CACD"}
@@ -69,7 +69,11 @@ let OtpSessionStore = OtpSessionStore_1 = class OtpSessionStore {
69
69
  async createSession(identifier, channel, fixedCode) {
70
70
  const ttl = this.settingsService.get(settings_keys_1.SETTING_KEYS.OTP_TTL_SECONDS);
71
71
  const resendIn = this.settingsService.get(settings_keys_1.SETTING_KEYS.OTP_RESEND_COOLDOWN_SECONDS);
72
- const code = fixedCode ?? (0, otp_utils_1.generateCode)(otp_constants_1.OTP_CODE_LENGTH);
72
+ const codeLength = (0, otp_constants_1.clampOtpCodeLength)(this.settingsService.get(settings_keys_1.SETTING_KEYS.OTP_CODE_LENGTH));
73
+ const code = fixedCode ?? (0, otp_utils_1.generateCode)(codeLength);
74
+ if (!(0, otp_constants_1.isValidOtpCode)(code)) {
75
+ throw new common_1.BadRequestException(`OTP code must be ${otp_constants_1.OTP_MIN_LENGTH}–${otp_constants_1.OTP_MAX_LENGTH} digits.`);
76
+ }
73
77
  const sessionToken = (0, crypto_1.randomUUID)();
74
78
  const otpCodeHash = await argon2.hash(code);
75
79
  const now = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"otp.session.store.js","sourceRoot":"","sources":["../../../../src/modules/otp/services/otp.session.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"otp.session.store.js","sourceRoot":"","sources":["../../../../src/modules/otp/services/otp.session.store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"otp.utils.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/utils/otp.utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,QAA2E,CAAC;AAEhG,MAAM,WAAW,cAAc;IAE9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB;AAOD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGtD;AAOD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAgBnF;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBlD;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD"}
1
+ {"version":3,"file":"otp.utils.d.ts","sourceRoot":"","sources":["../../../../src/modules/otp/utils/otp.utils.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,OAAO,QAA2E,CAAC;AAEhG,MAAM,WAAW,cAAc;IAE9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB;AAOD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAItD;AAOD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAgBnF;AAOD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBlD;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD"}
@@ -8,10 +8,12 @@ exports.normalizeEmail = normalizeEmail;
8
8
  const common_1 = require("@nestjs/common");
9
9
  const crypto_1 = require("crypto");
10
10
  const libphonenumber_js_1 = require("libphonenumber-js");
11
+ const otp_constants_1 = require("../constants/otp.constants");
11
12
  exports.UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
12
13
  function generateCode(otpLength) {
13
- const max = Math.min(10 ** otpLength, Number.MAX_SAFE_INTEGER);
14
- return (0, crypto_1.randomInt)(0, max).toString().padStart(otpLength, '0');
14
+ const length = (0, otp_constants_1.clampOtpCodeLength)(otpLength);
15
+ const max = Math.min(10 ** length, Number.MAX_SAFE_INTEGER);
16
+ return (0, crypto_1.randomInt)(0, max).toString().padStart(length, '0');
15
17
  }
16
18
  function maskIdentifier(identifier, channel) {
17
19
  if (channel === 'email') {
@@ -1 +1 @@
1
- {"version":3,"file":"otp.utils.js","sourceRoot":"","sources":["../../../../src/modules/otp/utils/otp.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"otp.utils.js","sourceRoot":"","sources":["../../../../src/modules/otp/utils/otp.utils.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface TestOtpIdentifier {
5
5
  }
6
6
  export declare const SETTING_DEFAULTS: {
7
7
  readonly 'otp.ttl_seconds': 300;
8
+ readonly 'otp.code_length': 6;
8
9
  readonly 'otp.max_attempts': 5;
9
10
  readonly 'otp.resend_cooldown_seconds': 60;
10
11
  readonly 'otp.rate_limit_max': 3;
@@ -61,6 +62,7 @@ export declare const SETTING_DEFAULTS: {
61
62
  readonly 'templates.account_suspended.subject': "Your account has been suspended";
62
63
  readonly 'templates.account_reactivated.subject': "Your account has been reactivated";
63
64
  readonly 'pin.allowed_types': string[];
65
+ readonly 'pin.length': 6;
64
66
  readonly 'pin.max_attempts': 5;
65
67
  readonly 'pin.lockout_duration_seconds': 300;
66
68
  readonly 'firebase.project_id': "";
@@ -1 +1 @@
1
- {"version":3,"file":"settings.defaults.d.ts","sourceRoot":"","sources":["../../../../src/modules/settings/constants/settings.defaults.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACb;AA8BD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;qCAyBE,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAyDN,MAAM,EAAE;;;;;;;CAUR,CAAC"}
1
+ {"version":3,"file":"settings.defaults.d.ts","sourceRoot":"","sources":["../../../../src/modules/settings/constants/settings.defaults.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACb;AA8BD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;qCA0BE,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAyDN,MAAM,EAAE;;;;;;;;CAWR,CAAC"}
@@ -23,6 +23,7 @@ const OTP_EMAIL_HTML = `<!DOCTYPE html>
23
23
  </html>`;
24
24
  exports.SETTING_DEFAULTS = {
25
25
  'otp.ttl_seconds': 300,
26
+ 'otp.code_length': 6,
26
27
  'otp.max_attempts': 5,
27
28
  'otp.resend_cooldown_seconds': 60,
28
29
  'otp.rate_limit_max': 3,
@@ -79,6 +80,7 @@ exports.SETTING_DEFAULTS = {
79
80
  'templates.account_suspended.subject': 'Your account has been suspended',
80
81
  'templates.account_reactivated.subject': 'Your account has been reactivated',
81
82
  'pin.allowed_types': ['authentication'],
83
+ 'pin.length': 6,
82
84
  'pin.max_attempts': 5,
83
85
  'pin.lockout_duration_seconds': 300,
84
86
  'firebase.project_id': '',
@@ -1 +1 @@
1
- {"version":3,"file":"settings.defaults.js","sourceRoot":"","sources":["../../../../src/modules/settings/constants/settings.defaults.ts"],"names":[],"mappings":";;;AA0BA,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;QAmBf,CAAC;AAII,QAAA,gBAAgB,GAAG;IAE/B,iBAAiB,EAAE,GAAG;IACtB,kBAAkB,EAAE,CAAC;IACrB,6BAA6B,EAAE,EAAE;IACjC,oBAAoB,EAAE,CAAC;IACvB,+BAA+B,EAAE,GAAG;IACpC,uBAAuB,EAAE,EAAE;IAC3B,kCAAkC,EAAE,GAAG;IACvC,kBAAkB,EAAE,wEAAwE;IAC5F,mBAAmB,EAAE,wBAAwB;IAC7C,yBAAyB,EAAE,cAAc;IACzC,yBAAyB,EACxB,mGAAmG;IAGpG,yBAAyB,EAAE,CAAC;IAC5B,8BAA8B,EAAE,GAAG;IACnC,0BAA0B,EAAE,KAAK;IACjC,wBAAwB,EAAE,CAAC;IAC3B,mCAAmC,EAAE,IAAI;IAKzC,sBAAsB,EAAE,EAAyB;IAGjD,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE,OAAO;IACtB,wBAAwB,EAAE,MAAM;IAGhC,yBAAyB,EAAE,EAAE;IAC7B,oCAAoC,EAAE,GAAG;IACzC,4BAA4B,EAAE,EAAE;IAChC,gCAAgC,EAAE,GAAG;IAGrC,oBAAoB,EAAE,GAAG;IACzB,mBAAmB,EAAE,GAAG;IACxB,8BAA8B,EAAE,GAAG;IAGnC,qBAAqB,EAAE,QAAQ;IAC/B,wBAAwB,EAAE,EAAE;IAC5B,wBAAwB,EAAE,EAAE;IAC5B,uBAAuB,EAAE,EAAE;IAC3B,oBAAoB,EAAE,EAAE;IACxB,sBAAsB,EAAE,EAAE;IAC1B,qBAAqB,EAAE,EAAE;IACzB,uBAAuB,EAAE,EAAE;IAC3B,sBAAsB,EAAE,EAAE;IAC1B,oBAAoB,EAAE,EAAE;IACxB,wBAAwB,EAAE,EAAE;IAG5B,uBAAuB,EAAE,MAAM;IAC/B,oBAAoB,EAAE,wBAAwB;IAC9C,sBAAsB,EAAE,EAAE;IAC1B,wBAAwB,EAAE,EAAE;IAC5B,uBAAuB,EAAE,EAAE;IAC3B,sBAAsB,EAAE,EAAE;IAC1B,iBAAiB,EAAE,WAAW;IAC9B,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IAGrB,2BAA2B,EAAE,oBAAoB;IACjD,kCAAkC,EAAE,qBAAqB;IACzD,sCAAsC,EAAE,wBAAwB;IAChE,0BAA0B,EAAE,qBAAqB;IACjD,mCAAmC,EAAE,+BAA+B;IACpE,mCAAmC,EAAE,+BAA+B;IACpE,qCAAqC,EAAE,iCAAiC;IACxE,uCAAuC,EAAE,mCAAmC;IAM5E,mBAAmB,EAAE,CAAC,gBAAgB,CAAa;IACnD,kBAAkB,EAAE,CAAC;IACrB,8BAA8B,EAAE,GAAG;IAInC,qBAAqB,EAAE,EAAE;IACzB,uBAAuB,EAAE,EAAE;IAC3B,sBAAsB,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;CACqB,CAAC"}
1
+ {"version":3,"file":"settings.defaults.js","sourceRoot":"","sources":["../../../../src/modules/settings/constants/settings.defaults.ts"],"names":[],"mappings":";;;AA0BA,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;QAmBf,CAAC;AAII,QAAA,gBAAgB,GAAG;IAE/B,iBAAiB,EAAE,GAAG;IACtB,iBAAiB,EAAE,CAAC;IACpB,kBAAkB,EAAE,CAAC;IACrB,6BAA6B,EAAE,EAAE;IACjC,oBAAoB,EAAE,CAAC;IACvB,+BAA+B,EAAE,GAAG;IACpC,uBAAuB,EAAE,EAAE;IAC3B,kCAAkC,EAAE,GAAG;IACvC,kBAAkB,EAAE,wEAAwE;IAC5F,mBAAmB,EAAE,wBAAwB;IAC7C,yBAAyB,EAAE,cAAc;IACzC,yBAAyB,EACxB,mGAAmG;IAGpG,yBAAyB,EAAE,CAAC;IAC5B,8BAA8B,EAAE,GAAG;IACnC,0BAA0B,EAAE,KAAK;IACjC,wBAAwB,EAAE,CAAC;IAC3B,mCAAmC,EAAE,IAAI;IAKzC,sBAAsB,EAAE,EAAyB;IAGjD,eAAe,EAAE,QAAQ;IACzB,aAAa,EAAE,OAAO;IACtB,wBAAwB,EAAE,MAAM;IAGhC,yBAAyB,EAAE,EAAE;IAC7B,oCAAoC,EAAE,GAAG;IACzC,4BAA4B,EAAE,EAAE;IAChC,gCAAgC,EAAE,GAAG;IAGrC,oBAAoB,EAAE,GAAG;IACzB,mBAAmB,EAAE,GAAG;IACxB,8BAA8B,EAAE,GAAG;IAGnC,qBAAqB,EAAE,QAAQ;IAC/B,wBAAwB,EAAE,EAAE;IAC5B,wBAAwB,EAAE,EAAE;IAC5B,uBAAuB,EAAE,EAAE;IAC3B,oBAAoB,EAAE,EAAE;IACxB,sBAAsB,EAAE,EAAE;IAC1B,qBAAqB,EAAE,EAAE;IACzB,uBAAuB,EAAE,EAAE;IAC3B,sBAAsB,EAAE,EAAE;IAC1B,oBAAoB,EAAE,EAAE;IACxB,wBAAwB,EAAE,EAAE;IAG5B,uBAAuB,EAAE,MAAM;IAC/B,oBAAoB,EAAE,wBAAwB;IAC9C,sBAAsB,EAAE,EAAE;IAC1B,wBAAwB,EAAE,EAAE;IAC5B,uBAAuB,EAAE,EAAE;IAC3B,sBAAsB,EAAE,EAAE;IAC1B,iBAAiB,EAAE,WAAW;IAC9B,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IAGrB,2BAA2B,EAAE,oBAAoB;IACjD,kCAAkC,EAAE,qBAAqB;IACzD,sCAAsC,EAAE,wBAAwB;IAChE,0BAA0B,EAAE,qBAAqB;IACjD,mCAAmC,EAAE,+BAA+B;IACpE,mCAAmC,EAAE,+BAA+B;IACpE,qCAAqC,EAAE,iCAAiC;IACxE,uCAAuC,EAAE,mCAAmC;IAM5E,mBAAmB,EAAE,CAAC,gBAAgB,CAAa;IACnD,YAAY,EAAE,CAAC;IACf,kBAAkB,EAAE,CAAC;IACrB,8BAA8B,EAAE,GAAG;IAInC,qBAAqB,EAAE,EAAE;IACzB,uBAAuB,EAAE,EAAE;IAC3B,sBAAsB,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;CACqB,CAAC"}
@@ -10,6 +10,7 @@ export declare const SETTING_KEYS: {
10
10
  readonly OTP_EMAIL_SUBJECT: "otp.email_subject";
11
11
  readonly OTP_EMAIL_HTML_TEMPLATE: "otp.email_html_template";
12
12
  readonly OTP_EMAIL_TEXT_TEMPLATE: "otp.email_text_template";
13
+ readonly OTP_CODE_LENGTH: "otp.code_length";
13
14
  readonly TOKENS_REFRESH_TTL_DAYS: "tokens.refresh_ttl_days";
14
15
  readonly TOKENS_TEMPORARY_TTL_SECONDS: "tokens.temporary_ttl_seconds";
15
16
  readonly TOKENS_ACCESS_EXPIRES_IN: "tokens.access_expires_in";
@@ -64,6 +65,7 @@ export declare const SETTING_KEYS: {
64
65
  readonly TEMPLATES_ACCOUNT_REACTIVATED: "templates.account_reactivated";
65
66
  readonly TEMPLATES_ACCOUNT_REACTIVATED_SUBJECT: "templates.account_reactivated.subject";
66
67
  readonly PIN_ALLOWED_TYPES: "pin.allowed_types";
68
+ readonly PIN_LENGTH: "pin.length";
67
69
  readonly PIN_MAX_ATTEMPTS: "pin.max_attempts";
68
70
  readonly PIN_LOCKOUT_DURATION_SECONDS: "pin.lockout_duration_seconds";
69
71
  readonly FIREBASE_PROJECT_ID: "firebase.project_id";
@@ -1 +1 @@
1
- {"version":3,"file":"settings.keys.d.ts","sourceRoot":"","sources":["../../../../src/modules/settings/constants/settings.keys.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Kf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"settings.keys.d.ts","sourceRoot":"","sources":["../../../../src/modules/settings/constants/settings.keys.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgLf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
@@ -13,6 +13,7 @@ exports.SETTING_KEYS = {
13
13
  OTP_EMAIL_SUBJECT: 'otp.email_subject',
14
14
  OTP_EMAIL_HTML_TEMPLATE: 'otp.email_html_template',
15
15
  OTP_EMAIL_TEXT_TEMPLATE: 'otp.email_text_template',
16
+ OTP_CODE_LENGTH: 'otp.code_length',
16
17
  TOKENS_REFRESH_TTL_DAYS: 'tokens.refresh_ttl_days',
17
18
  TOKENS_TEMPORARY_TTL_SECONDS: 'tokens.temporary_ttl_seconds',
18
19
  TOKENS_ACCESS_EXPIRES_IN: 'tokens.access_expires_in',
@@ -67,6 +68,7 @@ exports.SETTING_KEYS = {
67
68
  TEMPLATES_ACCOUNT_REACTIVATED: 'templates.account_reactivated',
68
69
  TEMPLATES_ACCOUNT_REACTIVATED_SUBJECT: 'templates.account_reactivated.subject',
69
70
  PIN_ALLOWED_TYPES: 'pin.allowed_types',
71
+ PIN_LENGTH: 'pin.length',
70
72
  PIN_MAX_ATTEMPTS: 'pin.max_attempts',
71
73
  PIN_LOCKOUT_DURATION_SECONDS: 'pin.lockout_duration_seconds',
72
74
  FIREBASE_PROJECT_ID: 'firebase.project_id',