@jmlq/auth 0.0.1-alpha.33 → 0.0.1-alpha.34
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.
|
@@ -9,4 +9,8 @@
|
|
|
9
9
|
* - Mantén este catálogo pequeño y estable.
|
|
10
10
|
* - Si agregas un error nuevo, agrega aquí su código.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* ÚNICA fuente de verdad de los códigos.
|
|
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"];
|
|
16
|
+
export type AuthErrorCode = (typeof AUTH_ERROR_CODES)[number];
|
|
@@ -1,2 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AUTH_ERROR_CODES = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Códigos canónicos de error del dominio de Auth.
|
|
6
|
+
*
|
|
7
|
+
* Objetivo:
|
|
8
|
+
* - Host / plugins NO deben depender de `error.name` o `message`.
|
|
9
|
+
* - Solo deben mapear por `code`.
|
|
10
|
+
*
|
|
11
|
+
* Nota:
|
|
12
|
+
* - Mantén este catálogo pequeño y estable.
|
|
13
|
+
* - Si agregas un error nuevo, agrega aquí su código.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* ÚNICA fuente de verdad de los códigos.
|
|
17
|
+
*/
|
|
18
|
+
exports.AUTH_ERROR_CODES = [
|
|
19
|
+
// JWT / sesión
|
|
20
|
+
"TOKEN_INVALID",
|
|
21
|
+
"TOKEN_EXPIRED",
|
|
22
|
+
"TOKEN_MALFORMED", // formato invalido (no header.payload.signature),
|
|
23
|
+
"SIGNATURE_INVALID",
|
|
24
|
+
"AUTHENTICATION_FAILED", // catch-all de autenticación,
|
|
25
|
+
"JWT_ERROR",
|
|
26
|
+
"KEY_MISMATCH",
|
|
27
|
+
"KEY_NOT_FOUND",
|
|
28
|
+
"KEY_MISMATCH",
|
|
29
|
+
"CLAIMS_VALIDATION_ERROR",
|
|
30
|
+
"JWT_PAYLOAD_INVALID",
|
|
31
|
+
"TOKEN_NOT_YET_VALID",
|
|
32
|
+
"JWT_EMPTY",
|
|
33
|
+
"JWT_MALFORMED",
|
|
34
|
+
// Refresh Token
|
|
35
|
+
"ALGORITHM_UNSUPPORTED",
|
|
36
|
+
"KEY_MISMATCH",
|
|
37
|
+
"KEY_NOT_FOUND",
|
|
38
|
+
// Identidad / login
|
|
39
|
+
"INVALID_EMAIL",
|
|
40
|
+
"INVALID_HASHED_PASSWORD",
|
|
41
|
+
"PASSWORD_POLICY_VIOLATION",
|
|
42
|
+
"PASSWORD_MISMATCH",
|
|
43
|
+
"USER_NOT_FOUND",
|
|
44
|
+
"USER_DISABLED",
|
|
45
|
+
"EMAIL_ALREADY_IN_USE",
|
|
46
|
+
"INVALID_PERMISSION",
|
|
47
|
+
"INVALID_ROLE",
|
|
48
|
+
"INVALID_ID",
|
|
49
|
+
"LOGOUT_FAILED",
|
|
50
|
+
"EMAIL_NOT_VERIFIED",
|
|
51
|
+
// Password reset
|
|
52
|
+
"PASSWORD_RESET_TOKEN_INVALID",
|
|
53
|
+
"PASSWORD_RESET_TOKEN_EXPIRED",
|
|
54
|
+
"PASSWORD_RESET_TOKEN_ALREADY_USED",
|
|
55
|
+
];
|
|
@@ -3,6 +3,7 @@ export interface ClaimsIssue {
|
|
|
3
3
|
path: string;
|
|
4
4
|
message: string;
|
|
5
5
|
}
|
|
6
|
+
export declare function isAuthErrorCode(value: unknown): value is AuthErrorCode;
|
|
6
7
|
export declare abstract class AuthDomainError extends Error {
|
|
7
8
|
readonly code: AuthErrorCode;
|
|
8
9
|
readonly details?: unknown;
|
|
@@ -10,7 +11,7 @@ export declare abstract class AuthDomainError extends Error {
|
|
|
10
11
|
toJSON(): {
|
|
11
12
|
name: string;
|
|
12
13
|
message: string;
|
|
13
|
-
code:
|
|
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
15
|
details: unknown;
|
|
15
16
|
};
|
|
16
17
|
/**
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EmailNotVerifiedError = exports.SessionAuthError = exports.AuthenticationError = exports.InvalidSignatureError = exports.InvalidTokenFormatError = exports.TokenExpiredError = exports.AuthDomainError = void 0;
|
|
4
|
+
exports.isAuthErrorCode = isAuthErrorCode;
|
|
5
|
+
const auth_error_code_1 = require("./auth-error-code");
|
|
4
6
|
function asAuthErrorLike(value) {
|
|
5
7
|
if (value && typeof value === "object")
|
|
6
8
|
return value;
|
|
7
9
|
return {};
|
|
8
10
|
}
|
|
11
|
+
const AUTH_ERROR_CODE_SET = new Set(auth_error_code_1.AUTH_ERROR_CODES);
|
|
12
|
+
function isAuthErrorCode(value) {
|
|
13
|
+
return typeof value === "string" && AUTH_ERROR_CODE_SET.has(value);
|
|
14
|
+
}
|
|
9
15
|
class AuthDomainError extends Error {
|
|
10
16
|
constructor(message, code, details) {
|
|
11
17
|
super(message);
|
|
@@ -42,7 +48,8 @@ class AuthDomainError extends Error {
|
|
|
42
48
|
if (e instanceof AuthDomainError)
|
|
43
49
|
return true;
|
|
44
50
|
const like = asAuthErrorLike(e);
|
|
45
|
-
|
|
51
|
+
// Exigir que code sea uno de los canónicos del core
|
|
52
|
+
return isAuthErrorCode(like.code);
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
55
|
exports.AuthDomainError = AuthDomainError;
|