@lark-apaas/dataloom 0.1.3-alpha.3 → 0.1.3-alpha.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.
@@ -1,4 +1,4 @@
1
- const MIGRATION_HINT = "[dataloom] service.user / service.session has moved to @lark-apaas/auth-sdk\nUse `authClient` from @lark-apaas/client-toolkit/auth (or @lark-apaas/auth-sdk), e.g.:\n import { authClient } from '@lark-apaas/client-toolkit/auth';\n await authClient.user.search({ name: '张三' });\nIf you really need to keep using dataloom.service.*, ensure client-toolkit injects accountServices when constructing DataloomClient.";
1
+ const MIGRATION_HINT = "[dataloom] service.user / service.session has moved to @lark-apaas/auth-sdk\nUse `authClient` from @lark-apaas/client-toolkit/auth (or @lark-apaas/auth-sdk), e.g.:\n import { authClient } from '@lark-apaas/client-toolkit/auth';\n await authClient.user.search({ name: 'zhangsan' });\nIf you really need to keep using dataloom.service.*, ensure client-toolkit injects accountServices when constructing DataloomClient.";
2
2
  const ALLOWED_REFLECTION_KEYS = new Set([
3
3
  'constructor',
4
4
  'then',
@@ -1,33 +1,105 @@
1
1
  /**
2
- * 用户服务形状契约(结构性 interface,不 import auth-sdk 的具体实现)。
2
+ * Account services 形状契约。
3
3
  *
4
- * @lark-apaas/auth-sdk 中 `UserService` 的 public 方法对齐;
5
- * 返回值故意用 `unknown` 以避免把 auth-sdk 的领域类型(如 AccountServiceResponse / UserResponse)
6
- * 反向引入 dataloom——dataloom 不关心具体返回结构,只关心"形状"。
4
+ * dataloom 自身不持有 user/session 实现(已迁出至 @lark-apaas/auth-sdk),
5
+ * 但仍需要类型上的"形状契约"以保证:
6
+ * 1. DataloomService.user/session 字段对老调用方有完整类型提示;
7
+ * 2. client-toolkit 注入 authClient.user/session 时编译期可结构性校验。
8
+ *
9
+ * 此处类型镜像自 auth-sdk 的 public 类型(保持结构一致),
10
+ * 但**不 import auth-sdk**,避免 dataloom → auth-sdk 的反向依赖。
11
+ *
12
+ * @see packages/client/auth-sdk/src/account/services/user-service/types.ts
13
+ * @see packages/client/auth-sdk/src/account/services/session-service/types.ts
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
+ /** 与 auth-sdk UserStatus 对齐:1 = active / 2 = inactive */
35
+ export type UserStatus = 1 | 2;
36
+ export interface User {
37
+ user_id: string;
38
+ email: string;
39
+ name: string;
40
+ avatar: string;
41
+ status: UserStatus;
42
+ }
43
+ export interface SearchParams {
44
+ name: string;
45
+ pageSize?: number;
46
+ }
47
+ export interface UserResponse {
48
+ user_list: User[];
49
+ }
50
+ /**
51
+ * 用户服务形状契约(与 auth-sdk `UserService` public 方法对齐)。
7
52
  */
8
53
  export interface UserServiceShape {
9
- search(params: {
10
- name: string;
11
- pageSize?: number;
12
- }): Promise<unknown>;
13
- getByIds(ids: string[] | number[]): Promise<unknown>;
54
+ search(params: SearchParams): Promise<AccountServiceResponse<UserResponse>>;
55
+ getByIds(ids: string[] | number[]): Promise<AccountServiceResponse<UserResponse>>;
56
+ }
57
+ export interface I18n {
58
+ language_code: number;
59
+ text: string;
60
+ }
61
+ export type I18ns = I18n[];
62
+ export interface Avatar {
63
+ source?: string;
64
+ image?: {
65
+ large?: string;
66
+ };
67
+ color?: string;
68
+ }
69
+ export interface UserBaseInfo {
70
+ user_id?: number;
71
+ name?: I18ns;
72
+ avatar?: Avatar;
73
+ email?: string;
74
+ phone_number?: string;
75
+ tenant_name?: string;
76
+ }
77
+ export interface UserInfoResponse {
78
+ user_info?: UserBaseInfo;
79
+ }
80
+ export interface SignInRedirectionOptions {
81
+ /** The URL to redirect to after a successful login. Defaults to the current URL. */
82
+ returnUrl?: string;
83
+ /** Whether to open the login page in a new tab. Defaults to `false`. */
84
+ newTab?: boolean;
85
+ }
86
+ export interface NavigateToUserProfileOptions {
87
+ newTab?: boolean;
14
88
  }
15
89
  /**
16
- * 会话服务形状契约(结构性 interface,不 import auth-sdk 的具体实现)。
90
+ * 会话服务形状契约(与 auth-sdk `SessionService` public 方法对齐)。
17
91
  *
18
- * @lark-apaas/auth-sdk `SessionService` public 方法对齐。
92
+ * 注意:`redirectToLogin` / `navigateToUserProfile` 的成功分支在 auth-sdk
93
+ * 实现中返回 `data: 'success'`;但其中 `navigateToUserProfile` 未显式标注
94
+ * 返回类型,TS 会把字面量推断为 `string`。为了让 auth-sdk 的实例可结构性
95
+ * 赋值到本契约,这里成功分支用 `string` 而非 `'success'` 字面量。
19
96
  */
20
97
  export interface SessionServiceShape {
21
- redirectToLogin(options?: {
22
- returnUrl?: string;
23
- newTab?: boolean;
24
- }): unknown;
25
- signOut(): Promise<unknown>;
98
+ redirectToLogin(options?: SignInRedirectionOptions): AccountServiceResponse<string>;
99
+ signOut(): Promise<AccountServiceResponse<null>>;
26
100
  getUrlWithBizSource(): string;
27
- getUserInfo(): Promise<unknown>;
28
- navigateToUserProfile(options?: {
29
- newTab?: boolean;
30
- }): unknown;
101
+ getUserInfo(): Promise<AccountServiceResponse<UserInfoResponse>>;
102
+ navigateToUserProfile(options?: NavigateToUserProfileOptions): AccountServiceResponse<string>;
31
103
  }
32
104
  /**
33
105
  * 注入到 DataloomService 的 account services 引用。
@@ -37,4 +109,5 @@ export interface AccountServicesInjection {
37
109
  user: UserServiceShape;
38
110
  session: SessionServiceShape;
39
111
  }
112
+ export {};
40
113
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;IAC7E,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,mBAAmB,IAAI,MAAM,CAAC;IAC9B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;CAChE;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,mBAAmB,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/dataloom",
3
- "version": "0.1.3-alpha.3",
3
+ "version": "0.1.3-alpha.4",
4
4
  "types": "./lib/index.d.ts",
5
5
  "main": "./lib/index.js",
6
6
  "files": [