@burdenoff/fluidgrids-fe-sdk 2026.701.5 → 2026.701.6
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/{TemplateConfigurationModal-VU3Q4RFX.js → TemplateConfigurationModal-ZMCT3ZCH.js} +2 -2
- package/dist/TemplateConfigurationModal-ZMCT3ZCH.js.map +1 -0
- package/dist/{WorkflowBuilder-EPAPJODR.js → WorkflowBuilder-NEXLEPY4.js} +3 -3
- package/dist/{WorkflowBuilder-EPAPJODR.js.map → WorkflowBuilder-NEXLEPY4.js.map} +1 -1
- package/dist/{chunk-KSDJEBNQ.js → chunk-CEK43QSX.js} +95 -165
- package/dist/chunk-CEK43QSX.js.map +1 -0
- package/dist/index.js +3 -3
- package/package.json +1 -1
- package/dist/TemplateConfigurationModal-VU3Q4RFX.js.map +0 -1
- package/dist/chunk-KSDJEBNQ.js.map +0 -1
package/dist/{TemplateConfigurationModal-VU3Q4RFX.js → TemplateConfigurationModal-ZMCT3ZCH.js}
RENAMED
|
@@ -303,5 +303,5 @@ function TemplateInputField({
|
|
|
303
303
|
}
|
|
304
304
|
|
|
305
305
|
export { TemplateConfigurationModal };
|
|
306
|
-
//# sourceMappingURL=TemplateConfigurationModal-
|
|
307
|
-
//# sourceMappingURL=TemplateConfigurationModal-
|
|
306
|
+
//# sourceMappingURL=TemplateConfigurationModal-ZMCT3ZCH.js.map
|
|
307
|
+
//# sourceMappingURL=TemplateConfigurationModal-ZMCT3ZCH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/builder/components/flow-builder/components/templates/TemplateConfigurationModal.tsx"],"names":[],"mappings":"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","file":"TemplateConfigurationModal-ZMCT3ZCH.js","sourcesContent":["import { useState, useMemo } from \"react\";\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogFooter,\n} from \"../../../../../ui/dialog\";\nimport { Input } from \"../../../../../ui/input\";\nimport { Button } from \"../../../../../ui/button\";\nimport { Badge } from \"../../../../../ui/badge\";\nimport { Label } from \"../../../../../ui/label\";\nimport type { StoreProduct } from \"../../../../../generated/global-types\";\nimport type {\n WorkflowTemplateContent,\n TemplateNodeCheckResult,\n TemplateRequiredInput,\n} from \"../../../../../types/workflow-template-content\";\nimport {\n Loader2,\n CheckCircle2,\n Download,\n ShoppingCart,\n KeyRound,\n Sparkles,\n AlertTriangle,\n ExternalLink,\n} from \"lucide-react\";\n\nexport interface TemplateConfigurationModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n template: StoreProduct | null;\n content: WorkflowTemplateContent | null;\n nodeCheckResult: TemplateNodeCheckResult | null;\n onConfirm: (config: {\n name: string;\n templateInputs: Record<string, string | number>;\n }) => void;\n importing?: boolean;\n installProgress?: {\n current: number;\n total: number;\n nodeName: string;\n } | null;\n}\n\nexport function TemplateConfigurationModal({\n open,\n onOpenChange,\n template,\n content,\n nodeCheckResult,\n onConfirm,\n importing = false,\n installProgress,\n}: TemplateConfigurationModalProps) {\n const [workflowName, setWorkflowName] = useState(\n content?.defaultWorkflowName || template?.name || \"\",\n );\n const [inputValues, setInputValues] = useState<Record<string, string>>({});\n\n useMemo(() => {\n if (template) {\n setWorkflowName(content?.defaultWorkflowName || template.name || \"\");\n const defaults: Record<string, string> = {};\n if (content?.requiredInputs) {\n for (const input of content.requiredInputs) {\n if (input.defaultValue) {\n defaults[input.name] = input.defaultValue;\n }\n }\n }\n setInputValues(defaults);\n }\n }, [template?.id]);\n\n const requiredInputs = content?.requiredInputs || [];\n const hasRequiredInputs = requiredInputs.length > 0;\n const hasMissingFreeNodes = (nodeCheckResult?.missing.length ?? 0) > 0;\n const hasRequiredCredentials =\n (content?.requiredCredentialTypes?.length ?? 0) > 0;\n const hasPaidBlockers = (nodeCheckResult?.missingPaid.length ?? 0) > 0;\n\n const isValid = useMemo(() => {\n if (!workflowName.trim()) return false;\n for (const input of requiredInputs) {\n if (input.required && !inputValues[input.name]?.trim()) {\n return false;\n }\n }\n return true;\n }, [workflowName, inputValues, requiredInputs]);\n\n const handleInputChange = (name: string, value: string) => {\n setInputValues((prev) => ({ ...prev, [name]: value }));\n };\n\n const handleConfirm = () => {\n onConfirm({\n name: workflowName.trim(),\n templateInputs: inputValues,\n });\n };\n\n if (!template || !content) return null;\n\n const isInstalling = importing && !!installProgress;\n const isCreating = importing && !installProgress;\n\n const buttonLabel = hasPaidBlockers\n ? \"Purchase Required Nodes First\"\n : isInstalling\n ? `Installing nodes (${installProgress.current}/${installProgress.total})...`\n : isCreating\n ? \"Creating workflow...\"\n : hasMissingFreeNodes\n ? \"Install & Open in Builder\"\n : \"Import & Open in Builder\";\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n size=\"lg\"\n className=\"!flex !flex-col !max-h-[85vh] overflow-hidden p-0 gap-0\"\n >\n <DialogHeader className=\"px-6 pt-6 pb-4 border-b shrink-0\">\n <div className=\"flex items-center gap-2\">\n <Sparkles className=\"size-5 text-primary\" />\n <DialogTitle className=\"text-xl\">\n Import \"{template.name}\"\n </DialogTitle>\n </div>\n <DialogDescription>\n Configure and import this workflow template into your workspace\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex-1 overflow-y-auto px-6 py-5 space-y-6\">\n {/* Workflow Name */}\n <div className=\"space-y-2\">\n <Label htmlFor=\"workflow-name\" className=\"text-sm font-medium\">\n Workflow Name\n </Label>\n <Input\n id=\"workflow-name\"\n value={workflowName}\n onChange={(e) => setWorkflowName(e.target.value)}\n placeholder=\"Enter workflow name\"\n />\n </div>\n\n {/* Required Configuration Inputs */}\n {hasRequiredInputs && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <KeyRound className=\"size-4\" />\n Required Configuration\n </h4>\n <div className=\"space-y-3\">\n {requiredInputs.map((input) => (\n <TemplateInputField\n key={input.name}\n input={input}\n value={inputValues[input.name] || \"\"}\n onChange={(value) => handleInputChange(input.name, value)}\n />\n ))}\n </div>\n </div>\n )}\n\n {/* Node Dependencies */}\n {nodeCheckResult && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <Download className=\"size-4\" />\n Node Dependencies\n </h4>\n <div className=\"space-y-2\">\n {nodeCheckResult.installed.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <CheckCircle2 className=\"size-4 text-green-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge variant=\"secondary\" className=\"text-xs ml-auto\">\n Installed\n </Badge>\n </div>\n ))}\n\n {nodeCheckResult.missing.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <Download className=\"size-4 text-blue-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge\n variant=\"outline\"\n className=\"text-xs ml-auto border-blue-500/30 text-blue-500\"\n >\n Will install\n </Badge>\n </div>\n ))}\n\n {nodeCheckResult.missingPaid.map((node) => (\n <div\n key={node.nodeType}\n className=\"flex items-center gap-2 text-sm\"\n >\n <ShoppingCart className=\"size-4 text-amber-500 shrink-0\" />\n <span>\n {node.displayName || node.nodeType} v{node.nodeVersion}\n </span>\n <Badge\n variant=\"outline\"\n className=\"text-xs ml-auto border-amber-500/30 text-amber-500\"\n >\n Purchase required\n </Badge>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Required Credentials */}\n {hasRequiredCredentials && (\n <div className=\"space-y-3\">\n <h4 className=\"text-sm font-semibold text-foreground flex items-center gap-2\">\n <KeyRound className=\"size-4\" />\n Credentials Needed\n </h4>\n <p className=\"text-xs text-muted-foreground\">\n You'll need to configure these credentials after importing:\n </p>\n <div className=\"flex flex-wrap gap-2\">\n {content.requiredCredentialTypes?.map((cred) => (\n <Badge key={cred} variant=\"outline\" className=\"text-xs\">\n <KeyRound className=\"size-3 mr-1\" />\n {cred}\n </Badge>\n ))}\n </div>\n </div>\n )}\n\n {/* Info Banner */}\n <div className=\"rounded-lg bg-muted/50 p-3 text-sm text-muted-foreground\">\n <p>\n The workflow will be created as a <strong>DRAFT</strong>. You can\n review and edit it in the builder before activating.\n </p>\n </div>\n\n {/* Paid Node Blocker Warning */}\n {hasPaidBlockers && (\n <div className=\"rounded-lg bg-amber-500/10 border border-amber-500/30 p-3 text-sm text-amber-700 dark:text-amber-400 flex items-start gap-2\">\n <AlertTriangle className=\"size-4 mt-0.5 shrink-0\" />\n <div>\n <p className=\"font-medium\">\n Purchase required before importing\n </p>\n <p className=\"mt-1 text-xs\">\n The nodes marked \"Purchase required\" must be purchased from\n the store before this template can be imported.\n </p>\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"mt-1 h-auto p-0 text-xs text-amber-700 dark:text-amber-400 underline\"\n onClick={() => window.open(\"/store\", \"_blank\")}\n >\n <ExternalLink className=\"size-3 mr-1\" />\n Go to Store\n </Button>\n </div>\n </div>\n )}\n </div>\n\n <DialogFooter className=\"px-6 py-4 border-t shrink-0 flex-col gap-2\">\n {/* Install progress bar */}\n {installProgress && (\n <div className=\"w-full space-y-1.5\">\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span className=\"flex items-center gap-1.5\">\n <Loader2 className=\"size-3 animate-spin\" />\n Installing: {installProgress.nodeName}\n </span>\n <span>\n {installProgress.current} / {installProgress.total}\n </span>\n </div>\n <div className=\"h-1.5 w-full rounded-full bg-muted overflow-hidden\">\n <div\n className=\"h-full bg-primary transition-all duration-300\"\n style={{\n width: `${(installProgress.current / installProgress.total) * 100}%`,\n }}\n />\n </div>\n </div>\n )}\n\n <div className=\"flex w-full justify-end gap-2\">\n <Button\n variant=\"outline\"\n onClick={() => onOpenChange(false)}\n disabled={importing}\n >\n Cancel\n </Button>\n <Button\n onClick={handleConfirm}\n disabled={!isValid || importing || hasPaidBlockers}\n >\n {importing ? (\n <>\n <Loader2 className=\"size-4 mr-2 animate-spin\" />\n {buttonLabel}\n </>\n ) : (\n <>\n <Sparkles className=\"size-4 mr-2\" />\n {buttonLabel}\n </>\n )}\n </Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n\n// ============================================================================\n// Sub-component: Template Input Field\n// ============================================================================\n\nfunction TemplateInputField({\n input,\n value,\n onChange,\n}: {\n input: TemplateRequiredInput;\n value: string;\n onChange: (value: string) => void;\n}) {\n return (\n <div className=\"space-y-1.5\">\n <Label htmlFor={`template-input-${input.name}`} className=\"text-sm\">\n {input.label}\n {input.required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n {input.type === \"select\" && input.options ? (\n <select\n id={`template-input-${input.name}`}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n className=\"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <option value=\"\">Select...</option>\n {input.options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n ) : (\n <Input\n id={`template-input-${input.name}`}\n type={\n input.type === \"secret\"\n ? \"password\"\n : input.type === \"number\"\n ? \"number\"\n : \"text\"\n }\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={input.placeholder}\n />\n )}\n {input.helpText && (\n <p className=\"text-xs text-muted-foreground\">{input.helpText}</p>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { WorkflowBuilder } from './chunk-
|
|
1
|
+
export { WorkflowBuilder } from './chunk-CEK43QSX.js';
|
|
2
2
|
import './chunk-7VEOUEIN.js';
|
|
3
3
|
import './chunk-BQXHJIER.js';
|
|
4
4
|
import './chunk-KU64CCSV.js';
|
|
@@ -9,5 +9,5 @@ import './chunk-WWU2O2SR.js';
|
|
|
9
9
|
import './chunk-LUGJJ7LL.js';
|
|
10
10
|
import './chunk-XQP33UJR.js';
|
|
11
11
|
import './chunk-Z54K22LP.js';
|
|
12
|
-
//# sourceMappingURL=WorkflowBuilder-
|
|
13
|
-
//# sourceMappingURL=WorkflowBuilder-
|
|
12
|
+
//# sourceMappingURL=WorkflowBuilder-NEXLEPY4.js.map
|
|
13
|
+
//# sourceMappingURL=WorkflowBuilder-NEXLEPY4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"WorkflowBuilder-NEXLEPY4.js"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Dialog as Dialog$1, DialogContent as DialogContent$1, DialogHeader as DialogHeader$1, DialogTitle as DialogTitle$1, DialogDescription as DialogDescription$1, DialogFooter, Input as Input$1 } from './chunk-7VEOUEIN.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getGlobalStoreClient, createGlobalStoreClient } from './chunk-BQXHJIER.js';
|
|
3
3
|
import { useFlowStore } from './chunk-KU64CCSV.js';
|
|
4
4
|
import { useLazyWorkflowDefinition, useCreateWorkflow, useWorkflowVersions, useRestoreWorkflowVersion, useActivateWorkflow, useDeactivateWorkflow } from './chunk-4FFPGQD3.js';
|
|
5
5
|
import { NodeEndpointConfigsDocument, NodeManifestDocument, TriggerWorkflowDocument, WorkflowRunDocument, NodeSchemaIntrospectionDocument, UpdateWorkflowDefinitionDocument, CreateWorkflowDefinitionDocument, CreateWorkflowVersionDocument, NodeUsageStatusDocument, RemoveNodeFromWorkflowsDocument } from './chunk-FGYVIXQ7.js';
|
|
6
6
|
import { waitForFluidGridsClient, getFluidGridsClient, createFluidGridsClient, setFluidGridsClient, resetFluidGridsClient } from './chunk-5BDQNSP3.js';
|
|
7
7
|
import { config, getFluidGridsConfig, validateTrustedOrigin, setFluidGridsConfig, resetFluidGridsConfig } from './chunk-WWU2O2SR.js';
|
|
8
|
-
import { BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, InstallPurchasedNodeDocument,
|
|
8
|
+
import { GetMyNodeInstallationsDocument, BrowseWorkflowTemplatesDocument, InstallWorkflowNodeDocument, InstallPurchasedNodeDocument, BrowseWorkflowNodesDocument, UninstallWorkflowNodeDocument, CreateStoreOrderDocument } from './chunk-LUGJJ7LL.js';
|
|
9
9
|
import { deepClone, applyTemplateInputs } from './chunk-XQP33UJR.js';
|
|
10
10
|
import { cn as cn$1, Badge as Badge$1, Button as Button$1 } from './chunk-Z54K22LP.js';
|
|
11
11
|
import { ThemeProvider as ThemeProvider$1 } from '@burdenoff/fe-libs/shared/providers/shell';
|
|
@@ -28,7 +28,7 @@ import { toast } from 'sonner';
|
|
|
28
28
|
import { InfoCircledIcon } from '@radix-ui/react-icons';
|
|
29
29
|
import { isEmpty } from 'radash';
|
|
30
30
|
import { ApolloProvider, useQuery, useMutation } from '@apollo/client/react';
|
|
31
|
-
import
|
|
31
|
+
import 'jszip';
|
|
32
32
|
import { gql as gql$1 } from '@apollo/client/core';
|
|
33
33
|
import { Sparkles, Star, Download, Eye, History, Loader2, RotateCcw, Maximize2, LayoutGrid, Plus, Trash2, GitBranch, AlertCircle, Search, RefreshCw, CheckCircle2, Package, Info, Copy, BadgeCheck, DollarSign, PlusCircle, ChevronDown, Type, Code, Hash, List, Braces, Workflow, ChevronRight, Layers, X, AlertTriangle } from 'lucide-react';
|
|
34
34
|
import { animate, easeOut } from 'popmotion';
|
|
@@ -8789,13 +8789,77 @@ async function fetchNodeManifest(nodeType, nodeVersion) {
|
|
|
8789
8789
|
return null;
|
|
8790
8790
|
}
|
|
8791
8791
|
}
|
|
8792
|
+
function pushStoreNodeConfig(manifest, publishType = "STORE") {
|
|
8793
|
+
if (NODE_CONFIGS.some((c) => c.type === manifest.nodeType)) return;
|
|
8794
|
+
const manifestOps = manifest.operations;
|
|
8795
|
+
const operations = Array.isArray(manifestOps) ? manifestOps : manifestOps?.operations ?? manifestOps;
|
|
8796
|
+
NODE_CONFIGS.push({
|
|
8797
|
+
type: manifest.nodeType,
|
|
8798
|
+
detail: {
|
|
8799
|
+
icon: manifest.icon || "mynaui:keyboard-solid",
|
|
8800
|
+
title: manifest.name,
|
|
8801
|
+
description: manifest.description,
|
|
8802
|
+
gradientColor: "yellow"
|
|
8803
|
+
},
|
|
8804
|
+
defaultData: {
|
|
8805
|
+
operation_name: "",
|
|
8806
|
+
operation_type: "",
|
|
8807
|
+
nodeData: manifest,
|
|
8808
|
+
version: manifest.version,
|
|
8809
|
+
args: {
|
|
8810
|
+
context: {
|
|
8811
|
+
node: {
|
|
8812
|
+
id: manifest.nodeType,
|
|
8813
|
+
kind: manifest.kind,
|
|
8814
|
+
type: manifest.nodeType
|
|
8815
|
+
}
|
|
8816
|
+
},
|
|
8817
|
+
state: {},
|
|
8818
|
+
credentials: []
|
|
8819
|
+
}
|
|
8820
|
+
},
|
|
8821
|
+
operations,
|
|
8822
|
+
publishType
|
|
8823
|
+
});
|
|
8824
|
+
}
|
|
8825
|
+
async function loadInstalledStoreNodes() {
|
|
8826
|
+
const globalClient = getGlobalStoreClient();
|
|
8827
|
+
if (!globalClient) return;
|
|
8828
|
+
const { workspaceId } = getFluidGridsConfig();
|
|
8829
|
+
if (!workspaceId) return;
|
|
8830
|
+
try {
|
|
8831
|
+
const { data } = await globalClient.query({
|
|
8832
|
+
query: GetMyNodeInstallationsDocument,
|
|
8833
|
+
variables: { workspaceId, limit: 200, offset: 0 },
|
|
8834
|
+
fetchPolicy: "network-only"
|
|
8835
|
+
});
|
|
8836
|
+
const installations = data?.myStoreAppInstallations?.items ?? [];
|
|
8837
|
+
let loaded = 0;
|
|
8838
|
+
for (const installation of installations) {
|
|
8839
|
+
if (installation.status !== "ACTIVE") continue;
|
|
8840
|
+
const manifest = installation.manifest;
|
|
8841
|
+
if (!manifest?.nodeType) continue;
|
|
8842
|
+
pushStoreNodeConfig(manifest, "STORE");
|
|
8843
|
+
loaded++;
|
|
8844
|
+
}
|
|
8845
|
+
if (loaded > 0) {
|
|
8846
|
+
console.log(
|
|
8847
|
+
`[Workflows] Loaded ${loaded} installed store node(s) from workspace installations.`
|
|
8848
|
+
);
|
|
8849
|
+
}
|
|
8850
|
+
} catch (error) {
|
|
8851
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
8852
|
+
console.warn("[Workflows] Could not load installed store nodes:", message);
|
|
8853
|
+
}
|
|
8854
|
+
}
|
|
8792
8855
|
async function initializeNodeConfigs() {
|
|
8793
8856
|
try {
|
|
8794
8857
|
const client = await waitForFluidGridsClient(15e3, 150);
|
|
8795
8858
|
if (!client) {
|
|
8796
8859
|
console.warn(
|
|
8797
|
-
"[Workflows] Apollo client not available after timeout \u2014
|
|
8860
|
+
"[Workflows] Apollo client not available after timeout \u2014 loading store nodes only."
|
|
8798
8861
|
);
|
|
8862
|
+
await loadInstalledStoreNodes();
|
|
8799
8863
|
return;
|
|
8800
8864
|
}
|
|
8801
8865
|
const { data } = await client.query({
|
|
@@ -8808,6 +8872,7 @@ async function initializeNodeConfigs() {
|
|
|
8808
8872
|
const nodes = data?.nodeEndpointConfigs?.configs ?? [];
|
|
8809
8873
|
if (!Array.isArray(nodes) || nodes.length === 0) {
|
|
8810
8874
|
console.warn("No nodes found or received data is not an array.");
|
|
8875
|
+
await loadInstalledStoreNodes();
|
|
8811
8876
|
return;
|
|
8812
8877
|
}
|
|
8813
8878
|
const manifestPromises = nodes.map(async (node) => {
|
|
@@ -8867,6 +8932,7 @@ async function initializeNodeConfigs() {
|
|
|
8867
8932
|
// Preserve publishType from GraphQL query
|
|
8868
8933
|
});
|
|
8869
8934
|
});
|
|
8935
|
+
await loadInstalledStoreNodes();
|
|
8870
8936
|
} catch (error) {
|
|
8871
8937
|
const message = error instanceof Error ? error.message : "Unknown error";
|
|
8872
8938
|
console.error("Failed to fetch nodes or manifests:", message);
|
|
@@ -10358,136 +10424,6 @@ function useInstalledNodes() {
|
|
|
10358
10424
|
refetch
|
|
10359
10425
|
};
|
|
10360
10426
|
}
|
|
10361
|
-
function useNodePackageLoader() {
|
|
10362
|
-
const downloadZip = useCallback(
|
|
10363
|
-
async (zipUrl) => {
|
|
10364
|
-
try {
|
|
10365
|
-
const response = await fetch(zipUrl);
|
|
10366
|
-
if (!response.ok) {
|
|
10367
|
-
throw new Error(`Failed to download ZIP: ${response.statusText}`);
|
|
10368
|
-
}
|
|
10369
|
-
return await response.arrayBuffer();
|
|
10370
|
-
} catch (error) {
|
|
10371
|
-
console.error("[useNodePackageLoader] Download failed:", error);
|
|
10372
|
-
throw new Error(`Download failed: ${error.message}`);
|
|
10373
|
-
}
|
|
10374
|
-
},
|
|
10375
|
-
[]
|
|
10376
|
-
);
|
|
10377
|
-
const extractManifest = useCallback(
|
|
10378
|
-
async (zipData) => {
|
|
10379
|
-
try {
|
|
10380
|
-
const zip = await JSZip.loadAsync(zipData);
|
|
10381
|
-
const manifestPaths = [
|
|
10382
|
-
"manifest.json",
|
|
10383
|
-
"package/manifest.json",
|
|
10384
|
-
"node/manifest.json"
|
|
10385
|
-
];
|
|
10386
|
-
let manifestFile = null;
|
|
10387
|
-
for (const path of manifestPaths) {
|
|
10388
|
-
manifestFile = zip.file(path);
|
|
10389
|
-
if (manifestFile) break;
|
|
10390
|
-
}
|
|
10391
|
-
if (!manifestFile) {
|
|
10392
|
-
throw new Error("manifest.json not found in ZIP package");
|
|
10393
|
-
}
|
|
10394
|
-
const manifestText = await manifestFile.async("text");
|
|
10395
|
-
const manifest = JSON.parse(manifestText);
|
|
10396
|
-
if (!manifest.nodeType || !manifest.name || !manifest.version) {
|
|
10397
|
-
throw new Error(
|
|
10398
|
-
"Invalid manifest: missing required fields (nodeType, name, version)"
|
|
10399
|
-
);
|
|
10400
|
-
}
|
|
10401
|
-
return manifest;
|
|
10402
|
-
} catch (error) {
|
|
10403
|
-
console.error(
|
|
10404
|
-
"[useNodePackageLoader] Manifest extraction failed:",
|
|
10405
|
-
error
|
|
10406
|
-
);
|
|
10407
|
-
throw new Error(`Manifest extraction failed: ${error.message}`);
|
|
10408
|
-
}
|
|
10409
|
-
},
|
|
10410
|
-
[]
|
|
10411
|
-
);
|
|
10412
|
-
const registerNode = useCallback((manifest) => {
|
|
10413
|
-
try {
|
|
10414
|
-
const existingNode = NODE_CONFIGS.find(
|
|
10415
|
-
(config2) => config2.type === manifest.nodeType
|
|
10416
|
-
);
|
|
10417
|
-
if (existingNode) {
|
|
10418
|
-
console.warn(
|
|
10419
|
-
`[useNodePackageLoader] Node ${manifest.nodeType} already registered, skipping`
|
|
10420
|
-
);
|
|
10421
|
-
return;
|
|
10422
|
-
}
|
|
10423
|
-
const manifestOps = manifest.operations;
|
|
10424
|
-
const operations = Array.isArray(manifestOps) ? manifestOps : manifestOps?.operations ?? manifestOps;
|
|
10425
|
-
NODE_CONFIGS.push({
|
|
10426
|
-
type: manifest.nodeType,
|
|
10427
|
-
detail: {
|
|
10428
|
-
icon: manifest.icon || "mynaui:keyboard-solid",
|
|
10429
|
-
title: manifest.name,
|
|
10430
|
-
description: manifest.description,
|
|
10431
|
-
gradientColor: "yellow"
|
|
10432
|
-
// Default gradient for store nodes
|
|
10433
|
-
},
|
|
10434
|
-
defaultData: {
|
|
10435
|
-
operation_name: "",
|
|
10436
|
-
operation_type: "",
|
|
10437
|
-
nodeData: manifest,
|
|
10438
|
-
version: manifest.version,
|
|
10439
|
-
args: {
|
|
10440
|
-
context: {
|
|
10441
|
-
node: {
|
|
10442
|
-
id: manifest.nodeType,
|
|
10443
|
-
kind: manifest.kind,
|
|
10444
|
-
type: manifest.nodeType
|
|
10445
|
-
}
|
|
10446
|
-
},
|
|
10447
|
-
state: {},
|
|
10448
|
-
credentials: []
|
|
10449
|
-
}
|
|
10450
|
-
},
|
|
10451
|
-
operations
|
|
10452
|
-
});
|
|
10453
|
-
console.log(
|
|
10454
|
-
`[useNodePackageLoader] Successfully registered node: ${manifest.nodeType}`
|
|
10455
|
-
);
|
|
10456
|
-
} catch (error) {
|
|
10457
|
-
console.error("[useNodePackageLoader] Node registration failed:", error);
|
|
10458
|
-
throw new Error(`Node registration failed: ${error.message}`);
|
|
10459
|
-
}
|
|
10460
|
-
}, []);
|
|
10461
|
-
const loadNodePackage = useCallback(
|
|
10462
|
-
async (zipUrl) => {
|
|
10463
|
-
try {
|
|
10464
|
-
console.log(
|
|
10465
|
-
`[useNodePackageLoader] Loading node package from: ${zipUrl}`
|
|
10466
|
-
);
|
|
10467
|
-
const zipData = await downloadZip(zipUrl);
|
|
10468
|
-
const manifest = await extractManifest(zipData);
|
|
10469
|
-
registerNode(manifest);
|
|
10470
|
-
return {
|
|
10471
|
-
success: true,
|
|
10472
|
-
manifest
|
|
10473
|
-
};
|
|
10474
|
-
} catch (error) {
|
|
10475
|
-
console.error("[useNodePackageLoader] Load package failed:", error);
|
|
10476
|
-
return {
|
|
10477
|
-
success: false,
|
|
10478
|
-
error: error.message || "Failed to load node package"
|
|
10479
|
-
};
|
|
10480
|
-
}
|
|
10481
|
-
},
|
|
10482
|
-
[downloadZip, extractManifest, registerNode]
|
|
10483
|
-
);
|
|
10484
|
-
return {
|
|
10485
|
-
loadNodePackage,
|
|
10486
|
-
downloadZip,
|
|
10487
|
-
extractManifest,
|
|
10488
|
-
registerNode
|
|
10489
|
-
};
|
|
10490
|
-
}
|
|
10491
10427
|
function useRefreshAvailableNodes() {
|
|
10492
10428
|
const refreshAvailableNodes = useCallback(async () => {
|
|
10493
10429
|
try {
|
|
@@ -10521,7 +10457,6 @@ function useInstallNode() {
|
|
|
10521
10457
|
const workspaceId = context?.workspaceId ?? getFluidGridsConfig().workspaceId;
|
|
10522
10458
|
const tenantId = context?.tenantId ?? getFluidGridsConfig().tenantId;
|
|
10523
10459
|
const { refetch: refetchInstalled } = useInstalledNodes();
|
|
10524
|
-
const { loadNodePackage } = useNodePackageLoader();
|
|
10525
10460
|
const { refreshAvailableNodes } = useRefreshAvailableNodes();
|
|
10526
10461
|
const [installing, setInstalling] = useState(null);
|
|
10527
10462
|
const [installMutation] = useMutation(InstallWorkflowNodeDocument, {
|
|
@@ -10581,29 +10516,10 @@ function useInstallNode() {
|
|
|
10581
10516
|
"[useInstallNode] Free node installation successful. Node registration handled by backend."
|
|
10582
10517
|
);
|
|
10583
10518
|
}
|
|
10584
|
-
|
|
10519
|
+
const refreshResult = await refreshAvailableNodes();
|
|
10520
|
+
if (refreshResult.success) {
|
|
10585
10521
|
console.log(
|
|
10586
|
-
`[useInstallNode]
|
|
10587
|
-
);
|
|
10588
|
-
const packageResult = await loadNodePackage(node.zipFileUrl);
|
|
10589
|
-
if (!packageResult.success) {
|
|
10590
|
-
console.warn(
|
|
10591
|
-
`[useInstallNode] Package loading failed: ${packageResult.error}. Node installed in database but not loaded in builder.`
|
|
10592
|
-
);
|
|
10593
|
-
} else {
|
|
10594
|
-
console.log(
|
|
10595
|
-
`[useInstallNode] Successfully loaded node package: ${packageResult.manifest?.nodeType}`
|
|
10596
|
-
);
|
|
10597
|
-
const refreshResult = await refreshAvailableNodes();
|
|
10598
|
-
if (refreshResult.success) {
|
|
10599
|
-
console.log(
|
|
10600
|
-
`[useInstallNode] Available nodes refreshed. Total: ${refreshResult.totalNodes}`
|
|
10601
|
-
);
|
|
10602
|
-
}
|
|
10603
|
-
}
|
|
10604
|
-
} else {
|
|
10605
|
-
console.warn(
|
|
10606
|
-
`[useInstallNode] Node ${node.id} has no zipFileUrl. Installed in database but cannot be loaded in builder.`
|
|
10522
|
+
`[useInstallNode] Available nodes refreshed. Total: ${refreshResult.totalNodes}`
|
|
10607
10523
|
);
|
|
10608
10524
|
}
|
|
10609
10525
|
await refetchInstalled();
|
|
@@ -10628,7 +10544,6 @@ function useInstallNode() {
|
|
|
10628
10544
|
workspaceId,
|
|
10629
10545
|
tenantId,
|
|
10630
10546
|
refetchInstalled,
|
|
10631
|
-
loadNodePackage,
|
|
10632
10547
|
refreshAvailableNodes
|
|
10633
10548
|
]
|
|
10634
10549
|
);
|
|
@@ -10679,7 +10594,13 @@ function useUpdateNode() {
|
|
|
10679
10594
|
setUpdating(null);
|
|
10680
10595
|
}
|
|
10681
10596
|
},
|
|
10682
|
-
[
|
|
10597
|
+
[
|
|
10598
|
+
installMutation,
|
|
10599
|
+
workspaceId,
|
|
10600
|
+
tenantId,
|
|
10601
|
+
refetchInstalled,
|
|
10602
|
+
refreshAvailableNodes
|
|
10603
|
+
]
|
|
10683
10604
|
);
|
|
10684
10605
|
return {
|
|
10685
10606
|
updateNode,
|
|
@@ -12520,7 +12441,7 @@ function TemplatesModal({
|
|
|
12520
12441
|
) });
|
|
12521
12442
|
}
|
|
12522
12443
|
var LazyTemplateConfigurationModal = lazy(
|
|
12523
|
-
() => import('./TemplateConfigurationModal-
|
|
12444
|
+
() => import('./TemplateConfigurationModal-ZMCT3ZCH.js').then((m) => ({
|
|
12524
12445
|
default: m.TemplateConfigurationModal
|
|
12525
12446
|
}))
|
|
12526
12447
|
);
|
|
@@ -12604,7 +12525,9 @@ function DesktopSidebarFragment({
|
|
|
12604
12525
|
setInstallProgress(null);
|
|
12605
12526
|
}
|
|
12606
12527
|
toast.loading("Creating workflow...", { id: "template-import" });
|
|
12607
|
-
const rawDef = JSON.parse(
|
|
12528
|
+
const rawDef = JSON.parse(
|
|
12529
|
+
JSON.stringify(content.definitionJson)
|
|
12530
|
+
);
|
|
12608
12531
|
const nestedDef = rawDef?.data?.workflowDefinition?.definitionJson;
|
|
12609
12532
|
let definitionJson = nestedDef && typeof nestedDef === "object" ? nestedDef : rawDef;
|
|
12610
12533
|
if (overrides?.templateInputs) {
|
|
@@ -12685,7 +12608,9 @@ function DesktopSidebarFragment({
|
|
|
12685
12608
|
});
|
|
12686
12609
|
}
|
|
12687
12610
|
} catch {
|
|
12688
|
-
console.warn(
|
|
12611
|
+
console.warn(
|
|
12612
|
+
"[performImport] Failed to record template installation"
|
|
12613
|
+
);
|
|
12689
12614
|
}
|
|
12690
12615
|
toast.success("Workflow created from template!", {
|
|
12691
12616
|
description: `"${importResult.workflow.name}" is ready to edit`
|
|
@@ -12806,7 +12731,12 @@ function DesktopSidebarFragment({
|
|
|
12806
12731
|
async (config2) => {
|
|
12807
12732
|
if (!configTemplate || !configContent) return;
|
|
12808
12733
|
if (configNodeCheck && !configNodeCheck.canImport) return;
|
|
12809
|
-
await performImport(
|
|
12734
|
+
await performImport(
|
|
12735
|
+
configTemplate,
|
|
12736
|
+
configContent,
|
|
12737
|
+
config2,
|
|
12738
|
+
configNodeCheck
|
|
12739
|
+
);
|
|
12810
12740
|
setConfigModalOpen(false);
|
|
12811
12741
|
},
|
|
12812
12742
|
[configTemplate, configContent, configNodeCheck, performImport]
|
|
@@ -22085,5 +22015,5 @@ function WorkflowBuilder() {
|
|
|
22085
22015
|
}
|
|
22086
22016
|
|
|
22087
22017
|
export { Card2 as Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ConfigSchemaForm, ConnectionFormDialog, ConnectionSelector, FluidGridsProvider, ProviderPicker, TemplateCard, WorkflowBuilder, getProviderForm, listCustomBlocks, registerCustomBlock, resolveUiSpec, stripSubmitActions, useConnection, useConnectionDialog, useConnections, useConnectionsByProvider, useCreateConnection, useFluidGridsContext, useImportWorkflowTemplate, useInitiateOAuth, useNodeExecution, useProviderByKey, useProviderCatalog, useProviders, useWorkflowTemplates };
|
|
22088
|
-
//# sourceMappingURL=chunk-
|
|
22089
|
-
//# sourceMappingURL=chunk-
|
|
22018
|
+
//# sourceMappingURL=chunk-CEK43QSX.js.map
|
|
22019
|
+
//# sourceMappingURL=chunk-CEK43QSX.js.map
|