@jmlq/auth 0.0.1-alpha.34 → 0.0.1-alpha.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/use-cases/verify-email.use-case.js +5 -1
- package/dist/domain/errors/auth-error-code.d.ts +1 -1
- package/dist/domain/errors/auth-error-code.js +5 -0
- package/dist/domain/errors/auth.errors.d.ts +10 -1
- package/dist/domain/errors/auth.errors.js +19 -1
- package/dist/domain/errors/general.errors.d.ts +4 -0
- package/dist/domain/errors/general.errors.js +10 -0
- package/dist/domain/errors/index.d.ts +1 -0
- package/dist/domain/errors/index.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -5
- package/package.json +1 -1
|
@@ -12,7 +12,11 @@ class VerifyEmailUseCase {
|
|
|
12
12
|
const token = String(request.token ?? "").trim();
|
|
13
13
|
if (!token) {
|
|
14
14
|
// Conservador: si prefieres un error de dominio, puedes crear uno específico.
|
|
15
|
-
|
|
15
|
+
if (!token) {
|
|
16
|
+
throw new errors_1.InvalidInputError("Email verification token is required", {
|
|
17
|
+
field: "token",
|
|
18
|
+
});
|
|
19
|
+
}
|
|
16
20
|
}
|
|
17
21
|
const consumed = await this.emailVerificationToken.consume(token);
|
|
18
22
|
const user = await this.userRepository.findById(new object_values_1.Id(consumed.userId.getValue()));
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
/**
|
|
13
13
|
* ÚNICA fuente de verdad de los códigos.
|
|
14
14
|
*/
|
|
15
|
-
export declare const AUTH_ERROR_CODES: readonly ["TOKEN_INVALID", "TOKEN_EXPIRED", "TOKEN_MALFORMED", "SIGNATURE_INVALID", "AUTHENTICATION_FAILED", "JWT_ERROR", "KEY_MISMATCH", "KEY_NOT_FOUND", "KEY_MISMATCH", "CLAIMS_VALIDATION_ERROR", "JWT_PAYLOAD_INVALID", "TOKEN_NOT_YET_VALID", "JWT_EMPTY", "JWT_MALFORMED", "ALGORITHM_UNSUPPORTED", "KEY_MISMATCH", "KEY_NOT_FOUND", "INVALID_EMAIL", "INVALID_HASHED_PASSWORD", "PASSWORD_POLICY_VIOLATION", "PASSWORD_MISMATCH", "USER_NOT_FOUND", "USER_DISABLED", "EMAIL_ALREADY_IN_USE", "INVALID_PERMISSION", "INVALID_ROLE", "INVALID_ID", "LOGOUT_FAILED", "EMAIL_NOT_VERIFIED", "PASSWORD_RESET_TOKEN_INVALID", "PASSWORD_RESET_TOKEN_EXPIRED", "PASSWORD_RESET_TOKEN_ALREADY_USED"];
|
|
15
|
+
export declare const AUTH_ERROR_CODES: readonly ["TOKEN_INVALID", "TOKEN_EXPIRED", "TOKEN_MALFORMED", "SIGNATURE_INVALID", "AUTHENTICATION_FAILED", "JWT_ERROR", "KEY_MISMATCH", "KEY_NOT_FOUND", "KEY_MISMATCH", "CLAIMS_VALIDATION_ERROR", "JWT_PAYLOAD_INVALID", "TOKEN_NOT_YET_VALID", "JWT_EMPTY", "JWT_MALFORMED", "ALGORITHM_UNSUPPORTED", "KEY_MISMATCH", "KEY_NOT_FOUND", "INVALID_EMAIL", "INVALID_HASHED_PASSWORD", "PASSWORD_POLICY_VIOLATION", "PASSWORD_MISMATCH", "USER_NOT_FOUND", "USER_DISABLED", "EMAIL_ALREADY_IN_USE", "INVALID_PERMISSION", "INVALID_ROLE", "INVALID_ID", "LOGOUT_FAILED", "EMAIL_NOT_VERIFIED", "PASSWORD_RESET_TOKEN_INVALID", "PASSWORD_RESET_TOKEN_EXPIRED", "PASSWORD_RESET_TOKEN_ALREADY_USED", "EMAIL_VERIFICATION_TOKEN_INVALID", "EMAIL_VERIFICATION_TOKEN_EXPIRED", "EMAIL_VERIFICATION_TOKEN_ALREADY_USED", "INVALID_INPUT"];
|
|
16
16
|
export type AuthErrorCode = (typeof AUTH_ERROR_CODES)[number];
|
|
@@ -52,4 +52,9 @@ exports.AUTH_ERROR_CODES = [
|
|
|
52
52
|
"PASSWORD_RESET_TOKEN_INVALID",
|
|
53
53
|
"PASSWORD_RESET_TOKEN_EXPIRED",
|
|
54
54
|
"PASSWORD_RESET_TOKEN_ALREADY_USED",
|
|
55
|
+
"EMAIL_VERIFICATION_TOKEN_INVALID",
|
|
56
|
+
"EMAIL_VERIFICATION_TOKEN_EXPIRED",
|
|
57
|
+
"EMAIL_VERIFICATION_TOKEN_ALREADY_USED",
|
|
58
|
+
//General
|
|
59
|
+
"INVALID_INPUT",
|
|
55
60
|
];
|
|
@@ -11,7 +11,7 @@ export declare abstract class AuthDomainError extends Error {
|
|
|
11
11
|
toJSON(): {
|
|
12
12
|
name: string;
|
|
13
13
|
message: string;
|
|
14
|
-
code: "TOKEN_INVALID" | "TOKEN_EXPIRED" | "TOKEN_MALFORMED" | "SIGNATURE_INVALID" | "AUTHENTICATION_FAILED" | "JWT_ERROR" | "KEY_MISMATCH" | "KEY_NOT_FOUND" | "CLAIMS_VALIDATION_ERROR" | "JWT_PAYLOAD_INVALID" | "TOKEN_NOT_YET_VALID" | "JWT_EMPTY" | "JWT_MALFORMED" | "ALGORITHM_UNSUPPORTED" | "INVALID_EMAIL" | "INVALID_HASHED_PASSWORD" | "PASSWORD_POLICY_VIOLATION" | "PASSWORD_MISMATCH" | "USER_NOT_FOUND" | "USER_DISABLED" | "EMAIL_ALREADY_IN_USE" | "INVALID_PERMISSION" | "INVALID_ROLE" | "INVALID_ID" | "LOGOUT_FAILED" | "EMAIL_NOT_VERIFIED" | "PASSWORD_RESET_TOKEN_INVALID" | "PASSWORD_RESET_TOKEN_EXPIRED" | "PASSWORD_RESET_TOKEN_ALREADY_USED";
|
|
14
|
+
code: "TOKEN_INVALID" | "TOKEN_EXPIRED" | "TOKEN_MALFORMED" | "SIGNATURE_INVALID" | "AUTHENTICATION_FAILED" | "JWT_ERROR" | "KEY_MISMATCH" | "KEY_NOT_FOUND" | "CLAIMS_VALIDATION_ERROR" | "JWT_PAYLOAD_INVALID" | "TOKEN_NOT_YET_VALID" | "JWT_EMPTY" | "JWT_MALFORMED" | "ALGORITHM_UNSUPPORTED" | "INVALID_EMAIL" | "INVALID_HASHED_PASSWORD" | "PASSWORD_POLICY_VIOLATION" | "PASSWORD_MISMATCH" | "USER_NOT_FOUND" | "USER_DISABLED" | "EMAIL_ALREADY_IN_USE" | "INVALID_PERMISSION" | "INVALID_ROLE" | "INVALID_ID" | "LOGOUT_FAILED" | "EMAIL_NOT_VERIFIED" | "PASSWORD_RESET_TOKEN_INVALID" | "PASSWORD_RESET_TOKEN_EXPIRED" | "PASSWORD_RESET_TOKEN_ALREADY_USED" | "EMAIL_VERIFICATION_TOKEN_INVALID" | "EMAIL_VERIFICATION_TOKEN_EXPIRED" | "EMAIL_VERIFICATION_TOKEN_ALREADY_USED" | "INVALID_INPUT";
|
|
15
15
|
details: unknown;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
@@ -53,3 +53,12 @@ export declare class SessionAuthError extends AuthDomainError {
|
|
|
53
53
|
export declare class EmailNotVerifiedError extends AuthDomainError {
|
|
54
54
|
constructor(message?: string, details?: unknown);
|
|
55
55
|
}
|
|
56
|
+
export declare class EmailVerificationTokenAlreadyUsedError extends AuthDomainError {
|
|
57
|
+
constructor(message?: string, details?: unknown);
|
|
58
|
+
}
|
|
59
|
+
export declare class EmailVerificationTokenInvalidError extends AuthDomainError {
|
|
60
|
+
constructor(message?: string, details?: unknown);
|
|
61
|
+
}
|
|
62
|
+
export declare class EmailVerificationTokenExpiredError extends AuthDomainError {
|
|
63
|
+
constructor(message?: string, details?: unknown);
|
|
64
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EmailNotVerifiedError = exports.SessionAuthError = exports.AuthenticationError = exports.InvalidSignatureError = exports.InvalidTokenFormatError = exports.TokenExpiredError = exports.AuthDomainError = void 0;
|
|
3
|
+
exports.EmailVerificationTokenExpiredError = exports.EmailVerificationTokenInvalidError = exports.EmailVerificationTokenAlreadyUsedError = exports.EmailNotVerifiedError = exports.SessionAuthError = exports.AuthenticationError = exports.InvalidSignatureError = exports.InvalidTokenFormatError = exports.TokenExpiredError = exports.AuthDomainError = void 0;
|
|
4
4
|
exports.isAuthErrorCode = isAuthErrorCode;
|
|
5
5
|
const auth_error_code_1 = require("./auth-error-code");
|
|
6
6
|
function asAuthErrorLike(value) {
|
|
@@ -93,3 +93,21 @@ class EmailNotVerifiedError extends AuthDomainError {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
exports.EmailNotVerifiedError = EmailNotVerifiedError;
|
|
96
|
+
class EmailVerificationTokenAlreadyUsedError extends AuthDomainError {
|
|
97
|
+
constructor(message = "Email verification token already used", details) {
|
|
98
|
+
super(message, "EMAIL_VERIFICATION_TOKEN_ALREADY_USED", details);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.EmailVerificationTokenAlreadyUsedError = EmailVerificationTokenAlreadyUsedError;
|
|
102
|
+
class EmailVerificationTokenInvalidError extends AuthDomainError {
|
|
103
|
+
constructor(message = "Email verification token is invalid", details) {
|
|
104
|
+
super(message, "EMAIL_VERIFICATION_TOKEN_INVALID", details);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.EmailVerificationTokenInvalidError = EmailVerificationTokenInvalidError;
|
|
108
|
+
class EmailVerificationTokenExpiredError extends AuthDomainError {
|
|
109
|
+
constructor(message = "Email verification token has expired", details) {
|
|
110
|
+
super(message, "EMAIL_VERIFICATION_TOKEN_EXPIRED", details);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.EmailVerificationTokenExpiredError = EmailVerificationTokenExpiredError;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidInputError = void 0;
|
|
4
|
+
const auth_errors_1 = require("./auth.errors");
|
|
5
|
+
class InvalidInputError extends auth_errors_1.AuthDomainError {
|
|
6
|
+
constructor(message = "Email verification token is required", details) {
|
|
7
|
+
super(message, "INVALID_INPUT", details);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.InvalidInputError = InvalidInputError;
|
|
@@ -20,3 +20,4 @@ __exportStar(require("./password-reset.errors"), exports);
|
|
|
20
20
|
__exportStar(require("./jwt-payload.error"), exports);
|
|
21
21
|
__exportStar(require("./auth-error-code"), exports);
|
|
22
22
|
__exportStar(require("./jwt.errors"), exports);
|
|
23
|
+
__exportStar(require("./general.errors"), exports);
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { normalizeJwtPayload } from "./domain/services";
|
|
|
12
12
|
* Aunque ya se exporta vía `export * from "./domain/errors"`,
|
|
13
13
|
* se expone de forma directa para que el host/plugins lo consuman sin ambigüedad.
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
15
|
+
export * from "./domain/errors";
|
|
16
16
|
export * from "./domain/ports";
|
|
17
17
|
export * from "./domain/entities";
|
|
18
18
|
export { readNonEmptyString } from "./domain/services/helpers";
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ 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
|
-
exports.readNonEmptyString = exports.
|
|
17
|
+
exports.readNonEmptyString = exports.normalizeJwtPayload = exports.assertJwtStructure = exports.optionalAudience = void 0;
|
|
18
18
|
var helpers_1 = require("./domain/services/helpers");
|
|
19
19
|
Object.defineProperty(exports, "optionalAudience", { enumerable: true, get: function () { return helpers_1.optionalAudience; } });
|
|
20
20
|
Object.defineProperty(exports, "assertJwtStructure", { enumerable: true, get: function () { return helpers_1.assertJwtStructure; } });
|
|
@@ -30,10 +30,7 @@ Object.defineProperty(exports, "normalizeJwtPayload", { enumerable: true, get: f
|
|
|
30
30
|
* Aunque ya se exporta vía `export * from "./domain/errors"`,
|
|
31
31
|
* se expone de forma directa para que el host/plugins lo consuman sin ambigüedad.
|
|
32
32
|
*/
|
|
33
|
-
|
|
34
|
-
Object.defineProperty(exports, "InvalidJwtPayloadError", { enumerable: true, get: function () { return errors_1.InvalidJwtPayloadError; } });
|
|
35
|
-
Object.defineProperty(exports, "InvalidJwtEmptyError", { enumerable: true, get: function () { return errors_1.InvalidJwtEmptyError; } });
|
|
36
|
-
Object.defineProperty(exports, "InvalidJwtMalformedError", { enumerable: true, get: function () { return errors_1.InvalidJwtMalformedError; } });
|
|
33
|
+
__exportStar(require("./domain/errors"), exports);
|
|
37
34
|
// Contratos (ports) + config
|
|
38
35
|
__exportStar(require("./domain/ports"), exports);
|
|
39
36
|
// Entities
|