meet-my-ride 1.4.1 → 1.4.4
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/client.d.ts +13 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +64 -11
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/auth/auth.service.d.ts +1 -3
- package/dist/services/auth/auth.service.d.ts.map +1 -1
- package/dist/services/auth/auth.service.js +7 -24
- package/dist/services/auth/auth.service.js.map +1 -1
- package/dist/services/tokenstorage/tokenstorage.d.ts +4 -2
- package/dist/services/tokenstorage/tokenstorage.d.ts.map +1 -1
- package/dist/services/tokenstorage/tokenstorage.js +3 -2
- package/dist/services/tokenstorage/tokenstorage.js.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -7,10 +7,21 @@ export declare class MeetMyRideClient {
|
|
|
7
7
|
readonly user: UserService;
|
|
8
8
|
readonly auth: AuthService;
|
|
9
9
|
readonly meet: MeetService;
|
|
10
|
+
private tokenStorage;
|
|
11
|
+
private isRefreshing;
|
|
12
|
+
private refreshQueue;
|
|
10
13
|
constructor(baseUrl: string, apiKey?: string);
|
|
11
14
|
/**
|
|
12
|
-
*
|
|
15
|
+
* Update the Authorization header manually
|
|
13
16
|
*/
|
|
14
|
-
setToken(token: string | null): void
|
|
17
|
+
setToken(token: string | null): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Handles HTTP errors including automatic token refresh
|
|
20
|
+
*/
|
|
21
|
+
private handleError;
|
|
22
|
+
/**
|
|
23
|
+
* Refresh access token using stored refresh token
|
|
24
|
+
*/
|
|
25
|
+
private refreshAccessToken;
|
|
15
26
|
}
|
|
16
27
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAkC,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,WAAW,MAAM,8BAA8B,CAAC;AAIvD,qBAAa,gBAAgB;IACzB,SAAgB,IAAI,EAAE,aAAa,CAAC;IAEpC,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,IAAI,EAAE,WAAW,CAAC;IAElC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAmC;gBAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAyB5C;;OAEG;IACU,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;OAEG;YACW,WAAW;IAwCzB;;OAEG;YACW,kBAAkB;CAanC"}
|
package/dist/client.js
CHANGED
|
@@ -6,28 +6,28 @@ import MeetService from "./services/meet/meet.service";
|
|
|
6
6
|
import { parseApiError } from "./models/http/api.types";
|
|
7
7
|
export class MeetMyRideClient {
|
|
8
8
|
constructor(baseUrl, apiKey) {
|
|
9
|
-
|
|
9
|
+
this.isRefreshing = false;
|
|
10
|
+
this.refreshQueue = [];
|
|
11
|
+
this.tokenStorage = new TokenStorageService();
|
|
10
12
|
this.http = axios.create({
|
|
11
13
|
baseURL: baseUrl,
|
|
12
|
-
headers: {
|
|
13
|
-
"Content-Type": "application/json",
|
|
14
|
-
...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {})
|
|
15
|
-
},
|
|
14
|
+
headers: { "Content-Type": "application/json" },
|
|
16
15
|
withCredentials: true
|
|
17
16
|
});
|
|
17
|
+
if (apiKey) {
|
|
18
|
+
this.http.defaults.headers["Authorization"] = `Bearer ${apiKey}`;
|
|
19
|
+
}
|
|
18
20
|
// ----- Attach Global Error Interceptor -----
|
|
19
|
-
this.http.interceptors.response.use(response => response, error =>
|
|
20
|
-
throw parseApiError(error);
|
|
21
|
-
});
|
|
21
|
+
this.http.interceptors.response.use(response => response, async (error) => this.handleError(error));
|
|
22
22
|
// Services
|
|
23
23
|
this.user = new UserService(this.http);
|
|
24
|
-
this.auth = new AuthService(this.http,
|
|
24
|
+
this.auth = new AuthService(this.http, this.tokenStorage);
|
|
25
25
|
this.meet = new MeetService(this.http);
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Update the Authorization header manually
|
|
29
29
|
*/
|
|
30
|
-
setToken(token) {
|
|
30
|
+
async setToken(token) {
|
|
31
31
|
if (token) {
|
|
32
32
|
this.http.defaults.headers["Authorization"] = `Bearer ${token}`;
|
|
33
33
|
}
|
|
@@ -35,5 +35,58 @@ export class MeetMyRideClient {
|
|
|
35
35
|
delete this.http.defaults.headers["Authorization"];
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Handles HTTP errors including automatic token refresh
|
|
40
|
+
*/
|
|
41
|
+
async handleError(error) {
|
|
42
|
+
const originalRequest = error.config;
|
|
43
|
+
const refreshToken = await this.tokenStorage.getRefreshToken();
|
|
44
|
+
if (error.response?.status === 401 && !originalRequest._retry && refreshToken) {
|
|
45
|
+
originalRequest._retry = true;
|
|
46
|
+
if (!this.isRefreshing) {
|
|
47
|
+
this.isRefreshing = true;
|
|
48
|
+
try {
|
|
49
|
+
const newToken = await this.refreshAccessToken();
|
|
50
|
+
this.isRefreshing = false;
|
|
51
|
+
this.refreshQueue.forEach(cb => cb(newToken));
|
|
52
|
+
this.refreshQueue = [];
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
this.isRefreshing = false;
|
|
56
|
+
this.refreshQueue = [];
|
|
57
|
+
await this.tokenStorage.clear();
|
|
58
|
+
return Promise.reject(err);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
this.refreshQueue.push(async (token) => {
|
|
63
|
+
if (!originalRequest.headers)
|
|
64
|
+
originalRequest.headers = {};
|
|
65
|
+
originalRequest.headers["Authorization"] = `Bearer ${token}`;
|
|
66
|
+
try {
|
|
67
|
+
resolve(this.http(originalRequest));
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
reject(err);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
throw parseApiError(error);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Refresh access token using stored refresh token
|
|
79
|
+
*/
|
|
80
|
+
async refreshAccessToken() {
|
|
81
|
+
const refreshToken = await this.tokenStorage.getRefreshToken();
|
|
82
|
+
if (!refreshToken)
|
|
83
|
+
throw new Error("No refresh token available");
|
|
84
|
+
const res = await this.http.post("/auth/refresh", { refreshToken });
|
|
85
|
+
const { accessToken: accessToken, refreshToken: newRefreshToken } = res.data;
|
|
86
|
+
await this.tokenStorage.setAccessToken(accessToken ?? "");
|
|
87
|
+
await this.tokenStorage.setRefreshToken(newRefreshToken ?? "");
|
|
88
|
+
this.http.defaults.headers["Authorization"] = `Bearer ${accessToken}`;
|
|
89
|
+
return accessToken ?? "";
|
|
90
|
+
}
|
|
38
91
|
}
|
|
39
92
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ export { MeetMyRideClient } from "./client";
|
|
|
2
2
|
export { AuthService } from "./services/auth/auth.service";
|
|
3
3
|
export { UserService } from "./services/user/user.service";
|
|
4
4
|
export type { User, UserLogin, UserRegister, UserRegisterResponse, UserUpdate, AuthResponse, UserRefreshResponse, VerifyEmailResponse } from "./models/user/user.types";
|
|
5
|
-
export { TokenStorageService
|
|
5
|
+
export { TokenStorageService } from "./services/tokenstorage/tokenstorage";
|
|
6
|
+
export type { TokenStorage } from "./services/tokenstorage/tokenstorage";
|
|
6
7
|
export { default as MeetService } from "./services/meet/meet.service";
|
|
7
8
|
export type { Meet, UpdateMeetRequest, CreateMeetRequest, MeetUserResponse, MeetType } from "./models/meet/meet.types";
|
|
8
9
|
export { ApiError } from "./models/http/api.types";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,YAAY,EACR,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,YAAY,EACR,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,YAAY,EACR,IAAI,EACJ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EACX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { AuthService } from "./services/auth/auth.service";
|
|
|
6
6
|
// Users
|
|
7
7
|
export { UserService } from "./services/user/user.service";
|
|
8
8
|
// Token storage
|
|
9
|
-
export { TokenStorageService
|
|
9
|
+
export { TokenStorageService } from "./services/tokenstorage/tokenstorage";
|
|
10
10
|
// Meets
|
|
11
11
|
export { default as MeetService } from "./services/meet/meet.service";
|
|
12
12
|
// ------------------ Optional: Error types ------------------ //
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,oDAAoD;AACpD,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAY3D,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,oDAAoD;AACpD,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAY3D,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAStE,iEAAiE;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { AxiosInstance } from "axios";
|
|
2
2
|
import { UserLogin, AuthResponse, UserRegisterResponse, VerifyEmailResponse, UserRefreshResponse, User } from "../../models/user/user.types";
|
|
3
3
|
import { TokenStorage } from "../tokenstorage/tokenstorage";
|
|
4
|
-
import { MeetMyRideClient } from "../../client";
|
|
5
4
|
export declare class AuthService {
|
|
6
5
|
private http;
|
|
7
6
|
private storage;
|
|
8
|
-
private client?;
|
|
9
7
|
private userSubject;
|
|
10
8
|
user$: import("rxjs").Observable<User | null>;
|
|
11
9
|
private isAuthenticatedSubject;
|
|
12
10
|
isAuthenticated$: import("rxjs").Observable<boolean>;
|
|
13
|
-
constructor(http: AxiosInstance, storage: TokenStorage
|
|
11
|
+
constructor(http: AxiosInstance, storage: TokenStorage);
|
|
14
12
|
private setUser;
|
|
15
13
|
private loadFromStorage;
|
|
16
14
|
login(data: UserLogin): Promise<AuthResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/services/auth/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/services/auth/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EACH,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,IAAI,EACP,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,qBAAa,WAAW;IASZ,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IARvB,OAAO,CAAC,WAAW,CAA0C;IAC7D,KAAK,yCAAmC;IAExC,OAAO,CAAC,sBAAsB,CAAuC;IACrE,gBAAgB,qCAA8C;gBAG9C,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,YAAY;IASrC,OAAO,CAAC,OAAO;YAKD,eAAe;IAoBvB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAc7C,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAKlD,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAW3D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IASxE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B,IAAI,WAAW,IAAI,IAAI,GAAG,IAAI,CAE7B;IAED,IAAI,eAAe,IAAI,OAAO,CAE7B;CACJ"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { BehaviorSubject } from "rxjs";
|
|
2
2
|
export class AuthService {
|
|
3
|
-
constructor(http, storage
|
|
4
|
-
) {
|
|
3
|
+
constructor(http, storage) {
|
|
5
4
|
this.http = http;
|
|
6
5
|
this.storage = storage;
|
|
7
|
-
this.client = client;
|
|
8
6
|
// --- Reactive state ---
|
|
9
7
|
this.userSubject = new BehaviorSubject(null);
|
|
10
8
|
this.user$ = this.userSubject.asObservable();
|
|
@@ -26,10 +24,6 @@ export class AuthService {
|
|
|
26
24
|
try {
|
|
27
25
|
const user = JSON.parse(userJson);
|
|
28
26
|
this.setUser(user);
|
|
29
|
-
// Update axios headers if client exists
|
|
30
|
-
if (this.client) {
|
|
31
|
-
this.client.setToken(token);
|
|
32
|
-
}
|
|
33
27
|
}
|
|
34
28
|
catch {
|
|
35
29
|
this.setUser(null);
|
|
@@ -46,15 +40,10 @@ export class AuthService {
|
|
|
46
40
|
const res = await this.http.post("/users/login", data);
|
|
47
41
|
const { accessToken, refreshToken, user } = res.data;
|
|
48
42
|
if (accessToken && refreshToken) {
|
|
49
|
-
await this.storage.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
43
|
+
await this.storage.setAccessToken(accessToken);
|
|
44
|
+
await this.storage.setRefreshToken(refreshToken);
|
|
45
|
+
await this.storage.setUser(JSON.stringify(user));
|
|
53
46
|
this.setUser(user);
|
|
54
|
-
// Update axios headers if client exists
|
|
55
|
-
if (this.client) {
|
|
56
|
-
this.client.setToken(accessToken);
|
|
57
|
-
}
|
|
58
47
|
}
|
|
59
48
|
return res.data;
|
|
60
49
|
}
|
|
@@ -64,12 +53,9 @@ export class AuthService {
|
|
|
64
53
|
}
|
|
65
54
|
async refresh(refreshToken) {
|
|
66
55
|
const res = await this.http.post("/users/refresh", { refreshToken });
|
|
67
|
-
if (res.data.accessToken) {
|
|
68
|
-
await this.storage.
|
|
69
|
-
|
|
70
|
-
if (this.client) {
|
|
71
|
-
this.client.setToken(res.data.accessToken);
|
|
72
|
-
}
|
|
56
|
+
if (res.data.accessToken && res.data.refreshToken) {
|
|
57
|
+
await this.storage.setAccessToken(res.data.accessToken);
|
|
58
|
+
await this.storage.setRefreshToken(res.data.refreshToken);
|
|
73
59
|
}
|
|
74
60
|
return res.data;
|
|
75
61
|
}
|
|
@@ -83,9 +69,6 @@ export class AuthService {
|
|
|
83
69
|
async logout() {
|
|
84
70
|
await this.storage.clear();
|
|
85
71
|
this.setUser(null);
|
|
86
|
-
if (this.client) {
|
|
87
|
-
this.client.setToken(null);
|
|
88
|
-
}
|
|
89
72
|
}
|
|
90
73
|
// -------------------------
|
|
91
74
|
// GETTERS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth/auth.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export interface TokenStorage {
|
|
2
2
|
getAccessToken(): Promise<string | null>;
|
|
3
3
|
getRefreshToken(): Promise<string | null>;
|
|
4
|
-
|
|
4
|
+
setAccessToken(accessToken: string): Promise<void>;
|
|
5
|
+
setRefreshToken(accessToken: string): Promise<void>;
|
|
5
6
|
getUser(): Promise<string | null>;
|
|
6
7
|
setUser(userJson: string): Promise<void>;
|
|
7
8
|
clear(): Promise<void>;
|
|
@@ -9,7 +10,8 @@ export interface TokenStorage {
|
|
|
9
10
|
export declare class TokenStorageService implements TokenStorage {
|
|
10
11
|
getAccessToken(): Promise<string | null>;
|
|
11
12
|
getRefreshToken(): Promise<string | null>;
|
|
12
|
-
|
|
13
|
+
setAccessToken(accessToken: string): Promise<void>;
|
|
14
|
+
setRefreshToken(refreshToken: string): Promise<void>;
|
|
13
15
|
getUser(): Promise<string | null>;
|
|
14
16
|
setUser(userJson: string): Promise<void>;
|
|
15
17
|
clear(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenstorage.d.ts","sourceRoot":"","sources":["../../../src/services/tokenstorage/tokenstorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenstorage.d.ts","sourceRoot":"","sources":["../../../src/services/tokenstorage/tokenstorage.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,qBAAa,mBAAoB,YAAW,YAAY;IAI9C,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKxC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKzC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKjC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// src/services/tokenstorage.ts
|
|
2
1
|
import { Preferences } from "@capacitor/preferences";
|
|
3
2
|
export class TokenStorageService {
|
|
4
3
|
// -------------------------
|
|
@@ -12,8 +11,10 @@ export class TokenStorageService {
|
|
|
12
11
|
const { value } = await Preferences.get({ key: "refreshToken" });
|
|
13
12
|
return value;
|
|
14
13
|
}
|
|
15
|
-
async
|
|
14
|
+
async setAccessToken(accessToken) {
|
|
16
15
|
await Preferences.set({ key: "accessToken", value: accessToken });
|
|
16
|
+
}
|
|
17
|
+
async setRefreshToken(refreshToken) {
|
|
17
18
|
await Preferences.set({ key: "refreshToken", value: refreshToken });
|
|
18
19
|
}
|
|
19
20
|
// -------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenstorage.js","sourceRoot":"","sources":["../../../src/services/tokenstorage/tokenstorage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tokenstorage.js","sourceRoot":"","sources":["../../../src/services/tokenstorage/tokenstorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAYrD,MAAM,OAAO,mBAAmB;IAC5B,4BAA4B;IAC5B,SAAS;IACT,4BAA4B;IAC5B,KAAK,CAAC,cAAc;QAChB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACpC,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB;QACtC,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,4BAA4B;IAC5B,OAAO;IACP,4BAA4B;IAC5B,KAAK,CAAC,OAAO;QACT,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC1B,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,4BAA4B;IAC5B,YAAY;IACZ,4BAA4B;IAC5B,KAAK,CAAC,KAAK;QACP,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;QACjD,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;QAClD,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;CACJ"}
|