@burdenoff/fluidgrids-fe-sdk 2026.930.2 → 2026.930.4
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-RK3KJ46E.js → ExecutionDetailPage-TDE7OEEM.js} +4 -4
- package/dist/{ExecutionDetailPage-RK3KJ46E.js.map → ExecutionDetailPage-TDE7OEEM.js.map} +1 -1
- package/dist/{ExecutionsListPage-NXINADRN.js → ExecutionsListPage-CJGHZKBU.js} +4 -4
- package/dist/{ExecutionsListPage-NXINADRN.js.map → ExecutionsListPage-CJGHZKBU.js.map} +1 -1
- package/dist/{WorkflowBuilder-EXHCYJFW.js → WorkflowBuilder-MCBEAHRS.js} +5 -5
- package/dist/{WorkflowBuilder-EXHCYJFW.js.map → WorkflowBuilder-MCBEAHRS.js.map} +1 -1
- package/dist/{WorkflowsList-AFTTUUHX.js → WorkflowsList-BLTHWPFH.js} +4 -4
- package/dist/{WorkflowsList-AFTTUUHX.js.map → WorkflowsList-BLTHWPFH.js.map} +1 -1
- package/dist/{chunk-IJSJOTIZ.js → chunk-2GG7H3TG.js} +3 -3
- package/dist/{chunk-IJSJOTIZ.js.map → chunk-2GG7H3TG.js.map} +1 -1
- package/dist/{chunk-USFSPC6S.js → chunk-37BHUNJW.js} +2 -2
- package/dist/chunk-37BHUNJW.js.map +1 -0
- package/dist/{chunk-NTJTPYCD.js → chunk-3B5YEXSW.js} +3 -7
- package/dist/chunk-3B5YEXSW.js.map +1 -0
- package/dist/{chunk-R5ZYOIZG.js → chunk-BNSM27CU.js} +3 -3
- package/dist/{chunk-R5ZYOIZG.js.map → chunk-BNSM27CU.js.map} +1 -1
- package/dist/{chunk-NHZQE7ZB.js → chunk-JYBARIVZ.js} +3 -3
- package/dist/{chunk-NHZQE7ZB.js.map → chunk-JYBARIVZ.js.map} +1 -1
- package/dist/{chunk-N7D4IAYM.js → chunk-LZZZNEBI.js} +4 -4
- package/dist/{chunk-N7D4IAYM.js.map → chunk-LZZZNEBI.js.map} +1 -1
- package/dist/{chunk-C4YEGUY2.js → chunk-OMCLKOFQ.js} +3 -3
- package/dist/{chunk-C4YEGUY2.js.map → chunk-OMCLKOFQ.js.map} +1 -1
- package/dist/{chunk-GBXVY4MJ.js → chunk-QM4C7YDK.js} +143 -36
- package/dist/chunk-QM4C7YDK.js.map +1 -0
- package/dist/{chunk-7SX5OWZR.js → chunk-QOZASRIB.js} +20 -3
- package/dist/chunk-QOZASRIB.js.map +1 -0
- package/dist/{chunk-2FUWCGY6.js → chunk-XH3UV667.js} +43 -6
- package/dist/chunk-XH3UV667.js.map +1 -0
- package/dist/executions.js +3 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/settings.js +2 -2
- package/dist/templates.js +3 -3
- package/dist/{workflow-builder-DqInt43T.d.ts → workflow-builder-CpdCzzst.d.ts} +2 -0
- package/dist/workflow-builder.d.ts +1 -1
- package/dist/workflow-builder.js +4 -4
- package/dist/workflows-list.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-2FUWCGY6.js.map +0 -1
- package/dist/chunk-7SX5OWZR.js.map +0 -1
- package/dist/chunk-GBXVY4MJ.js.map +0 -1
- package/dist/chunk-NTJTPYCD.js.map +0 -1
- package/dist/chunk-USFSPC6S.js.map +0 -1
|
@@ -9,7 +9,7 @@ import { SdkPermissionGate, FLUIDGRIDS_PERMISSIONS, SdkPermissionButton } from '
|
|
|
9
9
|
import { cn as cn$1 } from './chunk-3ZYUGTIT.js';
|
|
10
10
|
import { useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeleteWorkflow, useLazyWorkflowDefinition, useDeactivateWorkflow } from './chunk-GKSXZFDY.js';
|
|
11
11
|
import { config, getFluidGridsConfig, validateTrustedOrigin, setFluidGridsConfig, resetFluidGridsConfig } from './chunk-U4AJLVHA.js';
|
|
12
|
-
import { useFlowStore } from './chunk-
|
|
12
|
+
import { useFlowStore } from './chunk-3B5YEXSW.js';
|
|
13
13
|
import { NodeEndpointConfigsDocument, NodeManifestDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, ExecuteStepDocument, TriggerWorkflowDocument, RunFromNodeDocument, ExecutionDetailDocument, WorkflowRunDocument, FluidgridsEntityTagsDocument, AvailableFluidgridsTagsDocument, SearchFluidgridsTagsDocument, TagFluidgridsEntityDocument, UntagFluidgridsEntityDocument, ReplaceFluidgridsEntityTagsDocument, CreateFluidgridsTagDocument, NodeSchemaIntrospectionDocument, useWorkflowPinnedDataQuery, usePinNodeDataMutation, useUnpinNodeDataMutation, useRunFromNodeEligibilityQuery, EventRegistrationsDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument } from './chunk-3P4YQ7DO.js';
|
|
14
14
|
import { throwIfResultError, describeOperationError } from './chunk-LMO5ASOE.js';
|
|
15
15
|
import { useTr, FluidGridsTranslationProvider, ENGLISH_FALLBACK_TRANSLATOR } from './chunk-7YWBH2A5.js';
|
|
@@ -2507,6 +2507,24 @@ function SchemaConnectionForm({
|
|
|
2507
2507
|
)
|
|
2508
2508
|
] });
|
|
2509
2509
|
}
|
|
2510
|
+
|
|
2511
|
+
// src/modules/connections/utils/connection-submit.ts
|
|
2512
|
+
function resolveConnectionSubmitFlow(provider, authMethodKey) {
|
|
2513
|
+
const methods = provider.authMethods ?? [];
|
|
2514
|
+
const method = methods.find((candidate) => candidate.key === authMethodKey) ?? methods.find((candidate) => candidate.isEnabled) ?? null;
|
|
2515
|
+
if (method) {
|
|
2516
|
+
const flow = method.flow.toUpperCase();
|
|
2517
|
+
if (flow === "OAUTH2" || flow === "MINTED") return flow;
|
|
2518
|
+
return "FIELDS";
|
|
2519
|
+
}
|
|
2520
|
+
return provider.authType === "OAUTH2" ? "OAUTH2" : "FIELDS";
|
|
2521
|
+
}
|
|
2522
|
+
function buildCreateConnectionConfig(flow, values) {
|
|
2523
|
+
if (flow !== "OAUTH2" || !values) return void 0;
|
|
2524
|
+
return Object.keys(values).length > 0 ? values : void 0;
|
|
2525
|
+
}
|
|
2526
|
+
|
|
2527
|
+
// src/modules/connections/hooks/useConnectionDialog.ts
|
|
2510
2528
|
var GET_PROVIDER_BY_KEY = gql`
|
|
2511
2529
|
query GetProviderByKey($key: String!) {
|
|
2512
2530
|
getProviderByKey(key: $key) {
|
|
@@ -2733,6 +2751,11 @@ function useConnectionDialog(options) {
|
|
|
2733
2751
|
setError(void 0);
|
|
2734
2752
|
try {
|
|
2735
2753
|
const client = getFluidGridsClient();
|
|
2754
|
+
const flow = resolveConnectionSubmitFlow(
|
|
2755
|
+
data.provider,
|
|
2756
|
+
data.authMethodKey
|
|
2757
|
+
);
|
|
2758
|
+
const config2 = buildCreateConnectionConfig(flow, data.values);
|
|
2736
2759
|
const createResult = throwIfResultError(
|
|
2737
2760
|
await client.mutate({
|
|
2738
2761
|
mutation: CREATE_CONNECTION_FOR_DIALOG,
|
|
@@ -2741,11 +2764,13 @@ function useConnectionDialog(options) {
|
|
|
2741
2764
|
name: data.name.trim(),
|
|
2742
2765
|
description: data.description?.trim(),
|
|
2743
2766
|
providerId: data.provider.id,
|
|
2744
|
-
authMethodKey: data.authMethodKey ?? void 0
|
|
2745
|
-
//
|
|
2746
|
-
//
|
|
2747
|
-
//
|
|
2748
|
-
//
|
|
2767
|
+
authMethodKey: data.authMethodKey ?? void 0,
|
|
2768
|
+
// Only an OAuth method's fields travel with the create: the
|
|
2769
|
+
// handshake reads a Custom OAuth 2.0 client ID from the
|
|
2770
|
+
// connection, and the backend moves the client secret into
|
|
2771
|
+
// its encrypted column. Every other method's values are
|
|
2772
|
+
// credentials and go only to authenticateConnection.
|
|
2773
|
+
...config2 ? { config: config2 } : {}
|
|
2749
2774
|
}
|
|
2750
2775
|
}
|
|
2751
2776
|
})
|
|
@@ -2754,12 +2779,6 @@ function useConnectionDialog(options) {
|
|
|
2754
2779
|
if (!connection) {
|
|
2755
2780
|
throw new Error("Failed to create connection");
|
|
2756
2781
|
}
|
|
2757
|
-
const method = (data.provider.authMethods ?? []).find(
|
|
2758
|
-
(candidate) => candidate.key === data.authMethodKey
|
|
2759
|
-
) ?? (data.provider.authMethods ?? []).find(
|
|
2760
|
-
(candidate) => candidate.isEnabled
|
|
2761
|
-
) ?? null;
|
|
2762
|
-
const flow = method ? method.flow.toUpperCase() : data.provider.authType === "OAUTH2" ? "OAUTH2" : "FIELDS";
|
|
2763
2782
|
switch (flow) {
|
|
2764
2783
|
case "OAUTH2": {
|
|
2765
2784
|
const oauthResult = throwIfResultError(
|
|
@@ -3694,6 +3713,7 @@ function useNodeExecution() {
|
|
|
3694
3713
|
const pollTimerRef = useRef(null);
|
|
3695
3714
|
const pollStartRef = useRef(0);
|
|
3696
3715
|
const activeRunIdRef = useRef(null);
|
|
3716
|
+
const loadRequestRef = useRef(0);
|
|
3697
3717
|
const workflow = useFlowStore((s) => s.workflow);
|
|
3698
3718
|
const startExecution = useFlowStore(
|
|
3699
3719
|
(s) => s.actions.execution.startExecution
|
|
@@ -3714,6 +3734,7 @@ function useNodeExecution() {
|
|
|
3714
3734
|
const clearLogs = useFlowStore((s) => s.actions.execution.clearLogs);
|
|
3715
3735
|
const loadDebugRun = useFlowStore((s) => s.actions.execution.loadDebugRun);
|
|
3716
3736
|
const cleanup = useCallback(() => {
|
|
3737
|
+
loadRequestRef.current += 1;
|
|
3717
3738
|
if (pollTimerRef.current) {
|
|
3718
3739
|
clearTimeout(pollTimerRef.current);
|
|
3719
3740
|
pollTimerRef.current = null;
|
|
@@ -3868,7 +3889,8 @@ function useNodeExecution() {
|
|
|
3868
3889
|
setRunMetadata({
|
|
3869
3890
|
runId,
|
|
3870
3891
|
workflowKey: run.workflowKey,
|
|
3871
|
-
version: run.version
|
|
3892
|
+
version: run.version,
|
|
3893
|
+
sourceMode: run.mode
|
|
3872
3894
|
});
|
|
3873
3895
|
if (run.nodeStates?.length) {
|
|
3874
3896
|
processNodeStates(runId, run.nodeStates);
|
|
@@ -3926,7 +3948,8 @@ function useNodeExecution() {
|
|
|
3926
3948
|
const backendRunId = stepResult.runId;
|
|
3927
3949
|
startExecution(nodeId, backendRunId, {
|
|
3928
3950
|
workflowKey: stepResult.workflowKey,
|
|
3929
|
-
version: stepResult.version
|
|
3951
|
+
version: stepResult.version,
|
|
3952
|
+
sourceMode: "TEST"
|
|
3930
3953
|
});
|
|
3931
3954
|
setStepPlan({
|
|
3932
3955
|
runId: backendRunId,
|
|
@@ -4037,7 +4060,8 @@ function useNodeExecution() {
|
|
|
4037
4060
|
const backendRunId = triggerResult.runId;
|
|
4038
4061
|
startExecution(triggerNode.id, backendRunId, {
|
|
4039
4062
|
workflowKey: triggerResult.workflowKey,
|
|
4040
|
-
version: triggerResult.version
|
|
4063
|
+
version: triggerResult.version,
|
|
4064
|
+
sourceMode: "TEST"
|
|
4041
4065
|
});
|
|
4042
4066
|
pollRunUpdates(backendRunId);
|
|
4043
4067
|
return { success: true, runId: backendRunId };
|
|
@@ -4108,7 +4132,8 @@ function useNodeExecution() {
|
|
|
4108
4132
|
const backendRunId = runFromNodeResult.runId;
|
|
4109
4133
|
startExecution(nodeId, backendRunId, {
|
|
4110
4134
|
workflowKey: runFromNodeResult.workflowKey,
|
|
4111
|
-
version: runFromNodeResult.version
|
|
4135
|
+
version: runFromNodeResult.version,
|
|
4136
|
+
sourceMode: "TEST"
|
|
4112
4137
|
});
|
|
4113
4138
|
pollRunUpdates(backendRunId);
|
|
4114
4139
|
return { success: true, runId: backendRunId };
|
|
@@ -4136,6 +4161,7 @@ function useNodeExecution() {
|
|
|
4136
4161
|
const loadExecution = useCallback(
|
|
4137
4162
|
async (runId) => {
|
|
4138
4163
|
cleanup();
|
|
4164
|
+
const requestId = ++loadRequestRef.current;
|
|
4139
4165
|
try {
|
|
4140
4166
|
const client = getFluidGridsClient();
|
|
4141
4167
|
const result = throwIfResultError(
|
|
@@ -4149,6 +4175,29 @@ function useNodeExecution() {
|
|
|
4149
4175
|
if (!run) {
|
|
4150
4176
|
return { success: false, error: "Execution not found" };
|
|
4151
4177
|
}
|
|
4178
|
+
if (run.mode !== "TEST") {
|
|
4179
|
+
return {
|
|
4180
|
+
success: false,
|
|
4181
|
+
error: "Only TEST runs can be loaded for continuation."
|
|
4182
|
+
};
|
|
4183
|
+
}
|
|
4184
|
+
if (!TERMINAL_STATUSES.has(run.status)) {
|
|
4185
|
+
return {
|
|
4186
|
+
success: false,
|
|
4187
|
+
error: "Only terminal TEST runs can be loaded for continuation."
|
|
4188
|
+
};
|
|
4189
|
+
}
|
|
4190
|
+
if (requestId !== loadRequestRef.current) {
|
|
4191
|
+
return { success: false, error: "Execution load superseded." };
|
|
4192
|
+
}
|
|
4193
|
+
const currentWorkflow = useFlowStore.getState().workflow;
|
|
4194
|
+
const currentWorkflowKey = currentWorkflow.workflowKey || currentWorkflow.id;
|
|
4195
|
+
if (run.workflowKey !== currentWorkflowKey || run.version !== currentWorkflow.version) {
|
|
4196
|
+
return {
|
|
4197
|
+
success: false,
|
|
4198
|
+
error: "The selected run belongs to a different workflow version."
|
|
4199
|
+
};
|
|
4200
|
+
}
|
|
4152
4201
|
const logs = (run.nodeStates ?? []).map((nodeState) => {
|
|
4153
4202
|
const rawStatus = nodeState.status.toLowerCase();
|
|
4154
4203
|
const status = rawStatus === "completed" ? "completed" : rawStatus === "failed" || rawStatus === "timeout" ? "failed" : rawStatus === "running" || rawStatus === "waiting" || rawStatus === "delayed" || rawStatus === "waiting_subworkflow" ? "running" : "pending";
|
|
@@ -4171,7 +4220,8 @@ function useNodeExecution() {
|
|
|
4171
4220
|
});
|
|
4172
4221
|
loadDebugRun(runId, logs, {
|
|
4173
4222
|
workflowKey: run.workflowKey,
|
|
4174
|
-
version: run.version
|
|
4223
|
+
version: run.version,
|
|
4224
|
+
sourceMode: run.mode
|
|
4175
4225
|
});
|
|
4176
4226
|
return { success: true, runId };
|
|
4177
4227
|
} catch (error) {
|
|
@@ -13585,8 +13635,8 @@ var reducer = (state, action) => {
|
|
|
13585
13635
|
if (toastId) {
|
|
13586
13636
|
addToRemoveQueue(toastId);
|
|
13587
13637
|
} else {
|
|
13588
|
-
state.toasts.forEach((
|
|
13589
|
-
addToRemoveQueue(
|
|
13638
|
+
state.toasts.forEach((toast12) => {
|
|
13639
|
+
addToRemoveQueue(toast12.id);
|
|
13590
13640
|
});
|
|
13591
13641
|
}
|
|
13592
13642
|
return {
|
|
@@ -14989,7 +15039,7 @@ function VisualMapperContent({
|
|
|
14989
15039
|
mapping,
|
|
14990
15040
|
onMappingChange
|
|
14991
15041
|
}) {
|
|
14992
|
-
const { toast:
|
|
15042
|
+
const { toast: toast12 } = useToast();
|
|
14993
15043
|
const tr = useTr();
|
|
14994
15044
|
const reactFlowWrapper = useRef(null);
|
|
14995
15045
|
const [selectedSourceNode, setSelectedSourceNode] = useState(null);
|
|
@@ -15009,7 +15059,7 @@ function VisualMapperContent({
|
|
|
15009
15059
|
targetOperation
|
|
15010
15060
|
);
|
|
15011
15061
|
if (generatedNodes.length === 0) {
|
|
15012
|
-
|
|
15062
|
+
toast12({
|
|
15013
15063
|
title: tr(
|
|
15014
15064
|
"fluidgrids.builder.visualMapper.noFieldsFoundTitle",
|
|
15015
15065
|
"No fields found"
|
|
@@ -15035,7 +15085,7 @@ function VisualMapperContent({
|
|
|
15035
15085
|
targetNode,
|
|
15036
15086
|
targetOperation,
|
|
15037
15087
|
setNodes,
|
|
15038
|
-
|
|
15088
|
+
toast12,
|
|
15039
15089
|
tr
|
|
15040
15090
|
]);
|
|
15041
15091
|
useEffect(() => {
|
|
@@ -15142,7 +15192,7 @@ function VisualMapperContent({
|
|
|
15142
15192
|
}
|
|
15143
15193
|
onMappingChange(updatedMapping);
|
|
15144
15194
|
if (isCompatible) {
|
|
15145
|
-
|
|
15195
|
+
toast12({
|
|
15146
15196
|
title: tr(
|
|
15147
15197
|
"fluidgrids.builder.visualMapper.mappingCreatedTitle",
|
|
15148
15198
|
"Mapping created"
|
|
@@ -15150,7 +15200,7 @@ function VisualMapperContent({
|
|
|
15150
15200
|
description: `Mapped ${sourcePath} (${sourceType}) to ${targetPath} (${targetType})`
|
|
15151
15201
|
});
|
|
15152
15202
|
} else {
|
|
15153
|
-
|
|
15203
|
+
toast12({
|
|
15154
15204
|
title: tr(
|
|
15155
15205
|
"fluidgrids.builder.visualMapper.typeMismatchTitle",
|
|
15156
15206
|
"Type mismatch warning"
|
|
@@ -15160,7 +15210,7 @@ function VisualMapperContent({
|
|
|
15160
15210
|
});
|
|
15161
15211
|
}
|
|
15162
15212
|
} else {
|
|
15163
|
-
|
|
15213
|
+
toast12({
|
|
15164
15214
|
title: tr(
|
|
15165
15215
|
"fluidgrids.builder.visualMapper.invalidMappingTitle",
|
|
15166
15216
|
"Invalid mapping"
|
|
@@ -15173,7 +15223,7 @@ function VisualMapperContent({
|
|
|
15173
15223
|
});
|
|
15174
15224
|
}
|
|
15175
15225
|
},
|
|
15176
|
-
[nodes, mapping, onMappingChange,
|
|
15226
|
+
[nodes, mapping, onMappingChange, toast12, tr, setEdges]
|
|
15177
15227
|
);
|
|
15178
15228
|
const onEdgeDelete = useCallback(
|
|
15179
15229
|
(edge) => {
|
|
@@ -15230,7 +15280,7 @@ function VisualMapperContent({
|
|
|
15230
15280
|
const handleSaveMappingDialog = (expression, targetFieldName) => {
|
|
15231
15281
|
const targetPath = targetFieldName || selectedTargetNode?.data?.path;
|
|
15232
15282
|
if (!targetPath) {
|
|
15233
|
-
|
|
15283
|
+
toast12({
|
|
15234
15284
|
title: tr(
|
|
15235
15285
|
"fluidgrids.builder.visualMapper.noTargetFieldTitle",
|
|
15236
15286
|
"No target field specified"
|
|
@@ -15262,7 +15312,7 @@ function VisualMapperContent({
|
|
|
15262
15312
|
}
|
|
15263
15313
|
onMappingChange(updatedMapping);
|
|
15264
15314
|
const mappingType = detectMappingType(expression);
|
|
15265
|
-
|
|
15315
|
+
toast12({
|
|
15266
15316
|
title: `${mappingType.charAt(0).toUpperCase() + mappingType.slice(1)} mapping created`,
|
|
15267
15317
|
description: `${tr("fluidgrids.builder.visualMapper.appliedMappingTo", "Applied mapping to")} ${targetPath}`
|
|
15268
15318
|
});
|
|
@@ -15561,7 +15611,7 @@ function MappingEditor({
|
|
|
15561
15611
|
setEdges,
|
|
15562
15612
|
edgeId
|
|
15563
15613
|
}) {
|
|
15564
|
-
const { toast:
|
|
15614
|
+
const { toast: toast12 } = useToast();
|
|
15565
15615
|
const tr = useTr();
|
|
15566
15616
|
const [mappingJson, setMappingJson] = useState({});
|
|
15567
15617
|
const [jsonDataString, setJsonDataString] = useState(
|
|
@@ -15685,7 +15735,7 @@ function MappingEditor({
|
|
|
15685
15735
|
const handleSaveMapping = () => {
|
|
15686
15736
|
try {
|
|
15687
15737
|
checkJsonValidity();
|
|
15688
|
-
|
|
15738
|
+
toast12({
|
|
15689
15739
|
title: tr(
|
|
15690
15740
|
"fluidgrids.builder.mappingEditor.mappingSavedTitle",
|
|
15691
15741
|
"Mapping saved"
|
|
@@ -15696,7 +15746,7 @@ function MappingEditor({
|
|
|
15696
15746
|
)
|
|
15697
15747
|
});
|
|
15698
15748
|
} catch (error) {
|
|
15699
|
-
|
|
15749
|
+
toast12({
|
|
15700
15750
|
title: tr(
|
|
15701
15751
|
"fluidgrids.builder.mappingEditor.errorSavingTitle",
|
|
15702
15752
|
"Error saving mapping"
|
|
@@ -15715,7 +15765,7 @@ function MappingEditor({
|
|
|
15715
15765
|
const parsedData = checkJsonValidity();
|
|
15716
15766
|
const result = await applyMapping(parsedData, sampleInput);
|
|
15717
15767
|
setPreviewOutput(result);
|
|
15718
|
-
|
|
15768
|
+
toast12({
|
|
15719
15769
|
title: tr(
|
|
15720
15770
|
"fluidgrids.builder.mappingEditor.mappingTestedTitle",
|
|
15721
15771
|
"Mapping tested"
|
|
@@ -15727,7 +15777,7 @@ function MappingEditor({
|
|
|
15727
15777
|
});
|
|
15728
15778
|
} catch (error) {
|
|
15729
15779
|
console.error("Test mapping error:", error);
|
|
15730
|
-
|
|
15780
|
+
toast12({
|
|
15731
15781
|
title: tr(
|
|
15732
15782
|
"fluidgrids.builder.mappingEditor.mappingTestFailedTitle",
|
|
15733
15783
|
"Mapping test failed"
|
|
@@ -23927,7 +23977,8 @@ function sourceMetadata(input) {
|
|
|
23927
23977
|
return {
|
|
23928
23978
|
runId: source?.runId ?? input.sourceRunId ?? null,
|
|
23929
23979
|
workflowKey: source?.workflowKey ?? input.sourceRunWorkflowKey ?? null,
|
|
23930
|
-
version: source?.version ?? source?.workflowVersion ?? input.sourceRunVersion ?? null
|
|
23980
|
+
version: source?.version ?? source?.workflowVersion ?? input.sourceRunVersion ?? null,
|
|
23981
|
+
sourceMode: source?.sourceMode ?? null
|
|
23931
23982
|
};
|
|
23932
23983
|
}
|
|
23933
23984
|
function getContinuationEligibility(input) {
|
|
@@ -23938,6 +23989,12 @@ function getContinuationEligibility(input) {
|
|
|
23938
23989
|
"Load a completed or failed run before continuing from this node."
|
|
23939
23990
|
);
|
|
23940
23991
|
}
|
|
23992
|
+
if (source.sourceMode === "PRODUCTION") {
|
|
23993
|
+
return blocked(
|
|
23994
|
+
"production-source-run",
|
|
23995
|
+
"Production run output cannot be reused for TEST continuation."
|
|
23996
|
+
);
|
|
23997
|
+
}
|
|
23941
23998
|
if (!source.workflowKey || !source.version || source.workflowKey !== input.workflowKey || source.version !== input.workflowVersion) {
|
|
23942
23999
|
return blocked(
|
|
23943
24000
|
"incompatible-source-run",
|
|
@@ -26552,6 +26609,55 @@ function IntegrationReturnHandler() {
|
|
|
26552
26609
|
}, [getNodes, setNodes, zustandSetNodes]);
|
|
26553
26610
|
return null;
|
|
26554
26611
|
}
|
|
26612
|
+
function HistoricalRunLoader() {
|
|
26613
|
+
const loadRunId = new URLSearchParams(window.location.search).get("loadRun");
|
|
26614
|
+
const workflowKey = useFlowStore(
|
|
26615
|
+
(s) => s.workflow.workflowKey || s.workflow.id
|
|
26616
|
+
);
|
|
26617
|
+
const workflowVersion = useFlowStore((s) => s.workflow.version);
|
|
26618
|
+
const { loadExecution } = useNodeExecution();
|
|
26619
|
+
const tr = useTr();
|
|
26620
|
+
const requestedRunRef = useRef(null);
|
|
26621
|
+
const requestKey = loadRunId && workflowKey && workflowVersion ? `${workflowKey}:${workflowVersion}:${loadRunId}` : null;
|
|
26622
|
+
useEffect(() => {
|
|
26623
|
+
if (!requestKey || !loadRunId || requestedRunRef.current === requestKey) {
|
|
26624
|
+
return;
|
|
26625
|
+
}
|
|
26626
|
+
requestedRunRef.current = requestKey;
|
|
26627
|
+
let active = true;
|
|
26628
|
+
void loadExecution(loadRunId).then((result) => {
|
|
26629
|
+
if (!active) return;
|
|
26630
|
+
const params = new URLSearchParams(window.location.search);
|
|
26631
|
+
params.delete("loadRun");
|
|
26632
|
+
const search = params.toString();
|
|
26633
|
+
window.history.replaceState(
|
|
26634
|
+
null,
|
|
26635
|
+
"",
|
|
26636
|
+
`${window.location.pathname}${search ? `?${search}` : ""}${window.location.hash}`
|
|
26637
|
+
);
|
|
26638
|
+
if (result.success) {
|
|
26639
|
+
toast.success(
|
|
26640
|
+
tr(
|
|
26641
|
+
"fluidgrids.builder.historicalRunLoaded",
|
|
26642
|
+
"TEST run loaded in the builder"
|
|
26643
|
+
)
|
|
26644
|
+
);
|
|
26645
|
+
return;
|
|
26646
|
+
}
|
|
26647
|
+
requestedRunRef.current = null;
|
|
26648
|
+
toast.error(
|
|
26649
|
+
result.error ?? tr(
|
|
26650
|
+
"fluidgrids.builder.historicalRunLoadFailed",
|
|
26651
|
+
"Could not load the TEST run"
|
|
26652
|
+
)
|
|
26653
|
+
);
|
|
26654
|
+
});
|
|
26655
|
+
return () => {
|
|
26656
|
+
active = false;
|
|
26657
|
+
};
|
|
26658
|
+
}, [loadExecution, loadRunId, requestKey, tr]);
|
|
26659
|
+
return null;
|
|
26660
|
+
}
|
|
26555
26661
|
var FlowBuilderPage = ({
|
|
26556
26662
|
workflow,
|
|
26557
26663
|
readOnly = false
|
|
@@ -26596,6 +26702,7 @@ var FlowBuilderPage = ({
|
|
|
26596
26702
|
}
|
|
26597
26703
|
return /* @__PURE__ */ jsxs(ReactFlowProvider, { children: [
|
|
26598
26704
|
/* @__PURE__ */ jsx(IntegrationReturnHandler, {}),
|
|
26705
|
+
/* @__PURE__ */ jsx(HistoricalRunLoader, {}),
|
|
26599
26706
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col h-full", children: /* @__PURE__ */ jsxs("div", { className: "relative flex grow min-h-0 divide-x divide-card-foreground/10", children: [
|
|
26600
26707
|
/* @__PURE__ */ jsx("div", { className: "grow min-w-0 bg-card md:bg-transparent", children: /* @__PURE__ */ jsx(FlowBuilder, { readOnly: isReadOnly }) }),
|
|
26601
26708
|
!isReadOnly && /* @__PURE__ */ jsx(SidebarModule, {})
|
|
@@ -26604,5 +26711,5 @@ var FlowBuilderPage = ({
|
|
|
26604
26711
|
};
|
|
26605
26712
|
|
|
26606
26713
|
export { Card2 as Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ConnectionFormDialog, ConnectionSelector, EntityTagPicker, FLUIDGRIDS_ENTITY_TYPES, FlowBuilderPage, FluidGridsMark, FluidGridsProvider, ProviderPicker, SchemaConnectionForm, ScopePicker, TemplateCard, buildNodeCheck, buildRequiredNodeTypes, listCustomBlocks, mergeStickyNotes, refetchStoreNodes, registerCustomBlock, resolveUiSpec, stripSubmitActions, tagLabel, useAvailableTags, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useCreateTag, useDraftEntityTags, useEntityTags, useFluidGridsContext, useImportWorkflowTemplate, useInitiateOAuth, useInstalledNodes, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders, useReplaceEntityTags, useSearchTags, useTagEntity, useUntagEntity, useWorkflowTemplates };
|
|
26607
|
-
//# sourceMappingURL=chunk-
|
|
26608
|
-
//# sourceMappingURL=chunk-
|
|
26714
|
+
//# sourceMappingURL=chunk-QM4C7YDK.js.map
|
|
26715
|
+
//# sourceMappingURL=chunk-QM4C7YDK.js.map
|