@lark-apaas/auth-sdk 0.1.3 → 0.1.5-alpha.0

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.
Files changed (54) hide show
  1. package/lib/AuthProvider.d.ts +31 -53
  2. package/lib/AuthProvider.d.ts.map +1 -1
  3. package/lib/AuthProvider.js +32 -48
  4. package/lib/ability-factory.d.ts +7 -7
  5. package/lib/ability-factory.d.ts.map +1 -1
  6. package/lib/ability-factory.js +9 -9
  7. package/lib/account/AccountClient.d.ts +22 -0
  8. package/lib/account/AccountClient.d.ts.map +1 -0
  9. package/lib/account/AccountClient.js +10 -0
  10. package/lib/account/BaseAccountService.d.ts +25 -0
  11. package/lib/account/BaseAccountService.d.ts.map +1 -0
  12. package/lib/account/BaseAccountService.js +106 -0
  13. package/lib/account/index.d.ts +5 -0
  14. package/lib/account/index.d.ts.map +1 -0
  15. package/lib/account/index.js +2 -0
  16. package/lib/account/internal/brand.d.ts +8 -0
  17. package/lib/account/internal/brand.d.ts.map +1 -0
  18. package/lib/account/internal/brand.js +3 -0
  19. package/lib/account/internal/helpers.d.ts +7 -0
  20. package/lib/account/internal/helpers.d.ts.map +1 -0
  21. package/lib/account/internal/helpers.js +14 -0
  22. package/lib/account/internal/logger.d.ts +15 -0
  23. package/lib/account/internal/logger.d.ts.map +1 -0
  24. package/lib/account/internal/logger.js +18 -0
  25. package/lib/account/internal/slardar.d.ts +2 -0
  26. package/lib/account/internal/slardar.d.ts.map +1 -0
  27. package/lib/account/internal/slardar.js +16 -0
  28. package/lib/account/internal/trace-id.d.ts +12 -0
  29. package/lib/account/internal/trace-id.d.ts.map +1 -0
  30. package/lib/account/internal/trace-id.js +20 -0
  31. package/lib/account/internal/types.d.ts +46 -0
  32. package/lib/account/internal/types.d.ts.map +1 -0
  33. package/lib/account/internal/types.js +20 -0
  34. package/lib/account/services/session-service/index.d.ts +34 -0
  35. package/lib/account/services/session-service/index.d.ts.map +1 -0
  36. package/lib/account/services/session-service/index.js +137 -0
  37. package/lib/account/services/session-service/types.d.ts +30 -0
  38. package/lib/account/services/session-service/types.d.ts.map +1 -0
  39. package/lib/account/services/session-service/types.js +0 -0
  40. package/lib/account/services/user-service/index.d.ts +9 -0
  41. package/lib/account/services/user-service/index.d.ts.map +1 -0
  42. package/lib/account/services/user-service/index.js +60 -0
  43. package/lib/account/services/user-service/types.d.ts +51 -0
  44. package/lib/account/services/user-service/types.d.ts.map +1 -0
  45. package/lib/account/services/user-service/types.js +0 -0
  46. package/lib/index.d.ts +10 -5
  47. package/lib/index.d.ts.map +1 -1
  48. package/lib/index.js +5 -2
  49. package/lib/permission-client.d.ts +4 -3
  50. package/lib/permission-client.d.ts.map +1 -1
  51. package/lib/permission-client.js +22 -14
  52. package/lib/types.d.ts +7 -11
  53. package/lib/types.d.ts.map +1 -1
  54. package/package.json +2 -2
