@datviet/nbp-sdk 0.0.327 → 0.0.329

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
@@ -26,16 +26,19 @@ Khoá gắn chết vào một workspace — không cần gửi `X-Workspace-ID`,
26
26
  ```ts
27
27
  import { createOpencodeClient } from "@datviet/nbp-sdk/v2/client"
28
28
 
29
- const nbp = createOpencodeClient({
29
+ const client = createOpencodeClient({
30
30
  baseUrl: "https://nbp.datviet.ai",
31
31
  headers: { Authorization: `Bearer ${process.env.NBP_API_KEY}` },
32
32
  throwOnError: true,
33
33
  })
34
34
 
35
- const listings = await nbp.listings.list({ limit: 20 })
36
- const clients = await nbp.clients.list({ limit: 20 })
35
+ const listings = await client.nbp.listings.list({ limit: 20 })
36
+ const clients = await client.nbp.clients.list({ limit: 20 })
37
37
  ```
38
38
 
39
+ Endpoint bất động sản nằm dưới namespace `nbp` (`client.nbp.listings`, `client.nbp.clients`,
40
+ `client.nbp.tasks`…); còn `workspaces`, `session`, `agent` nằm thẳng ở gốc.
41
+
39
42
  Tham số đi **phẳng** — không bọc `query` / `body`. SDK tự xếp cái nào vào query, cái nào vào body.
40
43
 
41
44
  Hai mức quyền, chọn lúc tạo khoá:
@@ -60,7 +63,7 @@ const auth = createNbpAuth({
60
63
  redirectURI: `${location.origin}/auth/callback`,
61
64
  })
62
65
 
63
- const nbp = createOpencodeClient({ baseUrl: "https://nbp.datviet.ai", fetch: auth.fetch })
66
+ const client = createOpencodeClient({ baseUrl: "https://nbp.datviet.ai", fetch: auth.fetch })
64
67
 
65
68
  // Nút đăng nhập
66
69
  await auth.login()
@@ -70,7 +73,7 @@ const params = new URLSearchParams(location.search)
70
73
  const ok = await auth.handleCallback(params.get("code")!, params.get("state") ?? undefined)
71
74
 
72
75
  // Chọn workspace rồi mọi request sau đó tự mang X-Workspace-ID
73
- const ws = await nbp.workspaces.list()
76
+ const ws = await client.workspaces.list()
74
77
  auth.setWorkspace(ws.data!.data[0]!.id)
75
78
  ```
76
79
 
@@ -94,7 +97,7 @@ CORS đã mở cho `*.datviet.ai`, `*.ankapong.com` và mọi `http://localhost:
94
97
 
95
98
  ```ts
96
99
  // Tin mới nhất, có ảnh, nhà phố dưới 10 tỷ ở Quận 2
97
- const res = await nbp.listings.list({
100
+ const res = await client.nbp.listings.list({
98
101
  limit: 12,
99
102
  sortBy: "time_created",
100
103
  sortDirection: "desc",
@@ -105,17 +108,17 @@ const res = await nbp.listings.list({
105
108
  })
106
109
 
107
110
  // Tạo tin (khoá phải là "Đọc & ghi")
108
- await nbp.listings.create({
111
+ await client.nbp.listings.create({
109
112
  price: 8_500_000_000,
110
113
  tags: { category: "sale", property_type: "house", district: "Quận 2", area: 80 },
111
114
  })
112
115
 
113
116
  // Quản lý khoá API — chỉ JWT của owner/admin gọi được, khoá `sk-` bị chặn 403
114
- await nbp.workspaces.apiKeys.list({ id: workspaceID })
117
+ await client.workspaces.apiKeys.list({ id: workspaceID })
115
118
  ```
116
119
 
117
120
  Tag lưu trong DB bằng **key tiếng Anh** (`"house"`), UI hiện nhãn Việt (`"Nhà phố"`) — nhớ gửi key.
118
121
 
119
122
  ## Bản `v2` vs bản gốc
120
123
 
121
- `@datviet/nbp-sdk/v2/client` là bản đang dùng (client theo class, `nbp.listings.list()`). Export ở root (`@datviet/nbp-sdk`) là bản cũ kế thừa từ opencode, giữ cho tương thích — code mới dùng `/v2/client`.
124
+ `@datviet/nbp-sdk/v2/client` là bản đang dùng (client theo class, `client.nbp.listings.list()`). Export ở root (`@datviet/nbp-sdk`) là bản cũ kế thừa từ opencode, giữ cho tương thích — code mới dùng `/v2/client`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datviet/nbp-sdk",
3
- "version": "0.0.327",
3
+ "version": "0.0.329",
4
4
  "description": "TypeScript SDK cho NBP API (nbp.datviet.ai) — listings, clients, tasks, agent sessions.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1350,6 +1350,7 @@ export declare class Clients extends HeyApiClient {
1350
1350
  interactionsFeed<ThrowOnError extends boolean = false>(parameters?: {
1351
1351
  directory?: string;
1352
1352
  limit?: number;
1353
+ offset?: number;
1353
1354
  }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<NbpClientsInteractionsFeedResponses, unknown, ThrowOnError, "fields">;
1354
1355
  /**
1355
1356
  * List clients
package/v2/gen/sdk.gen.js CHANGED
@@ -1371,6 +1371,7 @@ export class Clients extends HeyApiClient {
1371
1371
  args: [
1372
1372
  { in: "query", key: "directory" },
1373
1373
  { in: "query", key: "limit" },
1374
+ { in: "query", key: "offset" },
1374
1375
  ],
1375
1376
  },
1376
1377
  ]);
@@ -1191,6 +1191,7 @@ export type Task = {
1191
1191
  clientId?: string | null;
1192
1192
  clientName?: string | null;
1193
1193
  listingId?: string | null;
1194
+ listingCode?: string | null;
1194
1195
  createdAt: string;
1195
1196
  updatedAt: string;
1196
1197
  };
@@ -6208,6 +6209,7 @@ export type NbpClientsStatsResponses = {
6208
6209
  bySourceChannel: {
6209
6210
  [key: string]: number;
6210
6211
  };
6212
+ pipelineValue: number;
6211
6213
  };
6212
6214
  };
6213
6215
  export type NbpClientsStatsResponse = NbpClientsStatsResponses[keyof NbpClientsStatsResponses];
@@ -6234,6 +6236,7 @@ export type NbpClientsInteractionsFeedData = {
6234
6236
  query?: {
6235
6237
  directory?: string;
6236
6238
  limit?: number;
6239
+ offset?: number;
6237
6240
  };
6238
6241
  url: "/nbp/clients/interactions";
6239
6242
  };