@blocksdiy/blocks-client-sdk 1.7.0 → 1.8.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.
- package/dist/Action.d.ts +6 -43
- package/dist/Action.d.ts.map +1 -1
- package/dist/Action.js +6 -43
- package/dist/Agent.d.ts +43 -0
- package/dist/Agent.d.ts.map +1 -0
- package/dist/Agent.js +37 -0
- package/dist/ClientSdk.d.ts +17 -59
- package/dist/ClientSdk.d.ts.map +1 -1
- package/dist/ClientSdk.js +23 -59
- package/dist/Entity.d.ts +14 -79
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +14 -79
- package/dist/ReactClientSdk.d.ts +43 -99
- package/dist/ReactClientSdk.d.ts.map +1 -1
- package/dist/ReactClientSdk.jsx +45 -99
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/package.json +2 -2
package/dist/Entity.d.ts
CHANGED
|
@@ -72,17 +72,9 @@ export declare class Entity<EC extends EntityConfig = EntityConfig> {
|
|
|
72
72
|
* @returns {Promise<EntityType<EC> | null>} The entity if found, null otherwise
|
|
73
73
|
* @example
|
|
74
74
|
* ```ts
|
|
75
|
-
*
|
|
76
|
-
* const userConfig = {
|
|
77
|
-
* tableBlockId: 'users-table',
|
|
78
|
-
* instanceType: {} as {
|
|
79
|
-
* name: string;
|
|
80
|
-
* email: string;
|
|
81
|
-
* }
|
|
82
|
-
* };
|
|
75
|
+
* import { UserEntity } from '@/product-types';
|
|
83
76
|
*
|
|
84
|
-
*
|
|
85
|
-
* const userEntity = new Entity(userConfig);
|
|
77
|
+
* const userEntity = new Entity(UserEntity);
|
|
86
78
|
*
|
|
87
79
|
* // Find a user by email
|
|
88
80
|
* const user = await userEntity.findOne({ email: 'user@example.com' });
|
|
@@ -102,18 +94,9 @@ export declare class Entity<EC extends EntityConfig = EntityConfig> {
|
|
|
102
94
|
* @returns {Promise<Array<EntityType<EC>>>} Array of matching entities
|
|
103
95
|
* @example
|
|
104
96
|
* ```ts
|
|
105
|
-
*
|
|
106
|
-
* const productConfig = {
|
|
107
|
-
* tableBlockId: 'products-table',
|
|
108
|
-
* instanceType: {} as {
|
|
109
|
-
* name: string;
|
|
110
|
-
* price: number;
|
|
111
|
-
* category: string;
|
|
112
|
-
* }
|
|
113
|
-
* };
|
|
97
|
+
* import { ProductEntity } from '@/product-types';
|
|
114
98
|
*
|
|
115
|
-
*
|
|
116
|
-
* const productEntity = new Entity(productConfig);
|
|
99
|
+
* const productEntity = new Entity(ProductEntity);
|
|
117
100
|
*
|
|
118
101
|
* // Find all products in a specific category
|
|
119
102
|
* const products = await productEntity.findMany({ category: 'electronics' });
|
|
@@ -135,19 +118,9 @@ export declare class Entity<EC extends EntityConfig = EntityConfig> {
|
|
|
135
118
|
* @returns {Promise<EntityType<EC>>} The created entity with system fields
|
|
136
119
|
* @example
|
|
137
120
|
* ```ts
|
|
138
|
-
*
|
|
139
|
-
* const taskConfig = {
|
|
140
|
-
* tableBlockId: 'tasks-table',
|
|
141
|
-
* instanceType: {} as {
|
|
142
|
-
* title: string;
|
|
143
|
-
* description: string;
|
|
144
|
-
* status: 'todo' | 'in_progress' | 'done';
|
|
145
|
-
* assigneeId: string;
|
|
146
|
-
* }
|
|
147
|
-
* };
|
|
121
|
+
* import { TaskEntity } from '@/product-types';
|
|
148
122
|
*
|
|
149
|
-
*
|
|
150
|
-
* const taskEntity = new Entity(taskConfig);
|
|
123
|
+
* const taskEntity = new Entity(TaskEntity);
|
|
151
124
|
*
|
|
152
125
|
* // Create a new task
|
|
153
126
|
* const newTask = await taskEntity.create({
|
|
@@ -171,19 +144,9 @@ export declare class Entity<EC extends EntityConfig = EntityConfig> {
|
|
|
171
144
|
* @returns {Promise<EntityType<EC>[]>} Array of created entities with system fields
|
|
172
145
|
* @example
|
|
173
146
|
* ```ts
|
|
174
|
-
*
|
|
175
|
-
* const taskConfig = {
|
|
176
|
-
* tableBlockId: 'tasks-table',
|
|
177
|
-
* instanceType: {} as {
|
|
178
|
-
* title: string;
|
|
179
|
-
* description: string;
|
|
180
|
-
* status: 'todo' | 'in_progress' | 'done';
|
|
181
|
-
* assigneeId: string;
|
|
182
|
-
* }
|
|
183
|
-
* };
|
|
147
|
+
* import { TaskEntity } from '@/product-types';
|
|
184
148
|
*
|
|
185
|
-
*
|
|
186
|
-
* const taskEntity = new Entity(taskConfig);
|
|
149
|
+
* const taskEntity = new Entity(TaskEntity);
|
|
187
150
|
*
|
|
188
151
|
* // Create multiple tasks at once
|
|
189
152
|
* const newTasks = await taskEntity.createMany([
|
|
@@ -216,19 +179,9 @@ export declare class Entity<EC extends EntityConfig = EntityConfig> {
|
|
|
216
179
|
* @returns {Promise<EntityType<EC>>} The updated entity
|
|
217
180
|
* @example
|
|
218
181
|
* ```ts
|
|
219
|
-
*
|
|
220
|
-
* const userConfig = {
|
|
221
|
-
* tableBlockId: 'users-table',
|
|
222
|
-
* instanceType: {} as {
|
|
223
|
-
* name: string;
|
|
224
|
-
* email: string;
|
|
225
|
-
* role: string;
|
|
226
|
-
* lastLogin: string;
|
|
227
|
-
* }
|
|
228
|
-
* };
|
|
182
|
+
* import { UserEntity } from '@/product-types';
|
|
229
183
|
*
|
|
230
|
-
*
|
|
231
|
-
* const userEntity = new Entity(userConfig);
|
|
184
|
+
* const userEntity = new Entity(UserEntity);
|
|
232
185
|
*
|
|
233
186
|
* // Update a user's role
|
|
234
187
|
* const updatedUser = await userEntity.updateOne('8', {
|
|
@@ -247,18 +200,9 @@ export declare class Entity<EC extends EntityConfig = EntityConfig> {
|
|
|
247
200
|
* @returns {Promise<void>}
|
|
248
201
|
* @example
|
|
249
202
|
* ```ts
|
|
250
|
-
*
|
|
251
|
-
* const commentConfig = {
|
|
252
|
-
* tableBlockId: 'comments-table',
|
|
253
|
-
* instanceType: {} as {
|
|
254
|
-
* text: string;
|
|
255
|
-
* postId: string;
|
|
256
|
-
* authorId: string;
|
|
257
|
-
* }
|
|
258
|
-
* };
|
|
203
|
+
* import { CommentEntity } from '@/product-types';
|
|
259
204
|
*
|
|
260
|
-
*
|
|
261
|
-
* const commentEntity = new Entity(commentConfig);
|
|
205
|
+
* const commentEntity = new Entity(CommentEntity);
|
|
262
206
|
*
|
|
263
207
|
* // Delete a comment
|
|
264
208
|
* await commentEntity.deleteOne('comment-456');
|
|
@@ -276,18 +220,9 @@ export declare class Entity<EC extends EntityConfig = EntityConfig> {
|
|
|
276
220
|
* @returns {Promise<void>}
|
|
277
221
|
* @example
|
|
278
222
|
* ```ts
|
|
279
|
-
*
|
|
280
|
-
* const commentConfig = {
|
|
281
|
-
* tableBlockId: 'comments-table',
|
|
282
|
-
* instanceType: {} as {
|
|
283
|
-
* text: string;
|
|
284
|
-
* postId: string;
|
|
285
|
-
* authorId: string;
|
|
286
|
-
* }
|
|
287
|
-
* };
|
|
223
|
+
* import { CommentEntity } from '@/product-types';
|
|
288
224
|
*
|
|
289
|
-
*
|
|
290
|
-
* const commentEntity = new Entity(commentConfig);
|
|
225
|
+
* const commentEntity = new Entity(CommentEntity);
|
|
291
226
|
*
|
|
292
227
|
* // Delete multiple comments at once
|
|
293
228
|
* await commentEntity.deleteMany(['comment-123', 'comment-456', 'comment-789']);
|
package/dist/Entity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,IAAI,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAE3F;;;;;;;;GAQG;AACH,qBAAa,MAAM,CAAC,EAAE,SAAS,YAAY,GAAG,YAAY;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAiB;IAEvC;;;;OAIG;gBACS,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAK1D
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,IAAI,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAE3F;;;;;;;;GAQG;AACH,qBAAa,MAAM,CAAC,EAAE,SAAS,YAAY,GAAG,YAAY;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAiB;IAEvC;;;;OAIG;gBACS,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAK1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAU1C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG;IAY5B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC;IAU5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC,EAAE;IAUlD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAUvE;;;;;;;;;;;;;;;OAeG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM;IAS1B;;;;;;;;;;;;;;;;;;OAkBG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE;CAS/B"}
|
package/dist/Entity.js
CHANGED
|
@@ -38,17 +38,9 @@ export class Entity {
|
|
|
38
38
|
* @returns {Promise<EntityType<EC> | null>} The entity if found, null otherwise
|
|
39
39
|
* @example
|
|
40
40
|
* ```ts
|
|
41
|
-
*
|
|
42
|
-
* const userConfig = {
|
|
43
|
-
* tableBlockId: 'users-table',
|
|
44
|
-
* instanceType: {} as {
|
|
45
|
-
* name: string;
|
|
46
|
-
* email: string;
|
|
47
|
-
* }
|
|
48
|
-
* };
|
|
41
|
+
* import { UserEntity } from '@/product-types';
|
|
49
42
|
*
|
|
50
|
-
*
|
|
51
|
-
* const userEntity = new Entity(userConfig);
|
|
43
|
+
* const userEntity = new Entity(UserEntity);
|
|
52
44
|
*
|
|
53
45
|
* // Find a user by email
|
|
54
46
|
* const user = await userEntity.findOne({ email: 'user@example.com' });
|
|
@@ -77,18 +69,9 @@ export class Entity {
|
|
|
77
69
|
* @returns {Promise<Array<EntityType<EC>>>} Array of matching entities
|
|
78
70
|
* @example
|
|
79
71
|
* ```ts
|
|
80
|
-
*
|
|
81
|
-
* const productConfig = {
|
|
82
|
-
* tableBlockId: 'products-table',
|
|
83
|
-
* instanceType: {} as {
|
|
84
|
-
* name: string;
|
|
85
|
-
* price: number;
|
|
86
|
-
* category: string;
|
|
87
|
-
* }
|
|
88
|
-
* };
|
|
72
|
+
* import { ProductEntity } from '@/product-types';
|
|
89
73
|
*
|
|
90
|
-
*
|
|
91
|
-
* const productEntity = new Entity(productConfig);
|
|
74
|
+
* const productEntity = new Entity(ProductEntity);
|
|
92
75
|
*
|
|
93
76
|
* // Find all products in a specific category
|
|
94
77
|
* const products = await productEntity.findMany({ category: 'electronics' });
|
|
@@ -121,19 +104,9 @@ export class Entity {
|
|
|
121
104
|
* @returns {Promise<EntityType<EC>>} The created entity with system fields
|
|
122
105
|
* @example
|
|
123
106
|
* ```ts
|
|
124
|
-
*
|
|
125
|
-
* const taskConfig = {
|
|
126
|
-
* tableBlockId: 'tasks-table',
|
|
127
|
-
* instanceType: {} as {
|
|
128
|
-
* title: string;
|
|
129
|
-
* description: string;
|
|
130
|
-
* status: 'todo' | 'in_progress' | 'done';
|
|
131
|
-
* assigneeId: string;
|
|
132
|
-
* }
|
|
133
|
-
* };
|
|
107
|
+
* import { TaskEntity } from '@/product-types';
|
|
134
108
|
*
|
|
135
|
-
*
|
|
136
|
-
* const taskEntity = new Entity(taskConfig);
|
|
109
|
+
* const taskEntity = new Entity(TaskEntity);
|
|
137
110
|
*
|
|
138
111
|
* // Create a new task
|
|
139
112
|
* const newTask = await taskEntity.create({
|
|
@@ -166,19 +139,9 @@ export class Entity {
|
|
|
166
139
|
* @returns {Promise<EntityType<EC>[]>} Array of created entities with system fields
|
|
167
140
|
* @example
|
|
168
141
|
* ```ts
|
|
169
|
-
*
|
|
170
|
-
* const taskConfig = {
|
|
171
|
-
* tableBlockId: 'tasks-table',
|
|
172
|
-
* instanceType: {} as {
|
|
173
|
-
* title: string;
|
|
174
|
-
* description: string;
|
|
175
|
-
* status: 'todo' | 'in_progress' | 'done';
|
|
176
|
-
* assigneeId: string;
|
|
177
|
-
* }
|
|
178
|
-
* };
|
|
142
|
+
* import { TaskEntity } from '@/product-types';
|
|
179
143
|
*
|
|
180
|
-
*
|
|
181
|
-
* const taskEntity = new Entity(taskConfig);
|
|
144
|
+
* const taskEntity = new Entity(TaskEntity);
|
|
182
145
|
*
|
|
183
146
|
* // Create multiple tasks at once
|
|
184
147
|
* const newTasks = await taskEntity.createMany([
|
|
@@ -220,19 +183,9 @@ export class Entity {
|
|
|
220
183
|
* @returns {Promise<EntityType<EC>>} The updated entity
|
|
221
184
|
* @example
|
|
222
185
|
* ```ts
|
|
223
|
-
*
|
|
224
|
-
* const userConfig = {
|
|
225
|
-
* tableBlockId: 'users-table',
|
|
226
|
-
* instanceType: {} as {
|
|
227
|
-
* name: string;
|
|
228
|
-
* email: string;
|
|
229
|
-
* role: string;
|
|
230
|
-
* lastLogin: string;
|
|
231
|
-
* }
|
|
232
|
-
* };
|
|
186
|
+
* import { UserEntity } from '@/product-types';
|
|
233
187
|
*
|
|
234
|
-
*
|
|
235
|
-
* const userEntity = new Entity(userConfig);
|
|
188
|
+
* const userEntity = new Entity(UserEntity);
|
|
236
189
|
*
|
|
237
190
|
* // Update a user's role
|
|
238
191
|
* const updatedUser = await userEntity.updateOne('8', {
|
|
@@ -260,18 +213,9 @@ export class Entity {
|
|
|
260
213
|
* @returns {Promise<void>}
|
|
261
214
|
* @example
|
|
262
215
|
* ```ts
|
|
263
|
-
*
|
|
264
|
-
* const commentConfig = {
|
|
265
|
-
* tableBlockId: 'comments-table',
|
|
266
|
-
* instanceType: {} as {
|
|
267
|
-
* text: string;
|
|
268
|
-
* postId: string;
|
|
269
|
-
* authorId: string;
|
|
270
|
-
* }
|
|
271
|
-
* };
|
|
216
|
+
* import { CommentEntity } from '@/product-types';
|
|
272
217
|
*
|
|
273
|
-
*
|
|
274
|
-
* const commentEntity = new Entity(commentConfig);
|
|
218
|
+
* const commentEntity = new Entity(CommentEntity);
|
|
275
219
|
*
|
|
276
220
|
* // Delete a comment
|
|
277
221
|
* await commentEntity.deleteOne('comment-456');
|
|
@@ -297,18 +241,9 @@ export class Entity {
|
|
|
297
241
|
* @returns {Promise<void>}
|
|
298
242
|
* @example
|
|
299
243
|
* ```ts
|
|
300
|
-
*
|
|
301
|
-
* const commentConfig = {
|
|
302
|
-
* tableBlockId: 'comments-table',
|
|
303
|
-
* instanceType: {} as {
|
|
304
|
-
* text: string;
|
|
305
|
-
* postId: string;
|
|
306
|
-
* authorId: string;
|
|
307
|
-
* }
|
|
308
|
-
* };
|
|
244
|
+
* import { CommentEntity } from '@/product-types';
|
|
309
245
|
*
|
|
310
|
-
*
|
|
311
|
-
* const commentEntity = new Entity(commentConfig);
|
|
246
|
+
* const commentEntity = new Entity(CommentEntity);
|
|
312
247
|
*
|
|
313
248
|
* // Delete multiple comments at once
|
|
314
249
|
* await commentEntity.deleteMany(['comment-123', 'comment-456', 'comment-789']);
|
package/dist/ReactClientSdk.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ActionConfig } from "./Action.js";
|
|
2
|
+
import type { AgentConfig } from "./Agent.js";
|
|
2
3
|
import type { AgentChatConfig } from "./AgentChat.js";
|
|
3
4
|
import { ClientSdk, UpdateUserOptions } from "./ClientSdk.js";
|
|
4
5
|
import type { EntityConfig, EntityType, EntityTypeOnlyMutable } from "./Entity.js";
|
|
@@ -93,17 +94,10 @@ export declare const useClient: () => ReactClientSdk;
|
|
|
93
94
|
* @returns {string} returns.status - Current status of the query: 'idle', 'loading', 'success', 'error', or 'pending'
|
|
94
95
|
* @example
|
|
95
96
|
* ```tsx
|
|
96
|
-
*
|
|
97
|
-
* const itemConfig = {
|
|
98
|
-
* tableBlockId: 'items-table',
|
|
99
|
-
* instanceType: {} as {
|
|
100
|
-
* name: string;
|
|
101
|
-
* price: number;
|
|
102
|
-
* }
|
|
103
|
-
* };
|
|
97
|
+
* import { ItemEntity } from '@/product-types';
|
|
104
98
|
*
|
|
105
99
|
* function ItemsList() {
|
|
106
|
-
* const { data: items, isLoading } = useEntityGetAll(
|
|
100
|
+
* const { data: items, isLoading } = useEntityGetAll(ItemEntity);
|
|
107
101
|
*
|
|
108
102
|
* if (isLoading) return <div>Loading...</div>;
|
|
109
103
|
* return (
|
|
@@ -153,14 +147,7 @@ export declare const useEntityGetAll: <E extends EntityConfig>(entityConfig: E,
|
|
|
153
147
|
* @returns {string} returns.status - Current status of the query: 'idle', 'loading', 'success', 'error', or 'pending'
|
|
154
148
|
* @example
|
|
155
149
|
* ```tsx
|
|
156
|
-
*
|
|
157
|
-
* const userConfig = {
|
|
158
|
-
* tableBlockId: 'users-table',
|
|
159
|
-
* instanceType: {} as {
|
|
160
|
-
* name: string;
|
|
161
|
-
* email: string;
|
|
162
|
-
* }
|
|
163
|
-
* };
|
|
150
|
+
* import { UserEntity } from '@/product-types';
|
|
164
151
|
*
|
|
165
152
|
* function UserProfile({ userEmail }) {
|
|
166
153
|
* const { data: user, isLoading } = useEntityGetOne(UserEntity, { email: userEmail });
|
|
@@ -197,17 +184,10 @@ export declare const useEntityGetOne: <EC extends EntityConfig = EntityConfig>(e
|
|
|
197
184
|
* @returns {Object} Mutation object with create function, loading state, and error
|
|
198
185
|
* @example
|
|
199
186
|
* ```tsx
|
|
200
|
-
*
|
|
201
|
-
* const userConfig = {
|
|
202
|
-
* tableBlockId: 'users-table',
|
|
203
|
-
* instanceType: {} as {
|
|
204
|
-
* name: string;
|
|
205
|
-
* email: string;
|
|
206
|
-
* }
|
|
207
|
-
* };
|
|
187
|
+
* import { UserEntity } from '@/product-types';
|
|
208
188
|
*
|
|
209
189
|
* function CreateUserForm() {
|
|
210
|
-
* const { createFunction, isLoading } = useEntityCreate(
|
|
190
|
+
* const { createFunction, isLoading } = useEntityCreate(UserEntity);
|
|
211
191
|
* const [name, setName] = useState('');
|
|
212
192
|
* const [email, setEmail] = useState('');
|
|
213
193
|
*
|
|
@@ -253,18 +233,10 @@ export declare const useEntityCreate: <EC extends EntityConfig = EntityConfig>(e
|
|
|
253
233
|
* @returns {Object} Mutation object with createMany function, loading state, and error
|
|
254
234
|
* @example
|
|
255
235
|
* ```tsx
|
|
256
|
-
*
|
|
257
|
-
* const taskConfig = {
|
|
258
|
-
* tableBlockId: 'tasks-table',
|
|
259
|
-
* instanceType: {} as {
|
|
260
|
-
* title: string;
|
|
261
|
-
* status: 'todo' | 'in_progress' | 'done';
|
|
262
|
-
* assigneeId: string;
|
|
263
|
-
* }
|
|
264
|
-
* };
|
|
236
|
+
* import { TaskEntity } from '@/product-types';
|
|
265
237
|
*
|
|
266
238
|
* function ImportTasksButton() {
|
|
267
|
-
* const { createManyFunction, isLoading } = useEntityCreateMany(
|
|
239
|
+
* const { createManyFunction, isLoading } = useEntityCreateMany(TaskEntity);
|
|
268
240
|
*
|
|
269
241
|
* const handleImport = async () => {
|
|
270
242
|
* const tasksToCreate = [
|
|
@@ -303,17 +275,10 @@ export declare const useEntityCreateMany: <EC extends EntityConfig = EntityConfi
|
|
|
303
275
|
* @returns {Object} Mutation object with update function, loading state, and error
|
|
304
276
|
* @example
|
|
305
277
|
* ```tsx
|
|
306
|
-
*
|
|
307
|
-
* const userConfig = {
|
|
308
|
-
* tableBlockId: 'users-table',
|
|
309
|
-
* instanceType: {} as {
|
|
310
|
-
* name: string;
|
|
311
|
-
* email: string;
|
|
312
|
-
* }
|
|
313
|
-
* };
|
|
278
|
+
* import { UserEntity } from '@/product-types';
|
|
314
279
|
*
|
|
315
280
|
* function EditUserForm({ user }) {
|
|
316
|
-
* const { updateFunction, isLoading } = useEntityUpdate(
|
|
281
|
+
* const { updateFunction, isLoading } = useEntityUpdate(UserEntity);
|
|
317
282
|
* const [name, setName] = useState(user.name);
|
|
318
283
|
*
|
|
319
284
|
* const handleSubmit = async (e) => {
|
|
@@ -352,17 +317,10 @@ export declare const useEntityUpdate: <EC extends EntityConfig = EntityConfig>(e
|
|
|
352
317
|
* @returns {Object} Mutation object with delete function, loading state, and error
|
|
353
318
|
* @example
|
|
354
319
|
* ```tsx
|
|
355
|
-
*
|
|
356
|
-
* const userConfig = {
|
|
357
|
-
* tableBlockId: 'users-table',
|
|
358
|
-
* instanceType: {} as {
|
|
359
|
-
* name: string;
|
|
360
|
-
* email: string;
|
|
361
|
-
* }
|
|
362
|
-
* };
|
|
320
|
+
* import { UserEntity } from '@/product-types';
|
|
363
321
|
*
|
|
364
322
|
* function DeleteUserButton({ userId }) {
|
|
365
|
-
* const { deleteFunction, isLoading } = useEntityDelete(
|
|
323
|
+
* const { deleteFunction, isLoading } = useEntityDelete(UserEntity);
|
|
366
324
|
*
|
|
367
325
|
* const handleDelete = async () => {
|
|
368
326
|
* if (confirm('Are you sure?')) {
|
|
@@ -396,17 +354,10 @@ export declare const useEntityDelete: <EC extends EntityConfig = EntityConfig>(e
|
|
|
396
354
|
* @returns {Object} Mutation object with delete many function, loading state, and error
|
|
397
355
|
* @example
|
|
398
356
|
* ```tsx
|
|
399
|
-
*
|
|
400
|
-
* const userConfig = {
|
|
401
|
-
* tableBlockId: 'users-table',
|
|
402
|
-
* instanceType: {} as {
|
|
403
|
-
* name: string;
|
|
404
|
-
* email: string;
|
|
405
|
-
* }
|
|
406
|
-
* };
|
|
357
|
+
* import { UserEntity } from '@/product-types';
|
|
407
358
|
*
|
|
408
359
|
* function DeleteSelectedUsersButton({ selectedUserIds }) {
|
|
409
|
-
* const { deleteManyFunction, isLoading } = useEntityDeleteMany(
|
|
360
|
+
* const { deleteManyFunction, isLoading } = useEntityDeleteMany(UserEntity);
|
|
410
361
|
*
|
|
411
362
|
* const handleDeleteSelected = async () => {
|
|
412
363
|
* if (confirm(`Delete ${selectedUserIds.length} users?`)) {
|
|
@@ -463,24 +414,10 @@ export declare const useEntityDeleteMany: <EC extends EntityConfig = EntityConfi
|
|
|
463
414
|
* @returns {Function} returns.clear - Function to clear result and streamResult values
|
|
464
415
|
* @example
|
|
465
416
|
* ```tsx
|
|
466
|
-
*
|
|
467
|
-
* const processPaymentConfig = {
|
|
468
|
-
* actionBlockId: 'process-payment',
|
|
469
|
-
* inputInstanceType: {} as {
|
|
470
|
-
* amount: number;
|
|
471
|
-
* paymentMethod: string;
|
|
472
|
-
* currency: string;
|
|
473
|
-
* },
|
|
474
|
-
* outputInstanceType: {} as {
|
|
475
|
-
* success: boolean;
|
|
476
|
-
* transactionId: string;
|
|
477
|
-
* receiptUrl?: string;
|
|
478
|
-
* error?: string;
|
|
479
|
-
* }
|
|
480
|
-
* };
|
|
417
|
+
* import { ExportDataAction, ProcessPaymentAction } from '@/product-types';
|
|
481
418
|
*
|
|
482
419
|
* function PaymentForm() {
|
|
483
|
-
* const { executeFunction, result, isLoading, error } = useExecuteAction(
|
|
420
|
+
* const { executeFunction, result, isLoading, error } = useExecuteAction(ProcessPaymentAction);
|
|
484
421
|
* const [amount, setAmount] = useState('');
|
|
485
422
|
* const [paymentMethod, setPaymentMethod] = useState('credit_card');
|
|
486
423
|
*
|
|
@@ -518,22 +455,8 @@ export declare const useEntityDeleteMany: <EC extends EntityConfig = EntityConfi
|
|
|
518
455
|
* );
|
|
519
456
|
* }
|
|
520
457
|
*
|
|
521
|
-
* // Example 2: Data export action (with streaming)
|
|
522
|
-
* const exportDataConfig = {
|
|
523
|
-
* actionBlockId: 'export-data',
|
|
524
|
-
* inputInstanceType: {} as {
|
|
525
|
-
* format: 'csv' | 'json';
|
|
526
|
-
* filters: Record<string, any>;
|
|
527
|
-
* },
|
|
528
|
-
* outputInstanceType: {} as {
|
|
529
|
-
* progress: number;
|
|
530
|
-
* downloadUrl?: string;
|
|
531
|
-
* status: string;
|
|
532
|
-
* }
|
|
533
|
-
* };
|
|
534
|
-
*
|
|
535
458
|
* function DataExportTool() {
|
|
536
|
-
* const { executeFunction, result, isLoading, isDone } = useExecuteAction(
|
|
459
|
+
* const { executeFunction, result, isLoading, isDone } = useExecuteAction(ExportDataAction);
|
|
537
460
|
* const [format, setFormat] = useState<'csv' | 'json'>('csv');
|
|
538
461
|
*
|
|
539
462
|
* const handleExport = async () => {
|
|
@@ -585,18 +508,39 @@ export declare const useExecuteAction: <AC extends ActionConfig = ActionConfig>(
|
|
|
585
508
|
* @returns {AgentChat<ACC>} An AgentChat instance for the given configuration
|
|
586
509
|
* @example
|
|
587
510
|
* ```tsx
|
|
588
|
-
*
|
|
589
|
-
* const agentChatConfig = {
|
|
590
|
-
* agentChatId: 'agent-chat-id'
|
|
591
|
-
* };
|
|
511
|
+
* import { CustomerSupportChatAgent } from '@/product-types';
|
|
592
512
|
*
|
|
593
513
|
* function AgentChatComponent() {
|
|
594
|
-
* const agentChat = useAgentChat(
|
|
514
|
+
* const agentChat = useAgentChat(CustomerSupportChatAgent);
|
|
595
515
|
* return <AgentChat agentChat={agentChat} />;
|
|
596
516
|
* }
|
|
597
517
|
* ```
|
|
598
518
|
*/
|
|
599
519
|
export declare const useAgentChat: <ACC extends AgentChatConfig = AgentChatConfig>(agentChatConfig: ACC) => import("./AgentChat.js").AgentChat<ACC>;
|
|
520
|
+
/**
|
|
521
|
+
* Hook to get an Agent instance from a generated agent configuration.
|
|
522
|
+
*
|
|
523
|
+
* Import generated agent configs from `@/product-types`, then pass one to
|
|
524
|
+
* `useAgent()` to read typed agent metadata such as name, title, avatarUrl,
|
|
525
|
+
* photoUrl, and harness.
|
|
526
|
+
*
|
|
527
|
+
* @template AC - Agent configuration type
|
|
528
|
+
* @param {AC} agentConfig - Generated agent configuration from product-types
|
|
529
|
+
* @returns {Agent<AC>} An Agent instance for the given configuration
|
|
530
|
+
* @example
|
|
531
|
+
* ```tsx
|
|
532
|
+
* import { useAgent } from '@blocksdiy/blocks-client-sdk/reactSdk';
|
|
533
|
+
* import { CustomerSupportAgent } from '@/product-types';
|
|
534
|
+
*
|
|
535
|
+
* function AgentHeader() {
|
|
536
|
+
* const agent = useAgent(CustomerSupportAgent);
|
|
537
|
+
* const { name, title, avatarUrl, photoUrl } = agent.getAgentProps();
|
|
538
|
+
*
|
|
539
|
+
* return <img src={avatarUrl ?? photoUrl} alt={name} />;
|
|
540
|
+
* }
|
|
541
|
+
* ```
|
|
542
|
+
*/
|
|
543
|
+
export declare const useAgent: <AC extends AgentConfig = AgentConfig>(agentConfig: AC) => import("./Agent.js").Agent<AC>;
|
|
600
544
|
/**
|
|
601
545
|
* Hook to handle file uploads
|
|
602
546
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactClientSdk.d.ts","sourceRoot":"","sources":["../src/ReactClientSdk.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,qBAAa,cAAe,SAAQ,SAAS;CAAG;AAsChD,oBAAY,iBAAiB;IAC3B,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;CACpC;AA+ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,cAAc,GAAI,gDAK5B;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACvC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;CAChE,gCAuDA,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,SAAS,sBAOrB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"ReactClientSdk.d.ts","sourceRoot":"","sources":["../src/ReactClientSdk.tsx"],"names":[],"mappings":"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"}
|