@robosystems/client 0.2.49 → 0.3.1

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.
Files changed (191) hide show
  1. package/extensions/InvestorClient.d.ts +98 -0
  2. package/extensions/InvestorClient.js +223 -0
  3. package/extensions/InvestorClient.ts +508 -0
  4. package/extensions/LedgerClient.d.ts +190 -309
  5. package/extensions/LedgerClient.js +268 -587
  6. package/extensions/LedgerClient.ts +784 -903
  7. package/extensions/ReportClient.d.ts +82 -113
  8. package/extensions/ReportClient.js +124 -211
  9. package/extensions/ReportClient.ts +305 -358
  10. package/extensions/config.d.ts +19 -0
  11. package/extensions/config.js +1 -1
  12. package/extensions/config.ts +22 -2
  13. package/extensions/graphql/client.d.ts +82 -0
  14. package/extensions/graphql/client.js +149 -0
  15. package/extensions/graphql/client.ts +189 -0
  16. package/extensions/graphql/generated/graphql.d.ts +1786 -0
  17. package/extensions/graphql/generated/graphql.js +2671 -0
  18. package/extensions/graphql/generated/graphql.ts +4491 -0
  19. package/extensions/graphql/queries/investor/holdings.d.ts +8 -0
  20. package/extensions/graphql/queries/investor/holdings.js +36 -0
  21. package/extensions/graphql/queries/investor/holdings.ts +34 -0
  22. package/extensions/graphql/queries/investor/portfolio.d.ts +4 -0
  23. package/extensions/graphql/queries/investor/portfolio.js +21 -0
  24. package/extensions/graphql/queries/investor/portfolio.ts +19 -0
  25. package/extensions/graphql/queries/investor/portfolios.d.ts +4 -0
  26. package/extensions/graphql/queries/investor/portfolios.js +29 -0
  27. package/extensions/graphql/queries/investor/portfolios.ts +27 -0
  28. package/extensions/graphql/queries/investor/position.d.ts +4 -0
  29. package/extensions/graphql/queries/investor/position.js +33 -0
  30. package/extensions/graphql/queries/investor/position.ts +31 -0
  31. package/extensions/graphql/queries/investor/positions.d.ts +8 -0
  32. package/extensions/graphql/queries/investor/positions.js +57 -0
  33. package/extensions/graphql/queries/investor/positions.ts +55 -0
  34. package/extensions/graphql/queries/investor/securities.d.ts +8 -0
  35. package/extensions/graphql/queries/investor/securities.js +50 -0
  36. package/extensions/graphql/queries/investor/securities.ts +48 -0
  37. package/extensions/graphql/queries/investor/security.d.ts +4 -0
  38. package/extensions/graphql/queries/investor/security.js +26 -0
  39. package/extensions/graphql/queries/investor/security.ts +24 -0
  40. package/extensions/graphql/queries/ledger/accountRollups.d.ts +7 -0
  41. package/extensions/graphql/queries/ledger/accountRollups.js +36 -0
  42. package/extensions/graphql/queries/ledger/accountRollups.ts +34 -0
  43. package/extensions/graphql/queries/ledger/accountTree.d.ts +11 -0
  44. package/extensions/graphql/queries/ledger/accountTree.js +61 -0
  45. package/extensions/graphql/queries/ledger/accountTree.ts +59 -0
  46. package/extensions/graphql/queries/ledger/accounts.d.ts +8 -0
  47. package/extensions/graphql/queries/ledger/accounts.js +45 -0
  48. package/extensions/graphql/queries/ledger/accounts.ts +43 -0
  49. package/extensions/graphql/queries/ledger/closingBookStructures.d.ts +6 -0
  50. package/extensions/graphql/queries/ledger/closingBookStructures.js +27 -0
  51. package/extensions/graphql/queries/ledger/closingBookStructures.ts +25 -0
  52. package/extensions/graphql/queries/ledger/elements.d.ts +6 -0
  53. package/extensions/graphql/queries/ledger/elements.js +56 -0
  54. package/extensions/graphql/queries/ledger/elements.ts +54 -0
  55. package/extensions/graphql/queries/ledger/entities.d.ts +7 -0
  56. package/extensions/graphql/queries/ledger/entities.js +31 -0
  57. package/extensions/graphql/queries/ledger/entities.ts +29 -0
  58. package/extensions/graphql/queries/ledger/entity.d.ts +14 -0
  59. package/extensions/graphql/queries/ledger/entity.js +55 -0
  60. package/extensions/graphql/queries/ledger/entity.ts +54 -0
  61. package/extensions/graphql/queries/ledger/fiscalCalendar.d.ts +8 -0
  62. package/extensions/graphql/queries/ledger/fiscalCalendar.js +35 -0
  63. package/extensions/graphql/queries/ledger/fiscalCalendar.ts +33 -0
  64. package/extensions/graphql/queries/ledger/mappedTrialBalance.d.ts +9 -0
  65. package/extensions/graphql/queries/ledger/mappedTrialBalance.js +29 -0
  66. package/extensions/graphql/queries/ledger/mappedTrialBalance.ts +27 -0
  67. package/extensions/graphql/queries/ledger/mapping.d.ts +5 -0
  68. package/extensions/graphql/queries/ledger/mapping.js +35 -0
  69. package/extensions/graphql/queries/ledger/mapping.ts +33 -0
  70. package/extensions/graphql/queries/ledger/mappingCoverage.d.ts +5 -0
  71. package/extensions/graphql/queries/ledger/mappingCoverage.js +22 -0
  72. package/extensions/graphql/queries/ledger/mappingCoverage.ts +20 -0
  73. package/extensions/graphql/queries/ledger/mappings.d.ts +6 -0
  74. package/extensions/graphql/queries/ledger/mappings.js +23 -0
  75. package/extensions/graphql/queries/ledger/mappings.ts +21 -0
  76. package/extensions/graphql/queries/ledger/periodCloseStatus.d.ts +6 -0
  77. package/extensions/graphql/queries/ledger/periodCloseStatus.js +29 -0
  78. package/extensions/graphql/queries/ledger/periodCloseStatus.ts +27 -0
  79. package/extensions/graphql/queries/ledger/periodDrafts.d.ts +8 -0
  80. package/extensions/graphql/queries/ledger/periodDrafts.js +45 -0
  81. package/extensions/graphql/queries/ledger/periodDrafts.ts +43 -0
  82. package/extensions/graphql/queries/ledger/publishList.d.ts +5 -0
  83. package/extensions/graphql/queries/ledger/publishList.js +29 -0
  84. package/extensions/graphql/queries/ledger/publishList.ts +27 -0
  85. package/extensions/graphql/queries/ledger/publishLists.d.ts +5 -0
  86. package/extensions/graphql/queries/ledger/publishLists.js +29 -0
  87. package/extensions/graphql/queries/ledger/publishLists.ts +27 -0
  88. package/extensions/graphql/queries/ledger/report.d.ts +5 -0
  89. package/extensions/graphql/queries/ledger/report.js +40 -0
  90. package/extensions/graphql/queries/ledger/report.ts +38 -0
  91. package/extensions/graphql/queries/ledger/reportingTaxonomy.d.ts +6 -0
  92. package/extensions/graphql/queries/ledger/reportingTaxonomy.js +27 -0
  93. package/extensions/graphql/queries/ledger/reportingTaxonomy.ts +25 -0
  94. package/extensions/graphql/queries/ledger/reports.d.ts +8 -0
  95. package/extensions/graphql/queries/ledger/reports.js +45 -0
  96. package/extensions/graphql/queries/ledger/reports.ts +43 -0
  97. package/extensions/graphql/queries/ledger/scheduleFacts.d.ts +7 -0
  98. package/extensions/graphql/queries/ledger/scheduleFacts.js +24 -0
  99. package/extensions/graphql/queries/ledger/scheduleFacts.ts +22 -0
  100. package/extensions/graphql/queries/ledger/schedules.d.ts +6 -0
  101. package/extensions/graphql/queries/ledger/schedules.js +24 -0
  102. package/extensions/graphql/queries/ledger/schedules.ts +22 -0
  103. package/extensions/graphql/queries/ledger/statement.d.ts +9 -0
  104. package/extensions/graphql/queries/ledger/statement.js +43 -0
  105. package/extensions/graphql/queries/ledger/statement.ts +41 -0
  106. package/extensions/graphql/queries/ledger/structures.d.ts +5 -0
  107. package/extensions/graphql/queries/ledger/structures.js +22 -0
  108. package/extensions/graphql/queries/ledger/structures.ts +20 -0
  109. package/extensions/graphql/queries/ledger/summary.d.ts +7 -0
  110. package/extensions/graphql/queries/ledger/summary.js +25 -0
  111. package/extensions/graphql/queries/ledger/summary.ts +23 -0
  112. package/extensions/graphql/queries/ledger/taxonomies.d.ts +5 -0
  113. package/extensions/graphql/queries/ledger/taxonomies.js +28 -0
  114. package/extensions/graphql/queries/ledger/taxonomies.ts +26 -0
  115. package/extensions/graphql/queries/ledger/transaction.d.ts +6 -0
  116. package/extensions/graphql/queries/ledger/transaction.js +49 -0
  117. package/extensions/graphql/queries/ledger/transaction.ts +47 -0
  118. package/extensions/graphql/queries/ledger/transactions.d.ts +7 -0
  119. package/extensions/graphql/queries/ledger/transactions.js +49 -0
  120. package/extensions/graphql/queries/ledger/transactions.ts +47 -0
  121. package/extensions/graphql/queries/ledger/trialBalance.d.ts +7 -0
  122. package/extensions/graphql/queries/ledger/trialBalance.js +28 -0
  123. package/extensions/graphql/queries/ledger/trialBalance.ts +26 -0
  124. package/extensions/graphql/queries/ledger/unmappedElements.d.ts +8 -0
  125. package/extensions/graphql/queries/ledger/unmappedElements.js +29 -0
  126. package/extensions/graphql/queries/ledger/unmappedElements.ts +27 -0
  127. package/extensions/hooks.d.ts +1 -1
  128. package/extensions/index.d.ts +18 -1
  129. package/extensions/index.js +26 -1
  130. package/extensions/index.ts +49 -2
  131. package/index.ts +2 -2
  132. package/package.json +14 -5
  133. package/sdk/index.d.ts +2 -2
  134. package/sdk/index.js +38 -73
  135. package/sdk/index.ts +2 -2
  136. package/sdk/sdk.gen.d.ts +100 -325
  137. package/sdk/sdk.gen.js +228 -592
  138. package/sdk/sdk.gen.ts +193 -556
  139. package/sdk/types.gen.d.ts +4522 -7708
  140. package/sdk/types.gen.ts +4569 -7983
  141. package/sdk.gen.d.ts +100 -325
  142. package/sdk.gen.js +228 -592
  143. package/sdk.gen.ts +193 -556
  144. package/types.gen.d.ts +4522 -7708
  145. package/types.gen.ts +4569 -7983
  146. package/extensions/AgentClient.test.ts +0 -403
  147. package/extensions/LedgerClient.test.ts +0 -1655
  148. package/extensions/OperationClient.test.ts +0 -365
  149. package/extensions/QueryClient.test.ts +0 -432
  150. package/extensions/ReportClient.test.ts +0 -828
  151. package/extensions/SSEClient.test.ts +0 -375
  152. package/extensions/config.test.ts +0 -199
  153. package/extensions/hooks.test.ts +0 -373
  154. package/extensions/index.test.ts +0 -420
  155. package/sdk-extensions/AgentClient.d.ts +0 -82
  156. package/sdk-extensions/AgentClient.js +0 -218
  157. package/sdk-extensions/AgentClient.test.ts +0 -403
  158. package/sdk-extensions/AgentClient.ts +0 -321
  159. package/sdk-extensions/LedgerClient.d.ts +0 -416
  160. package/sdk-extensions/LedgerClient.js +0 -737
  161. package/sdk-extensions/LedgerClient.test.ts +0 -1655
  162. package/sdk-extensions/LedgerClient.ts +0 -1249
  163. package/sdk-extensions/OperationClient.d.ts +0 -65
  164. package/sdk-extensions/OperationClient.js +0 -251
  165. package/sdk-extensions/OperationClient.test.ts +0 -365
  166. package/sdk-extensions/OperationClient.ts +0 -324
  167. package/sdk-extensions/QueryClient.d.ts +0 -52
  168. package/sdk-extensions/QueryClient.js +0 -313
  169. package/sdk-extensions/QueryClient.test.ts +0 -432
  170. package/sdk-extensions/QueryClient.ts +0 -420
  171. package/sdk-extensions/README.md +0 -901
  172. package/sdk-extensions/ReportClient.d.ts +0 -151
  173. package/sdk-extensions/ReportClient.js +0 -278
  174. package/sdk-extensions/ReportClient.test.ts +0 -828
  175. package/sdk-extensions/ReportClient.ts +0 -486
  176. package/sdk-extensions/SSEClient.d.ts +0 -62
  177. package/sdk-extensions/SSEClient.js +0 -154
  178. package/sdk-extensions/SSEClient.test.ts +0 -375
  179. package/sdk-extensions/SSEClient.ts +0 -210
  180. package/sdk-extensions/config.d.ts +0 -57
  181. package/sdk-extensions/config.js +0 -152
  182. package/sdk-extensions/config.test.ts +0 -199
  183. package/sdk-extensions/config.ts +0 -175
  184. package/sdk-extensions/hooks.d.ts +0 -110
  185. package/sdk-extensions/hooks.js +0 -384
  186. package/sdk-extensions/hooks.test.ts +0 -373
  187. package/sdk-extensions/hooks.ts +0 -459
  188. package/sdk-extensions/index.d.ts +0 -63
  189. package/sdk-extensions/index.js +0 -164
  190. package/sdk-extensions/index.test.ts +0 -420
  191. package/sdk-extensions/index.ts +0 -203
