@allanfsouza/aether-sdk 2.5.2 → 2.5.3
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/auth.d.ts +26 -5
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +38 -19
- package/dist/auth.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/auth.ts +52 -33
- package/src/index.ts +5 -5
package/dist/auth.d.ts
CHANGED
|
@@ -28,7 +28,16 @@ export declare class AuthModule {
|
|
|
28
28
|
private refreshToken;
|
|
29
29
|
/**
|
|
30
30
|
* Cria uma instância do módulo de autenticação administrativa.
|
|
31
|
+
*
|
|
31
32
|
* @param apiUrl URL base da API do Aether (ex: https://api.aether.dev)
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { AuthModule } from "@allanfsouza/aether-sdk/dist/auth";
|
|
37
|
+
*
|
|
38
|
+
* const auth = new AuthModule("https://api.aether.dev");
|
|
39
|
+
* await auth.login("admin@example.com", "password");
|
|
40
|
+
* ```
|
|
32
41
|
*/
|
|
33
42
|
constructor(apiUrl: string);
|
|
34
43
|
login(email: string, password: string): Promise<LoginResponse>;
|
|
@@ -39,13 +48,18 @@ export declare class AuthModule {
|
|
|
39
48
|
}): Promise<LoginResponse>;
|
|
40
49
|
refresh(): Promise<{
|
|
41
50
|
accessToken: string;
|
|
51
|
+
refreshToken?: string;
|
|
42
52
|
}>;
|
|
43
53
|
getGoogleAuthUrl(): string;
|
|
44
54
|
logout(): Promise<void>;
|
|
45
55
|
logoutAll(): Promise<void>;
|
|
46
56
|
getSessions(): Promise<Session[]>;
|
|
47
|
-
forgotPassword(email: string): Promise<
|
|
48
|
-
|
|
57
|
+
forgotPassword(email: string): Promise<{
|
|
58
|
+
message: string;
|
|
59
|
+
}>;
|
|
60
|
+
resetPassword(token: string, newPassword: string): Promise<{
|
|
61
|
+
message: string;
|
|
62
|
+
}>;
|
|
49
63
|
getToken(): string | null;
|
|
50
64
|
getRefreshToken(): string | null;
|
|
51
65
|
getUser(): User | null;
|
|
@@ -68,7 +82,7 @@ export declare class AuthModule {
|
|
|
68
82
|
error: null;
|
|
69
83
|
} | {
|
|
70
84
|
user: null;
|
|
71
|
-
error:
|
|
85
|
+
error: string | undefined;
|
|
72
86
|
}>;
|
|
73
87
|
/**
|
|
74
88
|
* Alias para register, retornando { user, error }
|
|
@@ -84,7 +98,7 @@ export declare class AuthModule {
|
|
|
84
98
|
error: null;
|
|
85
99
|
} | {
|
|
86
100
|
user: null;
|
|
87
|
-
error:
|
|
101
|
+
error: string | undefined;
|
|
88
102
|
}>;
|
|
89
103
|
/**
|
|
90
104
|
* Alias para logout
|
|
@@ -111,7 +125,14 @@ export declare class AuthModule {
|
|
|
111
125
|
}
|
|
112
126
|
/**
|
|
113
127
|
* Cria uma instância do módulo de autenticação administrativa.
|
|
114
|
-
*
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* import { createAdminAuth } from "@allanfsouza/aether-sdk/dist/auth";
|
|
132
|
+
*
|
|
133
|
+
* const auth = createAdminAuth("https://api.aether.dev");
|
|
134
|
+
* await auth.login("admin@example.com", "password");
|
|
135
|
+
* ```
|
|
115
136
|
*/
|
|
116
137
|
export declare function createAdminAuth(apiUrl: string): AuthModule;
|
|
117
138
|
//# sourceMappingURL=auth.d.ts.map
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
// src/auth.ts
|
|
2
2
|
// =============================================================================
|
|
3
|
-
// MÓDULO DE AUTENTICAÇÃO ADMINISTRATIVA
|
|
3
|
+
// MÓDULO DE AUTENTICAÇÃO ADMINISTRATIVA - STANDALONE
|
|
4
4
|
// =============================================================================
|
|
5
5
|
// ⚠️ USO EXCLUSIVO DO WEB-ADMIN - NÃO EXPOSTO NO SDK PÚBLICO
|
|
6
|
-
//
|
|
7
|
-
//
|
|
6
|
+
//
|
|
7
|
+
// Este módulo gerencia autenticação contra a tabela GLOBAL 'users' do Aether
|
|
8
|
+
// (donos de projetos). Apps client-side devem usar TenantAuthModule.
|
|
9
|
+
//
|
|
10
|
+
// IMPORTANTE: Este módulo é STANDALONE - não depende do PlataformaClient.
|
|
11
|
+
// Ele pode ser importado diretamente:
|
|
12
|
+
// import { AuthModule } from "@allanfsouza/aether-sdk/dist/auth";
|
|
8
13
|
// =============================================================================
|
|
9
14
|
import axios from "axios";
|
|
10
15
|
// =============================================================================
|
|
11
|
-
// CONSTANTES DE STORAGE
|
|
16
|
+
// CONSTANTES DE STORAGE
|
|
17
|
+
// Usamos chaves DIFERENTES do SDK público para evitar conflito
|
|
12
18
|
// =============================================================================
|
|
13
19
|
const ADMIN_STORAGE_KEYS = {
|
|
14
20
|
TOKEN: "aether_admin_token",
|
|
@@ -23,12 +29,21 @@ function isBrowser() {
|
|
|
23
29
|
typeof window.localStorage !== "undefined");
|
|
24
30
|
}
|
|
25
31
|
// =============================================================================
|
|
26
|
-
// CLASSE PRINCIPAL
|
|
32
|
+
// CLASSE PRINCIPAL - STANDALONE
|
|
27
33
|
// =============================================================================
|
|
28
34
|
export class AuthModule {
|
|
29
35
|
/**
|
|
30
36
|
* Cria uma instância do módulo de autenticação administrativa.
|
|
37
|
+
*
|
|
31
38
|
* @param apiUrl URL base da API do Aether (ex: https://api.aether.dev)
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import { AuthModule } from "@allanfsouza/aether-sdk/dist/auth";
|
|
43
|
+
*
|
|
44
|
+
* const auth = new AuthModule("https://api.aether.dev");
|
|
45
|
+
* await auth.login("admin@example.com", "password");
|
|
46
|
+
* ```
|
|
32
47
|
*/
|
|
33
48
|
constructor(apiUrl) {
|
|
34
49
|
// Armazena dados em memória para acesso rápido
|
|
@@ -75,17 +90,12 @@ export class AuthModule {
|
|
|
75
90
|
}
|
|
76
91
|
}
|
|
77
92
|
async register(credentials) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this._setSession(data.accessToken, data.refreshToken, data.user);
|
|
83
|
-
}
|
|
84
|
-
return data;
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
throw e;
|
|
93
|
+
const { data } = await this.http.post("/auth/register", credentials);
|
|
94
|
+
// Se o register retornar token (auto-login), configura sessão
|
|
95
|
+
if (data.accessToken) {
|
|
96
|
+
this._setSession(data.accessToken, data.refreshToken, data.user);
|
|
88
97
|
}
|
|
98
|
+
return data;
|
|
89
99
|
}
|
|
90
100
|
async refresh() {
|
|
91
101
|
const refreshToken = this.getRefreshToken();
|
|
@@ -123,7 +133,7 @@ export class AuthModule {
|
|
|
123
133
|
await this.http.post("/auth/logout", { refreshToken });
|
|
124
134
|
}
|
|
125
135
|
catch {
|
|
126
|
-
// Ignora erro de logout no servidor
|
|
136
|
+
// Ignora erro de logout no servidor - limpa local de qualquer forma
|
|
127
137
|
}
|
|
128
138
|
}
|
|
129
139
|
// Limpa tudo (memória + localStorage)
|
|
@@ -188,7 +198,8 @@ export class AuthModule {
|
|
|
188
198
|
return { user: data.user, error: null };
|
|
189
199
|
}
|
|
190
200
|
catch (err) {
|
|
191
|
-
|
|
201
|
+
const error = err;
|
|
202
|
+
return { user: null, error: error.response?.data?.message || error.message };
|
|
192
203
|
}
|
|
193
204
|
}
|
|
194
205
|
/**
|
|
@@ -204,7 +215,8 @@ export class AuthModule {
|
|
|
204
215
|
return { user: data.user, error: null };
|
|
205
216
|
}
|
|
206
217
|
catch (err) {
|
|
207
|
-
|
|
218
|
+
const error = err;
|
|
219
|
+
return { user: null, error: error.response?.data?.message || error.message };
|
|
208
220
|
}
|
|
209
221
|
}
|
|
210
222
|
/**
|
|
@@ -311,7 +323,14 @@ export class AuthModule {
|
|
|
311
323
|
// =============================================================================
|
|
312
324
|
/**
|
|
313
325
|
* Cria uma instância do módulo de autenticação administrativa.
|
|
314
|
-
*
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```typescript
|
|
329
|
+
* import { createAdminAuth } from "@allanfsouza/aether-sdk/dist/auth";
|
|
330
|
+
*
|
|
331
|
+
* const auth = createAdminAuth("https://api.aether.dev");
|
|
332
|
+
* await auth.login("admin@example.com", "password");
|
|
333
|
+
* ```
|
|
315
334
|
*/
|
|
316
335
|
export function createAdminAuth(apiUrl) {
|
|
317
336
|
return new AuthModule(apiUrl);
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { DatabaseModule } from "./database.js";
|
|
|
3
3
|
import { StorageModule } from "./storage.js";
|
|
4
4
|
import { FunctionsModule } from "./functions.js";
|
|
5
5
|
import { PushModule } from "./push.js";
|
|
6
|
-
import { TenantAuthModule, TenantUser } from "./tenant-auth.js";
|
|
6
|
+
import { TenantAuthModule, type TenantUser } from "./tenant-auth.js";
|
|
7
7
|
import { AIModule } from "./ai.js";
|
|
8
8
|
/**
|
|
9
9
|
* Configuração usada para criar o cliente principal da plataforma.
|
|
@@ -14,7 +14,7 @@ export type ClientConfig = {
|
|
|
14
14
|
projectId?: string;
|
|
15
15
|
apiKey?: string;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* API Key de serviço para autenticação em operações de banco de dados.
|
|
18
18
|
* Necessário para apps client-side que usam tenant auth.
|
|
19
19
|
*/
|
|
20
20
|
serviceApiKey?: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAaF,qBAAa,gBAAgB;IAUpB,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,EAAE,EAAE,QAAQ,CAAC;IAGb,QAAQ,EAAE,cAAc,CAAC;IAEzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,IAAI,EAAE,aAAa,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAU;gBAErB,MAAM,EAAE,YAAY;IA2ChC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAYpC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU3C;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAWhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAUtC;;OAEG;IACH,OAAO,IAAI,UAAU,GAAG,IAAI;IAmB5B;;;OAGG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAUxB;AASD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allanfsouza/aether-sdk",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.3",
|
|
4
4
|
"description": "SDK do Cliente para a Plataforma Aether",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,4 +32,4 @@
|
|
|
32
32
|
"@types/ws": "^8.5.10",
|
|
33
33
|
"typescript": "^5.3.0"
|
|
34
34
|
}
|
|
35
|
-
}
|
|
35
|
+
}
|
package/src/auth.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
// src/auth.ts
|
|
2
2
|
// =============================================================================
|
|
3
|
-
// MÓDULO DE AUTENTICAÇÃO ADMINISTRATIVA
|
|
3
|
+
// MÓDULO DE AUTENTICAÇÃO ADMINISTRATIVA - STANDALONE
|
|
4
4
|
// =============================================================================
|
|
5
5
|
// ⚠️ USO EXCLUSIVO DO WEB-ADMIN - NÃO EXPOSTO NO SDK PÚBLICO
|
|
6
|
-
//
|
|
7
|
-
//
|
|
6
|
+
//
|
|
7
|
+
// Este módulo gerencia autenticação contra a tabela GLOBAL 'users' do Aether
|
|
8
|
+
// (donos de projetos). Apps client-side devem usar TenantAuthModule.
|
|
9
|
+
//
|
|
10
|
+
// IMPORTANTE: Este módulo é STANDALONE - não depende do PlataformaClient.
|
|
11
|
+
// Ele pode ser importado diretamente:
|
|
12
|
+
// import { AuthModule } from "@allanfsouza/aether-sdk/dist/auth";
|
|
8
13
|
// =============================================================================
|
|
9
14
|
|
|
10
15
|
import axios from "axios";
|
|
@@ -40,7 +45,8 @@ export interface Session {
|
|
|
40
45
|
}
|
|
41
46
|
|
|
42
47
|
// =============================================================================
|
|
43
|
-
// CONSTANTES DE STORAGE
|
|
48
|
+
// CONSTANTES DE STORAGE
|
|
49
|
+
// Usamos chaves DIFERENTES do SDK público para evitar conflito
|
|
44
50
|
// =============================================================================
|
|
45
51
|
const ADMIN_STORAGE_KEYS = {
|
|
46
52
|
TOKEN: "aether_admin_token",
|
|
@@ -59,7 +65,7 @@ function isBrowser(): boolean {
|
|
|
59
65
|
}
|
|
60
66
|
|
|
61
67
|
// =============================================================================
|
|
62
|
-
// CLASSE PRINCIPAL
|
|
68
|
+
// CLASSE PRINCIPAL - STANDALONE
|
|
63
69
|
// =============================================================================
|
|
64
70
|
|
|
65
71
|
export class AuthModule {
|
|
@@ -73,7 +79,16 @@ export class AuthModule {
|
|
|
73
79
|
|
|
74
80
|
/**
|
|
75
81
|
* Cria uma instância do módulo de autenticação administrativa.
|
|
82
|
+
*
|
|
76
83
|
* @param apiUrl URL base da API do Aether (ex: https://api.aether.dev)
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* import { AuthModule } from "@allanfsouza/aether-sdk/dist/auth";
|
|
88
|
+
*
|
|
89
|
+
* const auth = new AuthModule("https://api.aether.dev");
|
|
90
|
+
* await auth.login("admin@example.com", "password");
|
|
91
|
+
* ```
|
|
77
92
|
*/
|
|
78
93
|
constructor(apiUrl: string) {
|
|
79
94
|
this.apiUrl = apiUrl.replace(/\/+$/, "");
|
|
@@ -127,24 +142,20 @@ export class AuthModule {
|
|
|
127
142
|
email: string;
|
|
128
143
|
password: string;
|
|
129
144
|
}): Promise<LoginResponse> {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
// Se o register retornar token (auto-login), configura sessão
|
|
137
|
-
if (data.accessToken) {
|
|
138
|
-
this._setSession(data.accessToken, data.refreshToken, data.user);
|
|
139
|
-
}
|
|
145
|
+
const { data } = await this.http.post<LoginResponse>(
|
|
146
|
+
"/auth/register",
|
|
147
|
+
credentials
|
|
148
|
+
);
|
|
140
149
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
150
|
+
// Se o register retornar token (auto-login), configura sessão
|
|
151
|
+
if (data.accessToken) {
|
|
152
|
+
this._setSession(data.accessToken, data.refreshToken, data.user);
|
|
144
153
|
}
|
|
154
|
+
|
|
155
|
+
return data;
|
|
145
156
|
}
|
|
146
157
|
|
|
147
|
-
async refresh(): Promise<{ accessToken: string }> {
|
|
158
|
+
async refresh(): Promise<{ accessToken: string; refreshToken?: string }> {
|
|
148
159
|
const refreshToken = this.getRefreshToken();
|
|
149
160
|
|
|
150
161
|
if (!refreshToken) {
|
|
@@ -186,7 +197,7 @@ export class AuthModule {
|
|
|
186
197
|
try {
|
|
187
198
|
await this.http.post("/auth/logout", { refreshToken });
|
|
188
199
|
} catch {
|
|
189
|
-
// Ignora erro de logout no servidor
|
|
200
|
+
// Ignora erro de logout no servidor - limpa local de qualquer forma
|
|
190
201
|
}
|
|
191
202
|
}
|
|
192
203
|
|
|
@@ -209,12 +220,15 @@ export class AuthModule {
|
|
|
209
220
|
return data.sessions;
|
|
210
221
|
}
|
|
211
222
|
|
|
212
|
-
async forgotPassword(email: string) {
|
|
223
|
+
async forgotPassword(email: string): Promise<{ message: string }> {
|
|
213
224
|
const { data } = await this.http.post("/auth/forgot-password", { email });
|
|
214
225
|
return data;
|
|
215
226
|
}
|
|
216
227
|
|
|
217
|
-
async resetPassword(
|
|
228
|
+
async resetPassword(
|
|
229
|
+
token: string,
|
|
230
|
+
newPassword: string
|
|
231
|
+
): Promise<{ message: string }> {
|
|
218
232
|
const { data } = await this.http.post("/auth/reset-password", {
|
|
219
233
|
token,
|
|
220
234
|
newPassword,
|
|
@@ -263,8 +277,9 @@ export class AuthModule {
|
|
|
263
277
|
try {
|
|
264
278
|
const data = await this.login(credentials.email, credentials.password);
|
|
265
279
|
return { user: data.user, error: null };
|
|
266
|
-
} catch (err:
|
|
267
|
-
|
|
280
|
+
} catch (err: unknown) {
|
|
281
|
+
const error = err as { response?: { data?: { message?: string } }; message?: string };
|
|
282
|
+
return { user: null, error: error.response?.data?.message || error.message };
|
|
268
283
|
}
|
|
269
284
|
}
|
|
270
285
|
|
|
@@ -283,8 +298,9 @@ export class AuthModule {
|
|
|
283
298
|
name: credentials.data?.name || credentials.email.split("@")[0],
|
|
284
299
|
});
|
|
285
300
|
return { user: data.user, error: null };
|
|
286
|
-
} catch (err:
|
|
287
|
-
|
|
301
|
+
} catch (err: unknown) {
|
|
302
|
+
const error = err as { response?: { data?: { message?: string } }; message?: string };
|
|
303
|
+
return { user: null, error: error.response?.data?.message || error.message };
|
|
288
304
|
}
|
|
289
305
|
}
|
|
290
306
|
|
|
@@ -301,7 +317,7 @@ export class AuthModule {
|
|
|
301
317
|
* Primeiro tenta memória, depois localStorage.
|
|
302
318
|
* Se não encontrar, retorna null.
|
|
303
319
|
*/
|
|
304
|
-
async getSession() {
|
|
320
|
+
async getSession(): Promise<{ user: User; access_token: string } | null> {
|
|
305
321
|
const token = this.getToken();
|
|
306
322
|
if (!token) return null;
|
|
307
323
|
|
|
@@ -345,11 +361,7 @@ export class AuthModule {
|
|
|
345
361
|
}
|
|
346
362
|
}
|
|
347
363
|
|
|
348
|
-
private _setSession(
|
|
349
|
-
token: string,
|
|
350
|
-
refresh: string,
|
|
351
|
-
user: User
|
|
352
|
-
): void {
|
|
364
|
+
private _setSession(token: string, refresh: string, user: User): void {
|
|
353
365
|
this.accessToken = token;
|
|
354
366
|
this.refreshToken = refresh;
|
|
355
367
|
this.currentUser = user;
|
|
@@ -410,7 +422,14 @@ export class AuthModule {
|
|
|
410
422
|
|
|
411
423
|
/**
|
|
412
424
|
* Cria uma instância do módulo de autenticação administrativa.
|
|
413
|
-
*
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* ```typescript
|
|
428
|
+
* import { createAdminAuth } from "@allanfsouza/aether-sdk/dist/auth";
|
|
429
|
+
*
|
|
430
|
+
* const auth = createAdminAuth("https://api.aether.dev");
|
|
431
|
+
* await auth.login("admin@example.com", "password");
|
|
432
|
+
* ```
|
|
414
433
|
*/
|
|
415
434
|
export function createAdminAuth(apiUrl: string): AuthModule {
|
|
416
435
|
return new AuthModule(apiUrl);
|
package/src/index.ts
CHANGED
|
@@ -15,10 +15,10 @@ import { FunctionsModule } from "./functions.js";
|
|
|
15
15
|
import { PushModule } from "./push.js";
|
|
16
16
|
import {
|
|
17
17
|
TenantAuthModule,
|
|
18
|
-
TenantUser,
|
|
19
|
-
TenantLoginResponse,
|
|
20
|
-
TenantRegisterCredentials,
|
|
21
|
-
TenantLoginCredentials,
|
|
18
|
+
type TenantUser,
|
|
19
|
+
type TenantLoginResponse,
|
|
20
|
+
type TenantRegisterCredentials,
|
|
21
|
+
type TenantLoginCredentials,
|
|
22
22
|
} from "./tenant-auth.js";
|
|
23
23
|
import { AIModule } from "./ai.js";
|
|
24
24
|
|
|
@@ -43,7 +43,7 @@ export type ClientConfig = {
|
|
|
43
43
|
apiKey?: string;
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
46
|
+
* API Key de serviço para autenticação em operações de banco de dados.
|
|
47
47
|
* Necessário para apps client-side que usam tenant auth.
|
|
48
48
|
*/
|
|
49
49
|
serviceApiKey?: string;
|