@@ -0,0 +1,12 @@
1
+ declare class TraceIdGenerator {
2
+ private static instance;
3
+ private counter;
4
+ private constructor();
5
+ static getInstance(): TraceIdGenerator;
6
+ next(): number;
7
+ getCurrent(): number;
8
+ reset(): void;
9
+ }
10
+ declare const traceIdGenerator: TraceIdGenerator;
11
+ export { TraceIdGenerator, traceIdGenerator };
12
+ //# sourceMappingURL=trace-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-id.d.ts","sourceRoot":"","sources":["../../../src/account/internal/trace-id.ts"],"names":[],"mappings":"AAAA,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,OAAO,CAAa;IAE5B,OAAO;WAEO,WAAW,IAAI,gBAAgB;IAOtC,IAAI,IAAI,MAAM;IAId,UAAU,IAAI,MAAM;IAIpB,KAAK,IAAI,IAAI;CAGrB;AAED,QAAA,MAAM,gBAAgB,kBAAiC,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ class TraceIdGenerator {
2
+ constructor(){
3
+ this.counter = 1;
4
+ }
5
+ static getInstance() {
6
+ if (!TraceIdGenerator.instance) TraceIdGenerator.instance = new TraceIdGenerator();
7
+ return TraceIdGenerator.instance;
8
+ }
9
+ next() {
10
+ return this.counter++;
11
+ }
12
+ getCurrent() {
13
+ return this.counter;
14
+ }
15
+ reset() {
16
+ this.counter = 1;
17
+ }
18
+ }
19
+ const traceIdGenerator = TraceIdGenerator.getInstance();
20
+ export { TraceIdGenerator, traceIdGenerator };
@@ -0,0 +1,46 @@
1
+ export declare enum ServiceName {
2
+ DEFAULT = "default",
3
+ UserService = "user-service",
4
+ SessionService = "session-service"
5
+ }
6
+ export type Fetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
7
+ export type FetchMethod = 'GET' | 'HEAD' | 'POST' | 'PATCH' | 'DELETE';
8
+ export type FetchOptions = {
9
+ method: FetchMethod;
10
+ body?: unknown;
11
+ };
12
+ export interface ExtraInfo {
13
+ psmName?: string;
14
+ }
15
+ export interface AccountServiceError {
16
+ code: number;
17
+ details: string;
18
+ hint: string | null;
19
+ message: string;
20
+ }
21
+ interface AccountServiceBase {
22
+ status: number;
23
+ statusText: string;
24
+ }
25
+ export interface AccountServiceSuccess<T> extends AccountServiceBase {
26
+ error: null;
27
+ data: T;
28
+ }
29
+ export interface AccountServiceFailure extends AccountServiceBase {
30
+ error: AccountServiceError;
31
+ data: null;
32
+ }
33
+ export type AccountServiceResponse<T> = AccountServiceSuccess<T> | AccountServiceFailure;
34
+ export declare enum AccountStatus {
35
+ Unspecified = 0,
36
+ Inactive = 1,
37
+ Active = 2,
38
+ Disabled = 3,
39
+ Terminated = 4
40
+ }
41
+ export declare enum UserStatus {
42
+ active = 1,
43
+ inactive = 2
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/account/internal/types.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;CACnC;AAED,MAAM,MAAM,KAAK,GAAG,CAClB,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,CAAE,SAAQ,kBAAkB;IAClE,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,KAAK,EAAE,mBAAmB,CAAC;IAC3B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAChC,qBAAqB,CAAC,CAAC,CAAC,GACxB,qBAAqB,CAAC;AAG1B,oBAAY,aAAa;IACvB,WAAW,IAAI;IACf,QAAQ,IAAI;IACZ,MAAM,IAAI;IACV,QAAQ,IAAI;IACZ,UAAU,IAAI;CACf;AAGD,oBAAY,UAAU;IACpB,MAAM,IAAI;IACV,QAAQ,IAAI;CACb"}
@@ -0,0 +1,20 @@
1
+ var types_ServiceName = /*#__PURE__*/ function(ServiceName) {
2
+ ServiceName["DEFAULT"] = "default";
3
+ ServiceName["UserService"] = "user-service";
4
+ ServiceName["SessionService"] = "session-service";
5
+ return ServiceName;
6
+ }({});
7
+ var types_AccountStatus = /*#__PURE__*/ function(AccountStatus) {
8
+ AccountStatus[AccountStatus["Unspecified"] = 0] = "Unspecified";
9
+ AccountStatus[AccountStatus["Inactive"] = 1] = "Inactive";
10
+ AccountStatus[AccountStatus["Active"] = 2] = "Active";
11
+ AccountStatus[AccountStatus["Disabled"] = 3] = "Disabled";
12
+ AccountStatus[AccountStatus["Terminated"] = 4] = "Terminated";
13
+ return AccountStatus;
14
+ }({});
15
+ var types_UserStatus = /*#__PURE__*/ function(UserStatus) {
16
+ UserStatus[UserStatus["active"] = 1] = "active";
17
+ UserStatus[UserStatus["inactive"] = 2] = "inactive";
18
+ return UserStatus;
19
+ }({});
20
+ export { types_AccountStatus as AccountStatus, types_ServiceName as ServiceName, types_UserStatus as UserStatus };
@@ -0,0 +1,34 @@
1
+ import BaseAccountService from '../../BaseAccountService';
2
+ import { type AccountServiceResponse, ServiceName } from '../../internal/types';
3
+ import type { SignInRedirectionOptions, UserInfoResponse } from './types';
4
+ export default class SessionService extends BaseAccountService {
5
+ serviceName: ServiceName;
6
+ /** Redirect to login page within app runtime environment. */
7
+ redirectToLogin(options?: SignInRedirectionOptions): AccountServiceResponse<'success'>;
8
+ /** Sign out current user session. */
9
+ signOut(): Promise<AccountServiceResponse<null>>;
10
+ /** Get current page URL with biz_source parameter */
11
+ getUrlWithBizSource(): string;
12
+ /** Gets the current user information if there is an existing session. */
13
+ getUserInfo(): Promise<AccountServiceResponse<UserInfoResponse>>;
14
+ /** Navigate to user profile page within app runtime environment. */
15
+ navigateToUserProfile(options?: {
16
+ newTab?: boolean;
17
+ }): {
18
+ data: null;
19
+ error: {
20
+ code: number;
21
+ message: string;
22
+ hint: string;
23
+ details: string;
24
+ };
25
+ status: number;
26
+ statusText: string;
27
+ } | {
28
+ data: string;
29
+ error: null;
30
+ status: number;
31
+ statusText: string;
32
+ };
33
+ }
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/account/services/session-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,KAAK,sBAAsB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAGV,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAcjB,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,kBAAkB;IACnD,WAAW,cAA8B;IAElD,6DAA6D;IAC7D,eAAe,CACb,OAAO,CAAC,EAAE,wBAAwB,GACjC,sBAAsB,CAAC,SAAS,CAAC;IAqCpC,qCAAqC;IAC/B,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAyBtD,qDAAqD;IACrD,mBAAmB,IAAI,MAAM;IAkB7B,yEAAyE;IACnE,WAAW,IAAI,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAqDtE,oEAAoE;IACpE,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;CA+BrD"}
@@ -0,0 +1,137 @@
1
+ import BaseAccountService from "../../BaseAccountService.js";
2
+ import { isBrowser } from "../../internal/helpers.js";
3
+ import { reportAccountException } from "../../internal/slardar.js";
4
+ import { ServiceName } from "../../internal/types.js";
5
+ const browserEnvError = {
6
+ data: null,
7
+ error: {
8
+ code: 400,
9
+ message: 'Incompatible runtime environment',
10
+ hint: 'Please check if the current environment is browser.',
11
+ details: 'This method can only be invoked in browser environment.'
12
+ },
13
+ status: 400,
14
+ statusText: 'Bad Request'
15
+ };
16
+ class SessionService extends BaseAccountService {
17
+ redirectToLogin(options) {
18
+ if (!isBrowser()) {
19
+ reportAccountException(browserEnvError.error, {
20
+ module: 'session-service',
21
+ method: 'redirectToLogin',
22
+ type: 'runtime'
23
+ });
24
+ console.log('[Account][SessionService.RedirectToLogin] authClient.session.redirectToLogin can only be invoked in browser environment.');
25
+ return browserEnvError;
26
+ }
27
+ const { returnUrl, newTab = false } = options ?? {};
28
+ const encodedRedirectUrl = encodeURIComponent(decodeURIComponent(returnUrl || window.location.href));
29
+ const isSparkFaasPath = window.location.pathname.startsWith('/spark');
30
+ const baseLoginUrl = isSparkFaasPath ? `/spark/faas/${this.appId}/runtime/page/login` : `/app/${this.appId}/runtime/page/login`;
31
+ const loginPageUrl = `${baseLoginUrl}?biz_source=${this.bizSource}&redirect_uri=${encodedRedirectUrl}`;
32
+ if (newTab) window.open(loginPageUrl, '_blank');
33
+ else window.location.href = loginPageUrl;
34
+ return {
35
+ data: 'success',
36
+ error: null,
37
+ status: 200,
38
+ statusText: 'OK'
39
+ };
40
+ }
41
+ async signOut() {
42
+ if (!isBrowser()) {
43
+ reportAccountException(browserEnvError.error, {
44
+ module: 'session-service',
45
+ method: 'signOut',
46
+ type: 'runtime'
47
+ });
48
+ console.log('[Account][SessionService.SignOut] authClient.session.signOut can only be invoked in browser environment.');
49
+ return browserEnvError;
50
+ }
51
+ const location = this.getUrlWithBizSource();
52
+ return this.fetchData('/af/runtime/api/v1/account/logout', {
53
+ method: 'POST',
54
+ body: {
55
+ appID: this.appId,
56
+ redirectURI: location
57
+ }
58
+ });
59
+ }
60
+ getUrlWithBizSource() {
61
+ if (!isBrowser()) {
62
+ reportAccountException(browserEnvError.error, {
63
+ module: 'session-service',
64
+ method: 'getUrlWithBizSource',
65
+ type: 'runtime'
66
+ });
67
+ console.log('[Account][SessionService.GetUrlWithBizSource] authClient.session.getUrlWithBizSource can only be invoked in browser environment.');
68
+ return '';
69
+ }
70
+ const currentUrl = new URL(window.location.href);
71
+ currentUrl.searchParams.set('biz_source', this.bizSource);
72
+ return currentUrl.toString();
73
+ }
74
+ async getUserInfo() {
75
+ if (!isBrowser()) {
76
+ reportAccountException(browserEnvError.error, {
77
+ module: 'session-service',
78
+ method: 'getUserInfo',
79
+ type: 'runtime'
80
+ });
81
+ console.log('[Account][SessionService.GetUserInfo] authClient.session.getUserInfo can only be invoked in browser environment.');
82
+ return Promise.resolve(browserEnvError);
83
+ }
84
+ const url = `/app/${this.appId}/__runtime__/api/v1/account/login/user`;
85
+ const urlObj = new URL(globalThis.location.href);
86
+ const pathSegments = urlObj.hostname.split('.');
87
+ const tenantDomainName = pathSegments[0] ?? '';
88
+ const response = await this.fetchData(url, {
89
+ method: 'POST',
90
+ body: {
91
+ appID: this.appId,
92
+ tenantDomainName
93
+ }
94
+ });
95
+ const userInfoResponse = {
96
+ data: {
97
+ user_info: {
98
+ user_id: response.data?.userInfo?.userID,
99
+ name: response.data?.userInfo?.name,
100
+ avatar: response.data?.userInfo?.avatar,
101
+ email: response.data?.userInfo?.email,
102
+ phone_number: response.data?.userInfo?.desensitizedPhoneNumber
103
+ }
104
+ },
105
+ error: null,
106
+ status: response.status,
107
+ statusText: response.statusText
108
+ };
109
+ return userInfoResponse;
110
+ }
111
+ navigateToUserProfile(options) {
112
+ if (!isBrowser()) {
113
+ reportAccountException(browserEnvError.error, {
114
+ module: 'session-service',
115
+ method: 'navigateToUserProfile',
116
+ type: 'runtime'
117
+ });
118
+ console.log('[Account][SessionService.NavigateToUserProfile] authClient.session.navigateToUserProfile can only be invoked in browser environment.');
119
+ return browserEnvError;
120
+ }
121
+ const { newTab = false } = options ?? {};
122
+ const encodedReturnUrl = encodeURIComponent(window.location.href);
123
+ const profilePageUrl = `/suda/user?brand=${this.brandId}&returnUrl=${encodedReturnUrl}&appId=${this.appId}`;
124
+ if (newTab) window.open(profilePageUrl, '_blank');
125
+ else window.location.href = profilePageUrl;
126
+ return {
127
+ data: 'success',
128
+ error: null,
129
+ status: 200,
130
+ statusText: 'OK'
131
+ };
132
+ }
133
+ constructor(...args){
134
+ super(...args), this.serviceName = ServiceName.SessionService;
135
+ }
136
+ }
137
+ export { SessionService as default };
@@ -0,0 +1,30 @@
1
+ export interface I18n {
2
+ language_code: number;
3
+ text: string;
4
+ }
5
+ export type I18ns = I18n[];
6
+ export interface Avatar {
7
+ source?: string;
8
+ image?: {
9
+ large?: string;
10
+ };
11
+ color?: string;
12
+ }
13
+ export interface SignInRedirectionOptions {
14
+ /** The URL to redirect to after a successful login. Defaults to the current URL. */
15
+ returnUrl?: string;
16
+ /** Whether to open the login page in a new tab. Defaults to `false`. */
17
+ newTab?: boolean;
18
+ }
19
+ export interface UserBaseInfo {
20
+ user_id?: number;
21
+ name?: I18ns;
22
+ avatar?: Avatar;
23
+ email?: string;
24
+ phone_number?: string;
25
+ tenant_name?: string;
26
+ }
27
+ export interface UserInfoResponse {
28
+ user_info?: UserBaseInfo;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/account/services/session-service/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;AAE3B,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B"}
File without changes
@@ -0,0 +1,9 @@
1
+ import BaseAccountService from '../../BaseAccountService';
2
+ import { type AccountServiceResponse, ServiceName } from '../../internal/types';
3
+ import type { SearchParams, UserResponse } from './types';
4
+ export default class UserService extends BaseAccountService {
5
+ serviceName: ServiceName;
6
+ search(params: SearchParams): Promise<AccountServiceResponse<UserResponse>>;
7
+ getByIds(ids: string[] | number[]): Promise<AccountServiceResponse<UserResponse>>;
8
+ }
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/account/services/user-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,KAAK,sBAAsB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAEV,YAAY,EAEZ,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,kBAAkB;IAChD,WAAW,cAA2B;IAEzC,MAAM,CACV,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAqC1C,QAAQ,CACZ,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GACvB,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;CAkCjD"}
@@ -0,0 +1,60 @@
1
+ import BaseAccountService from "../../BaseAccountService.js";
2
+ import { convertUserStatus, retrieveNameFromI18n } from "../../internal/helpers.js";
3
+ import { ServiceName } from "../../internal/types.js";
4
+ class UserService extends BaseAccountService {
5
+ async search(params) {
6
+ const { name, pageSize } = params;
7
+ const res = await this.fetchData(`/app/${this.appId}/__runtime__/api/v1/account/search_user`, {
8
+ method: 'POST',
9
+ body: {
10
+ query: name,
11
+ page_size: pageSize
12
+ }
13
+ }, {
14
+ psmName: 'UserService.Search'
15
+ });
16
+ if (res.error) return res;
17
+ return {
18
+ ...res,
19
+ data: {
20
+ user_list: res.data?.userList?.map((item)=>({
21
+ avatar: item.avatar ?? '',
22
+ email: item.email ?? '',
23
+ name: retrieveNameFromI18n(item.name) ?? '',
24
+ status: convertUserStatus(item.userStatus),
25
+ user_id: item.userID ?? ''
26
+ })) ?? []
27
+ }
28
+ };
29
+ }
30
+ async getByIds(ids) {
31
+ const res = await this.fetchData(`/app/${this.appId}/__runtime__/api/v1/account/list_users`, {
32
+ method: 'POST',
33
+ body: {
34
+ userIDList: ids
35
+ }
36
+ }, {
37
+ psmName: 'UserService.GetByIds'
38
+ });
39
+ if (res.error) return res;
40
+ return {
41
+ ...res,
42
+ data: {
43
+ user_list: ids.map((id)=>{
44
+ const item = res.data?.userInfoMap?.[id];
45
+ return {
46
+ avatar: item?.avatar?.image?.large ?? '',
47
+ email: item?.email ?? '',
48
+ name: retrieveNameFromI18n(item?.name) ?? '',
49
+ status: convertUserStatus(item?.userStatus),
50
+ user_id: item?.userID ? String(item.userID) : ''
51
+ };
52
+ })
53
+ }
54
+ };
55
+ }
56
+ constructor(...args){
57
+ super(...args), this.serviceName = ServiceName.UserService;
58
+ }
59
+ }
60
+ export { UserService as default };
@@ -0,0 +1,51 @@
1
+ import type { AccountStatus, UserStatus } from '../../internal/types';
2
+ export type I18n = {
3
+ zh_cn: string;
4
+ en_us: string;
5
+ ja_jp: string;
6
+ };
7
+ export type SearchParams = {
8
+ name: string;
9
+ pageSize?: number;
10
+ };
11
+ export type User = {
12
+ user_id: string;
13
+ email: string;
14
+ name: string;
15
+ avatar: string;
16
+ status: UserStatus;
17
+ };
18
+ export type DepartmentEntity = {
19
+ departmentID: string;
20
+ larkDepartmentID: string;
21
+ name: I18n;
22
+ };
23
+ export type SearchUserEntity = {
24
+ userID: string;
25
+ larkUserID: string;
26
+ name: I18n;
27
+ avatar: string;
28
+ userType: string;
29
+ email: string;
30
+ userStatus: AccountStatus;
31
+ department: DepartmentEntity;
32
+ };
33
+ export type GetByIdUserEntity = {
34
+ userID: number;
35
+ larkUserID: number;
36
+ name: I18n;
37
+ avatar: {
38
+ source: string;
39
+ image?: {
40
+ large: string;
41
+ };
42
+ };
43
+ userType: string;
44
+ email: string;
45
+ userStatus: AccountStatus;
46
+ department: DepartmentEntity;
47
+ };
48
+ export type UserResponse = {
49
+ user_list: User[];
50
+ };
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/account/services/user-service/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEtE,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE;YACN,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,IAAI,EAAE,CAAC;CACnB,CAAC"}
File without changes
package/lib/index.d.ts CHANGED
@@ -1,13 +1,18 @@
1
1
  /**
2
2
  * @lark-apaas/auth-sdk
3
3
  *
4
- * 基于 CASL 的前端鉴权 SDK
5
- * 封装了权限数据获取和 Ability 初始化逻辑
4
+ * 妙搭账户与鉴权 SDK
5
+ * - 基于 CASL 的前端权限点鉴权(PermissionClient / AuthProvider / useCan)
6
+ * - 账户与会话能力(user / session services) — 见 ./account
6
7
  */
7
- export type { PermissionApiResponse, PermissionApiConfig, AuthSdkConfig, } from './types';
8
+ export type { PermissionApiResponse, PermissionApiConfig, PermissionPointData, AuthSdkConfig, } from './types';
8
9
  export { ROLE_SUBJECT } from './ability-factory';
9
10
  export { PermissionClient } from './permission-client';
10
- export { AuthProvider, useAuth, CanRole, AbilityContext, useUserPermissions, useCanPermission, CanPermission, } from './AuthProvider';
11
- export { CanPermission as CanPerm } from './AuthProvider';
11
+ export { AuthProvider, useAuth, Can, CanRole, useCan, AbilityContext, useUserPermissions, } from './AuthProvider';
12
12
  export type { AuthProviderProps } from './AuthProvider';
13
+ export { AccountClient } from './account';
14
+ export type { AccountServiceResponse, AccountServiceError, SearchParams, User, UserResponse, SignInRedirectionOptions, UserBaseInfo, UserInfoResponse, Avatar, } from './account';
15
+ export { AccountStatus, UserStatus } from './account/internal/types';
16
+ import { AccountClient } from './account';
17
+ export declare const authClient: AccountClient;
13
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EACL,YAAY,EACZ,OAAO,EACP,GAAG,EACH,OAAO,EACP,MAAM,EACN,cAAc,EACd,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,wBAAwB,EACxB,YAAY,EACZ,gBAAgB,EAChB,MAAM,GACP,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,eAAO,MAAM,UAAU,eAAsB,CAAC"}
package/lib/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  import { ROLE_SUBJECT } from "./ability-factory.js";
2
2
  import { PermissionClient } from "./permission-client.js";
3
- import { AbilityContext, AuthProvider, CanPermission, CanRole, useAuth, useCanPermission, useUserPermissions } from "./AuthProvider.js";
4
- export { AbilityContext, AuthProvider, CanPermission as CanPerm, CanPermission, CanRole, PermissionClient, ROLE_SUBJECT, useAuth, useCanPermission, useUserPermissions };
3
+ import { AbilityContext, AuthProvider, Can, CanRole, useAuth, useCan, useUserPermissions } from "./AuthProvider.js";
4
+ import { AccountClient } from "./account/index.js";
5
+ import { AccountStatus, UserStatus } from "./account/internal/types.js";
6
+ const authClient = new AccountClient();
7
+ export { AbilityContext, AccountClient, AccountStatus, AuthProvider, Can, CanRole, PermissionClient, ROLE_SUBJECT, UserStatus, authClient, useAuth, useCan, useUserPermissions };
@@ -1,4 +1,4 @@
1
- import type { PermissionApiConfig, PermissionApiResponse } from './types';
1
+ import type { PermissionApiConfig, PermissionApiResponse, PermissionPointData } from './types';
2
2
  /**
3
3
  * 权限数据获取客户端
4
4
  */
@@ -10,9 +10,10 @@ export declare class PermissionClient {
10
10
  */
11
11
  fetchPermissions(): Promise<PermissionApiResponse>;
12
12
  /**
13
- * 获取用户权限点位列表
13
+ * 获取用户权限点位
14
+ * 请求内置的权限点位查询端点
14
15
  */
15
- fetchUserPermissions(config: PermissionApiConfig): Promise<string[]>;
16
+ static fetchPermissionPoints(): Promise<PermissionPointData[]>;
16
17
  /**
17
18
  * 更新配置
18
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"permission-client.d.ts","sourceRoot":"","sources":["../src/permission-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAG1E;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIvC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAoDxD;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4C1E;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAOxD;;OAEG;IACH,SAAS,IAAI,mBAAmB;CAGjC"}
1
+ {"version":3,"file":"permission-client.d.ts","sourceRoot":"","sources":["../src/permission-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG/F;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIvC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAqDxD;;;OAGG;WACU,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAwCpE;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAOxD;;OAEG;IACH,SAAS,IAAI,mBAAmB;CAGjC"}
@@ -42,29 +42,37 @@ class PermissionClient {
42
42
  throw error;
43
43
  }
44
44
  }
45
- async fetchUserPermissions(config) {
46
- const { url, timeout = 5000, headers = {} } = config;
47
- const requestHeaders = {
48
- ...headers,
49
- 'Content-Type': 'application/json',
50
- 'X-Suda-Csrf-Token': window.csrfToken || ''
51
- };
45
+ static async fetchPermissionPoints() {
46
+ const appId = window.appId || '';
47
+ const url = `/app/${appId}/api/sdk_innerapi/permission/user-points`;
52
48
  const controller = new AbortController();
53
- const timeoutId = setTimeout(()=>controller.abort(), timeout);
49
+ const timeoutId = setTimeout(()=>controller.abort(), 5000);
54
50
  try {
55
51
  const response = await fetch(url, {
56
- method: 'POST',
57
- headers: requestHeaders,
52
+ method: 'GET',
53
+ headers: {
54
+ 'Content-Type': 'application/json',
55
+ 'X-Suda-Csrf-Token': window.csrfToken || ''
56
+ },
58
57
  signal: controller.signal,
59
58
  credentials: 'include'
60
59
  });
61
60
  clearTimeout(timeoutId);
62
- if (!response.ok) throw new Error(`Permissions API returned ${response.status}: ${response.statusText}`);
63
- const data = await response.json();
64
- return data.data?.permissions || [];
61
+ if (!response.ok) throw new Error(`Permission Points API returned ${response.status}: ${response.statusText}`);
62
+ return await response.json();
65
63
  } catch (error) {
66
64
  clearTimeout(timeoutId);
67
- if (error instanceof Error && 'AbortError' === error.name) throw new Error(`Permissions API request timeout after ${timeout}ms`);
65
+ if (error instanceof Error && 'AbortError' === error.name) {
66
+ slardar.captureException(error, {
67
+ source: 'auth-sdk',
68
+ type: 'timeout'
69
+ });
70
+ throw new Error('Permission Points API request timeout');
71
+ }
72
+ slardar.captureException(error, {
73
+ source: 'auth-sdk',
74
+ type: 'fetch'
75
+ });
68
76
  throw error;
69
77
  }
70
78
  }
package/lib/types.d.ts CHANGED
@@ -14,13 +14,14 @@ export type Action = 'create' | 'read' | 'update' | 'delete' | 'manage' | string
14
14
  */
15
15
  export type Subject = string;
16
16
  /**
17
- * 单个权限定义
17
+ * 权限点位数据(action + subject 分离模式)
18
+ * 由内置 user-points 端点返回,注册到 CASL Ability
18
19
  */
19
- export interface Permission {
20
- id: string;
21
- name: string;
22
- sub: Subject;
23
- actions: Action[];
20
+ export interface PermissionPointData {
21
+ id?: string;
22
+ action: string;
23
+ subject: string;
24
+ description?: string;
24
25
  }
25
26
  /**
26
27
  * 用户角色定义
@@ -65,11 +66,6 @@ export interface AuthSdkConfig {
65
66
  * 权限 API 配置
66
67
  */
67
68
  permissionApi?: PermissionApiConfig;
68
- /**
69
- * 权限点位 API 配置(可选)
70
- * 配置后 AuthProvider 会额外请求用户的有效权限点位
71
- */
72
- permissionPointsApi?: PermissionApiConfig;
73
69
  /**
74
70
  * 是否在初始化时使用获取权限
75
71
  * @default false
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CACF;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GACd,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lark-apaas/auth-sdk",
3
- "version": "0.1.3",
4
- "description": "基于 CASL 的前端鉴权 SDK",
3
+ "version": "0.1.5-alpha.0",
4
+ "description": "妙搭账户与鉴权 SDK:CASL 权限点 + 账户/会话能力",
5
5
  "types": "./lib/index.d.ts",
6
6
  "main": "./lib/index.js",
7
7
  "module": "./lib/index.js",