@burdenoff/fluidgrids-fe-sdk 2026.1029.6 → 2026.1029.7
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/ExecutionDetailPage-L7LZYFOT.js +22 -0
- package/dist/{WorkflowsList-VA2HRYFG.js → ExecutionsListPage-7NMW6S5A.js} +9 -9
- package/dist/{WorkflowBuilder-PORH3H6P.js → WorkflowBuilder-RXVUBDZJ.js} +12 -12
- package/dist/{ExecutionsListPage-SCPWUXUL.js → WorkflowsList-5U74DYQ3.js} +9 -8
- package/dist/{chunk-QZM6EDGK.js → chunk-4MHWFZJV.js} +1 -1
- package/dist/{chunk-CY6KX4RG.js → chunk-6AMNEX2Y.js} +6 -1
- package/dist/{chunk-AVMI3XLM.js → chunk-6SZXW2BF.js} +255 -8
- package/dist/{chunk-U6KI4AKI.js → chunk-6TMLIQHB.js} +199 -1
- package/dist/{chunk-4XAPSIHY.js → chunk-7CTIVBBA.js} +183 -26
- package/dist/{chunk-57RS7DXZ.js → chunk-AXMEATLG.js} +117 -8
- package/dist/{chunk-LPGQTSI2.js → chunk-BZTVAUOQ.js} +3 -3
- package/dist/{chunk-7SSZUX6E.js → chunk-DEGCZCHP.js} +2 -2
- package/dist/{chunk-7LFAWWVF.js → chunk-E7UAY3JJ.js} +2 -2
- package/dist/{chunk-Z6EWB5ZG.js → chunk-EGIEFGOV.js} +677 -43
- package/dist/{chunk-MNY2UNQH.js → chunk-FFOZ5VUJ.js} +1 -1
- package/dist/{chunk-63ZMEHZ4.js → chunk-HAFUSBYP.js} +937 -26
- package/dist/{chunk-WTGBHE3J.js → chunk-IDGDMJMJ.js} +118 -96
- package/dist/{chunk-4TGUNOQQ.js → chunk-K4BF7PAW.js} +104 -88
- package/dist/{chunk-6XZCYLAQ.js → chunk-KANARCPR.js} +3 -3
- package/dist/{chunk-5GD6OXYW.js → chunk-LAVHDFHI.js} +1 -1
- package/dist/{chunk-H364USFF.js → chunk-NL4JQFFA.js} +1 -1
- package/dist/{chunk-LTVAUZ3M.js → chunk-OJPJ2QXD.js} +3 -3
- package/dist/{chunk-7B2GRTUL.js → chunk-RZR3BDDZ.js} +7 -7
- package/dist/{chunk-MQI7NH4Z.js → chunk-SZTKLZZR.js} +145 -8
- package/dist/{chunk-LB62TAF7.js → chunk-TYYSYSAL.js} +1 -1
- package/dist/{chunk-YSUSSIWU.js → chunk-US4LPOB3.js} +1 -1
- package/dist/{chunk-BWAUFSHC.js → chunk-VIZ7W5WJ.js} +5 -5
- package/dist/{chunk-7PP6CRXS.js → chunk-YTUIGIVP.js} +15 -1
- package/dist/{chunk-YHTRCQ5M.js → chunk-Z4YQTXCD.js} +4 -4
- package/dist/{chunk-MDPBO52Q.js → chunk-ZE5KS2YL.js} +2 -2
- package/dist/{config-T7BQ7AO2.js → config-VM7FTHMZ.js} +1 -1
- package/dist/executions.js +13 -13
- package/dist/history.js +5 -5
- package/dist/index.d.ts +2513 -24
- package/dist/index.js +36 -36
- package/dist/nodes.js +2 -2
- package/dist/observability.js +7 -7
- package/dist/settings.js +7 -7
- package/dist/templates.js +11 -11
- package/dist/workflow-builder.js +13 -13
- package/dist/workflows-list.js +9 -9
- package/package.json +1 -1
- package/dist/ExecutionDetailPage-M6JAWY4Q.js +0 -21
|
@@ -1,16 +1,135 @@
|
|
|
1
|
-
import { ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination } from './chunk-
|
|
2
|
-
import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh } from './chunk-
|
|
3
|
-
import { useWorkflowDefinitions } from './chunk-
|
|
1
|
+
import { useRunStatusCounts, ExecutionStats, ExecutionFilters, ExecutionTable, ExecutionCards, ExecutionTimeline, Pagination, runStatusLabels } from './chunk-7CTIVBBA.js';
|
|
2
|
+
import { useExecutionsWithStore, useExecutionStats, useExecutionActions, useAutoRefresh, WORKFLOW_ID_MAX_LENGTH } from './chunk-AXMEATLG.js';
|
|
3
|
+
import { useWorkflowDefinitions } from './chunk-OJPJ2QXD.js';
|
|
4
4
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
5
|
-
import {
|
|
5
|
+
import { useDurableParityEnabled } from './chunk-K4BF7PAW.js';
|
|
6
|
+
import { useExecutionsStore } from './chunk-6AMNEX2Y.js';
|
|
6
7
|
import { useTr } from './chunk-UULVIT25.js';
|
|
7
|
-
import { useRef, useCallback, useMemo } from 'react';
|
|
8
|
+
import { useRef, useCallback, useMemo, useState, useEffect } from 'react';
|
|
8
9
|
import { useNavigate, useSearchParams } from 'react-router';
|
|
9
10
|
import { Icon } from '@iconify/react';
|
|
10
11
|
import { toast } from 'sonner';
|
|
11
12
|
import { Button } from '@burdenoff/fe-libs/button';
|
|
12
|
-
import {
|
|
13
|
+
import { Input } from '@burdenoff/fe-libs/ui';
|
|
14
|
+
import { cn } from '@burdenoff/fe-libs/utils';
|
|
15
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
13
16
|
|
|
17
|
+
var WORKFLOW_ID_FILTER_DEBOUNCE_MS = 350;
|
|
18
|
+
var RUN_STATUSES = [
|
|
19
|
+
"PENDING",
|
|
20
|
+
"RUNNING",
|
|
21
|
+
"WAITING",
|
|
22
|
+
"COMPLETED",
|
|
23
|
+
"FAILED",
|
|
24
|
+
"CANCELLED",
|
|
25
|
+
"TERMINATED"
|
|
26
|
+
];
|
|
27
|
+
function isRunStatus(value) {
|
|
28
|
+
return RUN_STATUSES.includes(value);
|
|
29
|
+
}
|
|
30
|
+
function RunsParityBar({
|
|
31
|
+
workflowId,
|
|
32
|
+
onWorkflowIdChange,
|
|
33
|
+
total,
|
|
34
|
+
counts,
|
|
35
|
+
countsError,
|
|
36
|
+
selectedStatus,
|
|
37
|
+
onSelectStatus
|
|
38
|
+
}) {
|
|
39
|
+
const tr = useTr();
|
|
40
|
+
const statusLabels = runStatusLabels(tr);
|
|
41
|
+
const [draft, setDraft] = useState(workflowId);
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
setDraft(workflowId);
|
|
44
|
+
}, [workflowId]);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (draft === workflowId) return;
|
|
47
|
+
const timer = setTimeout(
|
|
48
|
+
() => onWorkflowIdChange(draft),
|
|
49
|
+
WORKFLOW_ID_FILTER_DEBOUNCE_MS
|
|
50
|
+
);
|
|
51
|
+
return () => clearTimeout(timer);
|
|
52
|
+
}, [draft, workflowId, onWorkflowIdChange]);
|
|
53
|
+
return /* @__PURE__ */ jsxs(
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
"data-testid": "runs-parity-bar",
|
|
57
|
+
className: "mb-6 flex flex-col gap-3 lg:flex-row lg:items-center",
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ jsxs("label", { className: "flex min-w-0 items-center gap-2 text-sm text-text-secondary lg:w-80", children: [
|
|
60
|
+
/* @__PURE__ */ jsx(Icon, { icon: "mdi:key-outline", width: 16, className: "shrink-0" }),
|
|
61
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: tr("fluidgrids.executions.parity.workflowIdFilter", "Workflow ID") }),
|
|
62
|
+
/* @__PURE__ */ jsx(
|
|
63
|
+
Input,
|
|
64
|
+
{
|
|
65
|
+
value: draft,
|
|
66
|
+
maxLength: WORKFLOW_ID_MAX_LENGTH,
|
|
67
|
+
placeholder: tr(
|
|
68
|
+
"fluidgrids.executions.parity.workflowIdPlaceholder",
|
|
69
|
+
"Filter by workflow ID"
|
|
70
|
+
),
|
|
71
|
+
onChange: (event) => setDraft(event.target.value),
|
|
72
|
+
"data-testid": "runs-workflow-id-filter"
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
] }),
|
|
76
|
+
/* @__PURE__ */ jsx(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
className: "flex flex-wrap items-center gap-2",
|
|
80
|
+
"data-testid": "runs-status-counts",
|
|
81
|
+
children: countsError ? /* @__PURE__ */ jsxs("span", { className: "text-xs text-[var(--color-status-error-text)]", children: [
|
|
82
|
+
tr(
|
|
83
|
+
"fluidgrids.executions.parity.countsError",
|
|
84
|
+
"Could not count the runs:"
|
|
85
|
+
),
|
|
86
|
+
" ",
|
|
87
|
+
countsError
|
|
88
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
89
|
+
total !== null && /* @__PURE__ */ jsx(
|
|
90
|
+
"button",
|
|
91
|
+
{
|
|
92
|
+
type: "button",
|
|
93
|
+
onClick: () => onSelectStatus("all"),
|
|
94
|
+
className: cn(
|
|
95
|
+
"rounded-full border px-2.5 py-1 text-xs",
|
|
96
|
+
selectedStatus === "all" ? "border-action-primary-bg bg-action-primary-bg text-action-primary-text" : "border-border-secondary text-text-secondary hover:text-text-primary"
|
|
97
|
+
),
|
|
98
|
+
"aria-pressed": selectedStatus === "all",
|
|
99
|
+
"data-testid": "runs-count-all",
|
|
100
|
+
children: tr("fluidgrids.executions.parity.countAll", "All {{count}}", {
|
|
101
|
+
count: total
|
|
102
|
+
})
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
counts.map(
|
|
106
|
+
({ status, count }) => isRunStatus(status) ? /* @__PURE__ */ jsx(
|
|
107
|
+
"button",
|
|
108
|
+
{
|
|
109
|
+
type: "button",
|
|
110
|
+
onClick: () => onSelectStatus(status),
|
|
111
|
+
className: cn(
|
|
112
|
+
"rounded-full border px-2.5 py-1 text-xs",
|
|
113
|
+
selectedStatus === status ? "border-action-primary-bg bg-action-primary-bg text-action-primary-text" : "border-border-secondary text-text-secondary hover:text-text-primary"
|
|
114
|
+
),
|
|
115
|
+
"aria-pressed": selectedStatus === status,
|
|
116
|
+
"data-testid": `runs-count-${status}`,
|
|
117
|
+
children: tr(
|
|
118
|
+
"fluidgrids.executions.parity.countStatus",
|
|
119
|
+
"{{status}} {{count}}",
|
|
120
|
+
{ status: statusLabels[status], count }
|
|
121
|
+
)
|
|
122
|
+
},
|
|
123
|
+
status
|
|
124
|
+
) : null
|
|
125
|
+
)
|
|
126
|
+
] })
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
);
|
|
132
|
+
}
|
|
14
133
|
function ExecutionsListPage() {
|
|
15
134
|
const tr = useTr();
|
|
16
135
|
const navigate = useNavigate();
|
|
@@ -22,6 +141,8 @@ function ExecutionsListPage() {
|
|
|
22
141
|
clearSelection,
|
|
23
142
|
setStatusFilter,
|
|
24
143
|
setWorkflowFilter,
|
|
144
|
+
setWorkflowIdFilter,
|
|
145
|
+
filter,
|
|
25
146
|
autoRefresh,
|
|
26
147
|
autoRefreshInterval
|
|
27
148
|
} = useExecutionsStore();
|
|
@@ -34,7 +155,10 @@ function ExecutionsListPage() {
|
|
|
34
155
|
setWorkflowFilter(workflowKeyParam);
|
|
35
156
|
}
|
|
36
157
|
}
|
|
37
|
-
const
|
|
158
|
+
const parityEnabled = useDurableParityEnabled();
|
|
159
|
+
const { executions, total, loading, error, refetch, input } = useExecutionsWithStore({ durableParity: parityEnabled });
|
|
160
|
+
const statusCounts = useRunStatusCounts(input, parityEnabled);
|
|
161
|
+
const refetchCounts = statusCounts.refetch;
|
|
38
162
|
const {
|
|
39
163
|
stats,
|
|
40
164
|
loading: statsLoading,
|
|
@@ -52,7 +176,8 @@ function ExecutionsListPage() {
|
|
|
52
176
|
useCallback(() => {
|
|
53
177
|
refetch();
|
|
54
178
|
refetchStats();
|
|
55
|
-
|
|
179
|
+
void refetchCounts();
|
|
180
|
+
}, [refetch, refetchStats, refetchCounts]),
|
|
56
181
|
autoRefresh,
|
|
57
182
|
autoRefreshInterval
|
|
58
183
|
);
|
|
@@ -246,6 +371,18 @@ function ExecutionsListPage() {
|
|
|
246
371
|
}
|
|
247
372
|
) }),
|
|
248
373
|
/* @__PURE__ */ jsx("div", { className: "mb-6", "data-tour": "fluidgrids-runs-filters", children: /* @__PURE__ */ jsx(ExecutionFilters, { workflows: workflowOptions, onRefresh: refetch }) }),
|
|
374
|
+
parityEnabled && /* @__PURE__ */ jsx(
|
|
375
|
+
RunsParityBar,
|
|
376
|
+
{
|
|
377
|
+
workflowId: filter.workflowId,
|
|
378
|
+
onWorkflowIdChange: setWorkflowIdFilter,
|
|
379
|
+
total: statusCounts.total,
|
|
380
|
+
counts: statusCounts.counts,
|
|
381
|
+
countsError: statusCounts.error,
|
|
382
|
+
selectedStatus: filter.status,
|
|
383
|
+
onSelectStatus: handleFilterByStatus
|
|
384
|
+
}
|
|
385
|
+
),
|
|
249
386
|
selection.runIds.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4 p-3 bg-action-primary-bg/10 rounded-lg flex flex-wrap items-center gap-3", children: [
|
|
250
387
|
/* @__PURE__ */ jsxs("span", { className: "text-sm text-text-primary", children: [
|
|
251
388
|
selection.runIds.length,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument, fetchAllNodeEndpointConfigs } from './chunk-
|
|
1
|
+
import { NodeEndpointConfigsDocument, NodeEndpointConfigDocument, NodeManifestDocument, fetchAllNodeEndpointConfigs } from './chunk-YTUIGIVP.js';
|
|
2
2
|
import { useTr } from './chunk-UULVIT25.js';
|
|
3
3
|
import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
|
|
4
4
|
import { useMemo, useState, useCallback, useEffect } from 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LOG_STREAM_DESTINATIONS, CREATE_LOG_STREAM_DESTINATION, UPDATE_LOG_STREAM_DESTINATION, DELETE_LOG_STREAM_DESTINATION, TEST_LOG_STREAM_DESTINATION, REPLAY_WORKFLOW_RUN, RETRY_WORKFLOW_RUNS, OBSERVABILITY_DASHBOARD_SUMMARY, OBSERVABILITY_FAILED_RUNS, OBSERVABILITY_DATA_SINKS, OBSERVABILITY_DATA_SINK_DATA } from './chunk-5ERAJC2I.js';
|
|
2
|
-
import { throwIfResultError, describeOperationError, useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-
|
|
2
|
+
import { throwIfResultError, describeOperationError, useFluidGridsAnalytics, emitRunStarted, openRunQuotaUpgradePrompt, useFluidGridsFlag, FLUIDGRIDS_FLAGS } from './chunk-K4BF7PAW.js';
|
|
3
3
|
import { useTr } from './chunk-UULVIT25.js';
|
|
4
4
|
import { getFluidGridsClient } from './chunk-NTWG3CJX.js';
|
|
5
5
|
import { useCallback, useState, useMemo, useEffect } from 'react';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-
|
|
2
|
-
import { useExecutions } from './chunk-
|
|
3
|
-
import { useExportWorkflowAs, downloadWorkflowExport, importAcceptAttribute, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-
|
|
4
|
-
import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-LTVAUZ3M.js';
|
|
1
|
+
import { CreateWorkflowRefusalDialog, firstWorkflowProgress, GUIDED_TOUR_STATE, builderPathFor } from './chunk-FFOZ5VUJ.js';
|
|
2
|
+
import { useExecutions } from './chunk-AXMEATLG.js';
|
|
3
|
+
import { useExportWorkflowAs, downloadWorkflowExport, importAcceptAttribute, QuotaExhaustedDialog, importFileKind, parseWorkflowImport, CODE_EXPORT_FORMATS, ImportSourceError, assertImportByteSize, MAX_IMPORT_ARCHIVE_BYTES, readProjectArchive, checkTypeScriptImport, MAX_IMPORT_SOURCE_BYTES, typeScriptModuleFile, typeScriptImportSource, workflowNameFromFile, primaryImportModule } from './chunk-DEGCZCHP.js';
|
|
5
4
|
import { workflowsListControls } from './chunk-D3UWK7GY.js';
|
|
5
|
+
import { useCreateWorkflow, useWorkflowDefinitions, useLazyWorkflowDefinition, useImportWorkflow, useDuplicateWorkflow, useDeleteWorkflow } from './chunk-OJPJ2QXD.js';
|
|
6
6
|
import { useFluidGridsPageControls } from './chunk-PJAWNFJV.js';
|
|
7
7
|
import { FluidGridsDocsLink } from './chunk-4VJ3MDOV.js';
|
|
8
|
-
import { createThenOpen, useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, useFluidGridsFlag, FLUIDGRIDS_FLAGS, SdkPermissionButton, BILLING_PLANS_PATH, describeOperationError, useFlowStore, SdkPermissionGate, isQuotaExhaustedFailure } from './chunk-
|
|
8
|
+
import { createThenOpen, useFluidGridsPermission, FLUIDGRIDS_PERMISSIONS, useFluidGridsFlag, FLUIDGRIDS_FLAGS, SdkPermissionButton, BILLING_PLANS_PATH, describeOperationError, useFlowStore, SdkPermissionGate, isQuotaExhaustedFailure } from './chunk-K4BF7PAW.js';
|
|
9
9
|
import { useTr } from './chunk-UULVIT25.js';
|
|
10
10
|
import { useState, useRef, useCallback, useMemo } from 'react';
|
|
11
11
|
import { useNavigate } from 'react-router';
|