@taruvi/sdk 1.3.2 → 1.3.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/client.d.ts +29 -0
- package/dist/client.d.ts.map +1 -0
- package/{src/client.ts → dist/client.js} +37 -57
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/Analytics/AnalyticsClient.d.ts +9 -0
- package/dist/lib/Analytics/AnalyticsClient.d.ts.map +1 -0
- package/dist/lib/Analytics/AnalyticsClient.js +17 -0
- package/dist/lib/Analytics/AnalyticsClient.js.map +1 -0
- package/dist/lib/Analytics/types.d.ts +7 -0
- package/dist/lib/Analytics/types.d.ts.map +1 -0
- package/dist/lib/Analytics/types.js +2 -0
- package/dist/lib/Analytics/types.js.map +1 -0
- package/dist/lib/App/AppClient.d.ts +15 -0
- package/dist/lib/App/AppClient.d.ts.map +1 -0
- package/dist/lib/App/AppClient.js +41 -0
- package/dist/lib/App/AppClient.js.map +1 -0
- package/dist/lib/App/types.d.ts +36 -0
- package/dist/lib/App/types.d.ts.map +1 -0
- package/dist/lib/App/types.js +2 -0
- package/dist/lib/App/types.js.map +1 -0
- package/dist/lib/Database/DatabaseClient.d.ts +28 -0
- package/dist/lib/Database/DatabaseClient.d.ts.map +1 -0
- package/dist/lib/Database/DatabaseClient.js +116 -0
- package/dist/lib/Database/DatabaseClient.js.map +1 -0
- package/dist/lib/Database/types.d.ts +24 -0
- package/dist/lib/Database/types.d.ts.map +1 -0
- package/dist/lib/Database/types.js +2 -0
- package/dist/lib/Database/types.js.map +1 -0
- package/dist/lib/Function/FunctionsClient.d.ts +9 -0
- package/dist/lib/Function/FunctionsClient.d.ts.map +1 -0
- package/dist/lib/Function/FunctionsClient.js +20 -0
- package/dist/lib/Function/FunctionsClient.js.map +1 -0
- package/dist/lib/Function/types.d.ts +16 -0
- package/dist/lib/Function/types.d.ts.map +1 -0
- package/dist/lib/Function/types.js +2 -0
- package/dist/lib/Function/types.js.map +1 -0
- package/dist/lib/Graphs/GraphClient.d.ts +26 -0
- package/dist/lib/Graphs/GraphClient.d.ts.map +1 -0
- package/dist/lib/Graphs/GraphClient.js +86 -0
- package/dist/lib/Graphs/GraphClient.js.map +1 -0
- package/dist/lib/Graphs/types.d.ts +23 -0
- package/dist/lib/Graphs/types.d.ts.map +1 -0
- package/dist/lib/Graphs/types.js +2 -0
- package/dist/lib/Graphs/types.js.map +1 -0
- package/dist/lib/Policy/PolicyClient.d.ts +9 -0
- package/dist/lib/Policy/PolicyClient.d.ts.map +1 -0
- package/{src/lib/Policy/PolicyClient.ts → dist/lib/Policy/PolicyClient.js} +12 -17
- package/dist/lib/Policy/PolicyClient.js.map +1 -0
- package/dist/lib/Policy/types.d.ts +22 -0
- package/dist/lib/Policy/types.d.ts.map +1 -0
- package/dist/lib/Policy/types.js +2 -0
- package/dist/lib/Policy/types.js.map +1 -0
- package/dist/lib/Secrets/SecretsClient.d.ts +14 -0
- package/dist/lib/Secrets/SecretsClient.d.ts.map +1 -0
- package/dist/lib/Secrets/SecretsClient.js +32 -0
- package/dist/lib/Secrets/SecretsClient.js.map +1 -0
- package/dist/lib/Secrets/types.d.ts +13 -0
- package/dist/lib/Secrets/types.d.ts.map +1 -0
- package/dist/lib/Secrets/types.js +2 -0
- package/dist/lib/Secrets/types.js.map +1 -0
- package/dist/lib/Settings/SettingsClient.d.ts +7 -0
- package/dist/lib/Settings/SettingsClient.d.ts.map +1 -0
- package/dist/lib/Settings/SettingsClient.js +11 -0
- package/dist/lib/Settings/SettingsClient.js.map +1 -0
- package/dist/lib/Settings/types.d.ts +4 -0
- package/dist/lib/Settings/types.d.ts.map +1 -0
- package/dist/lib/Settings/types.js +2 -0
- package/dist/lib/Settings/types.js.map +1 -0
- package/dist/lib/Storage/StorageClient.d.ts +26 -0
- package/dist/lib/Storage/StorageClient.d.ts.map +1 -0
- package/dist/lib/Storage/StorageClient.js +78 -0
- package/dist/lib/Storage/StorageClient.js.map +1 -0
- package/dist/lib/Storage/types.d.ts +35 -0
- package/dist/lib/Storage/types.d.ts.map +1 -0
- package/dist/lib/Storage/types.js +2 -0
- package/dist/lib/Storage/types.js.map +1 -0
- package/dist/lib/auth/AuthClient.d.ts +66 -0
- package/dist/lib/auth/AuthClient.d.ts.map +1 -0
- package/{src/lib/auth/AuthClient.ts → dist/lib/auth/AuthClient.js} +69 -104
- package/dist/lib/auth/AuthClient.js.map +1 -0
- package/dist/lib/auth/types.d.ts +9 -0
- package/dist/lib/auth/types.d.ts.map +1 -0
- package/dist/lib/auth/types.js +2 -0
- package/dist/lib/auth/types.js.map +1 -0
- package/dist/lib/user/UserClient.d.ts +16 -0
- package/dist/lib/user/UserClient.d.ts.map +1 -0
- package/dist/lib/user/UserClient.js +41 -0
- package/dist/lib/user/UserClient.js.map +1 -0
- package/dist/lib/user/types.d.ts +100 -0
- package/dist/lib/user/types.d.ts.map +1 -0
- package/dist/lib/user/types.js +2 -0
- package/dist/lib/user/types.js.map +1 -0
- package/dist/lib-internal/errors/ErrorClient.d.ts +4 -0
- package/dist/lib-internal/errors/ErrorClient.d.ts.map +1 -0
- package/dist/lib-internal/errors/ErrorClient.js +6 -0
- package/dist/lib-internal/errors/ErrorClient.js.map +1 -0
- package/dist/lib-internal/errors/index.d.ts +8 -0
- package/dist/lib-internal/errors/index.d.ts.map +1 -0
- package/{src/lib-internal/errors/index.ts → dist/lib-internal/errors/index.js} +1 -3
- package/dist/lib-internal/errors/index.js.map +1 -0
- package/dist/lib-internal/errors/types.d.ts +83 -0
- package/dist/lib-internal/errors/types.d.ts.map +1 -0
- package/dist/lib-internal/errors/types.js +65 -0
- package/dist/lib-internal/errors/types.js.map +1 -0
- package/dist/lib-internal/http/HttpClient.d.ts +22 -0
- package/dist/lib-internal/http/HttpClient.d.ts.map +1 -0
- package/dist/lib-internal/http/HttpClient.js +65 -0
- package/dist/lib-internal/http/HttpClient.js.map +1 -0
- package/dist/lib-internal/http/types.d.ts +12 -0
- package/dist/lib-internal/http/types.d.ts.map +1 -0
- package/{src/lib-internal/http/types.ts → dist/lib-internal/http/types.js} +2 -3
- package/dist/lib-internal/http/types.js.map +1 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.d.ts +4 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.js +4 -0
- package/dist/lib-internal/routes/AnalyticsRoutes.js.map +1 -0
- package/dist/lib-internal/routes/AppRoutes.d.ts +10 -0
- package/dist/lib-internal/routes/AppRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/AppRoutes.js +6 -0
- package/dist/lib-internal/routes/AppRoutes.js.map +1 -0
- package/dist/lib-internal/routes/AuthRoutes.d.ts +2 -0
- package/dist/lib-internal/routes/AuthRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/AuthRoutes.js +2 -0
- package/dist/lib-internal/routes/AuthRoutes.js.map +1 -0
- package/dist/lib-internal/routes/DatabaseRoutes.d.ts +10 -0
- package/dist/lib-internal/routes/DatabaseRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/DatabaseRoutes.js +6 -0
- package/dist/lib-internal/routes/DatabaseRoutes.js.map +1 -0
- package/dist/lib-internal/routes/FunctionRoutes.d.ts +4 -0
- package/dist/lib-internal/routes/FunctionRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/FunctionRoutes.js +4 -0
- package/dist/lib-internal/routes/FunctionRoutes.js.map +1 -0
- package/dist/lib-internal/routes/GraphRoutes.d.ts +14 -0
- package/dist/lib-internal/routes/GraphRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/GraphRoutes.js +11 -0
- package/dist/lib-internal/routes/GraphRoutes.js.map +1 -0
- package/dist/lib-internal/routes/PolicyRoutes.d.ts +5 -0
- package/dist/lib-internal/routes/PolicyRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/PolicyRoutes.js +5 -0
- package/dist/lib-internal/routes/PolicyRoutes.js.map +1 -0
- package/dist/lib-internal/routes/SecretsRoutes.d.ts +6 -0
- package/dist/lib-internal/routes/SecretsRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/SecretsRoutes.js +6 -0
- package/dist/lib-internal/routes/SecretsRoutes.js.map +1 -0
- package/dist/lib-internal/routes/SettingsRoutes.d.ts +4 -0
- package/dist/lib-internal/routes/SettingsRoutes.d.ts.map +1 -0
- package/{src/lib-internal/routes/SettingsRoutes.ts → dist/lib-internal/routes/SettingsRoutes.js} +2 -1
- package/dist/lib-internal/routes/SettingsRoutes.js.map +1 -0
- package/dist/lib-internal/routes/StorageRoutes.d.ts +11 -0
- package/dist/lib-internal/routes/StorageRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/StorageRoutes.js +8 -0
- package/dist/lib-internal/routes/StorageRoutes.js.map +1 -0
- package/dist/lib-internal/routes/UserRoutes.d.ts +11 -0
- package/dist/lib-internal/routes/UserRoutes.d.ts.map +1 -0
- package/dist/lib-internal/routes/UserRoutes.js +11 -0
- package/dist/lib-internal/routes/UserRoutes.js.map +1 -0
- package/dist/lib-internal/routes/index.d.ts +2 -0
- package/dist/lib-internal/routes/index.d.ts.map +1 -0
- package/dist/lib-internal/routes/index.js +2 -0
- package/dist/lib-internal/routes/index.js.map +1 -0
- package/dist/lib-internal/token/TokenClient.d.ts +71 -0
- package/dist/lib-internal/token/TokenClient.d.ts.map +1 -0
- package/{src/lib-internal/token/TokenClient.ts → dist/lib-internal/token/TokenClient.js} +99 -144
- package/dist/lib-internal/token/TokenClient.js.map +1 -0
- package/dist/lib-internal/token/types.d.ts +2 -0
- package/dist/lib-internal/token/types.d.ts.map +1 -0
- package/dist/lib-internal/token/types.js +2 -0
- package/dist/lib-internal/token/types.js.map +1 -0
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/enums.d.ts +20 -0
- package/dist/utils/enums.d.ts.map +1 -0
- package/{src/utils/enums.ts → dist/utils/enums.js} +4 -10
- package/dist/utils/enums.js.map +1 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +32 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +8 -3
- package/.claude/settings.local.json +0 -19
- package/USAGE_EXAMPLE.md +0 -86
- package/src/index.ts +0 -41
- package/src/lib/Analytics/AnalyticsClient.ts +0 -24
- package/src/lib/Analytics/types.ts +0 -7
- package/src/lib/App/AppClient.ts +0 -54
- package/src/lib/App/types.ts +0 -42
- package/src/lib/Database/DatabaseClient.ts +0 -143
- package/src/lib/Database/types.ts +0 -49
- package/src/lib/Function/FunctionsClient.ts +0 -27
- package/src/lib/Function/types.ts +0 -17
- package/src/lib/Graphs/GraphClient.ts +0 -105
- package/src/lib/Graphs/types.ts +0 -26
- package/src/lib/Policy/types.ts +0 -24
- package/src/lib/Secrets/SecretsClient.ts +0 -39
- package/src/lib/Secrets/types.ts +0 -17
- package/src/lib/Settings/SettingsClient.ts +0 -14
- package/src/lib/Settings/types.ts +0 -4
- package/src/lib/Storage/StorageClient.ts +0 -105
- package/src/lib/Storage/types.ts +0 -41
- package/src/lib/auth/types.ts +0 -9
- package/src/lib/user/UserClient.ts +0 -52
- package/src/lib/user/types.ts +0 -111
- package/src/lib-internal/errors/ErrorClient.ts +0 -12
- package/src/lib-internal/errors/types.ts +0 -105
- package/src/lib-internal/http/HttpClient.ts +0 -91
- package/src/lib-internal/routes/AnalyticsRoutes.ts +0 -3
- package/src/lib-internal/routes/AppRoutes.ts +0 -9
- package/src/lib-internal/routes/AuthRoutes.ts +0 -0
- package/src/lib-internal/routes/DatabaseRoutes.ts +0 -9
- package/src/lib-internal/routes/FunctionRoutes.ts +0 -3
- package/src/lib-internal/routes/GraphRoutes.ts +0 -14
- package/src/lib-internal/routes/PolicyRoutes.ts +0 -4
- package/src/lib-internal/routes/SecretsRoutes.ts +0 -5
- package/src/lib-internal/routes/StorageRoutes.ts +0 -15
- package/src/lib-internal/routes/UserRoutes.ts +0 -9
- package/src/lib-internal/routes/index.ts +0 -0
- package/src/lib-internal/token/types.ts +0 -0
- package/src/types.ts +0 -71
- package/src/utils/utils.ts +0 -33
- package/tests/mocks/db.json +0 -1
- package/tsconfig.json +0 -43
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Client } from "../../client.js";
|
|
2
|
+
import type { UserDataResponse } from "../user/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Auth Client - Handles user authentication using Web UI Flow
|
|
5
|
+
* Implements cross-domain authentication with redirect-based token delivery
|
|
6
|
+
*
|
|
7
|
+
* Flow:
|
|
8
|
+
* 1. User calls login() → Redirects to backend /accounts/login/
|
|
9
|
+
* 2. User authenticates on backend
|
|
10
|
+
* 3. Backend redirects back with tokens in URL hash
|
|
11
|
+
* 4. Client extracts and stores tokens automatically
|
|
12
|
+
*/
|
|
13
|
+
export declare class Auth {
|
|
14
|
+
private client;
|
|
15
|
+
constructor(client: Client);
|
|
16
|
+
/**
|
|
17
|
+
* Redirect to login page (Web UI Flow)
|
|
18
|
+
* @param callbackUrl - URL to redirect to after successful login (defaults to current page)
|
|
19
|
+
*/
|
|
20
|
+
login(callbackUrl?: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Redirect to signup page (Web UI Flow)
|
|
23
|
+
* @param callbackUrl - URL to redirect to after successful signup (defaults to current page)
|
|
24
|
+
*/
|
|
25
|
+
signup(callbackUrl?: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Logout user and redirect to logout page
|
|
28
|
+
* Fetches frontendUrl from site settings for redirect
|
|
29
|
+
* @param callbackUrl - URL to redirect to after logout (overrides frontendUrl from settings)
|
|
30
|
+
*/
|
|
31
|
+
logout(callbackUrl?: string): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if user is authenticated
|
|
34
|
+
*/
|
|
35
|
+
isUserAuthenticated(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Get the current access token
|
|
38
|
+
*/
|
|
39
|
+
getAccessToken(): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Get the current refresh token
|
|
42
|
+
*/
|
|
43
|
+
getRefreshToken(): string | null;
|
|
44
|
+
/**
|
|
45
|
+
* Check if the access token is expired
|
|
46
|
+
*/
|
|
47
|
+
isTokenExpired(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Refresh the access token using the refresh token
|
|
50
|
+
* ⚠️ IMPORTANT: Taruvi uses refresh token rotation
|
|
51
|
+
* You will receive BOTH a new access token AND a new refresh token
|
|
52
|
+
*
|
|
53
|
+
* @returns Promise with new tokens or null if refresh failed
|
|
54
|
+
*/
|
|
55
|
+
refreshAccessToken(): Promise<{
|
|
56
|
+
access: string;
|
|
57
|
+
refresh: string;
|
|
58
|
+
expires_in: number;
|
|
59
|
+
} | null>;
|
|
60
|
+
/**
|
|
61
|
+
* Get current user from API
|
|
62
|
+
* @returns Promise with user data or null if not authenticated
|
|
63
|
+
*/
|
|
64
|
+
getCurrentUser(): Promise<UserDataResponse | null>;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=AuthClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthClient.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/AuthClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;;;;;;;GASG;AACH,qBAAa,IAAI;IACb,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAI1B;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBjC;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAuBlC;;;;OAIG;IACG,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCjD;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;;;OAMG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAgDnG;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAY3D"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import type { Client } from "../../client.js";
|
|
2
|
-
import type { UserDataResponse } from "../user/types.js";
|
|
3
1
|
import { UserRoutes } from "../../lib-internal/routes/UserRoutes.js";
|
|
4
|
-
|
|
5
2
|
/**
|
|
6
3
|
* Auth Client - Handles user authentication using Web UI Flow
|
|
7
4
|
* Implements cross-domain authentication with redirect-based token delivery
|
|
@@ -13,132 +10,109 @@ import { UserRoutes } from "../../lib-internal/routes/UserRoutes.js";
|
|
|
13
10
|
* 4. Client extracts and stores tokens automatically
|
|
14
11
|
*/
|
|
15
12
|
export class Auth {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.client = client
|
|
13
|
+
client;
|
|
14
|
+
constructor(client) {
|
|
15
|
+
this.client = client;
|
|
20
16
|
}
|
|
21
|
-
|
|
22
17
|
/**
|
|
23
18
|
* Redirect to login page (Web UI Flow)
|
|
24
19
|
* @param callbackUrl - URL to redirect to after successful login (defaults to current page)
|
|
25
20
|
*/
|
|
26
|
-
login(callbackUrl
|
|
21
|
+
login(callbackUrl) {
|
|
27
22
|
if (typeof window === "undefined") {
|
|
28
|
-
console.error("login() can only be called in browser environment")
|
|
29
|
-
return
|
|
23
|
+
console.error("login() can only be called in browser environment");
|
|
24
|
+
return;
|
|
30
25
|
}
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const deskUrl = config.deskUrl || config.baseUrl
|
|
35
|
-
|
|
26
|
+
const config = this.client.getConfig();
|
|
27
|
+
const callback = callbackUrl || window.location.origin + window.location.pathname;
|
|
28
|
+
const deskUrl = config.deskUrl || config.baseUrl;
|
|
36
29
|
// Redirect to /accounts/login/ with redirect_to parameter
|
|
37
|
-
const loginUrl = `${deskUrl}/accounts/login/?redirect_to=${encodeURIComponent(callback)}
|
|
38
|
-
|
|
30
|
+
const loginUrl = `${deskUrl}/accounts/login/?redirect_to=${encodeURIComponent(callback)}`;
|
|
39
31
|
// Optional: Store state before redirecting
|
|
40
32
|
if (typeof sessionStorage !== "undefined") {
|
|
41
33
|
sessionStorage.setItem("auth_state", JSON.stringify({
|
|
42
34
|
returnTo: window.location.pathname,
|
|
43
35
|
timestamp: Date.now()
|
|
44
|
-
}))
|
|
36
|
+
}));
|
|
45
37
|
}
|
|
46
|
-
|
|
47
|
-
window.location.href = loginUrl
|
|
38
|
+
window.location.href = loginUrl;
|
|
48
39
|
}
|
|
49
|
-
|
|
50
40
|
/**
|
|
51
41
|
* Redirect to signup page (Web UI Flow)
|
|
52
42
|
* @param callbackUrl - URL to redirect to after successful signup (defaults to current page)
|
|
53
43
|
*/
|
|
54
|
-
signup(callbackUrl
|
|
44
|
+
signup(callbackUrl) {
|
|
55
45
|
if (typeof window === "undefined") {
|
|
56
|
-
console.error("signup() can only be called in browser environment")
|
|
57
|
-
return
|
|
46
|
+
console.error("signup() can only be called in browser environment");
|
|
47
|
+
return;
|
|
58
48
|
}
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
const callback = callbackUrl || window.location.origin + window.location.pathname
|
|
62
|
-
|
|
49
|
+
const config = this.client.getConfig();
|
|
50
|
+
const callback = callbackUrl || window.location.origin + window.location.pathname;
|
|
63
51
|
// Redirect to /accounts/signup/ with redirect_to parameter
|
|
64
|
-
const signupUrl = `${config.baseUrl}/accounts/signup/?redirect_to=${encodeURIComponent(callback)}
|
|
65
|
-
|
|
52
|
+
const signupUrl = `${config.baseUrl}/accounts/signup/?redirect_to=${encodeURIComponent(callback)}`;
|
|
66
53
|
// Optional: Store state before redirecting
|
|
67
54
|
if (typeof sessionStorage !== "undefined") {
|
|
68
55
|
sessionStorage.setItem("auth_state", JSON.stringify({
|
|
69
56
|
returnTo: window.location.pathname,
|
|
70
57
|
timestamp: Date.now()
|
|
71
|
-
}))
|
|
58
|
+
}));
|
|
72
59
|
}
|
|
73
|
-
|
|
74
|
-
window.location.href = signupUrl
|
|
60
|
+
window.location.href = signupUrl;
|
|
75
61
|
}
|
|
76
|
-
|
|
77
62
|
/**
|
|
78
63
|
* Logout user and redirect to logout page
|
|
79
64
|
* Fetches frontendUrl from site settings for redirect
|
|
80
65
|
* @param callbackUrl - URL to redirect to after logout (overrides frontendUrl from settings)
|
|
81
66
|
*/
|
|
82
|
-
async logout(callbackUrl
|
|
67
|
+
async logout(callbackUrl) {
|
|
83
68
|
if (typeof window === "undefined") {
|
|
84
|
-
console.error("logout() can only be called in browser environment")
|
|
85
|
-
return
|
|
69
|
+
console.error("logout() can only be called in browser environment");
|
|
70
|
+
return;
|
|
86
71
|
}
|
|
87
|
-
|
|
88
72
|
// Clear tokens immediately
|
|
89
|
-
this.client.tokenClient.clearTokens()
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
let callback: string = callbackUrl || ""
|
|
94
|
-
|
|
73
|
+
this.client.tokenClient.clearTokens();
|
|
74
|
+
const config = this.client.getConfig();
|
|
75
|
+
const deskUrl = config.deskUrl || config.baseUrl;
|
|
76
|
+
let callback = callbackUrl || "";
|
|
95
77
|
// If no callback provided, fetch frontendUrl from site settings
|
|
96
78
|
if (!callback) {
|
|
97
79
|
try {
|
|
98
|
-
const settings = await this.client.httpClient.get
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
callback = window.location.origin
|
|
80
|
+
const settings = await this.client.httpClient.get(`api/sites/${config.appSlug}/metadata`);
|
|
81
|
+
callback = settings.frontend_url || window.location.origin;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.error("Failed to fetch site settings, using origin:", error);
|
|
85
|
+
callback = window.location.origin;
|
|
105
86
|
}
|
|
106
87
|
}
|
|
107
|
-
|
|
108
88
|
// Redirect to /accounts/logout/
|
|
109
|
-
const logoutUrl = `${deskUrl}/accounts/logout/?redirect_to=${encodeURIComponent(callback)}
|
|
110
|
-
|
|
111
|
-
window.location.href = logoutUrl
|
|
89
|
+
const logoutUrl = `${deskUrl}/accounts/logout/?redirect_to=${encodeURIComponent(callback)}`;
|
|
90
|
+
window.location.href = logoutUrl;
|
|
112
91
|
}
|
|
113
|
-
|
|
114
92
|
/**
|
|
115
93
|
* Check if user is authenticated
|
|
116
94
|
*/
|
|
117
|
-
isUserAuthenticated()
|
|
118
|
-
return this.client.tokenClient.isAuthenticated()
|
|
95
|
+
isUserAuthenticated() {
|
|
96
|
+
return this.client.tokenClient.isAuthenticated();
|
|
119
97
|
}
|
|
120
|
-
|
|
121
98
|
/**
|
|
122
99
|
* Get the current access token
|
|
123
100
|
*/
|
|
124
|
-
getAccessToken()
|
|
125
|
-
return this.client.tokenClient.getToken()
|
|
101
|
+
getAccessToken() {
|
|
102
|
+
return this.client.tokenClient.getToken();
|
|
126
103
|
}
|
|
127
|
-
|
|
128
104
|
/**
|
|
129
105
|
* Get the current refresh token
|
|
130
106
|
*/
|
|
131
|
-
getRefreshToken()
|
|
132
|
-
return this.client.tokenClient.getRefreshToken()
|
|
107
|
+
getRefreshToken() {
|
|
108
|
+
return this.client.tokenClient.getRefreshToken();
|
|
133
109
|
}
|
|
134
|
-
|
|
135
110
|
/**
|
|
136
111
|
* Check if the access token is expired
|
|
137
112
|
*/
|
|
138
|
-
isTokenExpired()
|
|
139
|
-
return this.client.tokenClient.isTokenExpired()
|
|
113
|
+
isTokenExpired() {
|
|
114
|
+
return this.client.tokenClient.isTokenExpired();
|
|
140
115
|
}
|
|
141
|
-
|
|
142
116
|
/**
|
|
143
117
|
* Refresh the access token using the refresh token
|
|
144
118
|
* ⚠️ IMPORTANT: Taruvi uses refresh token rotation
|
|
@@ -146,68 +120,59 @@ export class Auth {
|
|
|
146
120
|
*
|
|
147
121
|
* @returns Promise with new tokens or null if refresh failed
|
|
148
122
|
*/
|
|
149
|
-
async refreshAccessToken()
|
|
150
|
-
const refreshToken = this.client.tokenClient.getRefreshToken()
|
|
151
|
-
|
|
123
|
+
async refreshAccessToken() {
|
|
124
|
+
const refreshToken = this.client.tokenClient.getRefreshToken();
|
|
152
125
|
if (!refreshToken) {
|
|
153
|
-
console.error("No refresh token available")
|
|
154
|
-
return null
|
|
126
|
+
console.error("No refresh token available");
|
|
127
|
+
return null;
|
|
155
128
|
}
|
|
156
|
-
|
|
157
129
|
try {
|
|
158
|
-
const config = this.client.getConfig()
|
|
130
|
+
const config = this.client.getConfig();
|
|
159
131
|
const response = await fetch(`${config.baseUrl}/api/cloud/auth/jwt/token/refresh/`, {
|
|
160
132
|
method: "POST",
|
|
161
133
|
headers: { "Content-Type": "application/json" },
|
|
162
134
|
body: JSON.stringify({ refresh: refreshToken })
|
|
163
|
-
})
|
|
164
|
-
|
|
135
|
+
});
|
|
165
136
|
if (!response.ok) {
|
|
166
|
-
throw new Error(`Token refresh failed: ${response.statusText}`)
|
|
137
|
+
throw new Error(`Token refresh failed: ${response.statusText}`);
|
|
167
138
|
}
|
|
168
|
-
|
|
169
|
-
const data = await response.json()
|
|
170
|
-
|
|
139
|
+
const data = await response.json();
|
|
171
140
|
// Update tokens in storage (both access and refresh due to rotation)
|
|
172
|
-
this.client.tokenClient.updateAccessToken(data.access, data.expires_in || 172800)
|
|
173
|
-
|
|
141
|
+
this.client.tokenClient.updateAccessToken(data.access, data.expires_in || 172800);
|
|
174
142
|
if (data.refresh) {
|
|
175
|
-
this.client.tokenClient.updateRefreshToken(data.refresh)
|
|
143
|
+
this.client.tokenClient.updateRefreshToken(data.refresh);
|
|
176
144
|
}
|
|
177
|
-
|
|
178
145
|
return {
|
|
179
146
|
access: data.access,
|
|
180
147
|
refresh: data.refresh || refreshToken,
|
|
181
148
|
expires_in: data.expires_in || 172800
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
console.error("Failed to refresh access token:", error);
|
|
186
153
|
// Clear tokens and redirect to login
|
|
187
|
-
this.client.tokenClient.clearTokens()
|
|
188
|
-
|
|
154
|
+
this.client.tokenClient.clearTokens();
|
|
189
155
|
if (typeof window !== "undefined") {
|
|
190
|
-
this.login()
|
|
156
|
+
this.login();
|
|
191
157
|
}
|
|
192
|
-
|
|
193
|
-
return null
|
|
158
|
+
return null;
|
|
194
159
|
}
|
|
195
160
|
}
|
|
196
|
-
|
|
197
161
|
/**
|
|
198
162
|
* Get current user from API
|
|
199
163
|
* @returns Promise with user data or null if not authenticated
|
|
200
164
|
*/
|
|
201
|
-
async getCurrentUser()
|
|
165
|
+
async getCurrentUser() {
|
|
202
166
|
if (!this.isUserAuthenticated()) {
|
|
203
|
-
return null
|
|
167
|
+
return null;
|
|
204
168
|
}
|
|
205
|
-
|
|
206
169
|
try {
|
|
207
|
-
return await this.client.httpClient.get
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
|
|
170
|
+
return await this.client.httpClient.get(UserRoutes.getCurrentUser());
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
console.error("Failed to fetch current user:", error);
|
|
174
|
+
return null;
|
|
211
175
|
}
|
|
212
176
|
}
|
|
213
|
-
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=AuthClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthClient.js","sourceRoot":"","sources":["../../../src/lib/auth/AuthClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,OAAO,IAAI;IACL,MAAM,CAAQ;IAEtB,YAAY,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAoB;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;YAClE,OAAM;QACV,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QACtC,MAAM,QAAQ,GAAG,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAA;QAEhD,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,GAAG,OAAO,gCAAgC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QAEzF,2CAA2C;QAC3C,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YACxC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC,CAAA;QACP,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAA;IACnC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,WAAoB;QACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;YACnE,OAAM;QACV,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QACtC,MAAM,QAAQ,GAAG,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;QAEjF,2DAA2D;QAC3D,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,OAAO,iCAAiC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QAElG,2CAA2C;QAC3C,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YACxC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;gBAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC,CAAA;QACP,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,WAAoB;QAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;YACnE,OAAM;QACV,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;QAErC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;QACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAA;QAChD,IAAI,QAAQ,GAAW,WAAW,IAAI,EAAE,CAAA;QAExC,gEAAgE;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAC7C,aAAa,MAAM,CAAC,OAAO,WAAW,CACzC,CAAA;gBACD,QAAQ,GAAG,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAA;gBACpE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;YACrC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAG,GAAG,OAAO,iCAAiC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAA;QAE3F,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;IACpD,CAAC;IAED;;OAEG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;IACpD,CAAC;IAED;;OAEG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;QAE9D,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAA;QACf,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,oCAAoC,EAAE;gBAChF,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;aAClD,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YACnE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YAElC,qEAAqE;YACrE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,CAAA;YAEjF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC5D,CAAC;YAED,OAAO;gBACH,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,YAAY;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,MAAM;aACxC,CAAA;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;YAEvD,qCAAqC;YACrC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;YAErC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,EAAE,CAAA;YAChB,CAAC;YAED,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAChB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACf,CAAC;QAED,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAmB,UAAU,CAAC,cAAc,EAAE,CAAC,CAAA;QAC1F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAA;YACrD,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/auth/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Client } from "../../client.js";
|
|
2
|
+
import type { UserCreateRequest, UserCreateResponse, UserDataResponse, UserList, UserUpdateRequest, UserAppsResponse } from "./types.js";
|
|
3
|
+
export declare class User {
|
|
4
|
+
private client;
|
|
5
|
+
constructor(client: Client);
|
|
6
|
+
getUserData(): Promise<UserDataResponse>;
|
|
7
|
+
updateUser(username: string, body: UserUpdateRequest): Promise<UserCreateResponse>;
|
|
8
|
+
getUser(username: string): Promise<UserDataResponse>;
|
|
9
|
+
list(filters: UserList): Promise<unknown>;
|
|
10
|
+
getUserApps(username: string): Promise<UserAppsResponse>;
|
|
11
|
+
getPreferences(): Promise<any>;
|
|
12
|
+
updatePreferences(body: Record<string, unknown>): Promise<any>;
|
|
13
|
+
createUser(userData: UserCreateRequest): Promise<UserCreateResponse>;
|
|
14
|
+
deleteUser(username: string): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=UserClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserClient.d.ts","sourceRoot":"","sources":["../../../src/lib/user/UserClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKzI,qBAAa,IAAI;IACb,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAKpB,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAKxC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIlF,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIpD,IAAI,CAAC,OAAO,EAAE,QAAQ;IAKtB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIxD,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;IAI9B,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAK9D,UAAU,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQpE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMpD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { UserRoutes } from "../../lib-internal/routes/UserRoutes.js";
|
|
2
|
+
import { buildQueryString } from "../../utils/utils.js";
|
|
3
|
+
export class User {
|
|
4
|
+
client;
|
|
5
|
+
constructor(client) {
|
|
6
|
+
this.client = client;
|
|
7
|
+
}
|
|
8
|
+
// - getUserProfile
|
|
9
|
+
async getUserData() {
|
|
10
|
+
return await this.client.httpClient.get(UserRoutes.getCurrentUser());
|
|
11
|
+
}
|
|
12
|
+
// - updateUser
|
|
13
|
+
async updateUser(username, body) {
|
|
14
|
+
return await this.client.httpClient.put(UserRoutes.updateUser(username), body);
|
|
15
|
+
}
|
|
16
|
+
async getUser(username) {
|
|
17
|
+
return await this.client.httpClient.get(UserRoutes.getUser(username));
|
|
18
|
+
}
|
|
19
|
+
async list(filters) {
|
|
20
|
+
const queryString = buildQueryString(filters);
|
|
21
|
+
return await this.client.httpClient.get(UserRoutes.listUser(queryString));
|
|
22
|
+
}
|
|
23
|
+
async getUserApps(username) {
|
|
24
|
+
return await this.client.httpClient.get(UserRoutes.getUserApps(username));
|
|
25
|
+
}
|
|
26
|
+
async getPreferences() {
|
|
27
|
+
return await this.client.httpClient.get(UserRoutes.getPreferences());
|
|
28
|
+
}
|
|
29
|
+
async updatePreferences(body) {
|
|
30
|
+
return await this.client.httpClient.post(UserRoutes.getPreferences(), body);
|
|
31
|
+
}
|
|
32
|
+
// - createUser
|
|
33
|
+
async createUser(userData) {
|
|
34
|
+
return await this.client.httpClient.post(UserRoutes.baseUrl, userData);
|
|
35
|
+
}
|
|
36
|
+
// - deleteUser
|
|
37
|
+
async deleteUser(username) {
|
|
38
|
+
return await this.client.httpClient.delete(UserRoutes.deleteUser(username));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=UserClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserClient.js","sourceRoot":"","sources":["../../../src/lib/user/UserClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,MAAM,OAAO,IAAI;IACL,MAAM,CAAQ;IAEtB,YAAY,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,WAAW;QACb,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAmB,UAAU,CAAC,cAAc,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,eAAe;IACf,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,IAAuB;QACtD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC1B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAmB,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAiB;QACxB,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAA6C,CAAC,CAAA;QACnF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;IAC7E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB;QAC9B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAmB,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC/F,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAA6B;QACjD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAA;IAC/E,CAAC;IAED,eAAe;IACf,KAAK,CAAC,UAAU,CAAC,QAA2B;QACxC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CACpC,UAAU,CAAC,OAAO,EAClB,QAAQ,CACX,CAAA;IACL,CAAC;IAED,eAAe;IACf,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC7B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC/E,CAAC;CAIJ"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export interface UserCreateRequest {
|
|
2
|
+
username: string;
|
|
3
|
+
email: string;
|
|
4
|
+
first_name: string;
|
|
5
|
+
last_name: string;
|
|
6
|
+
password: string;
|
|
7
|
+
confirm_password: string;
|
|
8
|
+
is_active?: boolean;
|
|
9
|
+
is_staff?: boolean;
|
|
10
|
+
attributes?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface UserCreateResponse {
|
|
13
|
+
id: number;
|
|
14
|
+
uuid: string;
|
|
15
|
+
username: string;
|
|
16
|
+
email: string;
|
|
17
|
+
first_name: string;
|
|
18
|
+
last_name: string;
|
|
19
|
+
is_active: boolean;
|
|
20
|
+
is_staff: boolean;
|
|
21
|
+
is_superuser: boolean;
|
|
22
|
+
is_deleted: boolean;
|
|
23
|
+
date_joined: string;
|
|
24
|
+
}
|
|
25
|
+
export interface UserGroup {
|
|
26
|
+
id: number;
|
|
27
|
+
name: string;
|
|
28
|
+
}
|
|
29
|
+
export interface UserPermission {
|
|
30
|
+
id: number;
|
|
31
|
+
name: string;
|
|
32
|
+
codename: string;
|
|
33
|
+
content_type: string;
|
|
34
|
+
}
|
|
35
|
+
export interface UserRole {
|
|
36
|
+
name: string;
|
|
37
|
+
slug: string;
|
|
38
|
+
type: "app_role";
|
|
39
|
+
app_slug: string;
|
|
40
|
+
source: "direct" | "site_role" | "inherited";
|
|
41
|
+
}
|
|
42
|
+
export interface UserDataResponse {
|
|
43
|
+
id: number;
|
|
44
|
+
username: string;
|
|
45
|
+
email: string;
|
|
46
|
+
first_name: string;
|
|
47
|
+
last_name: string;
|
|
48
|
+
full_name: string;
|
|
49
|
+
is_active: boolean;
|
|
50
|
+
is_staff: boolean;
|
|
51
|
+
is_superuser: boolean;
|
|
52
|
+
is_deleted: boolean;
|
|
53
|
+
date_joined: string;
|
|
54
|
+
last_login: string;
|
|
55
|
+
groups: UserGroup[];
|
|
56
|
+
user_permissions: UserPermission[];
|
|
57
|
+
attributes: Record<string, unknown>;
|
|
58
|
+
missing_attributes: string[];
|
|
59
|
+
roles: UserRole[];
|
|
60
|
+
}
|
|
61
|
+
export interface UserUpdateRequest {
|
|
62
|
+
username?: string;
|
|
63
|
+
email?: string;
|
|
64
|
+
first_name?: string;
|
|
65
|
+
last_name?: string;
|
|
66
|
+
is_active?: boolean;
|
|
67
|
+
is_staff?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface UserUpdateResponse {
|
|
70
|
+
id: number;
|
|
71
|
+
uuid: string;
|
|
72
|
+
username: string;
|
|
73
|
+
email: string;
|
|
74
|
+
first_name: string;
|
|
75
|
+
last_name: string;
|
|
76
|
+
is_active: boolean;
|
|
77
|
+
is_staff: boolean;
|
|
78
|
+
is_superuser: boolean;
|
|
79
|
+
is_deleted: boolean;
|
|
80
|
+
date_joined: string;
|
|
81
|
+
}
|
|
82
|
+
export interface UserList {
|
|
83
|
+
search: string;
|
|
84
|
+
is_active: boolean;
|
|
85
|
+
is_staff: boolean;
|
|
86
|
+
is_superuser: boolean;
|
|
87
|
+
is_deleted: boolean;
|
|
88
|
+
ordering: string;
|
|
89
|
+
page: Number;
|
|
90
|
+
page_size: Number;
|
|
91
|
+
}
|
|
92
|
+
export interface UserApp {
|
|
93
|
+
name: string;
|
|
94
|
+
slug: string;
|
|
95
|
+
icon: string;
|
|
96
|
+
url: string;
|
|
97
|
+
display_name: string;
|
|
98
|
+
}
|
|
99
|
+
export type UserAppsResponse = UserApp[];
|
|
100
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/user/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/user/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorClient.d.ts","sourceRoot":"","sources":["../../../src/lib-internal/errors/ErrorClient.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;;CAWvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorClient.js","sourceRoot":"","sources":["../../../src/lib-internal/errors/ErrorClient.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAEpB;QACI,iCAAiC;IACrC,CAAC;CAOJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling module exports
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive error handling for the Taruvi SDK
|
|
5
|
+
* including typed error classes, error codes, and utility functions.
|
|
6
|
+
*/
|
|
7
|
+
export { ErrorClient } from './ErrorClient.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib-internal/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
* This module provides comprehensive error handling for the Taruvi SDK
|
|
5
5
|
* including typed error classes, error codes, and utility functions.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
7
|
// Export error client
|
|
9
8
|
export { ErrorClient } from './ErrorClient.js';
|
|
10
|
-
|
|
11
9
|
// TODO: Export all error classes when implemented
|
|
12
10
|
// - TaruviError
|
|
13
11
|
// - AuthError
|
|
@@ -16,10 +14,10 @@ export { ErrorClient } from './ErrorClient.js';
|
|
|
16
14
|
// - NetworkError
|
|
17
15
|
// - ValidationError
|
|
18
16
|
// - FunctionError
|
|
19
|
-
|
|
20
17
|
// TODO: Export types when implemented
|
|
21
18
|
// - ErrorCode
|
|
22
19
|
// - ErrorSeverity
|
|
23
20
|
// - ErrorResponse
|
|
24
21
|
// - HttpErrorResponse
|
|
25
22
|
// - ValidationErrorDetail
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib-internal/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,kDAAkD;AAClD,gBAAgB;AAChB,cAAc;AACd,kBAAkB;AAClB,iBAAiB;AACjB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAElB,sCAAsC;AACtC,cAAc;AACd,kBAAkB;AAClB,kBAAkB;AAClB,sBAAsB;AACtB,0BAA0B"}
|