@lovrabet/sdk 1.5.1-beta.0 → 1.5.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/README.md CHANGED
@@ -61,6 +61,7 @@ import { createClient } from "@lovrabet/sdk";
61
61
  // 使用 accessKey 认证(推荐)
62
62
  const client = createClient({
63
63
  appCode: "your-app-code",
64
+ authMode: "openapi", // 使用 accessKey 时必须显式声明;缺省 authMode 一律走 cookie,accessKey 会被忽略
64
65
  accessKey: process.env.LOVRABET_ACCESS_KEY,
65
66
  models: [
66
67
  { tableName: "users", datasetCode: "abc123def456", alias: "users" },
@@ -107,6 +108,7 @@ const { token, timestamp } = await fetch("/api/token").then((r) => r.json());
107
108
  // 创建客户端
108
109
  const client = createClient({
109
110
  appCode: "your-app-code",
111
+ authMode: "openapi", // 使用 token 时必须显式声明;缺省 authMode 一律走 cookie,token 会被忽略
110
112
  token: token,
111
113
  timestamp: timestamp,
112
114
  models: [
@@ -579,12 +581,12 @@ query 或 fragment。未传 `region` 时默认 `cn`;显式传入 `cn` / `id`
579
581
  ### CRUD 操作
580
582
 
581
583
  ```typescript
582
- // 查询列表(返回 tableData/total/currentPage/pageSize)
584
+ // 查询列表(返回 tableData 与 paging: totalCount/currentPage/pageSize)
583
585
  const response = await client.models.users.getList({
584
586
  currentPage: 1,
585
587
  pageSize: 20,
586
588
  });
587
- console.log(response.total); // 总数量
589
+ console.log(response.paging.totalCount); // 总数量
588
590
  console.log(response.tableData); // 数据列表
589
591
 
590
592
  // 查询列表(带排序)
@@ -661,8 +663,8 @@ const result = await client.models.users.filter({
661
663
  pageSize: 20
662
664
  });
663
665
 
664
- console.log(result.tableData); // 数据列表
665
- console.log(result.total); // 总数量
666
+ console.log(result.tableData); // 数据列表
667
+ console.log(result.paging.totalCount); // 总数量
666
668
  ```
667
669
 
668
670
  #### 复杂条件组合
@@ -699,12 +701,15 @@ const result = await client.models.users.filter({
699
701
  |--------|------|------|
700
702
  | `$eq` | 等于 | `{ status: { $eq: 'active' } }` |
701
703
  | `$ne` | 不等于 | `{ status: { $ne: 'deleted' } }` |
702
- | `$gte` / `$gteq` | 大于等于 | `{ age: { $gte: 18 } }` |
703
- | `$lte` / `$lteq` | 小于等于 | `{ age: { $lte: 65 } }` |
704
+ | `$gt` | 大于 | `{ age: { $gt: 18 } }` |
705
+ | `$lt` | 小于 | `{ age: { $lt: 65 } }` |
706
+ | `$gte`(推荐)/ `$gteq`(兼容旧写法) | 大于等于 | `{ age: { $gte: 18 } }` |
707
+ | `$lte`(推荐)/ `$lteq`(兼容旧写法) | 小于等于 | `{ age: { $lte: 65 } }` |
704
708
  | `$in` | 在集合内 | `{ country: { $in: ['中国', '美国'] } }` |
705
709
  | `$contain` | 包含(模糊匹配) | `{ name: { $contain: 'test' } }` |
706
710
  | `$startWith` | 以...开头 | `{ name: { $startWith: 'Mr.' } }` |
707
711
  | `$endWith` | 以...结尾 | `{ email: { $endWith: '@example.com' } }` |
712
+ | `$notNull` | 非空判断 | `{ app_code: { $notNull: true } }` |
708
713
 
709
714
  #### 逻辑连接符
710
715
 
@@ -767,8 +772,8 @@ const result = await client.models.users.filter({
767
772
 
768
773
  **OpenAPI 模式暂不支持以下操作:**
769
774
 
770
- - ❌ `delete()` - 删除操作(如需删除,请使用 WebAPI 模式)
771
- - ❌ `getSelectOptions()` - 获取下拉选项(仅 WebAPI 模式支持)
775
+ - ❌ `delete()` - 删除操作(OpenAPI 不支持;WebAPI 与 Client AK 模式可用)
776
+ - ❌ `getSelectOptions()` - 获取下拉选项(OpenAPI 不支持;WebAPI 与 Client AK 模式可用)
772
777
 
773
778
  ```typescript
774
779
  // OpenAPI 模式调用 delete 会抛出错误
@@ -797,6 +802,7 @@ await webApiClient.models.users.delete("user-id"); // ✅ 可以使用
797
802
  ```typescript
798
803
  // 绝不要在客户端代码中硬编码 accessKey
799
804
  const client = createClient({
805
+ authMode: "openapi",
800
806
  accessKey: "sk_live_xxx", // 危险!会暴露密钥
801
807
  });
802
808
  ```
@@ -808,6 +814,7 @@ const client = createClient({
808
814
  ```typescript
809
815
  // 使用环境变量存储敏感信息
810
816
  const client = createClient({
817
+ authMode: "openapi", // 使用 accessKey 时必须显式声明;缺省 authMode 一律走 cookie,accessKey 会被忽略
811
818
  accessKey: process.env.LOVRABET_ACCESS_KEY,
812
819
  });
813
820
  ```
@@ -815,9 +822,9 @@ const client = createClient({
815
822
  **客户端:**
816
823
 
817
824
  ```typescript
818
- // 使用服务端生成的 token
819
- const { token } = await fetch("/api/token").then((r) => r.json());
820
- const client = createClient({ token });
825
+ // 使用服务端生成的 token(OpenAPI 预计算 token 必须配对 timestamp)
826
+ const { token, timestamp } = await fetch("/api/token").then((r) => r.json());
827
+ const client = createClient({ authMode: "openapi", token, timestamp });
821
828
  ```
822
829
 
823
830
  ## 🎯 选择正确的认证模式
@@ -959,6 +966,7 @@ const client = createClient({ token });
959
966
  ```typescript
960
967
  const client = createClient({
961
968
  appCode: "your-app-code",
969
+ authMode: "openapi", // 使用 accessKey 时必须显式声明;缺省 authMode 一律走 cookie
962
970
  accessKey: process.env.LOVRABET_ACCESS_KEY, // OpenAPI 模式下使用 filter(v1.1.22+)
963
971
  models: [
964
972
  { tableName: "users", datasetCode: "abc123def456", alias: "users" },
@@ -1155,6 +1163,7 @@ const client = createClient({ token });
1155
1163
  ```typescript
1156
1164
  const client = createClient({
1157
1165
  appCode: "your-app",
1166
+ authMode: "openapi", // 使用 accessKey 时必须显式声明;缺省 authMode 一律走 cookie
1158
1167
  accessKey: process.env.ACCESS_KEY,
1159
1168
  options: {
1160
1169
  debug: true, // 启用调试日志
package/dist/index.d.ts CHANGED
@@ -11,6 +11,8 @@ export { AbstractBaseModel, OpenApiModel, WebApiModel, ClientAkModel, ModelFacto
11
11
  export { ApiNamespace } from "./src/api/index";
12
12
  export { ServicesNamespace, FileClient, OcrClient, OcrType, OCR_TYPES, } from "./src/services/index";
13
13
  export type { LovrabetServices, FileQueryUrlRequest, FileService, FileUploadRequest, FileUploadResponse, FileUrlResponse, OcrRecognizeRequest, OcrRecognizeResponse, OcrService, ServiceRequestOptions, } from "./src/services/index";
14
+ export { PersonalNamespace, PersonalBffClient, } from "./src/personal/index";
15
+ export type { LovrabetPersonal, PersonalBffExecuteRequest, PersonalBffService, PersonalRequestOptions, } from "./src/personal/index";
14
16
  export { AuthManager, } from "./src/auth/index";
15
17
  export { generateOpenApiToken, TokenGenerator, isTokenExpiring, getTokenRemainingTime, type GenerateTokenParams, type TokenResult } from "./src/auth/index";
16
18
  export type { ClientConfig, LovrabetClient, ModelConfig, ModelsConfig, AuthMode, Region, } from "./src/types/index";