@nexys/user-management-sdk 0.1.2 → 0.1.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 +49 -4
- package/dist/client.js +79 -46
- package/dist/context.d.ts +3 -3
- package/dist/request.d.ts +9 -0
- package/dist/request.js +17 -0
- package/dist/webauthn.js +1 -1
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as R from "./request.js";
|
|
2
|
+
import { type Locale, type Profile, type SSOService, type UserAdmin, Permission, UserStatus } from "./type.js";
|
|
2
3
|
export declare const redirectUrl: (ssoService: SSOService) => string;
|
|
3
4
|
declare class AuthClient {
|
|
4
|
-
apiBasename
|
|
5
|
-
|
|
5
|
+
private apiBasename;
|
|
6
|
+
makeRequest: <A>(params: R.MakeRequestParams) => Promise<A>;
|
|
7
|
+
constructor(apiBasename: string, makeRequestOverride?: <A>(params: R.MakeRequestParams) => Promise<A>);
|
|
6
8
|
authSSOUrl: (service: SSOService, params?: Partial<{
|
|
7
9
|
isSignup: boolean;
|
|
8
10
|
redirectUrl: string;
|
|
@@ -25,8 +27,46 @@ declare class AuthClient {
|
|
|
25
27
|
permissions: Permission[];
|
|
26
28
|
locale: Locale;
|
|
27
29
|
}>;
|
|
28
|
-
authLogout: () => Promise<
|
|
30
|
+
authLogout: () => Promise<unknown>;
|
|
29
31
|
adminUserList: () => Promise<UserAdmin[]>;
|
|
32
|
+
adminUserInsert: (data: {
|
|
33
|
+
profile: {
|
|
34
|
+
firstName: string;
|
|
35
|
+
lastName: string;
|
|
36
|
+
email: string;
|
|
37
|
+
};
|
|
38
|
+
locale?: Locale;
|
|
39
|
+
status?: UserStatus;
|
|
40
|
+
}) => Promise<{
|
|
41
|
+
uuid: string;
|
|
42
|
+
}>;
|
|
43
|
+
adminUserDelete: (uuid: string) => Promise<{
|
|
44
|
+
success: boolean;
|
|
45
|
+
}>;
|
|
46
|
+
superadminUserList: (params?: {
|
|
47
|
+
uuid?: string;
|
|
48
|
+
order?: {
|
|
49
|
+
by: "firstName" | "lastName" | "logDateAdded";
|
|
50
|
+
desc: boolean;
|
|
51
|
+
};
|
|
52
|
+
take?: number;
|
|
53
|
+
}) => Promise<UserAdmin[]>;
|
|
54
|
+
superadminUserInsert: (data: {
|
|
55
|
+
firstName: string;
|
|
56
|
+
lastName: string;
|
|
57
|
+
email: string;
|
|
58
|
+
instance: {
|
|
59
|
+
uuid: string;
|
|
60
|
+
};
|
|
61
|
+
status?: UserStatus;
|
|
62
|
+
localeCountry?: string;
|
|
63
|
+
localeLang?: string;
|
|
64
|
+
}) => Promise<{
|
|
65
|
+
uuid: string;
|
|
66
|
+
}>;
|
|
67
|
+
superadminUserDelete: (uuid: string) => Promise<{
|
|
68
|
+
success: boolean;
|
|
69
|
+
}>;
|
|
30
70
|
authRefresh: () => Promise<{
|
|
31
71
|
message: string;
|
|
32
72
|
}>;
|
|
@@ -36,5 +76,10 @@ declare class AuthClient {
|
|
|
36
76
|
uuid: string;
|
|
37
77
|
name: string;
|
|
38
78
|
}>;
|
|
79
|
+
loadAvailableProviders: () => Promise<Array<{
|
|
80
|
+
service: SSOService;
|
|
81
|
+
name: string;
|
|
82
|
+
enabled: boolean;
|
|
83
|
+
}>>;
|
|
39
84
|
}
|
|
40
85
|
export default AuthClient;
|
package/dist/client.js
CHANGED
|
@@ -1,70 +1,103 @@
|
|
|
1
|
-
import
|
|
2
|
-
// auth stuff
|
|
3
|
-
const headers = { "content-type": "application/json" };
|
|
1
|
+
import * as R from "./request.js";
|
|
4
2
|
export const redirectUrl = (ssoService) => [window.location.origin, "auth", "sso", ssoService, "redirect"].join("/");
|
|
5
3
|
class AuthClient {
|
|
6
4
|
apiBasename;
|
|
7
|
-
|
|
5
|
+
makeRequest;
|
|
6
|
+
constructor(apiBasename, makeRequestOverride) {
|
|
8
7
|
this.apiBasename = apiBasename;
|
|
8
|
+
this.makeRequest = makeRequestOverride || R.makeRequest(this.apiBasename);
|
|
9
|
+
console.log("api base name", this.apiBasename);
|
|
9
10
|
}
|
|
10
11
|
authSSOUrl = async (service, params) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
return Promise.reject(response.json());
|
|
12
|
+
return this.makeRequest({
|
|
13
|
+
path: `/auth/oauth/${service}/url`,
|
|
14
|
+
method: "GET",
|
|
15
|
+
queryParams: params,
|
|
16
|
+
});
|
|
17
17
|
};
|
|
18
18
|
authGoogleRedirect = async (ssoService, code, state) => {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const j = await response.json();
|
|
27
|
-
if (response.ok) {
|
|
28
|
-
// here refresh to get access token
|
|
29
|
-
await this.authRefresh();
|
|
30
|
-
return j;
|
|
31
|
-
}
|
|
19
|
+
const j = await this.makeRequest({
|
|
20
|
+
path: `/auth/oauth/${ssoService}/callback`,
|
|
21
|
+
method: "GET",
|
|
22
|
+
queryParams: { code, state },
|
|
23
|
+
});
|
|
24
|
+
// here refresh to get access token
|
|
25
|
+
await this.authRefresh();
|
|
32
26
|
return j;
|
|
33
27
|
};
|
|
34
28
|
getProfile = async () => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
return j;
|
|
29
|
+
return this.makeRequest({
|
|
30
|
+
path: "/profile",
|
|
31
|
+
method: "GET",
|
|
32
|
+
});
|
|
41
33
|
};
|
|
42
34
|
authLogout = async () => {
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
return this.makeRequest({
|
|
36
|
+
path: "/auth/logout",
|
|
37
|
+
method: "GET",
|
|
38
|
+
});
|
|
45
39
|
};
|
|
40
|
+
// Admin routes (tenant implicit from authenticated user context)
|
|
46
41
|
adminUserList = async () => {
|
|
47
|
-
|
|
42
|
+
return this.makeRequest({
|
|
43
|
+
path: "/admin/user/list",
|
|
48
44
|
method: "POST",
|
|
49
45
|
});
|
|
50
|
-
|
|
46
|
+
};
|
|
47
|
+
adminUserInsert = async (data) => {
|
|
48
|
+
return this.makeRequest({
|
|
49
|
+
path: "/admin/user/insert",
|
|
50
|
+
method: "POST",
|
|
51
|
+
data,
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
adminUserDelete = async (uuid) => {
|
|
55
|
+
return this.makeRequest({
|
|
56
|
+
path: "/admin/users/delete",
|
|
57
|
+
method: "POST",
|
|
58
|
+
data: { uuid },
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
// Superadmin routes (tenant must be explicitly provided)
|
|
62
|
+
superadminUserList = async (params) => {
|
|
63
|
+
return this.makeRequest({
|
|
64
|
+
path: "/superadmin/user/list",
|
|
65
|
+
method: "POST",
|
|
66
|
+
data: params || {},
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
superadminUserInsert = async (data) => {
|
|
70
|
+
return this.makeRequest({
|
|
71
|
+
path: "/superadmin/user/",
|
|
72
|
+
method: "POST",
|
|
73
|
+
data,
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
superadminUserDelete = async (uuid) => {
|
|
77
|
+
return this.makeRequest({
|
|
78
|
+
path: "/superadmin/user/delete",
|
|
79
|
+
method: "POST",
|
|
80
|
+
data: { uuid },
|
|
81
|
+
});
|
|
51
82
|
};
|
|
52
83
|
authRefresh = async () => {
|
|
53
|
-
|
|
54
|
-
|
|
84
|
+
return this.makeRequest({
|
|
85
|
+
path: "/auth/refresh",
|
|
86
|
+
method: "GET",
|
|
87
|
+
});
|
|
55
88
|
};
|
|
56
89
|
tenantExists = async (data) => {
|
|
57
|
-
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
90
|
+
return this.makeRequest({
|
|
91
|
+
path: "/instance/exists",
|
|
92
|
+
method: "POST",
|
|
93
|
+
data,
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
loadAvailableProviders = async () => {
|
|
97
|
+
return this.makeRequest({
|
|
98
|
+
path: "/auth/oauth/providers",
|
|
99
|
+
method: "GET",
|
|
100
|
+
});
|
|
68
101
|
};
|
|
69
102
|
}
|
|
70
103
|
export default AuthClient;
|
package/dist/context.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { type ReactNode } from "react";
|
|
2
|
-
import AuthClient from "./client";
|
|
3
|
-
import type { Locale, Permission, Profile } from "./type";
|
|
2
|
+
import AuthClient from "./client.js";
|
|
3
|
+
import type { Locale, Permission, Profile } from "./type.js";
|
|
4
4
|
export type AuthContextType = {
|
|
5
5
|
profile: Profile;
|
|
6
6
|
permissions: Permission[];
|
|
@@ -14,5 +14,5 @@ export declare const AuthProvider: ({ authClient, Spinner, loginPath, }: {
|
|
|
14
14
|
loginPath: string;
|
|
15
15
|
}) => ({ children }: {
|
|
16
16
|
children: ReactNode;
|
|
17
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
}) => import("react/jsx-runtime.js").JSX.Element;
|
|
18
18
|
export declare const useAuth: () => AuthContextType;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface MakeRequestParams {
|
|
2
|
+
path: string;
|
|
3
|
+
queryParams?: Record<string, any>;
|
|
4
|
+
data?: Record<string, any>;
|
|
5
|
+
method: "GET" | "POST" | "DELETE" | "PUT";
|
|
6
|
+
}
|
|
7
|
+
export declare const makeRequest: (apiBasename: string, headers?: {
|
|
8
|
+
"content-type": string;
|
|
9
|
+
}) => <Out = any>({ path, data, queryParams, method, }: MakeRequestParams) => Promise<Out>;
|
package/dist/request.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { paramsToString } from "./utils";
|
|
2
|
+
export const makeRequest = (apiBasename, headers = { "content-type": "application/json" }) => async ({ path, data, queryParams, method = "GET", }) => {
|
|
3
|
+
const queryParamsString = queryParams
|
|
4
|
+
? "?" + paramsToString(queryParams)
|
|
5
|
+
: "";
|
|
6
|
+
const body = data && JSON.stringify(data);
|
|
7
|
+
const url = apiBasename + path + queryParamsString;
|
|
8
|
+
const response = await fetch(url, {
|
|
9
|
+
headers,
|
|
10
|
+
method,
|
|
11
|
+
body,
|
|
12
|
+
});
|
|
13
|
+
if (response.ok) {
|
|
14
|
+
return response.json();
|
|
15
|
+
}
|
|
16
|
+
return Promise.reject(response.json());
|
|
17
|
+
};
|
package/dist/webauthn.js
CHANGED