@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 +20 -11
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/src/client/client.d.ts +5 -0
- package/dist/src/personal/bff-client.d.ts +11 -0
- package/dist/src/personal/index.d.ts +11 -0
- package/dist/src/personal/types.d.ts +18 -0
- package/dist/src/types/index.d.ts +37 -22
- package/package.json +1 -1
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/
|
|
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.
|
|
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.
|
|
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
|
-
| `$
|
|
703
|
-
| `$
|
|
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()` -
|
|
771
|
-
- ❌ `getSelectOptions()` -
|
|
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";
|