@elqnt/workflow 2.0.7 → 2.1.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.
@@ -0,0 +1,391 @@
1
+ "use client";
2
+ import {
3
+ createWorkflowApi,
4
+ createWorkflowInstanceApi,
5
+ deleteWorkflowApi,
6
+ executeWorkflowNodeApi,
7
+ getWorkflowApi,
8
+ getWorkflowInstanceApi,
9
+ getWorkflowTemplateApi,
10
+ instantiateWorkflowTemplateApi,
11
+ listWorkflowInstancesApi,
12
+ listWorkflowTemplatesApi,
13
+ listWorkflowsApi,
14
+ resumeWorkflowNodeApi,
15
+ retryWorkflowNodeApi,
16
+ updateWorkflowApi,
17
+ updateWorkflowInstanceStatusApi
18
+ } from "./chunk-UE4ZBFLG.mjs";
19
+
20
+ // hooks/index.ts
21
+ import { useState, useCallback, useMemo, useRef, useEffect } from "react";
22
+ function useWorkflows(options) {
23
+ const [loading, setLoading] = useState(false);
24
+ const [error, setError] = useState(null);
25
+ const optionsRef = useRef(options);
26
+ useEffect(() => {
27
+ optionsRef.current = options;
28
+ }, [options]);
29
+ const listWorkflows = useCallback(async () => {
30
+ setLoading(true);
31
+ setError(null);
32
+ try {
33
+ const response = await listWorkflowsApi(optionsRef.current);
34
+ if (response.error) {
35
+ setError(response.error);
36
+ return [];
37
+ }
38
+ return response.data?.definitions || [];
39
+ } catch (err) {
40
+ const message = err instanceof Error ? err.message : "Failed to load workflows";
41
+ setError(message);
42
+ return [];
43
+ } finally {
44
+ setLoading(false);
45
+ }
46
+ }, []);
47
+ const getWorkflow = useCallback(async (workflowId) => {
48
+ setLoading(true);
49
+ setError(null);
50
+ try {
51
+ const response = await getWorkflowApi(workflowId, optionsRef.current);
52
+ if (response.error) {
53
+ setError(response.error);
54
+ return null;
55
+ }
56
+ return response.data?.definition || null;
57
+ } catch (err) {
58
+ const message = err instanceof Error ? err.message : "Failed to get workflow";
59
+ setError(message);
60
+ return null;
61
+ } finally {
62
+ setLoading(false);
63
+ }
64
+ }, []);
65
+ const createWorkflow = useCallback(
66
+ async (workflow) => {
67
+ setLoading(true);
68
+ setError(null);
69
+ try {
70
+ const response = await createWorkflowApi(workflow, optionsRef.current);
71
+ if (response.error) {
72
+ setError(response.error);
73
+ return null;
74
+ }
75
+ return response.data?.definition || null;
76
+ } catch (err) {
77
+ const message = err instanceof Error ? err.message : "Failed to create workflow";
78
+ setError(message);
79
+ return null;
80
+ } finally {
81
+ setLoading(false);
82
+ }
83
+ },
84
+ []
85
+ );
86
+ const updateWorkflow = useCallback(
87
+ async (workflowId, workflow) => {
88
+ setLoading(true);
89
+ setError(null);
90
+ try {
91
+ const response = await updateWorkflowApi(workflowId, workflow, optionsRef.current);
92
+ if (response.error) {
93
+ setError(response.error);
94
+ return null;
95
+ }
96
+ return response.data?.definition || null;
97
+ } catch (err) {
98
+ const message = err instanceof Error ? err.message : "Failed to update workflow";
99
+ setError(message);
100
+ return null;
101
+ } finally {
102
+ setLoading(false);
103
+ }
104
+ },
105
+ []
106
+ );
107
+ const deleteWorkflow = useCallback(async (workflowId) => {
108
+ setLoading(true);
109
+ setError(null);
110
+ try {
111
+ const response = await deleteWorkflowApi(workflowId, optionsRef.current);
112
+ if (response.error) {
113
+ setError(response.error);
114
+ return false;
115
+ }
116
+ return response.data?.success ?? true;
117
+ } catch (err) {
118
+ const message = err instanceof Error ? err.message : "Failed to delete workflow";
119
+ setError(message);
120
+ return false;
121
+ } finally {
122
+ setLoading(false);
123
+ }
124
+ }, []);
125
+ return useMemo(
126
+ () => ({
127
+ loading,
128
+ error,
129
+ listWorkflows,
130
+ getWorkflow,
131
+ createWorkflow,
132
+ updateWorkflow,
133
+ deleteWorkflow
134
+ }),
135
+ [loading, error, listWorkflows, getWorkflow, createWorkflow, updateWorkflow, deleteWorkflow]
136
+ );
137
+ }
138
+ function useWorkflowInstances(options) {
139
+ const [loading, setLoading] = useState(false);
140
+ const [error, setError] = useState(null);
141
+ const optionsRef = useRef(options);
142
+ useEffect(() => {
143
+ optionsRef.current = options;
144
+ }, [options]);
145
+ const listInstances = useCallback(
146
+ async (definitionId, filters) => {
147
+ setLoading(true);
148
+ setError(null);
149
+ try {
150
+ const response = await listWorkflowInstancesApi(definitionId, {
151
+ ...optionsRef.current,
152
+ ...filters
153
+ });
154
+ if (response.error) {
155
+ setError(response.error);
156
+ return [];
157
+ }
158
+ return response.data?.instances || [];
159
+ } catch (err) {
160
+ const message = err instanceof Error ? err.message : "Failed to list instances";
161
+ setError(message);
162
+ return [];
163
+ } finally {
164
+ setLoading(false);
165
+ }
166
+ },
167
+ []
168
+ );
169
+ const getInstance = useCallback(async (instanceId) => {
170
+ setLoading(true);
171
+ setError(null);
172
+ try {
173
+ const response = await getWorkflowInstanceApi(instanceId, optionsRef.current);
174
+ if (response.error) {
175
+ setError(response.error);
176
+ return null;
177
+ }
178
+ return response.data?.instance || null;
179
+ } catch (err) {
180
+ const message = err instanceof Error ? err.message : "Failed to get instance";
181
+ setError(message);
182
+ return null;
183
+ } finally {
184
+ setLoading(false);
185
+ }
186
+ }, []);
187
+ const createInstance = useCallback(
188
+ async (definitionId, data) => {
189
+ setLoading(true);
190
+ setError(null);
191
+ try {
192
+ const response = await createWorkflowInstanceApi(definitionId, data || {}, optionsRef.current);
193
+ if (response.error) {
194
+ setError(response.error);
195
+ return null;
196
+ }
197
+ return response.data?.instance || null;
198
+ } catch (err) {
199
+ const message = err instanceof Error ? err.message : "Failed to create instance";
200
+ setError(message);
201
+ return null;
202
+ } finally {
203
+ setLoading(false);
204
+ }
205
+ },
206
+ []
207
+ );
208
+ const updateStatus = useCallback(
209
+ async (instanceId, status) => {
210
+ setLoading(true);
211
+ setError(null);
212
+ try {
213
+ const response = await updateWorkflowInstanceStatusApi(instanceId, status, optionsRef.current);
214
+ if (response.error) {
215
+ setError(response.error);
216
+ return null;
217
+ }
218
+ return response.data?.instance || null;
219
+ } catch (err) {
220
+ const message = err instanceof Error ? err.message : "Failed to update status";
221
+ setError(message);
222
+ return null;
223
+ } finally {
224
+ setLoading(false);
225
+ }
226
+ },
227
+ []
228
+ );
229
+ const executeNode = useCallback(
230
+ async (instanceId, nodeId, input) => {
231
+ setLoading(true);
232
+ setError(null);
233
+ try {
234
+ const response = await executeWorkflowNodeApi(instanceId, nodeId, input, optionsRef.current);
235
+ if (response.error) {
236
+ setError(response.error);
237
+ return null;
238
+ }
239
+ return response.data?.output || null;
240
+ } catch (err) {
241
+ const message = err instanceof Error ? err.message : "Failed to execute node";
242
+ setError(message);
243
+ return null;
244
+ } finally {
245
+ setLoading(false);
246
+ }
247
+ },
248
+ []
249
+ );
250
+ const resumeNode = useCallback(
251
+ async (instanceId, nodeId, result) => {
252
+ setLoading(true);
253
+ setError(null);
254
+ try {
255
+ const response = await resumeWorkflowNodeApi(instanceId, nodeId, result, optionsRef.current);
256
+ if (response.error) {
257
+ setError(response.error);
258
+ return null;
259
+ }
260
+ return response.data?.instance || null;
261
+ } catch (err) {
262
+ const message = err instanceof Error ? err.message : "Failed to resume node";
263
+ setError(message);
264
+ return null;
265
+ } finally {
266
+ setLoading(false);
267
+ }
268
+ },
269
+ []
270
+ );
271
+ const retryNode = useCallback(
272
+ async (instanceId, nodeId) => {
273
+ setLoading(true);
274
+ setError(null);
275
+ try {
276
+ const response = await retryWorkflowNodeApi(instanceId, nodeId, optionsRef.current);
277
+ if (response.error) {
278
+ setError(response.error);
279
+ return null;
280
+ }
281
+ return response.data?.instance || null;
282
+ } catch (err) {
283
+ const message = err instanceof Error ? err.message : "Failed to retry node";
284
+ setError(message);
285
+ return null;
286
+ } finally {
287
+ setLoading(false);
288
+ }
289
+ },
290
+ []
291
+ );
292
+ return useMemo(
293
+ () => ({
294
+ loading,
295
+ error,
296
+ listInstances,
297
+ getInstance,
298
+ createInstance,
299
+ updateStatus,
300
+ executeNode,
301
+ resumeNode,
302
+ retryNode
303
+ }),
304
+ [loading, error, listInstances, getInstance, createInstance, updateStatus, executeNode, resumeNode, retryNode]
305
+ );
306
+ }
307
+ function useWorkflowTemplates(options) {
308
+ const [loading, setLoading] = useState(false);
309
+ const [error, setError] = useState(null);
310
+ const optionsRef = useRef(options);
311
+ useEffect(() => {
312
+ optionsRef.current = options;
313
+ }, [options]);
314
+ const listTemplates = useCallback(async (category) => {
315
+ setLoading(true);
316
+ setError(null);
317
+ try {
318
+ const response = await listWorkflowTemplatesApi({
319
+ ...optionsRef.current,
320
+ category
321
+ });
322
+ if (response.error) {
323
+ setError(response.error);
324
+ return [];
325
+ }
326
+ return response.data?.templates || [];
327
+ } catch (err) {
328
+ const message = err instanceof Error ? err.message : "Failed to list templates";
329
+ setError(message);
330
+ return [];
331
+ } finally {
332
+ setLoading(false);
333
+ }
334
+ }, []);
335
+ const getTemplate = useCallback(async (templateId) => {
336
+ setLoading(true);
337
+ setError(null);
338
+ try {
339
+ const response = await getWorkflowTemplateApi(templateId, optionsRef.current);
340
+ if (response.error) {
341
+ setError(response.error);
342
+ return null;
343
+ }
344
+ return response.data?.template || null;
345
+ } catch (err) {
346
+ const message = err instanceof Error ? err.message : "Failed to get template";
347
+ setError(message);
348
+ return null;
349
+ } finally {
350
+ setLoading(false);
351
+ }
352
+ }, []);
353
+ const instantiateTemplate = useCallback(
354
+ async (templateId, params) => {
355
+ setLoading(true);
356
+ setError(null);
357
+ try {
358
+ const response = await instantiateWorkflowTemplateApi(templateId, params, optionsRef.current);
359
+ if (response.error) {
360
+ setError(response.error);
361
+ return null;
362
+ }
363
+ return response.data?.definition || null;
364
+ } catch (err) {
365
+ const message = err instanceof Error ? err.message : "Failed to instantiate template";
366
+ setError(message);
367
+ return null;
368
+ } finally {
369
+ setLoading(false);
370
+ }
371
+ },
372
+ []
373
+ );
374
+ return useMemo(
375
+ () => ({
376
+ loading,
377
+ error,
378
+ listTemplates,
379
+ getTemplate,
380
+ instantiateTemplate
381
+ }),
382
+ [loading, error, listTemplates, getTemplate, instantiateTemplate]
383
+ );
384
+ }
385
+
386
+ export {
387
+ useWorkflows,
388
+ useWorkflowInstances,
389
+ useWorkflowTemplates
390
+ };
391
+ //# sourceMappingURL=chunk-TZA3EPTC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../hooks/index.ts"],"sourcesContent":["\"use client\";\n\n/**\n * Workflow hooks for React applications\n *\n * Provides React hooks for workflow operations with loading/error states.\n */\n\nimport { useState, useCallback, useMemo, useRef, useEffect } from \"react\";\nimport type { ApiClientOptions } from \"@elqnt/api-client\";\nimport type { WorkflowDefinition, WorkflowInstance } from \"../models\";\nimport {\n listWorkflowsApi,\n getWorkflowApi,\n createWorkflowApi,\n updateWorkflowApi,\n deleteWorkflowApi,\n listWorkflowInstancesApi,\n getWorkflowInstanceApi,\n createWorkflowInstanceApi,\n updateWorkflowInstanceStatusApi,\n executeWorkflowNodeApi,\n resumeWorkflowNodeApi,\n retryWorkflowNodeApi,\n listWorkflowTemplatesApi,\n getWorkflowTemplateApi,\n instantiateWorkflowTemplateApi,\n type WorkflowTemplate,\n} from \"../api\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport type UseWorkflowsOptions = ApiClientOptions;\n\n// =============================================================================\n// USE WORKFLOWS HOOK\n// =============================================================================\n\n/**\n * Hook for workflow definition CRUD operations\n *\n * @example\n * ```tsx\n * const { loading, error, listWorkflows, createWorkflow } = useWorkflows({\n * baseUrl: apiGatewayUrl,\n * orgId: selectedOrgId,\n * });\n *\n * const workflows = await listWorkflows();\n * ```\n */\nexport function useWorkflows(options: UseWorkflowsOptions) {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const optionsRef = useRef(options);\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const listWorkflows = useCallback(async (): Promise<WorkflowDefinition[]> => {\n setLoading(true);\n setError(null);\n try {\n const response = await listWorkflowsApi(optionsRef.current);\n if (response.error) {\n setError(response.error);\n return [];\n }\n return response.data?.definitions || [];\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to load workflows\";\n setError(message);\n return [];\n } finally {\n setLoading(false);\n }\n }, []);\n\n const getWorkflow = useCallback(async (workflowId: string): Promise<WorkflowDefinition | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await getWorkflowApi(workflowId, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.definition || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to get workflow\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const createWorkflow = useCallback(\n async (workflow: Partial<WorkflowDefinition>): Promise<WorkflowDefinition | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await createWorkflowApi(workflow, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.definition || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to create workflow\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n const updateWorkflow = useCallback(\n async (workflowId: string, workflow: Partial<WorkflowDefinition>): Promise<WorkflowDefinition | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await updateWorkflowApi(workflowId, workflow, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.definition || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to update workflow\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n const deleteWorkflow = useCallback(async (workflowId: string): Promise<boolean> => {\n setLoading(true);\n setError(null);\n try {\n const response = await deleteWorkflowApi(workflowId, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return false;\n }\n return response.data?.success ?? true;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to delete workflow\";\n setError(message);\n return false;\n } finally {\n setLoading(false);\n }\n }, []);\n\n return useMemo(\n () => ({\n loading,\n error,\n listWorkflows,\n getWorkflow,\n createWorkflow,\n updateWorkflow,\n deleteWorkflow,\n }),\n [loading, error, listWorkflows, getWorkflow, createWorkflow, updateWorkflow, deleteWorkflow]\n );\n}\n\n// =============================================================================\n// USE WORKFLOW INSTANCES HOOK\n// =============================================================================\n\n/**\n * Hook for workflow instance operations\n */\nexport function useWorkflowInstances(options: UseWorkflowsOptions) {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const optionsRef = useRef(options);\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const listInstances = useCallback(\n async (\n definitionId: string,\n filters?: { userId?: string; status?: string }\n ): Promise<WorkflowInstance[]> => {\n setLoading(true);\n setError(null);\n try {\n const response = await listWorkflowInstancesApi(definitionId, {\n ...optionsRef.current,\n ...filters,\n });\n if (response.error) {\n setError(response.error);\n return [];\n }\n return response.data?.instances || [];\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to list instances\";\n setError(message);\n return [];\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n const getInstance = useCallback(async (instanceId: string): Promise<WorkflowInstance | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await getWorkflowInstanceApi(instanceId, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.instance || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to get instance\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const createInstance = useCallback(\n async (\n definitionId: string,\n data?: { variables?: Record<string, unknown>; autoExecute?: boolean }\n ): Promise<WorkflowInstance | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await createWorkflowInstanceApi(definitionId, data || {}, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.instance || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to create instance\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n const updateStatus = useCallback(\n async (instanceId: string, status: string): Promise<WorkflowInstance | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await updateWorkflowInstanceStatusApi(instanceId, status, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.instance || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to update status\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n const executeNode = useCallback(\n async (\n instanceId: string,\n nodeId: string,\n input: Record<string, unknown>\n ): Promise<Record<string, unknown> | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await executeWorkflowNodeApi(instanceId, nodeId, input, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.output || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to execute node\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n const resumeNode = useCallback(\n async (\n instanceId: string,\n nodeId: string,\n result: Record<string, unknown>\n ): Promise<WorkflowInstance | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await resumeWorkflowNodeApi(instanceId, nodeId, result, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.instance || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to resume node\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n const retryNode = useCallback(\n async (instanceId: string, nodeId: string): Promise<WorkflowInstance | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await retryWorkflowNodeApi(instanceId, nodeId, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.instance || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to retry node\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n return useMemo(\n () => ({\n loading,\n error,\n listInstances,\n getInstance,\n createInstance,\n updateStatus,\n executeNode,\n resumeNode,\n retryNode,\n }),\n [loading, error, listInstances, getInstance, createInstance, updateStatus, executeNode, resumeNode, retryNode]\n );\n}\n\n// =============================================================================\n// USE WORKFLOW TEMPLATES HOOK\n// =============================================================================\n\n/**\n * Hook for workflow template operations\n */\nexport function useWorkflowTemplates(options: UseWorkflowsOptions) {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const optionsRef = useRef(options);\n useEffect(() => {\n optionsRef.current = options;\n }, [options]);\n\n const listTemplates = useCallback(async (category?: string): Promise<WorkflowTemplate[]> => {\n setLoading(true);\n setError(null);\n try {\n const response = await listWorkflowTemplatesApi({\n ...optionsRef.current,\n category,\n });\n if (response.error) {\n setError(response.error);\n return [];\n }\n return response.data?.templates || [];\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to list templates\";\n setError(message);\n return [];\n } finally {\n setLoading(false);\n }\n }, []);\n\n const getTemplate = useCallback(async (templateId: string): Promise<WorkflowTemplate | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await getWorkflowTemplateApi(templateId, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.template || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to get template\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n }, []);\n\n const instantiateTemplate = useCallback(\n async (\n templateId: string,\n params: { variables: Record<string, unknown>; title?: string }\n ): Promise<WorkflowDefinition | null> => {\n setLoading(true);\n setError(null);\n try {\n const response = await instantiateWorkflowTemplateApi(templateId, params, optionsRef.current);\n if (response.error) {\n setError(response.error);\n return null;\n }\n return response.data?.definition || null;\n } catch (err) {\n const message = err instanceof Error ? err.message : \"Failed to instantiate template\";\n setError(message);\n return null;\n } finally {\n setLoading(false);\n }\n },\n []\n );\n\n return useMemo(\n () => ({\n loading,\n error,\n listTemplates,\n getTemplate,\n instantiateTemplate,\n }),\n [loading, error, listTemplates, getTemplate, instantiateTemplate]\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,105 @@
1
+ "use client";
2
+
3
+ // api/index.ts
4
+ import { browserApiRequest } from "@elqnt/api-client/browser";
5
+ async function listWorkflowsApi(options) {
6
+ return browserApiRequest("/api/v1/workflows", { method: "GET", ...options });
7
+ }
8
+ async function getWorkflowApi(workflowId, options) {
9
+ return browserApiRequest(`/api/v1/workflows/${workflowId}`, { method: "GET", ...options });
10
+ }
11
+ async function createWorkflowApi(workflow, options) {
12
+ return browserApiRequest("/api/v1/workflows", { method: "POST", body: workflow, ...options });
13
+ }
14
+ async function updateWorkflowApi(workflowId, workflow, options) {
15
+ return browserApiRequest(`/api/v1/workflows/${workflowId}`, { method: "PUT", body: workflow, ...options });
16
+ }
17
+ async function deleteWorkflowApi(workflowId, options) {
18
+ return browserApiRequest(`/api/v1/workflows/${workflowId}`, { method: "DELETE", ...options });
19
+ }
20
+ async function createWorkflowInstanceApi(definitionId, data, options) {
21
+ return browserApiRequest(`/api/v1/workflows/${definitionId}/instances`, {
22
+ method: "POST",
23
+ body: data,
24
+ ...options
25
+ });
26
+ }
27
+ async function getWorkflowInstanceApi(instanceId, options) {
28
+ return browserApiRequest(`/api/v1/workflows/instances/${instanceId}`, { method: "GET", ...options });
29
+ }
30
+ async function listWorkflowInstancesApi(definitionId, options) {
31
+ const params = new URLSearchParams();
32
+ if (options.userId) params.set("userId", options.userId);
33
+ if (options.status) params.set("status", options.status);
34
+ const queryString = params.toString();
35
+ return browserApiRequest(
36
+ `/api/v1/workflows/${definitionId}/instances${queryString ? `?${queryString}` : ""}`,
37
+ { method: "GET", ...options }
38
+ );
39
+ }
40
+ async function updateWorkflowInstanceStatusApi(instanceId, status, options) {
41
+ return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/status`, {
42
+ method: "PUT",
43
+ body: { status },
44
+ ...options
45
+ });
46
+ }
47
+ async function executeWorkflowNodeApi(instanceId, nodeId, input, options) {
48
+ return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/nodes/${nodeId}/execute`, {
49
+ method: "POST",
50
+ body: { input },
51
+ ...options
52
+ });
53
+ }
54
+ async function resumeWorkflowNodeApi(instanceId, nodeId, result, options) {
55
+ return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/nodes/${nodeId}/resume`, {
56
+ method: "POST",
57
+ body: { result },
58
+ ...options
59
+ });
60
+ }
61
+ async function retryWorkflowNodeApi(instanceId, nodeId, options) {
62
+ return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/nodes/${nodeId}/retry`, {
63
+ method: "POST",
64
+ body: {},
65
+ ...options
66
+ });
67
+ }
68
+ async function listWorkflowTemplatesApi(options) {
69
+ const params = new URLSearchParams();
70
+ if (options.category) params.set("category", options.category);
71
+ const queryString = params.toString();
72
+ return browserApiRequest(
73
+ `/api/v1/workflows/templates${queryString ? `?${queryString}` : ""}`,
74
+ { method: "GET", ...options }
75
+ );
76
+ }
77
+ async function getWorkflowTemplateApi(templateId, options) {
78
+ return browserApiRequest(`/api/v1/workflows/templates/${templateId}`, { method: "GET", ...options });
79
+ }
80
+ async function instantiateWorkflowTemplateApi(templateId, params, options) {
81
+ return browserApiRequest(`/api/v1/workflows/templates/${templateId}/instantiate`, {
82
+ method: "POST",
83
+ body: params,
84
+ ...options
85
+ });
86
+ }
87
+
88
+ export {
89
+ listWorkflowsApi,
90
+ getWorkflowApi,
91
+ createWorkflowApi,
92
+ updateWorkflowApi,
93
+ deleteWorkflowApi,
94
+ createWorkflowInstanceApi,
95
+ getWorkflowInstanceApi,
96
+ listWorkflowInstancesApi,
97
+ updateWorkflowInstanceStatusApi,
98
+ executeWorkflowNodeApi,
99
+ resumeWorkflowNodeApi,
100
+ retryWorkflowNodeApi,
101
+ listWorkflowTemplatesApi,
102
+ getWorkflowTemplateApi,
103
+ instantiateWorkflowTemplateApi
104
+ };
105
+ //# sourceMappingURL=chunk-UE4ZBFLG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../api/index.ts"],"sourcesContent":["/**\n * Workflow API functions\n *\n * Browser-side API client for workflow operations.\n * Uses @elqnt/api-client for HTTP requests with automatic token management.\n */\n\nimport { browserApiRequest } from \"@elqnt/api-client/browser\";\nimport type { ApiResponse, ApiClientOptions } from \"@elqnt/api-client\";\nimport type { ResponseMetadata } from \"@elqnt/types\";\nimport type {\n WorkflowDefinition,\n WorkflowInstance,\n ListWorkflowDefinitionsResponse,\n WorkflowDefinitionResponse,\n WorkflowInstanceResponse,\n ListWorkflowInstancesResponse,\n} from \"../models\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport interface WorkflowTemplate {\n id: string;\n name: string;\n title: string;\n description: string;\n category: string;\n variables: Array<{\n name: string;\n type: string;\n required: boolean;\n description?: string;\n }>;\n preview?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ListWorkflowTemplatesResponse {\n templates: WorkflowTemplate[];\n metadata: ResponseMetadata;\n}\n\nexport interface GetWorkflowTemplateResponse {\n template: WorkflowTemplate;\n metadata: ResponseMetadata;\n}\n\n// =============================================================================\n// WORKFLOW DEFINITIONS\n// =============================================================================\n\nexport async function listWorkflowsApi(\n options: ApiClientOptions\n): Promise<ApiResponse<ListWorkflowDefinitionsResponse>> {\n return browserApiRequest(\"/api/v1/workflows\", { method: \"GET\", ...options });\n}\n\nexport async function getWorkflowApi(\n workflowId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowDefinitionResponse>> {\n return browserApiRequest(`/api/v1/workflows/${workflowId}`, { method: \"GET\", ...options });\n}\n\nexport async function createWorkflowApi(\n workflow: Partial<WorkflowDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowDefinitionResponse & { id?: string }>> {\n return browserApiRequest(\"/api/v1/workflows\", { method: \"POST\", body: workflow, ...options });\n}\n\nexport async function updateWorkflowApi(\n workflowId: string,\n workflow: Partial<WorkflowDefinition>,\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowDefinitionResponse>> {\n return browserApiRequest(`/api/v1/workflows/${workflowId}`, { method: \"PUT\", body: workflow, ...options });\n}\n\nexport async function deleteWorkflowApi(\n workflowId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/workflows/${workflowId}`, { method: \"DELETE\", ...options });\n}\n\n// =============================================================================\n// WORKFLOW INSTANCES\n// =============================================================================\n\nexport async function createWorkflowInstanceApi(\n definitionId: string,\n data: { variables?: Record<string, unknown>; autoExecute?: boolean },\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowInstanceResponse & { id?: string }>> {\n return browserApiRequest(`/api/v1/workflows/${definitionId}/instances`, {\n method: \"POST\",\n body: data,\n ...options,\n });\n}\n\nexport async function getWorkflowInstanceApi(\n instanceId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowInstanceResponse>> {\n return browserApiRequest(`/api/v1/workflows/instances/${instanceId}`, { method: \"GET\", ...options });\n}\n\nexport async function listWorkflowInstancesApi(\n definitionId: string,\n options: ApiClientOptions & { userId?: string; status?: string }\n): Promise<ApiResponse<ListWorkflowInstancesResponse>> {\n const params = new URLSearchParams();\n if (options.userId) params.set(\"userId\", options.userId);\n if (options.status) params.set(\"status\", options.status);\n const queryString = params.toString();\n return browserApiRequest(\n `/api/v1/workflows/${definitionId}/instances${queryString ? `?${queryString}` : \"\"}`,\n { method: \"GET\", ...options }\n );\n}\n\nexport async function updateWorkflowInstanceStatusApi(\n instanceId: string,\n status: string,\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowInstanceResponse>> {\n return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/status`, {\n method: \"PUT\",\n body: { status },\n ...options,\n });\n}\n\nexport async function executeWorkflowNodeApi(\n instanceId: string,\n nodeId: string,\n input: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<{ success: boolean; output?: Record<string, unknown>; metadata: ResponseMetadata }>> {\n return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/nodes/${nodeId}/execute`, {\n method: \"POST\",\n body: { input },\n ...options,\n });\n}\n\nexport async function resumeWorkflowNodeApi(\n instanceId: string,\n nodeId: string,\n result: Record<string, unknown>,\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowInstanceResponse>> {\n return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/nodes/${nodeId}/resume`, {\n method: \"POST\",\n body: { result },\n ...options,\n });\n}\n\nexport async function retryWorkflowNodeApi(\n instanceId: string,\n nodeId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowInstanceResponse>> {\n return browserApiRequest(`/api/v1/workflows/instances/${instanceId}/nodes/${nodeId}/retry`, {\n method: \"POST\",\n body: {},\n ...options,\n });\n}\n\n// =============================================================================\n// WORKFLOW TEMPLATES\n// =============================================================================\n\nexport async function listWorkflowTemplatesApi(\n options: ApiClientOptions & { category?: string }\n): Promise<ApiResponse<ListWorkflowTemplatesResponse>> {\n const params = new URLSearchParams();\n if (options.category) params.set(\"category\", options.category);\n const queryString = params.toString();\n return browserApiRequest(\n `/api/v1/workflows/templates${queryString ? `?${queryString}` : \"\"}`,\n { method: \"GET\", ...options }\n );\n}\n\nexport async function getWorkflowTemplateApi(\n templateId: string,\n options: ApiClientOptions\n): Promise<ApiResponse<GetWorkflowTemplateResponse>> {\n return browserApiRequest(`/api/v1/workflows/templates/${templateId}`, { method: \"GET\", ...options });\n}\n\nexport async function instantiateWorkflowTemplateApi(\n templateId: string,\n params: { variables: Record<string, unknown>; title?: string },\n options: ApiClientOptions\n): Promise<ApiResponse<WorkflowDefinitionResponse>> {\n return browserApiRequest(`/api/v1/workflows/templates/${templateId}/instantiate`, {\n method: \"POST\",\n body: params,\n ...options,\n });\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,63 @@
1
+ import { ApiClientOptions } from '@elqnt/api-client';
2
+ import { W as WorkflowInstance, a as WorkflowDefinition } from '../workflow-NznrS9yA.mjs';
3
+ import { WorkflowTemplate } from '../api/index.mjs';
4
+ import '@elqnt/types';
5
+
6
+ type UseWorkflowsOptions = ApiClientOptions;
7
+ /**
8
+ * Hook for workflow definition CRUD operations
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * const { loading, error, listWorkflows, createWorkflow } = useWorkflows({
13
+ * baseUrl: apiGatewayUrl,
14
+ * orgId: selectedOrgId,
15
+ * });
16
+ *
17
+ * const workflows = await listWorkflows();
18
+ * ```
19
+ */
20
+ declare function useWorkflows(options: UseWorkflowsOptions): {
21
+ loading: boolean;
22
+ error: string | null;
23
+ listWorkflows: () => Promise<WorkflowDefinition[]>;
24
+ getWorkflow: (workflowId: string) => Promise<WorkflowDefinition | null>;
25
+ createWorkflow: (workflow: Partial<WorkflowDefinition>) => Promise<WorkflowDefinition | null>;
26
+ updateWorkflow: (workflowId: string, workflow: Partial<WorkflowDefinition>) => Promise<WorkflowDefinition | null>;
27
+ deleteWorkflow: (workflowId: string) => Promise<boolean>;
28
+ };
29
+ /**
30
+ * Hook for workflow instance operations
31
+ */
32
+ declare function useWorkflowInstances(options: UseWorkflowsOptions): {
33
+ loading: boolean;
34
+ error: string | null;
35
+ listInstances: (definitionId: string, filters?: {
36
+ userId?: string;
37
+ status?: string;
38
+ }) => Promise<WorkflowInstance[]>;
39
+ getInstance: (instanceId: string) => Promise<WorkflowInstance | null>;
40
+ createInstance: (definitionId: string, data?: {
41
+ variables?: Record<string, unknown>;
42
+ autoExecute?: boolean;
43
+ }) => Promise<WorkflowInstance | null>;
44
+ updateStatus: (instanceId: string, status: string) => Promise<WorkflowInstance | null>;
45
+ executeNode: (instanceId: string, nodeId: string, input: Record<string, unknown>) => Promise<Record<string, unknown> | null>;
46
+ resumeNode: (instanceId: string, nodeId: string, result: Record<string, unknown>) => Promise<WorkflowInstance | null>;
47
+ retryNode: (instanceId: string, nodeId: string) => Promise<WorkflowInstance | null>;
48
+ };
49
+ /**
50
+ * Hook for workflow template operations
51
+ */
52
+ declare function useWorkflowTemplates(options: UseWorkflowsOptions): {
53
+ loading: boolean;
54
+ error: string | null;
55
+ listTemplates: (category?: string) => Promise<WorkflowTemplate[]>;
56
+ getTemplate: (templateId: string) => Promise<WorkflowTemplate | null>;
57
+ instantiateTemplate: (templateId: string, params: {
58
+ variables: Record<string, unknown>;
59
+ title?: string;
60
+ }) => Promise<WorkflowDefinition | null>;
61
+ };
62
+
63
+ export { type UseWorkflowsOptions, useWorkflowInstances, useWorkflowTemplates, useWorkflows };