@burdenoff/fluidgrids-fe-sdk 2026.721.2 → 2026.723.2
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-3E66352F.js +8 -0
- package/dist/{ExecutionDetailPage-6ASC7CJW.js.map → ExecutionDetailPage-3E66352F.js.map} +1 -1
- package/dist/ExecutionsListPage-N6ZTA42U.js +8 -0
- package/dist/{ExecutionsListPage-OWOKDVXQ.js.map → ExecutionsListPage-N6ZTA42U.js.map} +1 -1
- package/dist/{WorkflowBuilder-UADGCKNH.js → WorkflowBuilder-JQVFFWQB.js} +6 -6
- package/dist/{WorkflowBuilder-UADGCKNH.js.map → WorkflowBuilder-JQVFFWQB.js.map} +1 -1
- package/dist/WorkflowsList-IKUTWG7U.js +10 -0
- package/dist/{WorkflowsList-AY6ZANWN.js.map → WorkflowsList-IKUTWG7U.js.map} +1 -1
- package/dist/{blocks-RO3MCVHA.js → blocks-UL5FEAD7.js} +4 -4
- package/dist/{blocks-RO3MCVHA.js.map → blocks-UL5FEAD7.js.map} +1 -1
- package/dist/{chunk-ZPBFAT6K.js → chunk-2WURM2ZA.js} +3 -3
- package/dist/{chunk-ZPBFAT6K.js.map → chunk-2WURM2ZA.js.map} +1 -1
- package/dist/{chunk-OHIRHNRJ.js → chunk-47457KC3.js} +3 -3
- package/dist/{chunk-OHIRHNRJ.js.map → chunk-47457KC3.js.map} +1 -1
- package/dist/{chunk-4NTHFDKQ.js → chunk-H7WSQN2I.js} +29 -3
- package/dist/chunk-H7WSQN2I.js.map +1 -0
- package/dist/{chunk-52EJMXGS.js → chunk-IMRLGRX2.js} +3 -3
- package/dist/{chunk-52EJMXGS.js.map → chunk-IMRLGRX2.js.map} +1 -1
- package/dist/{chunk-R72R5HRD.js → chunk-NCGZIY5C.js} +123 -12
- package/dist/chunk-NCGZIY5C.js.map +1 -0
- package/dist/{chunk-2MQR3DMF.js → chunk-VICF7CEB.js} +47 -218
- package/dist/chunk-VICF7CEB.js.map +1 -0
- package/dist/{chunk-EQVBECAC.js → chunk-YN6AXJJO.js} +3 -3
- package/dist/{chunk-EQVBECAC.js.map → chunk-YN6AXJJO.js.map} +1 -1
- package/dist/{chunk-DVSO5MTE.js → chunk-YQO6STP6.js} +4 -4
- package/dist/{chunk-DVSO5MTE.js.map → chunk-YQO6STP6.js.map} +1 -1
- package/dist/index.d.ts +62 -7
- package/dist/index.js +15 -15
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/ExecutionDetailPage-6ASC7CJW.js +0 -8
- package/dist/ExecutionsListPage-OWOKDVXQ.js +0 -8
- package/dist/WorkflowsList-AY6ZANWN.js +0 -10
- package/dist/chunk-2MQR3DMF.js.map +0 -1
- package/dist/chunk-4NTHFDKQ.js.map +0 -1
- package/dist/chunk-R72R5HRD.js.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Dialog as Dialog$1, DialogContent as DialogContent$1, DialogHeader as DialogHeader$1, DialogTitle as DialogTitle$1, DialogDescription as DialogDescription$1, Input as Input$1, DialogFooter } from './chunk-MRVS73S2.js';
|
|
2
2
|
import { Badge as Badge$1, Button } from './chunk-DBOMRIP5.js';
|
|
3
|
-
import { refetchStoreNodes, registerWorkflowNodeTypes, ensureNodeConfigsLoaded, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, AVAILABLE_NODES, useInsertNode, useSaveWorkflow, useNodeExecution, getNodeDetail, ConnectionSelector, NODES_METADATA, NODE_CONFIGS, isNodeConfigsInitialized, NODES, NodePropertyPanel } from './chunk-
|
|
3
|
+
import { refetchStoreNodes, registerWorkflowNodeTypes, ensureNodeConfigsLoaded, onNodeTypesUpdate, NODE_TYPES, getNodeMetadata, AVAILABLE_NODES, useInsertNode, useSaveWorkflow, useNodeExecution, getNodeDetail, ConnectionSelector, NODES_METADATA, NODE_CONFIGS, isNodeConfigsInitialized, NODES, NodePropertyPanel } from './chunk-VICF7CEB.js';
|
|
4
4
|
import { createGlobalStoreClient, setGlobalStoreClient, resetGlobalStoreClient, getGlobalStoreClient } from './chunk-BQXHJIER.js';
|
|
5
5
|
import { BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, InstallPurchasedNodeDocument, GetMyNodeInstallationsDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument } from './chunk-PNOA7CQV.js';
|
|
6
|
-
import { useLazyWorkflowDefinition, useCreateWorkflow, useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeactivateWorkflow } from './chunk-
|
|
6
|
+
import { useLazyWorkflowDefinition, useCreateWorkflow, useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeactivateWorkflow } from './chunk-47457KC3.js';
|
|
7
7
|
import { useFlowStore } from './chunk-KU64CCSV.js';
|
|
8
8
|
import { SdkPermissionButton, FLUIDGRIDS_PERMISSIONS } from './chunk-UIY2HBWA.js';
|
|
9
9
|
import { cn } from './chunk-3ZYUGTIT.js';
|
|
10
|
-
import { throwIfResultError, NodeSchemaIntrospectionDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument } from './chunk-
|
|
11
|
-
import { createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient, getFluidGridsClient } from './chunk-5BDQNSP3.js';
|
|
10
|
+
import { throwIfResultError, NodeSchemaIntrospectionDocument, EventRegistrationsDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument } from './chunk-H7WSQN2I.js';
|
|
11
|
+
import { createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient, getFluidGridsClient, getFluidGridsClientSafe } from './chunk-5BDQNSP3.js';
|
|
12
12
|
import { validateTrustedOrigin, setFluidGridsConfig, resetFluidGridsConfig, getFluidGridsConfig } from './chunk-WWU2O2SR.js';
|
|
13
13
|
import { deepClone, applyTemplateInputs } from './chunk-XQP33UJR.js';
|
|
14
14
|
import { useNavigate, useParams } from 'react-router-dom';
|
|
@@ -4078,7 +4078,7 @@ function DesktopSidebarFragment({
|
|
|
4078
4078
|
if (nodes) {
|
|
4079
4079
|
const requiredNodeTypes = [];
|
|
4080
4080
|
try {
|
|
4081
|
-
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-
|
|
4081
|
+
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-UL5FEAD7.js');
|
|
4082
4082
|
await ensureNodeConfigsLoaded2().catch(() => {
|
|
4083
4083
|
});
|
|
4084
4084
|
const workflowNodeTypes = [
|
|
@@ -12433,6 +12433,100 @@ function SwitchRulesEditor({
|
|
|
12433
12433
|
/* @__PURE__ */ jsx("p", { className: "text-[10px] leading-snug text-muted-foreground", children: "Rules are checked top-down; the first matching rule routes the item to its output. Each rule renders as an output handle on the node." })
|
|
12434
12434
|
] });
|
|
12435
12435
|
}
|
|
12436
|
+
var SECTION_LABEL = "text-[11px] font-semibold uppercase tracking-[0.12em] text-muted-foreground";
|
|
12437
|
+
function WebhookUrlField({ webhookUrl, loading }) {
|
|
12438
|
+
const [copied, setCopied] = useState(false);
|
|
12439
|
+
const handleCopy = async () => {
|
|
12440
|
+
if (!webhookUrl) return;
|
|
12441
|
+
try {
|
|
12442
|
+
await navigator.clipboard.writeText(webhookUrl);
|
|
12443
|
+
setCopied(true);
|
|
12444
|
+
setTimeout(() => setCopied(false), 1500);
|
|
12445
|
+
} catch {
|
|
12446
|
+
}
|
|
12447
|
+
};
|
|
12448
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-2", "data-testid": "ndv-webhook-url", children: [
|
|
12449
|
+
/* @__PURE__ */ jsx("div", { className: SECTION_LABEL, children: "Webhook URL" }),
|
|
12450
|
+
webhookUrl ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12451
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-stretch gap-2", children: [
|
|
12452
|
+
/* @__PURE__ */ jsx(
|
|
12453
|
+
"input",
|
|
12454
|
+
{
|
|
12455
|
+
readOnly: true,
|
|
12456
|
+
value: webhookUrl,
|
|
12457
|
+
onFocus: (e) => e.currentTarget.select(),
|
|
12458
|
+
className: "min-w-0 flex-1 rounded-md border border-border bg-muted/40 px-3 py-2 font-mono text-xs text-foreground outline-none focus:border-primary"
|
|
12459
|
+
}
|
|
12460
|
+
),
|
|
12461
|
+
/* @__PURE__ */ jsxs(
|
|
12462
|
+
"button",
|
|
12463
|
+
{
|
|
12464
|
+
type: "button",
|
|
12465
|
+
onClick: handleCopy,
|
|
12466
|
+
className: cn$1(
|
|
12467
|
+
"inline-flex shrink-0 items-center gap-1.5 rounded-md border border-border px-3 py-2 text-xs font-medium transition-colors",
|
|
12468
|
+
copied ? "border-primary bg-primary/10 text-primary" : "bg-background text-foreground hover:bg-muted"
|
|
12469
|
+
),
|
|
12470
|
+
"aria-label": "Copy webhook URL",
|
|
12471
|
+
children: [
|
|
12472
|
+
/* @__PURE__ */ jsx(
|
|
12473
|
+
Icon,
|
|
12474
|
+
{
|
|
12475
|
+
icon: copied ? "mdi:check" : "mdi:content-copy",
|
|
12476
|
+
className: "h-4 w-4"
|
|
12477
|
+
}
|
|
12478
|
+
),
|
|
12479
|
+
copied ? "Copied" : "Copy"
|
|
12480
|
+
]
|
|
12481
|
+
}
|
|
12482
|
+
)
|
|
12483
|
+
] }),
|
|
12484
|
+
/* @__PURE__ */ jsx("p", { className: "text-[11px] text-muted-foreground", children: "Send HTTP requests to this URL to trigger the workflow." })
|
|
12485
|
+
] }) : /* @__PURE__ */ jsx("div", { className: "rounded-md border border-dashed border-border bg-muted/40 px-3 py-2 text-xs text-muted-foreground", children: loading ? "Loading webhook URL\u2026" : "Save the workflow to generate its webhook URL." })
|
|
12486
|
+
] });
|
|
12487
|
+
}
|
|
12488
|
+
function useWebhookRegistration(workflowKey, triggerNodeId, enabled = true) {
|
|
12489
|
+
const [registration, setRegistration] = useState(
|
|
12490
|
+
null
|
|
12491
|
+
);
|
|
12492
|
+
const [loading, setLoading] = useState(false);
|
|
12493
|
+
const [error, setError] = useState(null);
|
|
12494
|
+
const fetchData = useCallback(async () => {
|
|
12495
|
+
if (!enabled || !workflowKey || !triggerNodeId) {
|
|
12496
|
+
setRegistration(null);
|
|
12497
|
+
return;
|
|
12498
|
+
}
|
|
12499
|
+
const client = getFluidGridsClientSafe();
|
|
12500
|
+
if (!client) return;
|
|
12501
|
+
setLoading(true);
|
|
12502
|
+
setError(null);
|
|
12503
|
+
try {
|
|
12504
|
+
const result = await client.query({
|
|
12505
|
+
query: EventRegistrationsDocument,
|
|
12506
|
+
variables: { workflowKey },
|
|
12507
|
+
fetchPolicy: "network-only"
|
|
12508
|
+
});
|
|
12509
|
+
const match = result.data?.eventRegistrations?.find(
|
|
12510
|
+
(r) => r.triggerNodeId === triggerNodeId
|
|
12511
|
+
) ?? null;
|
|
12512
|
+
setRegistration(match);
|
|
12513
|
+
} catch (err) {
|
|
12514
|
+
setError(err);
|
|
12515
|
+
} finally {
|
|
12516
|
+
setLoading(false);
|
|
12517
|
+
}
|
|
12518
|
+
}, [enabled, workflowKey, triggerNodeId]);
|
|
12519
|
+
useEffect(() => {
|
|
12520
|
+
fetchData();
|
|
12521
|
+
}, [fetchData]);
|
|
12522
|
+
return {
|
|
12523
|
+
registration,
|
|
12524
|
+
webhookUrl: registration?.webhookUrl ?? null,
|
|
12525
|
+
loading,
|
|
12526
|
+
error,
|
|
12527
|
+
refetch: fetchData
|
|
12528
|
+
};
|
|
12529
|
+
}
|
|
12436
12530
|
function coerceNumber(type, raw) {
|
|
12437
12531
|
if (raw.trim() === "") return void 0;
|
|
12438
12532
|
const n = type === "integer" ? parseInt(raw, 10) : parseFloat(raw);
|
|
@@ -12477,7 +12571,7 @@ function nodeSubtitle(node) {
|
|
|
12477
12571
|
const data = asRecord(node?.data);
|
|
12478
12572
|
return typeof data?.operation_name === "string" ? data.operation_name : void 0;
|
|
12479
12573
|
}
|
|
12480
|
-
var
|
|
12574
|
+
var SECTION_LABEL2 = "text-[11px] font-semibold uppercase tracking-[0.12em] text-muted-foreground";
|
|
12481
12575
|
function NodeDetailView() {
|
|
12482
12576
|
const ndv = useFlowStore((s) => s.workflow.ndv);
|
|
12483
12577
|
const nodes = useFlowStore((s) => s.workflow.nodes);
|
|
@@ -12562,6 +12656,16 @@ function NodeDetailView() {
|
|
|
12562
12656
|
[currentOp]
|
|
12563
12657
|
);
|
|
12564
12658
|
const params = useMemo(() => paramsFromOperation(currentOp), [currentOp]);
|
|
12659
|
+
const isWebhookTrigger = useMemo(
|
|
12660
|
+
() => !!asRecord(currentOp?.output_fields)?.webhookUrl,
|
|
12661
|
+
[currentOp]
|
|
12662
|
+
);
|
|
12663
|
+
const workflowKey = useFlowStore((s) => s.workflow.workflowKey);
|
|
12664
|
+
const { webhookUrl, loading: webhookUrlLoading } = useWebhookRegistration(
|
|
12665
|
+
workflowKey || void 0,
|
|
12666
|
+
node?.id,
|
|
12667
|
+
isWebhookTrigger && open
|
|
12668
|
+
);
|
|
12565
12669
|
const pickerFields = useMemo(() => flattenFields(inputFields), [inputFields]);
|
|
12566
12670
|
const mapping = currentEdge?.mapping?.definition ?? {};
|
|
12567
12671
|
const argsState = useMemo(() => {
|
|
@@ -12738,7 +12842,7 @@ function NodeDetailView() {
|
|
|
12738
12842
|
className: "flex min-h-0 min-w-[180px] flex-col bg-card/40",
|
|
12739
12843
|
children: [
|
|
12740
12844
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-4 py-2.5", children: [
|
|
12741
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
12845
|
+
/* @__PURE__ */ jsx("span", { className: SECTION_LABEL2, children: "Input" }),
|
|
12742
12846
|
sourceIds.length > 0 && /* @__PURE__ */ jsx(
|
|
12743
12847
|
"select",
|
|
12744
12848
|
{
|
|
@@ -12797,8 +12901,15 @@ function NodeDetailView() {
|
|
|
12797
12901
|
className: "min-h-0 flex-1 space-y-4 overflow-auto p-4",
|
|
12798
12902
|
"data-testid": "ndv-params",
|
|
12799
12903
|
children: [
|
|
12904
|
+
isWebhookTrigger && /* @__PURE__ */ jsx(
|
|
12905
|
+
WebhookUrlField,
|
|
12906
|
+
{
|
|
12907
|
+
webhookUrl,
|
|
12908
|
+
loading: webhookUrlLoading
|
|
12909
|
+
}
|
|
12910
|
+
),
|
|
12800
12911
|
connectionAdapters.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-2", "data-testid": "ndv-connections", children: [
|
|
12801
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
12912
|
+
/* @__PURE__ */ jsx("div", { className: SECTION_LABEL2, children: "Connections" }),
|
|
12802
12913
|
/* @__PURE__ */ jsx(
|
|
12803
12914
|
ConnectionSelector,
|
|
12804
12915
|
{
|
|
@@ -12965,7 +13076,7 @@ function NodeDetailView() {
|
|
|
12965
13076
|
className: "flex min-h-0 min-w-[180px] flex-col bg-card/40",
|
|
12966
13077
|
children: [
|
|
12967
13078
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-4 py-2.5", children: [
|
|
12968
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
13079
|
+
/* @__PURE__ */ jsx("span", { className: SECTION_LABEL2, children: "Output" }),
|
|
12969
13080
|
outputFields.length > 0 && /* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-1", children: [
|
|
12970
13081
|
/* @__PURE__ */ jsx(
|
|
12971
13082
|
ToggleChip,
|
|
@@ -13852,7 +13963,7 @@ function WorkflowItem({
|
|
|
13852
13963
|
};
|
|
13853
13964
|
const requiredNodeTypes = [];
|
|
13854
13965
|
try {
|
|
13855
|
-
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-
|
|
13966
|
+
const { NODE_CONFIGS: NODE_CONFIGS3, ensureNodeConfigsLoaded: ensureNodeConfigsLoaded2 } = await import('./blocks-UL5FEAD7.js');
|
|
13856
13967
|
await ensureNodeConfigsLoaded2().catch(() => {
|
|
13857
13968
|
});
|
|
13858
13969
|
const workflowNodeTypes = [
|
|
@@ -14121,5 +14232,5 @@ function WorkflowBuilder() {
|
|
|
14121
14232
|
}
|
|
14122
14233
|
|
|
14123
14234
|
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, FlowBuilderPage, FluidGridsProvider, TemplateCard, WorkflowBuilder, useFluidGridsContext, useImportWorkflowTemplate, useWorkflowTemplates };
|
|
14124
|
-
//# sourceMappingURL=chunk-
|
|
14125
|
-
//# sourceMappingURL=chunk-
|
|
14235
|
+
//# sourceMappingURL=chunk-NCGZIY5C.js.map
|
|
14236
|
+
//# sourceMappingURL=chunk-NCGZIY5C.js.map
|