@lark-apaas/client-toolkit 1.2.30 → 1.2.32
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/lib/auth.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { CanRole, AbilityContext, ROLE_SUBJECT } from '@lark-apaas/auth-sdk';
|
|
1
|
+
export { CanRole, AbilityContext, ROLE_SUBJECT, useAuth, } from '@lark-apaas/auth-sdk';
|
package/lib/auth.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { AbilityContext, CanRole, ROLE_SUBJECT } from "@lark-apaas/auth-sdk";
|
|
2
|
-
export { AbilityContext, CanRole, ROLE_SUBJECT };
|
|
1
|
+
import { AbilityContext, CanRole, ROLE_SUBJECT, useAuth } from "@lark-apaas/auth-sdk";
|
|
2
|
+
export { AbilityContext, CanRole, ROLE_SUBJECT, useAuth };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import type { BatchGetUsersResponse, SearchUsersParams, SearchUsersResponse } from './types';
|
|
1
|
+
import type { BatchGetUsersResponse, ConvertExternalContactResponse, SearchUsersParams, SearchUsersResponse } from './types';
|
|
2
2
|
export type UserServiceConfig = {
|
|
3
3
|
getAppId?: () => string | null | undefined;
|
|
4
4
|
searchUserUrl?: (appId: string) => string;
|
|
5
5
|
listUsersUrl?: (appId: string) => string;
|
|
6
|
+
convertExternalContactUrl?: (appId: string) => string;
|
|
6
7
|
};
|
|
7
8
|
export declare class UserService {
|
|
8
9
|
private config;
|
|
9
10
|
constructor(config?: UserServiceConfig);
|
|
10
11
|
searchUsers(params: SearchUsersParams): Promise<SearchUsersResponse>;
|
|
11
12
|
listUsersByIds(userIds: string[]): Promise<BatchGetUsersResponse>;
|
|
13
|
+
convertExternalContact(larkUserID: string): Promise<ConvertExternalContactResponse>;
|
|
12
14
|
}
|
|
@@ -3,7 +3,8 @@ import { isNewPathEnabled } from "../../utils/apiPath.js";
|
|
|
3
3
|
const DEFAULT_CONFIG = {
|
|
4
4
|
getAppId: ()=>getAppId(),
|
|
5
5
|
searchUserUrl: (appId)=>isNewPathEnabled() ? `/app/${appId}/__runtime__/api/v1/account/search_user` : `/af/app/${appId}/runtime/api/v1/account/search_user`,
|
|
6
|
-
listUsersUrl: (appId)=>isNewPathEnabled() ? `/app/${appId}/__runtime__/api/v1/account/list_users` : `/af/app/${appId}/runtime/api/v1/account/list_users
|
|
6
|
+
listUsersUrl: (appId)=>isNewPathEnabled() ? `/app/${appId}/__runtime__/api/v1/account/list_users` : `/af/app/${appId}/runtime/api/v1/account/list_users`,
|
|
7
|
+
convertExternalContactUrl: (appId)=>isNewPathEnabled() ? `/app/${appId}/__runtime__/api/v1/account/convert_lark_user` : `/af/app/${appId}/runtime/api/v1/account/convert_lark_user`
|
|
7
8
|
};
|
|
8
9
|
class UserService {
|
|
9
10
|
config;
|
|
@@ -43,5 +44,23 @@ class UserService {
|
|
|
43
44
|
if (!response.ok) throw new Error('Failed to fetch users by ids');
|
|
44
45
|
return response.json();
|
|
45
46
|
}
|
|
47
|
+
async convertExternalContact(larkUserID) {
|
|
48
|
+
const appId = this.config.getAppId();
|
|
49
|
+
if (!appId) throw new Error('Failed to get appId');
|
|
50
|
+
const response = await fetch(this.config.convertExternalContactUrl(appId), {
|
|
51
|
+
method: 'POST',
|
|
52
|
+
headers: {
|
|
53
|
+
'Content-Type': 'application/json'
|
|
54
|
+
},
|
|
55
|
+
body: JSON.stringify({
|
|
56
|
+
larkUserID
|
|
57
|
+
}),
|
|
58
|
+
credentials: 'include'
|
|
59
|
+
});
|
|
60
|
+
if (!response.ok) throw new Error('Failed to convert external contact');
|
|
61
|
+
const data = await response.json();
|
|
62
|
+
if (!data?.data?.userInfo?.userID) throw new Error('Invalid response from convert external contact');
|
|
63
|
+
return data;
|
|
64
|
+
}
|
|
46
65
|
}
|
|
47
66
|
export { UserService };
|
|
@@ -15,6 +15,7 @@ export type UserInfo = {
|
|
|
15
15
|
userType: '_employee' | '_externalUser' | '_anonymousUser';
|
|
16
16
|
department: DepartmentBasic;
|
|
17
17
|
email?: string;
|
|
18
|
+
tenantName?: string;
|
|
18
19
|
};
|
|
19
20
|
export type DepartmentInfo = {
|
|
20
21
|
departmentID: string;
|
|
@@ -33,6 +34,7 @@ export type SearchUsersParams = {
|
|
|
33
34
|
query?: string;
|
|
34
35
|
offset?: number;
|
|
35
36
|
pageSize?: number;
|
|
37
|
+
searchExternalContact?: boolean;
|
|
36
38
|
};
|
|
37
39
|
export type SearchUsersResponse = {
|
|
38
40
|
data: {
|
|
@@ -41,6 +43,14 @@ export type SearchUsersResponse = {
|
|
|
41
43
|
};
|
|
42
44
|
status_code: string;
|
|
43
45
|
};
|
|
46
|
+
export type ConvertExternalContactResponse = {
|
|
47
|
+
data: {
|
|
48
|
+
userInfo: {
|
|
49
|
+
tenantID: number;
|
|
50
|
+
userID: number;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
};
|
|
44
54
|
export type BatchGetUsersResponse = {
|
|
45
55
|
data: {
|
|
46
56
|
userInfoMap: Record<string, UserInfo & SearchAvatar>;
|
package/lib/utils/axiosConfig.js
CHANGED
|
@@ -372,7 +372,18 @@ function initAxiosConfig(axiosInstance) {
|
|
|
372
372
|
name: 'toolkit_axios_403_downgrade',
|
|
373
373
|
categories: {
|
|
374
374
|
url: String(error.config?.url || ''),
|
|
375
|
-
method: String(error.config?.method || '')
|
|
375
|
+
method: String(error.config?.method || ''),
|
|
376
|
+
...'production' !== process.env.NODE_ENV && {
|
|
377
|
+
responseData: (()=>{
|
|
378
|
+
try {
|
|
379
|
+
const data = error.response?.data;
|
|
380
|
+
if (!data) return '';
|
|
381
|
+
return 'string' == typeof data ? data.slice(0, 512) : JSON.stringify(data).slice(0, 512);
|
|
382
|
+
} catch {
|
|
383
|
+
return '';
|
|
384
|
+
}
|
|
385
|
+
})()
|
|
386
|
+
}
|
|
376
387
|
}
|
|
377
388
|
});
|
|
378
389
|
return error.response;
|
|
@@ -383,7 +394,19 @@ function initAxiosConfig(axiosInstance) {
|
|
|
383
394
|
categories: {
|
|
384
395
|
url: String(error.config?.url || ''),
|
|
385
396
|
method: String(error.config?.method || ''),
|
|
386
|
-
status: String(error.response?.status || '')
|
|
397
|
+
status: String(error.response?.status || ''),
|
|
398
|
+
...'production' !== process.env.NODE_ENV && {
|
|
399
|
+
errorMessage: String(error.message || ''),
|
|
400
|
+
responseData: (()=>{
|
|
401
|
+
try {
|
|
402
|
+
const data = error.response?.data;
|
|
403
|
+
if (!data) return '';
|
|
404
|
+
return 'string' == typeof data ? data.slice(0, 512) : JSON.stringify(data).slice(0, 512);
|
|
405
|
+
} catch {
|
|
406
|
+
return '';
|
|
407
|
+
}
|
|
408
|
+
})()
|
|
409
|
+
}
|
|
387
410
|
}
|
|
388
411
|
});
|
|
389
412
|
return Promise.reject(error);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/client-toolkit",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.32",
|
|
4
4
|
"types": "./lib/index.d.ts",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"files": [
|
|
@@ -98,9 +98,9 @@
|
|
|
98
98
|
"dependencies": {
|
|
99
99
|
"@ant-design/colors": "^7.2.1",
|
|
100
100
|
"@ant-design/cssinjs": "^1.24.0",
|
|
101
|
-
"@data-loom/js": "0.4.
|
|
101
|
+
"@data-loom/js": "0.4.13",
|
|
102
102
|
"@lark-apaas/aily-web-sdk": "^0.0.7",
|
|
103
|
-
"@lark-apaas/auth-sdk": "^0.1.
|
|
103
|
+
"@lark-apaas/auth-sdk": "^0.1.3",
|
|
104
104
|
"@lark-apaas/client-capability": "^0.1.6",
|
|
105
105
|
"@lark-apaas/internal-slardar": "^0.0.3",
|
|
106
106
|
"@lark-apaas/miaoda-inspector": "^1.0.22",
|