@@ -1,384 +0,0 @@
1
- 'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.useQuery = useQuery;
5
- exports.useStreamingQuery = useStreamingQuery;
6
- exports.useOperation = useOperation;
7
- exports.useMultipleOperations = useMultipleOperations;
8
- exports.useSDKClients = useSDKClients;
9
- /**
10
- * React hooks for SDK extensions
11
- * Provides easy-to-use hooks for Next.js/React applications
12
- */
13
- const react_1 = require("react");
14
- const client_gen_1 = require("../sdk/client.gen");
15
- const config_1 = require("./config");
16
- const OperationClient_1 = require("./OperationClient");
17
- const QueryClient_1 = require("./QueryClient");
18
- /**
19
- * Hook for executing Cypher queries with loading states and error handling
20
- *
21
- * @example
22
- * ```tsx
23
- * const { execute, loading, error, data } = useQuery('graph_123')
24
- *
25
- * const handleSearch = async () => {
26
- * const result = await execute('MATCH (n:Company) RETURN n LIMIT 10')
27
- * console.log(result.data)
28
- * }
29
- * ```
30
- */
31
- function useQuery(graphId) {
32
- const [loading, setLoading] = (0, react_1.useState)(false);
33
- const [error, setError] = (0, react_1.useState)(null);
34
- const [data, setData] = (0, react_1.useState)(null);
35
- const [queuePosition, setQueuePosition] = (0, react_1.useState)(null);
36
- const clientRef = (0, react_1.useRef)(null);
37
- // Initialize client
38
- (0, react_1.useEffect)(() => {
39
- const sdkConfig = (0, config_1.getSDKExtensionsConfig)();
40
- const clientConfig = client_gen_1.client.getConfig();
41
- // Extract JWT token (uses centralized logic)
42
- const token = (0, config_1.extractTokenFromSDKClient)();
43
- clientRef.current = new QueryClient_1.QueryClient({
44
- baseUrl: sdkConfig.baseUrl || clientConfig.baseUrl || 'http://localhost:8000',
45
- credentials: sdkConfig.credentials,
46
- headers: sdkConfig.headers,
47
- token,
48
- });
49
- return () => {
50
- clientRef.current?.close();
51
- };
52
- }, []);
53
- const execute = (0, react_1.useCallback)(async (query, parameters, options) => {
54
- if (!clientRef.current)
55
- return null;
56
- setLoading(true);
57
- setError(null);
58
- setData(null);
59
- setQueuePosition(null);
60
- try {
61
- const result = (await clientRef.current.executeQuery(graphId, { query, parameters }, {
62
- ...options,
63
- onQueueUpdate: (position) => {
64
- setQueuePosition(position);
65
- },
66
- onProgress: () => {
67
- setQueuePosition(null); // Clear queue position when executing
68
- },
69
- }));
70
- setData(result);
71
- return result;
72
- }
73
- catch (err) {
74
- const error = err;
75
- setError(error);
76
- return null;
77
- }
78
- finally {
79
- setLoading(false);
80
- setQueuePosition(null);
81
- }
82
- }, [graphId]);
83
- // Simple query method that returns just the data
84
- const query = (0, react_1.useCallback)(async (cypher, parameters) => {
85
- const result = await execute(cypher, parameters);
86
- return result?.data || [];
87
- }, [execute]);
88
- return {
89
- execute,
90
- query,
91
- loading,
92
- error,
93
- data,
94
- queuePosition,
95
- };
96
- }
97
- /**
98
- * Hook for streaming large query results
99
- *
100
- * @example
101
- * ```tsx
102
- * const { stream, isStreaming, error, cancel } = useStreamingQuery('graph_123')
103
- *
104
- * const handleStream = async () => {
105
- * const iterator = stream('MATCH (n) RETURN n')
106
- * for await (const batch of iterator) {
107
- * console.log('Received batch:', batch)
108
- * }
109
- * }
110
- * ```
111
- */
112
- function useStreamingQuery(graphId) {
113
- const [isStreaming, setIsStreaming] = (0, react_1.useState)(false);
114
- const [error, setError] = (0, react_1.useState)(null);
115
- const [rowsReceived, setRowsReceived] = (0, react_1.useState)(0);
116
- const clientRef = (0, react_1.useRef)(null);
117
- (0, react_1.useEffect)(() => {
118
- const sdkConfig = (0, config_1.getSDKExtensionsConfig)();
119
- const clientConfig = client_gen_1.client.getConfig();
120
- clientRef.current = new QueryClient_1.QueryClient({
121
- baseUrl: sdkConfig.baseUrl || clientConfig.baseUrl || 'http://localhost:8000',
122
- credentials: sdkConfig.credentials,
123
- headers: sdkConfig.headers,
124
- token: sdkConfig.token,
125
- });
126
- return () => {
127
- clientRef.current?.close();
128
- };
129
- }, []);
130
- const stream = (0, react_1.useCallback)(async function* (query, parameters, chunkSize = 100) {
131
- if (!clientRef.current)
132
- return;
133
- setIsStreaming(true);
134
- setError(null);
135
- setRowsReceived(0);
136
- try {
137
- const iterator = clientRef.current.streamQuery(graphId, query, parameters, chunkSize);
138
- let buffer = [];
139
- let count = 0;
140
- for await (const row of iterator) {
141
- buffer.push(row);
142
- count++;
143
- if (buffer.length >= chunkSize) {
144
- setRowsReceived(count);
145
- yield buffer;
146
- buffer = [];
147
- }
148
- }
149
- // Yield any remaining items
150
- if (buffer.length > 0) {
151
- setRowsReceived(count);
152
- yield buffer;
153
- }
154
- }
155
- catch (err) {
156
- setError(err);
157
- throw err;
158
- }
159
- finally {
160
- setIsStreaming(false);
161
- }
162
- }, [graphId]);
163
- const cancel = (0, react_1.useCallback)(() => {
164
- clientRef.current?.close();
165
- setIsStreaming(false);
166
- }, []);
167
- return {
168
- stream,
169
- isStreaming,
170
- error,
171
- rowsReceived,
172
- cancel,
173
- };
174
- }
175
- /**
176
- * Hook for monitoring long-running operations
177
- *
178
- * @example
179
- * ```tsx
180
- * const { monitor, status, progress, error, result } = useOperation<BackupResult>()
181
- *
182
- * const handleBackup = async () => {
183
- * const { operation_id } = await createBackup({ ... })
184
- * const result = await monitor(operation_id)
185
- * console.log('Backup completed:', result)
186
- * }
187
- * ```
188
- */
189
- function useOperation(operationId) {
190
- const [status, setStatus] = (0, react_1.useState)('idle');
191
- const [progress, setProgress] = (0, react_1.useState)(null);
192
- const [error, setError] = (0, react_1.useState)(null);
193
- const [result, setResult] = (0, react_1.useState)(null);
194
- const clientRef = (0, react_1.useRef)(null);
195
- (0, react_1.useEffect)(() => {
196
- const sdkConfig = (0, config_1.getSDKExtensionsConfig)();
197
- const clientConfig = client_gen_1.client.getConfig();
198
- // Extract JWT token (uses centralized logic)
199
- const token = (0, config_1.extractTokenFromSDKClient)();
200
- clientRef.current = new OperationClient_1.OperationClient({
201
- baseUrl: sdkConfig.baseUrl || clientConfig.baseUrl || 'http://localhost:8000',
202
- credentials: sdkConfig.credentials,
203
- token,
204
- maxRetries: sdkConfig.maxRetries,
205
- retryDelay: sdkConfig.retryDelay,
206
- });
207
- return () => {
208
- clientRef.current?.closeAll();
209
- };
210
- }, []);
211
- const monitor = (0, react_1.useCallback)(async (id, timeout) => {
212
- if (!clientRef.current)
213
- return null;
214
- setStatus('running');
215
- setError(null);
216
- setResult(null);
217
- setProgress(null);
218
- try {
219
- const opResult = await clientRef.current.monitorOperation(id, {
220
- onProgress: (p) => {
221
- setProgress(p);
222
- },
223
- onQueueUpdate: (position, estimatedWait) => {
224
- setProgress({
225
- message: `Queue position: ${position}`,
226
- progressPercent: 0,
227
- details: { position, estimatedWait },
228
- });
229
- },
230
- timeout,
231
- });
232
- setResult(opResult);
233
- setStatus(opResult.success ? 'completed' : 'error');
234
- if (!opResult.success && opResult.error) {
235
- setError(new Error(opResult.error));
236
- }
237
- return opResult;
238
- }
239
- catch (err) {
240
- const error = err;
241
- setError(error);
242
- setStatus('error');
243
- return null;
244
- }
245
- }, []);
246
- const cancel = (0, react_1.useCallback)(async (id) => {
247
- if (!clientRef.current)
248
- return;
249
- try {
250
- await clientRef.current.cancelOperation(id);
251
- setStatus('idle');
252
- }
253
- catch (err) {
254
- setError(err);
255
- }
256
- }, []);
257
- // Auto-monitor if operationId is provided
258
- (0, react_1.useEffect)(() => {
259
- if (operationId && status === 'idle') {
260
- monitor(operationId);
261
- }
262
- }, [operationId, monitor, status]);
263
- return {
264
- monitor,
265
- cancel,
266
- status,
267
- progress,
268
- error,
269
- result,
270
- };
271
- }
272
- /**
273
- * Hook for monitoring multiple operations concurrently
274
- *
275
- * @example
276
- * ```tsx
277
- * const { monitorAll, results, allCompleted, hasErrors } = useMultipleOperations()
278
- *
279
- * const handleMultiple = async () => {
280
- * const operations = await Promise.all([
281
- * createBackup(...),
282
- * createExport(...),
283
- * ])
284
- *
285
- * const results = await monitorAll(operations.map(op => op.operation_id))
286
- * }
287
- * ```
288
- */
289
- function useMultipleOperations() {
290
- const [results, setResults] = (0, react_1.useState)(new Map());
291
- const [loading, setLoading] = (0, react_1.useState)(false);
292
- const [errors, setErrors] = (0, react_1.useState)(new Map());
293
- const clientRef = (0, react_1.useRef)(null);
294
- (0, react_1.useEffect)(() => {
295
- const sdkConfig = (0, config_1.getSDKExtensionsConfig)();
296
- const clientConfig = client_gen_1.client.getConfig();
297
- // Extract JWT token (uses centralized logic)
298
- const token = (0, config_1.extractTokenFromSDKClient)();
299
- clientRef.current = new OperationClient_1.OperationClient({
300
- baseUrl: sdkConfig.baseUrl || clientConfig.baseUrl || 'http://localhost:8000',
301
- credentials: sdkConfig.credentials,
302
- token,
303
- maxRetries: sdkConfig.maxRetries,
304
- retryDelay: sdkConfig.retryDelay,
305
- });
306
- return () => {
307
- clientRef.current?.closeAll();
308
- };
309
- }, []);
310
- const monitorAll = (0, react_1.useCallback)(async (operationIds) => {
311
- if (!clientRef.current)
312
- return new Map();
313
- setLoading(true);
314
- setResults(new Map());
315
- setErrors(new Map());
316
- try {
317
- const allResults = await clientRef.current.monitorMultiple(operationIds);
318
- setResults(allResults);
319
- // Extract any errors
320
- const newErrors = new Map();
321
- allResults.forEach((result, id) => {
322
- if (!result.success && result.error) {
323
- newErrors.set(id, new Error(result.error));
324
- }
325
- });
326
- setErrors(newErrors);
327
- return allResults;
328
- }
329
- finally {
330
- setLoading(false);
331
- }
332
- }, []);
333
- const allCompleted = results.size > 0 && Array.from(results.values()).every((r) => r.success || r.error);
334
- const hasErrors = errors.size > 0;
335
- return {
336
- monitorAll,
337
- results,
338
- errors,
339
- loading,
340
- allCompleted,
341
- hasErrors,
342
- };
343
- }
344
- /**
345
- * Hook that provides access to all SDK extension clients
346
- * Useful when you need direct access to the underlying clients
347
- *
348
- * @example
349
- * ```tsx
350
- * const clients = useSDKClients()
351
- *
352
- * // Direct access to clients
353
- * const result = await clients.query.query('graph_123', 'MATCH (n) RETURN n')
354
- * ```
355
- */
356
- function useSDKClients() {
357
- const [clients, setClients] = (0, react_1.useState)({
358
- query: null,
359
- operations: null,
360
- });
361
- (0, react_1.useEffect)(() => {
362
- const sdkConfig = (0, config_1.getSDKExtensionsConfig)();
363
- const clientConfig = client_gen_1.client.getConfig();
364
- // Extract JWT token (uses centralized logic)
365
- const token = (0, config_1.extractTokenFromSDKClient)();
366
- const baseConfig = {
367
- baseUrl: sdkConfig.baseUrl || clientConfig.baseUrl || 'http://localhost:8000',
368
- credentials: sdkConfig.credentials,
369
- headers: sdkConfig.headers,
370
- token,
371
- };
372
- const queryClient = new QueryClient_1.QueryClient(baseConfig);
373
- const operationsClient = new OperationClient_1.OperationClient(baseConfig);
374
- setClients({
375
- query: queryClient,
376
- operations: operationsClient,
377
- });
378
- return () => {
379
- queryClient.close();
380
- operationsClient.closeAll();
381
- };
382
- }, []);
383
- return clients;
384
- }