@archbase/security 4.0.40 → 4.0.42

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.
@@ -1,4 +1,5 @@
1
1
  import { CSSProperties } from '@mantine/core';
2
+ import { ArchbasePasswordPolicy } from '@archbase/core';
2
3
  export interface ArchbaseResetPasswordProps {
3
4
  error?: string;
4
5
  initialEmail?: string;
@@ -6,9 +7,18 @@ export interface ArchbaseResetPasswordProps {
6
7
  onSendResetPasswordEmail: (email: string) => Promise<void>;
7
8
  onResetPassword: (email: string, passwordResetToken: string, newPassword: string) => Promise<void>;
8
9
  onClickBackToLogin: () => void;
9
- validatePassword?: () => string;
10
- validateToken?: () => string;
10
+ /** Validação customizada da nova senha. Deve retornar a mensagem de erro ou string vazia */
11
+ validatePassword?: (newPassword: string) => string;
12
+ validateToken?: (passwordResetToken: string) => string;
13
+ /**
14
+ * Critérios de senha forte aplicados na nova senha.
15
+ * `true` aplica a política padrão do Archbase; um objeto permite ajustar cada critério.
16
+ * Quando ausente somente a confirmação de senha é verificada.
17
+ */
18
+ passwordPolicy?: ArchbasePasswordPolicy | boolean;
19
+ /** Indicador se a lista de critérios deve ser exibida abaixo do campo. Padrão: true */
20
+ showPasswordRequirements?: boolean;
11
21
  /** Estilo do card */
12
22
  style?: CSSProperties;
13
23
  }
14
- export declare function ArchbaseResetPassword({ error, onSendResetPasswordEmail, onResetPassword, onClickBackToLogin, validatePassword, validateToken, initialEmail, description, style }: ArchbaseResetPasswordProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function ArchbaseResetPassword({ error, onSendResetPasswordEmail, onResetPassword, onClickBackToLogin, validatePassword, validateToken, initialEmail, description, style, passwordPolicy, showPasswordRequirements }: ArchbaseResetPasswordProps): import("react/jsx-runtime").JSX.Element;
@@ -109,6 +109,12 @@ export declare class UserDto extends SecurityDto {
109
109
  allowPasswordChange: boolean;
110
110
  allowMultipleLogins: boolean;
111
111
  passwordNeverExpires: boolean;
112
+ /**
113
+ * Data da última troca de senha, preenchida pelo backend. Base de cálculo da expiração
114
+ * periódica quando `archbase.security.password.expiration-days` está configurado.
115
+ * Somente leitura — o backend a atualiza sozinho a cada troca de senha.
116
+ */
117
+ passwordChangedAt?: string;
112
118
  accountDeactivated: boolean;
113
119
  accountLocked: boolean;
114
120
  unlimitedAccessHours: boolean;
@@ -1,4 +1,10 @@
1
1
  import { ContextualAuthenticationRequest, FlexibleLoginRequest, SocialLoginRequest, RegisterUserRequest, SupportedContextsResponse, ContextValidationResponse, ContextObject } from '../types/ContextualAuthentication';
2
+ /**
3
+ * Reconhece a recusa de login por credenciais expiradas devolvida pelo archbase-security:
4
+ * HTTP 403 com `{ error: 'CREDENTIALS_EXPIRED', requirePasswordChange: true }`. Aceita tanto o
5
+ * erro do axios quanto o corpo já desembrulhado.
6
+ */
7
+ export declare function isCredentialsExpiredError(error: any): boolean;
2
8
  export interface AuthenticationManagerReturnType {
3
9
  login: (username: string, password: string, rememberMe: boolean) => void;
4
10
  logout: (clearRememberMe?: boolean) => void;
@@ -13,6 +19,13 @@ export interface AuthenticationManagerReturnType {
13
19
  mfaRequired: boolean;
14
20
  verifyMfa?: (code: string) => Promise<void>;
15
21
  cancelMfa: () => void;
22
+ /**
23
+ * O backend recusou o login com CREDENTIALS_EXPIRED: há troca de senha obrigatória pendente
24
+ * ou a senha venceu pela política de validade. O app deve levar o usuário ao fluxo de
25
+ * redefinição de senha (ArchbaseResetPassword) em vez de só exibir o erro.
26
+ */
27
+ passwordChangeRequired: boolean;
28
+ clearPasswordChangeRequired: () => void;
16
29
  loginWithContext?: (request: ContextualAuthenticationRequest, rememberMe?: boolean) => Promise<void>;
17
30
  loginFlexible?: (request: FlexibleLoginRequest, rememberMe?: boolean) => Promise<void>;
18
31
  loginSocial?: (request: SocialLoginRequest) => Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archbase/security",
3
- "version": "4.0.40",
3
+ "version": "4.0.42",
4
4
  "description": "Security and authentication components for Archbase React",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -37,10 +37,10 @@
37
37
  "reflect-metadata": "^0.1.13",
38
38
  "rxjs": "^7.8.2",
39
39
  "uuid": "^9.0.1",
40
- "@archbase/components": "4.0.40",
41
- "@archbase/core": "4.0.40",
42
- "@archbase/data": "4.0.40",
43
- "@archbase/layout": "4.0.40"
40
+ "@archbase/components": "4.0.42",
41
+ "@archbase/core": "4.0.42",
42
+ "@archbase/data": "4.0.42",
43
+ "@archbase/layout": "4.0.42"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/crypto-js": "^4.1.1",
Binary file