n8n-editor-ui 1.97.1 → 1.98.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.
- package/dist/assets/{AnimatedSpinner-15ZZp0OO.js → AnimatedSpinner-BiugD1ff.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CrF4ktlo.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BChDakRF.js} +1 -1
- package/dist/assets/{AuthView-64US-Z-m.js → AuthView-D3YwZZ3s.js} +2 -2
- package/dist/assets/{CanvasChatSwitch-CaiSjHFG.css → AuthView-jgkkdJYL.css} +29 -90
- package/dist/assets/{ChangePasswordView-Y_vO8rQ4.js → ChangePasswordView-CItQkQJg.js} +3 -3
- package/dist/assets/CollectionParameter-Bm8EojJq.js +4 -0
- package/dist/assets/{CredentialsView-B90NtMag.js → CredentialsView-DyMOfI6f.js} +7 -7
- package/dist/assets/DemoFooter-Dy9DQTdo.js +22 -0
- package/dist/assets/{ErrorView-B5-OZKdh.js → ErrorView-BC6y15Eg.js} +1 -1
- package/dist/assets/{EvaluationsRootView-6cGJTYGC.js → EvaluationsRootView-BbnDfLFy.js} +25 -18
- package/dist/assets/{EvaluationsView-DkIkcLrr.js → EvaluationsView-Qz7rd_By.js} +3 -3
- package/dist/assets/{ExecutionsTime--_6xBkkx.css → ExecutionsTime-BDLkVZem.css} +25 -17
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-hCFNZKpq.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-mrrUdf3t.js} +52 -15
- package/dist/assets/{ExecutionsView-cA-SzEOo.js → ExecutionsView-AgniDaEH.js} +8 -8
- package/dist/assets/{FileSaver.min-Bv-Q_h7m.js → FileSaver.min-BUciI8xL.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-CgLfAVkQ.css → FixedCollectionParameter-DjlaZyUQ.css} +18 -18
- package/dist/assets/{FixedCollectionParameter-3cfdvUwK.js → FixedCollectionParameter-NPVvBV3e.js} +2 -2
- package/dist/assets/{ForgotMyPasswordView-Cv7uhij6.js → ForgotMyPasswordView-BKsk9OLH.js} +3 -3
- package/dist/assets/{InsightsChartAverageRuntime-Cr7taDDn.js → InsightsChartAverageRuntime-Dg7z0rOa.js} +4 -4
- package/dist/assets/{InsightsChartFailed-Cm5FrmfQ.js → InsightsChartFailed-i4tYyVRH.js} +4 -4
- package/dist/assets/{InsightsChartFailureRate-Ci-cBou0.js → InsightsChartFailureRate-BcWGne0C.js} +4 -4
- package/dist/assets/{InsightsChartTimeSaved-CMBBA9I4.js → InsightsChartTimeSaved-DugTjxnw.js} +4 -4
- package/dist/assets/{InsightsChartTotal-Dxn2bjBB.js → InsightsChartTotal-DTB7kNLU.js} +4 -4
- package/dist/assets/{InsightsDashboard-BvqZMhnh.js → InsightsDashboard-By8MKK7g.js} +10 -10
- package/dist/assets/{InsightsPaywall-4Vl-4bws.js → InsightsPaywall-BX7wpP8k.js} +1 -1
- package/dist/assets/{InsightsSummary-CTzqNpAf.js → InsightsSummary-DBfE_9FW.js} +1 -1
- package/dist/assets/{InsightsTableWorkflows-DgCECSSh.js → InsightsTableWorkflows-Dqy8IF2I.js} +2 -2
- package/dist/assets/{Logo-B8GIjJ79.js → Logo-BT-1ZjZS.js} +1 -1
- package/dist/assets/{LogsPanel-CsNXIuce.js → LogsPanel-CvLCi2ll.js} +4862 -4640
- package/dist/assets/{LogsPanel-D7j-yJQx.css → LogsPanel-nh_D5duX.css} +913 -907
- package/dist/assets/{MainHeader-CGwvFs2B.css → MainHeader-BRl77CT3.css} +27 -26
- package/dist/assets/{MainHeader-B2RGao3U.js → MainHeader-DptCjd0U.js} +84 -94
- package/dist/assets/{MainSidebar-E0ePOcg-.js → MainSidebar-BdESTvVI.js} +32 -20
- package/dist/assets/{NodeCreation-B6jElzI2.js → NodeCreation-CNH2xciY.js} +3 -3
- package/dist/assets/{NodeCreator-Bd2BI_OU.js → NodeCreator-Bgs-It2X.js} +20 -5
- package/dist/assets/{NodeDetailsView-BLMLHNQw.js → NodeDetailsView-DQ4I8u72.js} +628 -2203
- package/dist/assets/{NodeDetailsView-6JHPI3t-.css → NodeDetailsView-DWA1ZgwG.css} +349 -1000
- package/dist/assets/{NodeView-BdvXMmMp.css → NodeView-Duifly4c.css} +1274 -32
- package/dist/assets/{NodeView-C4qNUqxt.js → NodeView-i5dNh-Et.js} +2817 -548
- package/dist/assets/{ProjectCardBadge-be4FNX6y.js → ProjectCardBadge-CpBBeiGZ.js} +1 -1
- package/dist/assets/{ProjectHeader-CsHp0dpi.js → ProjectHeader-CK7zlcmF.js} +2 -2
- package/dist/assets/{ProjectSettings-BgunHp-2.css → ProjectSettings-8tvaQJye.css} +9 -10
- package/dist/assets/{ProjectSettings-t5UigWKy.js → ProjectSettings-B8_C-09-.js} +9 -9
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-Dpfsxn-o.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-XrUyHArT.js} +1 -1
- package/dist/assets/{ResourcesListLayout-DLThke_K.js → ResourcesListLayout-BRxlSl_6.js} +2 -2
- package/dist/assets/{RunData-XsmLcFYS.css → RunData-B5_okvCv.css} +205 -205
- package/dist/assets/{RunData-u5uBr_cv.js → RunData-D6YmSB6p.js} +1085 -1632
- package/dist/assets/{RunDataJson-CeZYY8D_.js → RunDataJson-BtfKusCo.js} +6 -6
- package/dist/assets/{RunDataJsonActions-BRAsiSnM.js → RunDataJsonActions-CglQIRT9.js} +1 -1
- package/dist/assets/{RunDataParsedAiContent-C1lte0Et.js → RunDataParsedAiContent-DPcEKWtn.js} +4 -4
- package/dist/assets/{RunDataSearch-BP_FSk35.js → RunDataSearch-CIKPqFBd.js} +1 -1
- package/dist/assets/{RunDataTable-CQghTfxP.js → RunDataTable-jsoKHQg5.js} +2 -2
- package/dist/assets/{SamlOnboarding-CWTnplHM.js → SamlOnboarding-DmXYxVe5.js} +3 -3
- package/dist/assets/{SettingsApiView-BskWDsE-.js → SettingsApiView-Bv94CWU3.js} +1 -1
- package/dist/assets/{SettingsCommunityNodesView-JUjLtmC0.js → SettingsCommunityNodesView-CI8V-SCE.js} +4 -4
- package/dist/assets/{SettingsExternalSecrets-BOJ40YuL.js → SettingsExternalSecrets-HCqXt9HG.js} +1 -1
- package/dist/assets/{SettingsLdapView-CT-V5pbv.js → SettingsLdapView-B3yMhNoR.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-_G1aTzAD.js → SettingsLogStreamingView-CyDcg7pK.js} +1 -1
- package/dist/assets/{SettingsPersonalView-CwV8ImYG.css → SettingsPersonalView-Bt8bL5tJ.css} +19 -15
- package/dist/assets/{SettingsPersonalView-BzzZLVh4.js → SettingsPersonalView-Cjb8Yd0L.js} +58 -10
- package/dist/assets/{SettingsSourceControl-Bte_2m43.js → SettingsSourceControl-B4lNTCoc.js} +2 -2
- package/dist/assets/{SettingsSso-Di8rSq_x.js → SettingsSso-CTy78phb.js} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-CwaYHjbQ.js → SettingsUsageAndPlan-CfHv2SML.js} +1 -1
- package/dist/assets/{SettingsUsersView-DQbemH_k.js → SettingsUsersView-D4szdW0Y.js} +1 -1
- package/dist/assets/{SettingsView-DhqdV7_S.js → SettingsView-BCs3728S.js} +1 -1
- package/dist/assets/{SetupView-BOZr75Am.js → SetupView-PB2fxBCd.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-DFtZhM9C.js → SetupWorkflowCredentialsButton-DgTQe_yd.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-CTMDcuGm.js → SetupWorkflowFromTemplateView-7pQX4cNJ.js} +3 -3
- package/dist/assets/{SigninView-DY-vQ0LU.js → SigninView-BqgxybCQ.js} +12 -4
- package/dist/assets/{SignoutView-B8rfrg6C.js → SignoutView-CTKn8Q77.js} +1 -1
- package/dist/assets/{SignupView-BxrYV76w.js → SignupView-D8_otRzJ.js} +3 -3
- package/dist/assets/{TemplateDetails-DVQ2nLZj.js → TemplateDetails-H2-eQcx6.js} +1 -1
- package/dist/assets/{TemplateList-DPouUB38.js → TemplateList-CRgrPugd.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-O7noND46.js → TemplatesCollectionView-CNoC5FGF.js} +5 -5
- package/dist/assets/{TemplatesSearchView-Bg5DxRv0.js → TemplatesSearchView-BDiwWkwZ.js} +30 -3
- package/dist/assets/{TemplatesView-BnzdRWmO.js → TemplatesView-GnPEf_mW.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-B_6tDGsp.js → TemplatesWorkflowView-7E6jyqpd.js} +5 -5
- package/dist/assets/{VariablesView-BrzvF0ZW.css → VariablesView-2BSJPXRB.css} +5 -5
- package/dist/assets/{VariablesView-DzrhNxAe.js → VariablesView-6sWI8yGj.js} +5 -5
- package/dist/assets/{WorkerView-CC1X8IeJ.js → WorkerView-Mvump-QA.js} +6 -6
- package/dist/assets/{WorkflowActivator-C30ojCUO.js → WorkflowActivator-BaxuVQDl.js} +14 -261
- package/dist/assets/{WorkflowExecutionsPreview-D7jTJ8GL.css → WorkflowActivator-C0R6Yly0.css} +162 -160
- package/dist/assets/{WorkflowExecutionsInfoAccordion-XaZEx8v7.js → WorkflowExecutionsInfoAccordion-DM72fu7i.js} +3 -3
- package/dist/assets/{WorkflowExecutionsLandingPage-8aAYw87x.js → WorkflowExecutionsLandingPage-DX4kL6pX.js} +2 -2
- package/dist/assets/WorkflowExecutionsPreview-BgpOEXPG.css +711 -0
- package/dist/assets/WorkflowExecutionsPreview-C2vE7SHl.js +812 -0
- package/dist/assets/{WorkflowExecutionsView-DR67gC3V.js → WorkflowExecutionsView-CTxicDMq.js} +8 -9
- package/dist/assets/{WorkflowExecutionsView-CZziPgtr.css → WorkflowExecutionsView-_l8AgWIb.css} +2 -2
- package/dist/assets/{WorkflowHistory-eAJEV9yu.js → WorkflowHistory-CD-Fhy8m.js} +18 -18
- package/dist/assets/{WorkflowOnboardingView-BjyAt8Oq.js → WorkflowOnboardingView-DWzhpMMj.js} +1 -1
- package/dist/assets/{WorkflowPreview-BxWA_Uiv.js → WorkflowPreview-A5nTeLz1.js} +1 -1
- package/dist/assets/{WorkflowsView-iKkH1nVB.js → WorkflowsView-DCmyKz3u.js} +46 -50
- package/dist/assets/{WorkflowsView-CQvTAWQ0.css → WorkflowsView-meCWhW8Y.css} +21 -20
- package/dist/assets/canvas-viI6yjxT.js +5 -0
- package/dist/assets/{chartjs.utils-CC0SyVUG.js → chartjs.utils-DVxFoTPh.js} +2 -2
- package/dist/assets/{easyAiWorkflowUtils-H7-jyGZy.js → easyAiWorkflowUtils-CWag2afn.js} +1 -1
- package/dist/assets/{en-D5Q1-BWp.js → en-BcWgUFsO.js} +17 -4
- package/dist/assets/{global-link-actions-zn0GER90.js → global-link-actions-B10zAHg8.js} +1 -1
- package/dist/assets/{import-curl-D7BhanPS.js → import-curl-B1dF12h6.js} +1 -1
- package/dist/assets/{index-HDYArLT1.js → index--ag0tEQM.js} +58887 -67576
- package/dist/assets/{index-B4xpaMaK.css → index-B-xWz5mo.css} +418 -370
- package/dist/assets/{index-CAyQE60i.js → index-BNKFpYX3.js} +1 -1
- package/dist/assets/pickBy-Bnnxgs5-.js +27 -0
- package/dist/assets/{polyfills-J2x06Gdp.js → polyfills-deFGRMT9.js} +0 -44
- package/dist/assets/{templateActions-CxINaftd.js → templateActions-CXnj7CA4.js} +1 -1
- package/dist/assets/{useBeforeUnload-DkY263Ue.js → useBeforeUnload-CZLqOCP0.js} +1 -1
- package/dist/assets/{useExecutionDebugging-BrUGp6HK.js → useExecutionDebugging-CoJa-NM6.js} +1 -1
- package/dist/assets/{useExecutionHelpers-Dulw8xCc.js → useExecutionHelpers-97Ddzif0.js} +1 -1
- package/dist/assets/{useImportCurlCommand-CjFFwjFi.js → useImportCurlCommand-t6LpQGpC.js} +2 -2
- package/dist/assets/{useProjectPages-DGU7KQ6y.js → useProjectPages-C95x1s47.js} +1 -1
- package/dist/assets/{usePushConnection-4FO744xJ.js → usePushConnection-C1qgSYjB.js} +22 -23
- package/dist/assets/{useWorkflowActivate-CUShgia-.js → useWorkflowActivate-E5Lz7Bjd.js} +4 -3
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/tsconfig.json +9 -1
- package/vite.config.mts +10 -2
- package/dist/assets/AuthView-D4i2WDPk.css +0 -408
- package/dist/assets/CanvasChatSwitch-D1N7Xp_1.js +0 -275
- package/dist/assets/CollectionParameter-DOqrZmRA.js +0 -4
- package/dist/assets/DemoFooter-DpmRLCPd.js +0 -23
- package/dist/assets/RunDataAi-D9VLFXIf.css +0 -443
- package/dist/assets/RunDataAi-DZzXTVdi.js +0 -466
- package/dist/assets/WorkflowActivator-CL2wacc7.css +0 -1084
- package/dist/assets/WorkflowExecutionsPreview-CpAsFXP1.js +0 -683
- package/dist/assets/canvas-BzAUJmlt.js +0 -24
- package/dist/assets/pickBy-2p7dSPXv.js +0 -16
- package/dist/assets/useWorkflowSaving-oozcXWTy.js +0 -66
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-
|
|
2
|
-
import {
|
|
3
|
-
import { F as FileSaver_minExports } from "./FileSaver.min-
|
|
4
|
-
import { u as useExecutionHelpers } from "./useExecutionHelpers-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataTable-jsoKHQg5.js","assets/index--ag0tEQM.js","assets/index-B-xWz5mo.css","assets/useExecutionHelpers-97Ddzif0.js","assets/RunDataTable-CUxj7dHx.css","assets/RunDataJson-BtfKusCo.js","assets/FileSaver.min-BUciI8xL.js","assets/RunDataJson-BH9HLoGC.css","assets/RunDataParsedAiContent-DPcEKWtn.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/RunDataSearch-CIKPqFBd.js","assets/RunDataSearch-R6qtl0Jf.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { fF as hasKey, d as defineComponent, i as createElementBlock, g as openBlock, j as createVNode, k as createBaseVNode, m as unref, br as N8nText, w as withCtx, l as createTextVNode, t as toDisplayString, c as useI18n, bv as formatTokenUsageCount, bw as getDefaultExportFromCjs, r as ref, fG as MarkdownIt, q as computed, au as h, fH as requireVue, fI as sanitizeHtml, fJ as sanitizeHtmlExports, _ as _export_sfc, P as useWorkflowsStore, o as onMounted, e2 as jsonParse, fK as base64DecodeUTF8, e as createBlock, n as normalizeClass, bn as useNodeHelpers, h as resolveComponent, f as createCommentVNode, bB as withModifiers, bU as useClipboard, a as useToast, fL as useAIAssistantHelpers, bt as useNodeTypesStore, aw as useNDVStore, Y as useRootStore, fw as useAssistantStore, G as useUIStore, fM as MAX_DISPLAY_DATA_SIZE, cO as isCommunityPackageName, bV as resolveDirective, aE as withDirectives, fN as InlineAskAssistantButton, aX as _sfc_main$b, F as Fragment, C as renderList, fO as NEW_ASSISTANT_SESSION_MODAL, dK as sanitizeHtml$1, aV as N8nTooltip, aW as N8nLink, W as watch, bJ as N8nRadioButtons, aZ as createSlots, bE as N8nIcon, $ as useSourceControlStore, fx as useSchemaPreviewStore, Q as useRoute, bH as toRef, bl as usePinnedData, fP as useNodeType, eL as storeToRefs, fQ as TRIMMED_TASK_DATA_CONNECTIONS_KEY, bb as NodeConnectionTypes, fR as executionDataToJson, fS as NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND, fT as CORE_NODES_CATEGORY, fU as computedAsync, fV as parseAiContent, c9 as ndvEventBus, ai as useTelemetry, v as onBeforeUnmount, aN as useStorage, fW as LOCAL_STORAGE_PIN_DATA_DISCOVERY_NDV_FLAG, fX as dataPinningEventBus, fY as LOCAL_STORAGE_PIN_DATA_DISCOVERY_CANVAS_FLAG, fZ as searchInObject, d9 as getConnectionTypes, f_ as isObject, f$ as MAX_DISPLAY_DATA_SIZE_SCHEMA_VIEW, g0 as HTML_NODE_TYPE, x as renderSlot, e9 as N8nCallout, g1 as DATA_PINNING_DOCS_URL, aF as vShow, dD as Suspense, e8 as defineAsyncComponent, bM as normalizeProps, bI as mergeProps, bF as N8nButton, g2 as N8nSelect, g3 as _sfc_main$c, g4 as N8nTabs, bN as guardReactiveProps, g5 as _sfc_main$d, g6 as JsonEditor, fj as InfoTip, g7 as DATA_EDITING_DOCS_URL, g8 as N8nBlockUi, as as __vitePreload, dI as getNodeOutputs, g9 as getGenericHints, ga as clearJsonKey, gb as TEST_PIN_DATA, aT as useExternalHooks, cl as isPresent, gc as isEmpty, d3 as isEqual } from "./index--ag0tEQM.js";
|
|
3
|
+
import { F as FileSaver_minExports } from "./FileSaver.min-BUciI8xL.js";
|
|
4
|
+
import { u as useExecutionHelpers } from "./useExecutionHelpers-97Ddzif0.js";
|
|
5
5
|
function responseHasSubworkflowData(response) {
|
|
6
6
|
return ["executionId", "workflowId"].every(
|
|
7
7
|
(x) => hasKey(response, x) && typeof response[x] === "string"
|
|
@@ -43,6 +43,46 @@ const ViewableMimeTypes = [
|
|
|
43
43
|
"video/ogg",
|
|
44
44
|
"video/webm"
|
|
45
45
|
];
|
|
46
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
47
|
+
__name: "ConsumedTokensDetails",
|
|
48
|
+
props: {
|
|
49
|
+
consumedTokens: {}
|
|
50
|
+
},
|
|
51
|
+
setup(__props) {
|
|
52
|
+
const i18n = useI18n();
|
|
53
|
+
return (_ctx, _cache) => {
|
|
54
|
+
return openBlock(), createElementBlock("div", null, [
|
|
55
|
+
createVNode(unref(N8nText), {
|
|
56
|
+
bold: true,
|
|
57
|
+
size: "small"
|
|
58
|
+
}, {
|
|
59
|
+
default: withCtx(() => [
|
|
60
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens.prompt")) + " " + toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens", {
|
|
61
|
+
interpolate: {
|
|
62
|
+
count: unref(formatTokenUsageCount)(_ctx.consumedTokens, "prompt")
|
|
63
|
+
}
|
|
64
|
+
})), 1)
|
|
65
|
+
]),
|
|
66
|
+
_: 1
|
|
67
|
+
}),
|
|
68
|
+
_cache[0] || (_cache[0] = createBaseVNode("br", null, null, -1)),
|
|
69
|
+
createVNode(unref(N8nText), {
|
|
70
|
+
bold: true,
|
|
71
|
+
size: "small"
|
|
72
|
+
}, {
|
|
73
|
+
default: withCtx(() => [
|
|
74
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens.completion")) + " " + toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens", {
|
|
75
|
+
interpolate: {
|
|
76
|
+
count: unref(formatTokenUsageCount)(_ctx.consumedTokens, "completion")
|
|
77
|
+
}
|
|
78
|
+
})), 1)
|
|
79
|
+
]),
|
|
80
|
+
_: 1
|
|
81
|
+
})
|
|
82
|
+
]);
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
});
|
|
46
86
|
var core;
|
|
47
87
|
var hasRequiredCore;
|
|
48
88
|
function requireCore() {
|
|
@@ -1608,1286 +1648,45 @@ const VueMarkdown = defineComponent({
|
|
|
1608
1648
|
return () => h("div", { innerHTML: content.value });
|
|
1609
1649
|
}
|
|
1610
1650
|
});
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
) ?? [];
|
|
1631
|
-
if (!connections) {
|
|
1632
|
-
return resultData.map((d) => createNode(parent, nodeName, currentDepth, d.runIndex, d));
|
|
1633
|
-
}
|
|
1634
|
-
const filteredAiData = currentDepth === 0 ? aiData?.filter(({ data }) => {
|
|
1635
|
-
if (!data?.source || data.source.every((source) => source === null)) {
|
|
1636
|
-
return true;
|
|
1637
|
-
}
|
|
1638
|
-
return data.source.some(
|
|
1639
|
-
(source) => source?.previousNode === nodeName && (runIndex === void 0 || source.previousNodeRun === runIndex)
|
|
1640
|
-
);
|
|
1641
|
-
}) : aiData;
|
|
1642
|
-
const connectedSubNodes = workflow.getParentNodes(nodeName, "ALL_NON_MAIN", 1);
|
|
1643
|
-
const treeNode = createNode(parent, nodeName, currentDepth, runIndex ?? 0);
|
|
1644
|
-
const children = (filteredAiData ?? []).flatMap(
|
|
1645
|
-
(data) => connectedSubNodes.includes(data.node) && (runIndex === void 0 || data.runIndex === runIndex) ? getTreeNodeDataRec(treeNode, data.node, currentDepth + 1, workflow, aiData, data.runIndex) : []
|
|
1646
|
-
);
|
|
1647
|
-
treeNode.children = children;
|
|
1648
|
-
if (resultData.length) {
|
|
1649
|
-
return resultData.map(
|
|
1650
|
-
(r) => createNode(parent, nodeName, currentDepth, r.runIndex, r, children)
|
|
1651
|
-
);
|
|
1652
|
-
}
|
|
1653
|
-
return [treeNode];
|
|
1654
|
-
}
|
|
1655
|
-
function createAiData(nodeName, workflow, getWorkflowResultDataByNodeName) {
|
|
1656
|
-
return workflow.getParentNodes(nodeName, "ALL_NON_MAIN").flatMap(
|
|
1657
|
-
(node) => (getWorkflowResultDataByNodeName(node) ?? []).map((task, index) => ({ node, task, index }))
|
|
1658
|
-
).sort((a, b) => {
|
|
1659
|
-
if (a.task.executionIndex !== void 0 && b.task.executionIndex !== void 0) {
|
|
1660
|
-
return a.task.executionIndex - b.task.executionIndex;
|
|
1661
|
-
}
|
|
1662
|
-
const aTime = a.task.startTime ?? 0;
|
|
1663
|
-
const bTime = b.task.startTime ?? 0;
|
|
1664
|
-
return aTime - bTime;
|
|
1665
|
-
}).map(({ node, task, index }) => ({
|
|
1666
|
-
data: getReferencedData(task, false)[0],
|
|
1667
|
-
node,
|
|
1668
|
-
runIndex: index
|
|
1669
|
-
}));
|
|
1670
|
-
}
|
|
1671
|
-
function getReferencedData(taskData, withInput, withOutput) {
|
|
1672
|
-
if (!taskData) {
|
|
1673
|
-
return [];
|
|
1674
|
-
}
|
|
1675
|
-
const returnData = [];
|
|
1676
|
-
function addFunction(data, inOut) {
|
|
1677
|
-
if (!data) {
|
|
1678
|
-
return;
|
|
1679
|
-
}
|
|
1680
|
-
Object.keys(data).map((type) => {
|
|
1681
|
-
returnData.push({
|
|
1682
|
-
data: data[type][0],
|
|
1683
|
-
inOut,
|
|
1684
|
-
type,
|
|
1685
|
-
// Include source information in AI content to track which node triggered the execution
|
|
1686
|
-
// This enables filtering in the UI to show only relevant executions
|
|
1687
|
-
source: taskData.source,
|
|
1688
|
-
metadata: {
|
|
1689
|
-
executionTime: taskData.executionTime,
|
|
1690
|
-
startTime: taskData.startTime,
|
|
1691
|
-
subExecution: taskData.metadata?.subExecution
|
|
1651
|
+
var vueJsonPretty$1 = { exports: {} };
|
|
1652
|
+
var vueJsonPretty = vueJsonPretty$1.exports;
|
|
1653
|
+
var hasRequiredVueJsonPretty;
|
|
1654
|
+
function requireVueJsonPretty() {
|
|
1655
|
+
if (hasRequiredVueJsonPretty) return vueJsonPretty$1.exports;
|
|
1656
|
+
hasRequiredVueJsonPretty = 1;
|
|
1657
|
+
(function(module, exports) {
|
|
1658
|
+
!function(e, t) {
|
|
1659
|
+
module.exports = t(requireVue());
|
|
1660
|
+
}(vueJsonPretty, function(e) {
|
|
1661
|
+
return function() {
|
|
1662
|
+
var t = { 789: function(t2) {
|
|
1663
|
+
t2.exports = e;
|
|
1664
|
+
} }, n = {};
|
|
1665
|
+
function o(e2) {
|
|
1666
|
+
var r2 = n[e2];
|
|
1667
|
+
if (void 0 !== r2) return r2.exports;
|
|
1668
|
+
var l = n[e2] = { exports: {} };
|
|
1669
|
+
return t[e2](l, l.exports, o), l.exports;
|
|
1692
1670
|
}
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
completionTokens: one.completionTokens + another.completionTokens,
|
|
1713
|
-
promptTokens: one.promptTokens + another.promptTokens,
|
|
1714
|
-
totalTokens: one.totalTokens + another.totalTokens,
|
|
1715
|
-
isEstimate: one.isEstimate || another.isEstimate
|
|
1716
|
-
};
|
|
1717
|
-
}
|
|
1718
|
-
function getConsumedTokens(outputRun) {
|
|
1719
|
-
if (!outputRun?.data) {
|
|
1720
|
-
return emptyTokenUsageData;
|
|
1721
|
-
}
|
|
1722
|
-
const tokenUsage = outputRun.data.reduce(
|
|
1723
|
-
(acc, curr) => {
|
|
1724
|
-
const tokenUsageData = curr.json?.tokenUsage ?? curr.json?.tokenUsageEstimate;
|
|
1725
|
-
if (!tokenUsageData) return acc;
|
|
1726
|
-
return addTokenUsageData(acc, {
|
|
1727
|
-
...tokenUsageData,
|
|
1728
|
-
isEstimate: !!curr.json.tokenUsageEstimate
|
|
1729
|
-
});
|
|
1730
|
-
},
|
|
1731
|
-
emptyTokenUsageData
|
|
1732
|
-
);
|
|
1733
|
-
return tokenUsage;
|
|
1734
|
-
}
|
|
1735
|
-
function formatTokenUsageCount(usage, field) {
|
|
1736
|
-
const count = field === "total" ? usage.totalTokens : field === "completion" ? usage.completionTokens : usage.promptTokens;
|
|
1737
|
-
return usage.isEstimate ? `~${count}` : count.toLocaleString();
|
|
1738
|
-
}
|
|
1739
|
-
function getConsumedTokensV2(task) {
|
|
1740
|
-
if (!task.data) {
|
|
1741
|
-
return emptyTokenUsageData;
|
|
1742
|
-
}
|
|
1743
|
-
const tokenUsage = Object.values(task.data).flat().flat().reduce((acc, curr) => {
|
|
1744
|
-
const tokenUsageData = curr?.json?.tokenUsage ?? curr?.json?.tokenUsageEstimate;
|
|
1745
|
-
if (!tokenUsageData) return acc;
|
|
1746
|
-
return addTokenUsageData(acc, {
|
|
1747
|
-
...tokenUsageData,
|
|
1748
|
-
isEstimate: !!curr?.json.tokenUsageEstimate
|
|
1749
|
-
});
|
|
1750
|
-
}, emptyTokenUsageData);
|
|
1751
|
-
return tokenUsage;
|
|
1752
|
-
}
|
|
1753
|
-
function createNodeV2(node, context, runIndex, runData, children = []) {
|
|
1754
|
-
return {
|
|
1755
|
-
parent: context.parent,
|
|
1756
|
-
node,
|
|
1757
|
-
id: `${context.workflow.id}:${node.name}:${context.executionId}:${runIndex}`,
|
|
1758
|
-
depth: context.depth,
|
|
1759
|
-
runIndex,
|
|
1760
|
-
runData,
|
|
1761
|
-
children,
|
|
1762
|
-
consumedTokens: getConsumedTokensV2(runData),
|
|
1763
|
-
workflow: context.workflow,
|
|
1764
|
-
executionId: context.executionId,
|
|
1765
|
-
execution: context.data
|
|
1766
|
-
};
|
|
1767
|
-
}
|
|
1768
|
-
function getTreeNodeDataV2(nodeName, runData, runIndex, context) {
|
|
1769
|
-
const node = context.workflow.getNode(nodeName);
|
|
1770
|
-
return node ? getTreeNodeDataRecV2(node, runData, context, runIndex) : [];
|
|
1771
|
-
}
|
|
1772
|
-
function getChildNodes(treeNode, node, runIndex, context) {
|
|
1773
|
-
if (hasSubExecution(treeNode)) {
|
|
1774
|
-
const workflowId = treeNode.runData.metadata?.subExecution?.workflowId;
|
|
1775
|
-
const executionId = treeNode.runData.metadata?.subExecution?.executionId;
|
|
1776
|
-
const workflow = workflowId ? context.workflows[workflowId] : void 0;
|
|
1777
|
-
const subWorkflowRunData = executionId ? context.subWorkflowData[executionId] : void 0;
|
|
1778
|
-
if (!workflow || !subWorkflowRunData || !executionId) {
|
|
1779
|
-
return [];
|
|
1780
|
-
}
|
|
1781
|
-
return createLogTreeRec({
|
|
1782
|
-
...context,
|
|
1783
|
-
parent: treeNode,
|
|
1784
|
-
depth: context.depth + 1,
|
|
1785
|
-
workflow,
|
|
1786
|
-
executionId,
|
|
1787
|
-
data: subWorkflowRunData
|
|
1788
|
-
});
|
|
1789
|
-
}
|
|
1790
|
-
const connectedSubNodes = context.workflow.getParentNodes(node.name, "ALL_NON_MAIN", 1);
|
|
1791
|
-
const isExecutionRoot = treeNode.parent === void 0 || treeNode.executionId !== treeNode.parent.executionId;
|
|
1792
|
-
return connectedSubNodes.flatMap(
|
|
1793
|
-
(subNodeName) => (context.data.resultData.runData[subNodeName] ?? []).flatMap((t, index) => {
|
|
1794
|
-
const isMatched = isExecutionRoot && t.source.some((source) => source !== null) ? t.source.some(
|
|
1795
|
-
(source) => source?.previousNode === node.name && (runIndex === void 0 || source.previousNodeRun === runIndex)
|
|
1796
|
-
) : runIndex === void 0 || index === runIndex;
|
|
1797
|
-
if (!isMatched) {
|
|
1798
|
-
return [];
|
|
1799
|
-
}
|
|
1800
|
-
const subNode = context.workflow.getNode(subNodeName);
|
|
1801
|
-
return subNode ? getTreeNodeDataRecV2(
|
|
1802
|
-
subNode,
|
|
1803
|
-
t,
|
|
1804
|
-
{ ...context, depth: context.depth + 1, parent: treeNode },
|
|
1805
|
-
index
|
|
1806
|
-
) : [];
|
|
1807
|
-
})
|
|
1808
|
-
);
|
|
1809
|
-
}
|
|
1810
|
-
function getTreeNodeDataRecV2(node, runData, context, runIndex) {
|
|
1811
|
-
const treeNode = createNodeV2(node, context, runIndex ?? 0, runData);
|
|
1812
|
-
const children = getChildNodes(treeNode, node, runIndex, context).sort(sortLogEntries);
|
|
1813
|
-
treeNode.children = children;
|
|
1814
|
-
return [treeNode];
|
|
1815
|
-
}
|
|
1816
|
-
function getTotalConsumedTokens(...usage) {
|
|
1817
|
-
return usage.reduce(addTokenUsageData, emptyTokenUsageData);
|
|
1818
|
-
}
|
|
1819
|
-
function getSubtreeTotalConsumedTokens(treeNode, includeSubWorkflow) {
|
|
1820
|
-
const executionId = treeNode.executionId;
|
|
1821
|
-
function calculate(currentNode) {
|
|
1822
|
-
if (!includeSubWorkflow && currentNode.executionId !== executionId) {
|
|
1823
|
-
return emptyTokenUsageData;
|
|
1824
|
-
}
|
|
1825
|
-
return getTotalConsumedTokens(
|
|
1826
|
-
currentNode.consumedTokens,
|
|
1827
|
-
...currentNode.children.map(calculate)
|
|
1828
|
-
);
|
|
1829
|
-
}
|
|
1830
|
-
return calculate(treeNode);
|
|
1831
|
-
}
|
|
1832
|
-
function findLogEntryToAutoSelectRec(subTree, depth) {
|
|
1833
|
-
for (const entry of subTree) {
|
|
1834
|
-
if (entry.runData?.error) {
|
|
1835
|
-
return entry;
|
|
1836
|
-
}
|
|
1837
|
-
const childAutoSelect = findLogEntryToAutoSelectRec(entry.children, depth + 1);
|
|
1838
|
-
if (childAutoSelect) {
|
|
1839
|
-
return childAutoSelect;
|
|
1840
|
-
}
|
|
1841
|
-
if (entry.node.type === AGENT_LANGCHAIN_NODE_TYPE) {
|
|
1842
|
-
return entry;
|
|
1843
|
-
}
|
|
1844
|
-
}
|
|
1845
|
-
return depth === 0 ? subTree[0] : void 0;
|
|
1846
|
-
}
|
|
1847
|
-
function createLogTree(workflow, response, workflows = {}, subWorkflowData = {}) {
|
|
1848
|
-
return createLogTreeRec({
|
|
1849
|
-
parent: void 0,
|
|
1850
|
-
depth: 0,
|
|
1851
|
-
executionId: response.id,
|
|
1852
|
-
workflow,
|
|
1853
|
-
workflows,
|
|
1854
|
-
data: response.data ?? { resultData: { runData: {} } },
|
|
1855
|
-
subWorkflowData
|
|
1856
|
-
});
|
|
1857
|
-
}
|
|
1858
|
-
function createLogTreeRec(context) {
|
|
1859
|
-
const runs = Object.entries(context.data.resultData.runData).flatMap(
|
|
1860
|
-
([nodeName, taskData]) => context.workflow.getChildNodes(nodeName, "ALL_NON_MAIN").length > 0 || context.workflow.getNode(nodeName)?.disabled ? [] : taskData.map((task, runIndex) => ({
|
|
1861
|
-
nodeName,
|
|
1862
|
-
runData: task,
|
|
1863
|
-
runIndex,
|
|
1864
|
-
nodeHasMultipleRuns: taskData.length > 1
|
|
1865
|
-
}))
|
|
1866
|
-
).sort(sortLogEntries);
|
|
1867
|
-
return runs.flatMap(
|
|
1868
|
-
({ nodeName, runIndex, runData, nodeHasMultipleRuns }) => getTreeNodeDataV2(nodeName, runData, nodeHasMultipleRuns ? runIndex : void 0, context)
|
|
1869
|
-
);
|
|
1870
|
-
}
|
|
1871
|
-
function findLogEntryRec(isMatched, entries) {
|
|
1872
|
-
for (const entry of entries) {
|
|
1873
|
-
if (isMatched(entry)) {
|
|
1874
|
-
return entry;
|
|
1875
|
-
}
|
|
1876
|
-
const child = findLogEntryRec(isMatched, entry.children);
|
|
1877
|
-
if (child) {
|
|
1878
|
-
return child;
|
|
1879
|
-
}
|
|
1880
|
-
}
|
|
1881
|
-
return void 0;
|
|
1882
|
-
}
|
|
1883
|
-
function findSelectedLogEntry(selection, entries) {
|
|
1884
|
-
switch (selection.type) {
|
|
1885
|
-
case "initial":
|
|
1886
|
-
return findLogEntryToAutoSelectRec(entries, 0);
|
|
1887
|
-
case "none":
|
|
1888
|
-
return void 0;
|
|
1889
|
-
case "selected": {
|
|
1890
|
-
const entry = findLogEntryRec((e) => e.id === selection.id, entries);
|
|
1891
|
-
if (entry) {
|
|
1892
|
-
return entry;
|
|
1893
|
-
}
|
|
1894
|
-
return findLogEntryToAutoSelectRec(entries, 0);
|
|
1895
|
-
}
|
|
1896
|
-
}
|
|
1897
|
-
}
|
|
1898
|
-
function deepToRaw(sourceObj) {
|
|
1899
|
-
const seen = /* @__PURE__ */ new WeakMap();
|
|
1900
|
-
const objectIterator = (input) => {
|
|
1901
|
-
if (seen.has(input)) {
|
|
1902
|
-
return input;
|
|
1903
|
-
}
|
|
1904
|
-
if (input !== null && typeof input === "object") {
|
|
1905
|
-
seen.set(input, true);
|
|
1906
|
-
}
|
|
1907
|
-
if (Array.isArray(input)) {
|
|
1908
|
-
return input.map((item) => objectIterator(item));
|
|
1909
|
-
}
|
|
1910
|
-
if (isRef(input) || isReactive(input) || isProxy(input)) {
|
|
1911
|
-
return objectIterator(toRaw(input));
|
|
1912
|
-
}
|
|
1913
|
-
if (input !== null && typeof input === "object" && Object.getPrototypeOf(input) === Object.prototype) {
|
|
1914
|
-
return Object.keys(input).reduce((acc, key) => {
|
|
1915
|
-
acc[key] = objectIterator(input[key]);
|
|
1916
|
-
return acc;
|
|
1917
|
-
}, {});
|
|
1918
|
-
}
|
|
1919
|
-
return input;
|
|
1920
|
-
};
|
|
1921
|
-
return objectIterator(sourceObj);
|
|
1922
|
-
}
|
|
1923
|
-
function flattenLogEntries(entries, collapsedEntryIds, ret = []) {
|
|
1924
|
-
for (const entry of entries) {
|
|
1925
|
-
ret.push(entry);
|
|
1926
|
-
if (!collapsedEntryIds[entry.id]) {
|
|
1927
|
-
flattenLogEntries(entry.children, collapsedEntryIds, ret);
|
|
1928
|
-
}
|
|
1929
|
-
}
|
|
1930
|
-
return ret;
|
|
1931
|
-
}
|
|
1932
|
-
function getEntryAtRelativeIndex(entries, id, relativeIndex) {
|
|
1933
|
-
const offset = entries.findIndex((e) => e.id === id);
|
|
1934
|
-
return offset === -1 ? void 0 : entries[offset + relativeIndex];
|
|
1935
|
-
}
|
|
1936
|
-
function sortLogEntries(a, b) {
|
|
1937
|
-
if (a.runData.startTime === b.runData.startTime) {
|
|
1938
|
-
return a.runData.executionIndex - b.runData.executionIndex;
|
|
1939
|
-
}
|
|
1940
|
-
return a.runData.startTime - b.runData.startTime;
|
|
1941
|
-
}
|
|
1942
|
-
function mergeStartData(startData, response) {
|
|
1943
|
-
if (!response.data) {
|
|
1944
|
-
return response;
|
|
1945
|
-
}
|
|
1946
|
-
const nodeNames = [
|
|
1947
|
-
...new Set(
|
|
1948
|
-
Object.keys(startData).concat(Object.keys(response.data.resultData.runData))
|
|
1949
|
-
).values()
|
|
1950
|
-
];
|
|
1951
|
-
const runData = Object.fromEntries(
|
|
1952
|
-
nodeNames.map((nodeName) => {
|
|
1953
|
-
const tasks = response.data?.resultData.runData[nodeName] ?? [];
|
|
1954
|
-
const mergedTasks = tasks.concat(
|
|
1955
|
-
(startData[nodeName] ?? []).filter(
|
|
1956
|
-
(task) => (
|
|
1957
|
-
// To remove duplicate runs, we check start time in addition to execution index
|
|
1958
|
-
// because nodes such as Wait and Form emits multiple websocket events with
|
|
1959
|
-
// different execution index for a single run
|
|
1960
|
-
tasks.every(
|
|
1961
|
-
(t) => t.startTime < task.startTime && t.executionIndex !== task.executionIndex
|
|
1962
|
-
)
|
|
1963
|
-
)
|
|
1964
|
-
).map((task) => ({
|
|
1965
|
-
...task,
|
|
1966
|
-
executionTime: 0,
|
|
1967
|
-
executionStatus: "running"
|
|
1968
|
-
}))
|
|
1969
|
-
);
|
|
1970
|
-
return [nodeName, mergedTasks];
|
|
1971
|
-
})
|
|
1972
|
-
);
|
|
1973
|
-
return {
|
|
1974
|
-
...response,
|
|
1975
|
-
data: {
|
|
1976
|
-
...response.data,
|
|
1977
|
-
resultData: {
|
|
1978
|
-
...response.data.resultData,
|
|
1979
|
-
runData
|
|
1980
|
-
}
|
|
1981
|
-
}
|
|
1982
|
-
};
|
|
1983
|
-
}
|
|
1984
|
-
function hasSubExecution(entry) {
|
|
1985
|
-
return !!entry.runData.metadata?.subExecution;
|
|
1986
|
-
}
|
|
1987
|
-
function getDepth(entry) {
|
|
1988
|
-
let depth = 0;
|
|
1989
|
-
let currentEntry = entry;
|
|
1990
|
-
while (currentEntry.parent !== void 0) {
|
|
1991
|
-
currentEntry = currentEntry.parent;
|
|
1992
|
-
depth++;
|
|
1993
|
-
}
|
|
1994
|
-
return depth;
|
|
1995
|
-
}
|
|
1996
|
-
const _hoisted_1$8 = { class: "node-error-view__header" };
|
|
1997
|
-
const _hoisted_2$4 = {
|
|
1998
|
-
class: "node-error-view__header-message",
|
|
1999
|
-
"data-test-id": "node-error-message"
|
|
2000
|
-
};
|
|
2001
|
-
const _hoisted_3$3 = {
|
|
2002
|
-
key: 0,
|
|
2003
|
-
"data-test-id": "node-error-description",
|
|
2004
|
-
class: "node-error-view__header-description"
|
|
2005
|
-
};
|
|
2006
|
-
const _hoisted_4$3 = { key: 1 };
|
|
2007
|
-
const _hoisted_5$3 = {
|
|
2008
|
-
key: 2,
|
|
2009
|
-
class: "node-error-view__button",
|
|
2010
|
-
"data-test-id": "node-error-view-ask-assistant-button"
|
|
2011
|
-
};
|
|
2012
|
-
const _hoisted_6$2 = {
|
|
2013
|
-
key: 0,
|
|
2014
|
-
class: "node-error-view__info"
|
|
2015
|
-
};
|
|
2016
|
-
const _hoisted_7$2 = { class: "node-error-view__info-header" };
|
|
2017
|
-
const _hoisted_8$2 = { class: "node-error-view__info-title" };
|
|
2018
|
-
const _hoisted_9$2 = { class: "copy-button" };
|
|
2019
|
-
const _hoisted_10 = { class: "node-error-view__info-content" };
|
|
2020
|
-
const _hoisted_11 = {
|
|
2021
|
-
key: 0,
|
|
2022
|
-
class: "node-error-view__details"
|
|
2023
|
-
};
|
|
2024
|
-
const _hoisted_12 = { class: "node-error-view__details-summary" };
|
|
2025
|
-
const _hoisted_13 = { class: "node-error-view__details-content" };
|
|
2026
|
-
const _hoisted_14 = {
|
|
2027
|
-
key: 0,
|
|
2028
|
-
class: "node-error-view__details-row"
|
|
2029
|
-
};
|
|
2030
|
-
const _hoisted_15 = { class: "node-error-view__details-label" };
|
|
2031
|
-
const _hoisted_16 = { class: "node-error-view__details-value" };
|
|
2032
|
-
const _hoisted_17 = {
|
|
2033
|
-
key: 1,
|
|
2034
|
-
class: "node-error-view__details-row"
|
|
2035
|
-
};
|
|
2036
|
-
const _hoisted_18 = { class: "node-error-view__details-label" };
|
|
2037
|
-
const _hoisted_19 = { class: "node-error-view__details-value" };
|
|
2038
|
-
const _hoisted_20 = {
|
|
2039
|
-
key: 2,
|
|
2040
|
-
class: "node-error-view__details-row"
|
|
2041
|
-
};
|
|
2042
|
-
const _hoisted_21 = { class: "node-error-view__details-label" };
|
|
2043
|
-
const _hoisted_22 = { class: "node-error-view__details-value" };
|
|
2044
|
-
const _hoisted_23 = {
|
|
2045
|
-
key: 3,
|
|
2046
|
-
class: "node-error-view__details-row"
|
|
2047
|
-
};
|
|
2048
|
-
const _hoisted_24 = { class: "node-error-view__details-label" };
|
|
2049
|
-
const _hoisted_25 = { class: "node-error-view__details-value" };
|
|
2050
|
-
const _hoisted_26 = {
|
|
2051
|
-
key: 4,
|
|
2052
|
-
class: "node-error-view__details-row"
|
|
2053
|
-
};
|
|
2054
|
-
const _hoisted_27 = { class: "node-error-view__details-label" };
|
|
2055
|
-
const _hoisted_28 = { class: "node-error-view__details-value" };
|
|
2056
|
-
const _hoisted_29 = { class: "node-error-view__details" };
|
|
2057
|
-
const _hoisted_30 = { class: "node-error-view__details-summary" };
|
|
2058
|
-
const _hoisted_31 = { class: "node-error-view__details-content" };
|
|
2059
|
-
const _hoisted_32 = {
|
|
2060
|
-
key: 0,
|
|
2061
|
-
class: "node-error-view__details-row"
|
|
2062
|
-
};
|
|
2063
|
-
const _hoisted_33 = { class: "node-error-view__details-label" };
|
|
2064
|
-
const _hoisted_34 = { class: "node-error-view__details-value" };
|
|
2065
|
-
const _hoisted_35 = {
|
|
2066
|
-
key: 1,
|
|
2067
|
-
class: "node-error-view__details-row"
|
|
2068
|
-
};
|
|
2069
|
-
const _hoisted_36 = { class: "node-error-view__details-label" };
|
|
2070
|
-
const _hoisted_37 = { class: "node-error-view__details-value" };
|
|
2071
|
-
const _hoisted_38 = {
|
|
2072
|
-
key: 2,
|
|
2073
|
-
class: "node-error-view__details-row"
|
|
2074
|
-
};
|
|
2075
|
-
const _hoisted_39 = { class: "node-error-view__details-label" };
|
|
2076
|
-
const _hoisted_40 = { class: "node-error-view__details-value" };
|
|
2077
|
-
const _hoisted_41 = {
|
|
2078
|
-
key: 3,
|
|
2079
|
-
class: "node-error-view__details-row"
|
|
2080
|
-
};
|
|
2081
|
-
const _hoisted_42 = { class: "node-error-view__details-label" };
|
|
2082
|
-
const _hoisted_43 = { class: "node-error-view__details-value" };
|
|
2083
|
-
const _hoisted_44 = {
|
|
2084
|
-
key: 4,
|
|
2085
|
-
class: "node-error-view__details-row"
|
|
2086
|
-
};
|
|
2087
|
-
const _hoisted_45 = { class: "node-error-view__details-label" };
|
|
2088
|
-
const _hoisted_46 = { class: "node-error-view__details-value" };
|
|
2089
|
-
const _hoisted_47 = { class: "node-error-view__details-row" };
|
|
2090
|
-
const _hoisted_48 = { class: "node-error-view__details-label" };
|
|
2091
|
-
const _hoisted_49 = { class: "node-error-view__details-value" };
|
|
2092
|
-
const _hoisted_50 = {
|
|
2093
|
-
key: 5,
|
|
2094
|
-
class: "node-error-view__details-row"
|
|
2095
|
-
};
|
|
2096
|
-
const _hoisted_51 = { class: "node-error-view__details-label" };
|
|
2097
|
-
const _hoisted_52 = { class: "node-error-view__details-value" };
|
|
2098
|
-
const _hoisted_53 = {
|
|
2099
|
-
key: 6,
|
|
2100
|
-
class: "node-error-view__details-row"
|
|
2101
|
-
};
|
|
2102
|
-
const _hoisted_54 = { class: "node-error-view__details-label" };
|
|
2103
|
-
const _hoisted_55 = { class: "node-error-view__details-value" };
|
|
2104
|
-
const _hoisted_56 = {
|
|
2105
|
-
key: 7,
|
|
2106
|
-
class: "node-error-view__details-row"
|
|
2107
|
-
};
|
|
2108
|
-
const _hoisted_57 = { class: "node-error-view__details-label" };
|
|
2109
|
-
const _hoisted_58 = { class: "node-error-view__details-value" };
|
|
2110
|
-
const _hoisted_59 = {
|
|
2111
|
-
key: 8,
|
|
2112
|
-
class: "node-error-view__details-row"
|
|
2113
|
-
};
|
|
2114
|
-
const _hoisted_60 = { class: "node-error-view__details-label" };
|
|
2115
|
-
const _hoisted_61 = { class: "node-error-view__details-value" };
|
|
2116
|
-
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
2117
|
-
__name: "NodeErrorView",
|
|
2118
|
-
props: {
|
|
2119
|
-
error: {},
|
|
2120
|
-
showDetails: { type: Boolean },
|
|
2121
|
-
compact: { type: Boolean }
|
|
2122
|
-
},
|
|
2123
|
-
setup(__props) {
|
|
2124
|
-
const props = __props;
|
|
2125
|
-
const clipboard = useClipboard();
|
|
2126
|
-
const toast = useToast();
|
|
2127
|
-
const i18n = useI18n();
|
|
2128
|
-
const assistantHelpers = useAIAssistantHelpers();
|
|
2129
|
-
const nodeTypesStore = useNodeTypesStore();
|
|
2130
|
-
const ndvStore = useNDVStore();
|
|
2131
|
-
const rootStore = useRootStore();
|
|
2132
|
-
const assistantStore = useAssistantStore();
|
|
2133
|
-
const uiStore = useUIStore();
|
|
2134
|
-
const displayCause = computed(() => {
|
|
2135
|
-
return JSON.stringify(props.error.cause ?? "").length < MAX_DISPLAY_DATA_SIZE;
|
|
2136
|
-
});
|
|
2137
|
-
const node = computed(() => {
|
|
2138
|
-
return props.error.node || ndvStore.activeNode;
|
|
2139
|
-
});
|
|
2140
|
-
const parameters = computed(() => {
|
|
2141
|
-
if (!node.value) {
|
|
2142
|
-
return [];
|
|
2143
|
-
}
|
|
2144
|
-
const nodeType = nodeTypesStore.getNodeType(node.value.type, node.value.typeVersion);
|
|
2145
|
-
if (nodeType === null) {
|
|
2146
|
-
return [];
|
|
2147
|
-
}
|
|
2148
|
-
return nodeType.properties;
|
|
2149
|
-
});
|
|
2150
|
-
const n8nVersion = computed(() => {
|
|
2151
|
-
const baseUrl = rootStore.urlBaseEditor;
|
|
2152
|
-
let instanceType = "Self Hosted";
|
|
2153
|
-
if (baseUrl.includes("n8n.cloud")) {
|
|
2154
|
-
instanceType = "Cloud";
|
|
2155
|
-
}
|
|
2156
|
-
return rootStore.versionCli + ` (${instanceType})`;
|
|
2157
|
-
});
|
|
2158
|
-
const hasManyInputItems = computed(() => {
|
|
2159
|
-
return ndvStore.ndvInputData.length > 1;
|
|
2160
|
-
});
|
|
2161
|
-
const nodeDefaultName = computed(() => {
|
|
2162
|
-
if (!node.value) {
|
|
2163
|
-
return "Node";
|
|
2164
|
-
}
|
|
2165
|
-
const nodeType = nodeTypesStore.getNodeType(node.value.type, node.value.typeVersion);
|
|
2166
|
-
return nodeType?.defaults?.name || node.value.name;
|
|
2167
|
-
});
|
|
2168
|
-
const prepareRawMessages = computed(() => {
|
|
2169
|
-
const returnData = [];
|
|
2170
|
-
if (!props.error.messages?.length) {
|
|
2171
|
-
return [];
|
|
2172
|
-
}
|
|
2173
|
-
const errorMessage = getErrorMessage();
|
|
2174
|
-
Array.from(new Set(props.error.messages)).forEach((message) => {
|
|
2175
|
-
const isParsable = /^\d{3} - \{/.test(message);
|
|
2176
|
-
const parts = isParsable ? message.split(" - ").map((part) => part.trim()) : [];
|
|
2177
|
-
for (const part of parts) {
|
|
2178
|
-
try {
|
|
2179
|
-
const parsed = JSON.parse(part);
|
|
2180
|
-
if (typeof parsed === "object") {
|
|
2181
|
-
returnData.push(parsed);
|
|
2182
|
-
return;
|
|
2183
|
-
}
|
|
2184
|
-
} catch (error) {
|
|
2185
|
-
}
|
|
2186
|
-
}
|
|
2187
|
-
if (message === errorMessage) return;
|
|
2188
|
-
returnData.push(message);
|
|
2189
|
-
});
|
|
2190
|
-
return returnData;
|
|
2191
|
-
});
|
|
2192
|
-
const isAskAssistantAvailable = computed(() => {
|
|
2193
|
-
if (!node.value || isSubNodeError.value) {
|
|
2194
|
-
return false;
|
|
2195
|
-
}
|
|
2196
|
-
const isCustomNode = node.value.type === void 0 || isCommunityPackageName(node.value.type);
|
|
2197
|
-
return assistantStore.canShowAssistantButtonsOnCanvas && !isCustomNode && !nodeIsHidden();
|
|
2198
|
-
});
|
|
2199
|
-
const assistantAlreadyAsked = computed(() => {
|
|
2200
|
-
return assistantStore.isNodeErrorActive({
|
|
2201
|
-
error: assistantHelpers.simplifyErrorForAssistant(props.error),
|
|
2202
|
-
node: props.error.node || ndvStore.activeNode
|
|
2203
|
-
});
|
|
2204
|
-
});
|
|
2205
|
-
const isSubNodeError = computed(() => {
|
|
2206
|
-
return props.error.name === "NodeOperationError" && props.error.functionality === "configuration-node";
|
|
2207
|
-
});
|
|
2208
|
-
function nodeVersionTag(nodeType) {
|
|
2209
|
-
if (!nodeType || "hidden" in nodeType && nodeType.hidden) {
|
|
2210
|
-
return i18n.baseText("nodeSettings.deprecated");
|
|
2211
|
-
}
|
|
2212
|
-
const latestNodeVersion = Math.max(...nodeTypesStore.getNodeVersions(nodeType.type));
|
|
2213
|
-
if (latestNodeVersion === nodeType.typeVersion) {
|
|
2214
|
-
return i18n.baseText("nodeSettings.latest");
|
|
2215
|
-
}
|
|
2216
|
-
return i18n.baseText("nodeSettings.latestVersion", {
|
|
2217
|
-
interpolate: { version: latestNodeVersion.toString() }
|
|
2218
|
-
});
|
|
2219
|
-
}
|
|
2220
|
-
function prepareDescription(description) {
|
|
2221
|
-
return sanitizeHtml(description.replace(/`(.*?)`/g, "<code>$1</code>"));
|
|
2222
|
-
}
|
|
2223
|
-
function getErrorDescription() {
|
|
2224
|
-
if (props.error.context?.descriptionKey) {
|
|
2225
|
-
const interpolate = {
|
|
2226
|
-
nodeCause: props.error.context.nodeCause,
|
|
2227
|
-
runIndex: props.error.context.runIndex ?? "0",
|
|
2228
|
-
itemIndex: props.error.context.itemIndex ?? "0"
|
|
2229
|
-
};
|
|
2230
|
-
return prepareDescription(
|
|
2231
|
-
i18n.baseText(
|
|
2232
|
-
`nodeErrorView.description.${props.error.context.descriptionKey}`,
|
|
2233
|
-
{ interpolate }
|
|
2234
|
-
)
|
|
2235
|
-
);
|
|
2236
|
-
}
|
|
2237
|
-
if (!props.error.context?.descriptionTemplate) {
|
|
2238
|
-
return prepareDescription(props.error.description ?? "");
|
|
2239
|
-
}
|
|
2240
|
-
const parameterName = parameterDisplayName(props.error.context.parameter);
|
|
2241
|
-
return prepareDescription(
|
|
2242
|
-
props.error.context.descriptionTemplate.replace(/%%PARAMETER%%/g, parameterName)
|
|
2243
|
-
);
|
|
2244
|
-
}
|
|
2245
|
-
function addItemIndexSuffix(message) {
|
|
2246
|
-
let itemIndexSuffix = "";
|
|
2247
|
-
if (hasManyInputItems.value && props.error?.context?.itemIndex !== void 0) {
|
|
2248
|
-
itemIndexSuffix = `item ${props.error.context.itemIndex}`;
|
|
2249
|
-
}
|
|
2250
|
-
if (message.includes(itemIndexSuffix)) return message;
|
|
2251
|
-
return `${message} [${itemIndexSuffix}]`;
|
|
2252
|
-
}
|
|
2253
|
-
function getErrorMessage() {
|
|
2254
|
-
let message = "";
|
|
2255
|
-
const isNonEmptyString = (value) => !!value && typeof value === "string";
|
|
2256
|
-
if (isSubNodeError.value) {
|
|
2257
|
-
message = i18n.baseText("nodeErrorView.errorSubNode", {
|
|
2258
|
-
interpolate: { node: props.error.node.name }
|
|
2259
|
-
});
|
|
2260
|
-
} else if (isNonEmptyString(props.error.message) && (props.error.message === props.error.description || !props.error.context?.messageTemplate)) {
|
|
2261
|
-
message = props.error.message;
|
|
2262
|
-
} else if (isNonEmptyString(props.error.context?.messageTemplate) && isNonEmptyString(props.error.context?.parameter)) {
|
|
2263
|
-
const parameterName = parameterDisplayName(props.error.context.parameter);
|
|
2264
|
-
message = props.error.context.messageTemplate.replace(/%%PARAMETER%%/g, parameterName);
|
|
2265
|
-
} else if (Array.isArray(props.error.messages) && props.error.messages.length > 0) {
|
|
2266
|
-
message = props.error.messages[0];
|
|
2267
|
-
}
|
|
2268
|
-
return addItemIndexSuffix(message);
|
|
2269
|
-
}
|
|
2270
|
-
function parameterDisplayName(path, fullPath = true) {
|
|
2271
|
-
try {
|
|
2272
|
-
const params = getParameterName(parameters.value, path.split("."));
|
|
2273
|
-
if (!params.length) {
|
|
2274
|
-
throw new Error();
|
|
2275
|
-
}
|
|
2276
|
-
if (!fullPath) {
|
|
2277
|
-
return params.pop().displayName;
|
|
2278
|
-
}
|
|
2279
|
-
return params.map((parameter) => parameter.displayName).join(" > ");
|
|
2280
|
-
} catch (error) {
|
|
2281
|
-
return `Could not find parameter "${path}"`;
|
|
2282
|
-
}
|
|
2283
|
-
}
|
|
2284
|
-
function getParameterName(params, pathParts) {
|
|
2285
|
-
let currentParameterName = pathParts.shift();
|
|
2286
|
-
if (currentParameterName === void 0) {
|
|
2287
|
-
return [];
|
|
2288
|
-
}
|
|
2289
|
-
const arrayMatch = currentParameterName.match(/(.*)\[([\d])\]$/);
|
|
2290
|
-
if (arrayMatch !== null && arrayMatch.length > 0) {
|
|
2291
|
-
currentParameterName = arrayMatch[1];
|
|
2292
|
-
}
|
|
2293
|
-
const currentParameter = params.find(
|
|
2294
|
-
(parameter) => parameter.name === currentParameterName
|
|
2295
|
-
);
|
|
2296
|
-
if (currentParameter === void 0) {
|
|
2297
|
-
throw new Error(`Could not find parameter "${currentParameterName}"`);
|
|
2298
|
-
}
|
|
2299
|
-
if (pathParts.length === 0) {
|
|
2300
|
-
return [currentParameter];
|
|
2301
|
-
}
|
|
2302
|
-
if (currentParameter.hasOwnProperty("options")) {
|
|
2303
|
-
return [
|
|
2304
|
-
currentParameter,
|
|
2305
|
-
...getParameterName(currentParameter.options, pathParts)
|
|
2306
|
-
];
|
|
2307
|
-
}
|
|
2308
|
-
if (currentParameter.hasOwnProperty("values")) {
|
|
2309
|
-
return [
|
|
2310
|
-
currentParameter,
|
|
2311
|
-
...getParameterName(currentParameter.values, pathParts)
|
|
2312
|
-
];
|
|
2313
|
-
}
|
|
2314
|
-
return [currentParameter];
|
|
2315
|
-
}
|
|
2316
|
-
function copyErrorDetails() {
|
|
2317
|
-
const error = props.error;
|
|
2318
|
-
const errorInfo = {
|
|
2319
|
-
errorMessage: getErrorMessage()
|
|
2320
|
-
};
|
|
2321
|
-
if (error.description) {
|
|
2322
|
-
errorInfo.errorDescription = error.description;
|
|
2323
|
-
}
|
|
2324
|
-
const errorDetails = {};
|
|
2325
|
-
if (error?.messages?.length) {
|
|
2326
|
-
errorDetails.rawErrorMessage = error.messages;
|
|
2327
|
-
}
|
|
2328
|
-
if ("httpCode" in error && error.httpCode) {
|
|
2329
|
-
errorDetails.httpCode = error.httpCode;
|
|
2330
|
-
}
|
|
2331
|
-
if (error.context && error.context.data) {
|
|
2332
|
-
errorDetails.errorData = error.context.data;
|
|
2333
|
-
}
|
|
2334
|
-
if (error.extra) {
|
|
2335
|
-
errorDetails.errorExtra = error.extra;
|
|
2336
|
-
}
|
|
2337
|
-
errorInfo.errorDetails = errorDetails;
|
|
2338
|
-
const n8nDetails = {};
|
|
2339
|
-
if (error.node) {
|
|
2340
|
-
n8nDetails.nodeName = error.node.name;
|
|
2341
|
-
n8nDetails.nodeType = error.node.type;
|
|
2342
|
-
n8nDetails.nodeVersion = error.node.typeVersion;
|
|
2343
|
-
if (error.node?.parameters?.resource) {
|
|
2344
|
-
n8nDetails.resource = error.node.parameters.resource;
|
|
2345
|
-
}
|
|
2346
|
-
if (error?.node?.parameters?.operation) {
|
|
2347
|
-
n8nDetails.operation = error.node.parameters.operation;
|
|
2348
|
-
}
|
|
2349
|
-
}
|
|
2350
|
-
if (error.context) {
|
|
2351
|
-
if (error.context.itemIndex !== void 0) {
|
|
2352
|
-
n8nDetails.itemIndex = error.context.itemIndex;
|
|
2353
|
-
}
|
|
2354
|
-
if (error.context.runIndex !== void 0) {
|
|
2355
|
-
n8nDetails.runIndex = error.context.runIndex;
|
|
2356
|
-
}
|
|
2357
|
-
if (error.context.parameter !== void 0) {
|
|
2358
|
-
n8nDetails.parameter = error.context.parameter;
|
|
2359
|
-
}
|
|
2360
|
-
if (error.context.causeDetailed) {
|
|
2361
|
-
n8nDetails.causeDetailed = error.context.causeDetailed;
|
|
2362
|
-
}
|
|
2363
|
-
}
|
|
2364
|
-
if (error.timestamp) {
|
|
2365
|
-
n8nDetails.time = new Date(error.timestamp).toLocaleString();
|
|
2366
|
-
}
|
|
2367
|
-
n8nDetails.n8nVersion = n8nVersion.value;
|
|
2368
|
-
n8nDetails.binaryDataMode = rootStore.binaryDataMode;
|
|
2369
|
-
if (error.cause) {
|
|
2370
|
-
n8nDetails.cause = error.cause;
|
|
2371
|
-
}
|
|
2372
|
-
n8nDetails.stackTrace = error.stack?.split("\n");
|
|
2373
|
-
errorInfo.n8nDetails = n8nDetails;
|
|
2374
|
-
void clipboard.copy(JSON.stringify(errorInfo, null, 2));
|
|
2375
|
-
copySuccess();
|
|
2376
|
-
}
|
|
2377
|
-
function copySuccess() {
|
|
2378
|
-
toast.showMessage({
|
|
2379
|
-
title: i18n.baseText("nodeErrorView.showMessage.title"),
|
|
2380
|
-
type: "info"
|
|
2381
|
-
});
|
|
2382
|
-
}
|
|
2383
|
-
function nodeIsHidden() {
|
|
2384
|
-
const nodeType = nodeTypesStore.getNodeType(node?.value.type);
|
|
2385
|
-
return nodeType?.hidden ?? false;
|
|
2386
|
-
}
|
|
2387
|
-
const onOpenErrorNodeDetailClick = () => {
|
|
2388
|
-
ndvStore.activeNodeName = props.error.node.name;
|
|
2389
|
-
};
|
|
2390
|
-
async function onAskAssistantClick() {
|
|
2391
|
-
const { message, lineNumber, description } = props.error;
|
|
2392
|
-
const sessionInProgress = !assistantStore.isSessionEnded;
|
|
2393
|
-
const errorHelp = {
|
|
2394
|
-
error: {
|
|
2395
|
-
name: props.error.name,
|
|
2396
|
-
message,
|
|
2397
|
-
lineNumber,
|
|
2398
|
-
description: description ?? getErrorDescription(),
|
|
2399
|
-
type: "type" in props.error ? props.error.type : void 0
|
|
2400
|
-
},
|
|
2401
|
-
node: node.value
|
|
2402
|
-
};
|
|
2403
|
-
if (sessionInProgress) {
|
|
2404
|
-
uiStore.openModalWithData({
|
|
2405
|
-
name: NEW_ASSISTANT_SESSION_MODAL,
|
|
2406
|
-
data: { context: { errorHelp } }
|
|
2407
|
-
});
|
|
2408
|
-
return;
|
|
2409
|
-
}
|
|
2410
|
-
await assistantStore.initErrorHelper(errorHelp);
|
|
2411
|
-
assistantStore.trackUserOpenedAssistant({
|
|
2412
|
-
source: "error",
|
|
2413
|
-
task: "error",
|
|
2414
|
-
has_existing_session: false
|
|
2415
|
-
});
|
|
2416
|
-
}
|
|
2417
|
-
return (_ctx, _cache) => {
|
|
2418
|
-
const _component_n8n_button = resolveComponent("n8n-button");
|
|
2419
|
-
const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
|
|
2420
|
-
const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
|
|
2421
|
-
const _directive_n8n_html = resolveDirective("n8n-html");
|
|
2422
|
-
return openBlock(), createElementBlock("div", {
|
|
2423
|
-
class: normalizeClass(["node-error-view", props.compact ? "node-error-view_compact" : ""])
|
|
2424
|
-
}, [
|
|
2425
|
-
createBaseVNode("div", _hoisted_1$8, [
|
|
2426
|
-
createBaseVNode("div", _hoisted_2$4, [
|
|
2427
|
-
createBaseVNode("div", null, toDisplayString(getErrorMessage()), 1)
|
|
2428
|
-
]),
|
|
2429
|
-
(_ctx.error.description || _ctx.error.context?.descriptionKey) && !isSubNodeError.value ? withDirectives((openBlock(), createElementBlock("div", _hoisted_3$3, null, 512)), [
|
|
2430
|
-
[_directive_n8n_html, getErrorDescription()]
|
|
2431
|
-
]) : createCommentVNode("", true),
|
|
2432
|
-
isSubNodeError.value ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
|
|
2433
|
-
createVNode(_component_n8n_button, {
|
|
2434
|
-
icon: "arrow-right",
|
|
2435
|
-
type: "secondary",
|
|
2436
|
-
label: unref(i18n).baseText("pushConnection.executionError.openNode"),
|
|
2437
|
-
class: "node-error-view__button",
|
|
2438
|
-
"data-test-id": "node-error-view-open-node-button",
|
|
2439
|
-
onClick: onOpenErrorNodeDetailClick
|
|
2440
|
-
}, null, 8, ["label"])
|
|
2441
|
-
])) : createCommentVNode("", true),
|
|
2442
|
-
isAskAssistantAvailable.value ? (openBlock(), createElementBlock("div", _hoisted_5$3, [
|
|
2443
|
-
createVNode(InlineAskAssistantButton, {
|
|
2444
|
-
asked: assistantAlreadyAsked.value,
|
|
2445
|
-
onClick: onAskAssistantClick
|
|
2446
|
-
}, null, 8, ["asked"])
|
|
2447
|
-
])) : createCommentVNode("", true)
|
|
2448
|
-
]),
|
|
2449
|
-
_ctx.showDetails ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
|
|
2450
|
-
createBaseVNode("div", _hoisted_7$2, [
|
|
2451
|
-
createBaseVNode("p", _hoisted_8$2, toDisplayString(unref(i18n).baseText("nodeErrorView.details.title")), 1),
|
|
2452
|
-
createVNode(_component_n8n_tooltip, {
|
|
2453
|
-
class: "item",
|
|
2454
|
-
content: unref(i18n).baseText("nodeErrorView.copyToClipboard.tooltip"),
|
|
2455
|
-
placement: "left"
|
|
2456
|
-
}, {
|
|
2457
|
-
default: withCtx(() => [
|
|
2458
|
-
createBaseVNode("div", _hoisted_9$2, [
|
|
2459
|
-
createVNode(unref(_sfc_main$b), {
|
|
2460
|
-
icon: "copy",
|
|
2461
|
-
type: "secondary",
|
|
2462
|
-
size: "mini",
|
|
2463
|
-
text: true,
|
|
2464
|
-
"transparent-background": "transparent",
|
|
2465
|
-
onClick: copyErrorDetails
|
|
2466
|
-
})
|
|
2467
|
-
])
|
|
2468
|
-
]),
|
|
2469
|
-
_: 1
|
|
2470
|
-
}, 8, ["content"])
|
|
2471
|
-
]),
|
|
2472
|
-
createBaseVNode("div", _hoisted_10, [
|
|
2473
|
-
"httpCode" in _ctx.error && _ctx.error.httpCode || prepareRawMessages.value.length || _ctx.error?.context?.data || _ctx.error.extra ? (openBlock(), createElementBlock("details", _hoisted_11, [
|
|
2474
|
-
createBaseVNode("summary", _hoisted_12, [
|
|
2475
|
-
createVNode(_component_font_awesome_icon, {
|
|
2476
|
-
class: "node-error-view__details-icon",
|
|
2477
|
-
icon: "angle-right"
|
|
2478
|
-
}),
|
|
2479
|
-
createTextVNode(" " + toDisplayString(unref(i18n).baseText("nodeErrorView.details.from", {
|
|
2480
|
-
interpolate: { node: `${nodeDefaultName.value}` }
|
|
2481
|
-
})), 1)
|
|
2482
|
-
]),
|
|
2483
|
-
createBaseVNode("div", _hoisted_13, [
|
|
2484
|
-
"httpCode" in _ctx.error && _ctx.error.httpCode ? (openBlock(), createElementBlock("div", _hoisted_14, [
|
|
2485
|
-
createBaseVNode("p", _hoisted_15, toDisplayString(unref(i18n).baseText("nodeErrorView.errorCode")), 1),
|
|
2486
|
-
createBaseVNode("p", _hoisted_16, [
|
|
2487
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.httpCode), 1)
|
|
2488
|
-
])
|
|
2489
|
-
])) : createCommentVNode("", true),
|
|
2490
|
-
prepareRawMessages.value.length ? (openBlock(), createElementBlock("div", _hoisted_17, [
|
|
2491
|
-
createBaseVNode("p", _hoisted_18, toDisplayString(unref(i18n).baseText("nodeErrorView.details.rawMessages")), 1),
|
|
2492
|
-
createBaseVNode("div", _hoisted_19, [
|
|
2493
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(prepareRawMessages.value, (msg, index) => {
|
|
2494
|
-
return openBlock(), createElementBlock("div", { key: index }, [
|
|
2495
|
-
createBaseVNode("pre", null, [
|
|
2496
|
-
createBaseVNode("code", null, toDisplayString(msg), 1)
|
|
2497
|
-
])
|
|
2498
|
-
]);
|
|
2499
|
-
}), 128))
|
|
2500
|
-
])
|
|
2501
|
-
])) : createCommentVNode("", true),
|
|
2502
|
-
_ctx.error?.context?.data ? (openBlock(), createElementBlock("div", _hoisted_20, [
|
|
2503
|
-
createBaseVNode("p", _hoisted_21, toDisplayString(unref(i18n).baseText("nodeErrorView.details.errorData")), 1),
|
|
2504
|
-
createBaseVNode("div", _hoisted_22, [
|
|
2505
|
-
createBaseVNode("pre", null, [
|
|
2506
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.context.data), 1)
|
|
2507
|
-
])
|
|
2508
|
-
])
|
|
2509
|
-
])) : createCommentVNode("", true),
|
|
2510
|
-
_ctx.error.extra ? (openBlock(), createElementBlock("div", _hoisted_23, [
|
|
2511
|
-
createBaseVNode("p", _hoisted_24, toDisplayString(unref(i18n).baseText("nodeErrorView.details.errorExtra")), 1),
|
|
2512
|
-
createBaseVNode("div", _hoisted_25, [
|
|
2513
|
-
createBaseVNode("pre", null, [
|
|
2514
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.extra), 1)
|
|
2515
|
-
])
|
|
2516
|
-
])
|
|
2517
|
-
])) : createCommentVNode("", true),
|
|
2518
|
-
_ctx.error.context && _ctx.error.context.request ? (openBlock(), createElementBlock("div", _hoisted_26, [
|
|
2519
|
-
createBaseVNode("p", _hoisted_27, toDisplayString(unref(i18n).baseText("nodeErrorView.details.request")), 1),
|
|
2520
|
-
createBaseVNode("div", _hoisted_28, [
|
|
2521
|
-
createBaseVNode("pre", null, [
|
|
2522
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.context.request), 1)
|
|
2523
|
-
])
|
|
2524
|
-
])
|
|
2525
|
-
])) : createCommentVNode("", true)
|
|
2526
|
-
])
|
|
2527
|
-
])) : createCommentVNode("", true),
|
|
2528
|
-
createBaseVNode("details", _hoisted_29, [
|
|
2529
|
-
createBaseVNode("summary", _hoisted_30, [
|
|
2530
|
-
createVNode(_component_font_awesome_icon, {
|
|
2531
|
-
class: "node-error-view__details-icon",
|
|
2532
|
-
icon: "angle-right"
|
|
2533
|
-
}),
|
|
2534
|
-
createTextVNode(" " + toDisplayString(unref(i18n).baseText("nodeErrorView.details.info")), 1)
|
|
2535
|
-
]),
|
|
2536
|
-
createBaseVNode("div", _hoisted_31, [
|
|
2537
|
-
_ctx.error.context && _ctx.error.context.itemIndex !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_32, [
|
|
2538
|
-
createBaseVNode("p", _hoisted_33, toDisplayString(unref(i18n).baseText("nodeErrorView.itemIndex")), 1),
|
|
2539
|
-
createBaseVNode("p", _hoisted_34, [
|
|
2540
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.context.itemIndex), 1)
|
|
2541
|
-
])
|
|
2542
|
-
])) : createCommentVNode("", true),
|
|
2543
|
-
_ctx.error.context && _ctx.error.context.runIndex !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_35, [
|
|
2544
|
-
createBaseVNode("p", _hoisted_36, toDisplayString(unref(i18n).baseText("nodeErrorView.runIndex")), 1),
|
|
2545
|
-
createBaseVNode("p", _hoisted_37, [
|
|
2546
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.context.runIndex), 1)
|
|
2547
|
-
])
|
|
2548
|
-
])) : createCommentVNode("", true),
|
|
2549
|
-
_ctx.error.context && _ctx.error.context.parameter !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_38, [
|
|
2550
|
-
createBaseVNode("p", _hoisted_39, toDisplayString(unref(i18n).baseText("nodeErrorView.inParameter")), 1),
|
|
2551
|
-
createBaseVNode("p", _hoisted_40, [
|
|
2552
|
-
createBaseVNode("code", null, toDisplayString(parameterDisplayName(`${_ctx.error.context.parameter}`)), 1)
|
|
2553
|
-
])
|
|
2554
|
-
])) : createCommentVNode("", true),
|
|
2555
|
-
_ctx.error.node && _ctx.error.node.type ? (openBlock(), createElementBlock("div", _hoisted_41, [
|
|
2556
|
-
createBaseVNode("p", _hoisted_42, toDisplayString(unref(i18n).baseText("nodeErrorView.details.nodeType")), 1),
|
|
2557
|
-
createBaseVNode("p", _hoisted_43, [
|
|
2558
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.node.type), 1)
|
|
2559
|
-
])
|
|
2560
|
-
])) : createCommentVNode("", true),
|
|
2561
|
-
_ctx.error.node && _ctx.error.node.typeVersion ? (openBlock(), createElementBlock("div", _hoisted_44, [
|
|
2562
|
-
createBaseVNode("p", _hoisted_45, toDisplayString(unref(i18n).baseText("nodeErrorView.details.nodeVersion")), 1),
|
|
2563
|
-
createBaseVNode("p", _hoisted_46, [
|
|
2564
|
-
createBaseVNode("code", null, [
|
|
2565
|
-
createBaseVNode("span", null, toDisplayString(_ctx.error.node.typeVersion + " "), 1),
|
|
2566
|
-
createBaseVNode("span", null, "(" + toDisplayString(nodeVersionTag(_ctx.error.node)) + ")", 1)
|
|
2567
|
-
])
|
|
2568
|
-
])
|
|
2569
|
-
])) : createCommentVNode("", true),
|
|
2570
|
-
createBaseVNode("div", _hoisted_47, [
|
|
2571
|
-
createBaseVNode("p", _hoisted_48, toDisplayString(unref(i18n).baseText("nodeErrorView.details.n8nVersion")), 1),
|
|
2572
|
-
createBaseVNode("p", _hoisted_49, [
|
|
2573
|
-
createBaseVNode("code", null, toDisplayString(n8nVersion.value), 1)
|
|
2574
|
-
])
|
|
2575
|
-
]),
|
|
2576
|
-
_ctx.error.timestamp ? (openBlock(), createElementBlock("div", _hoisted_50, [
|
|
2577
|
-
createBaseVNode("p", _hoisted_51, toDisplayString(unref(i18n).baseText("nodeErrorView.time")), 1),
|
|
2578
|
-
createBaseVNode("p", _hoisted_52, [
|
|
2579
|
-
createBaseVNode("code", null, toDisplayString(new Date(_ctx.error.timestamp).toLocaleString()), 1)
|
|
2580
|
-
])
|
|
2581
|
-
])) : createCommentVNode("", true),
|
|
2582
|
-
_ctx.error.cause && displayCause.value ? (openBlock(), createElementBlock("div", _hoisted_53, [
|
|
2583
|
-
createBaseVNode("p", _hoisted_54, toDisplayString(unref(i18n).baseText("nodeErrorView.details.errorCause")), 1),
|
|
2584
|
-
createBaseVNode("pre", _hoisted_55, [
|
|
2585
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.cause), 1)
|
|
2586
|
-
])
|
|
2587
|
-
])) : createCommentVNode("", true),
|
|
2588
|
-
_ctx.error.context && _ctx.error.context.causeDetailed ? (openBlock(), createElementBlock("div", _hoisted_56, [
|
|
2589
|
-
createBaseVNode("p", _hoisted_57, toDisplayString(unref(i18n).baseText("nodeErrorView.details.causeDetailed")), 1),
|
|
2590
|
-
createBaseVNode("pre", _hoisted_58, [
|
|
2591
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.context.causeDetailed), 1)
|
|
2592
|
-
])
|
|
2593
|
-
])) : createCommentVNode("", true),
|
|
2594
|
-
_ctx.error.stack ? (openBlock(), createElementBlock("div", _hoisted_59, [
|
|
2595
|
-
createBaseVNode("p", _hoisted_60, toDisplayString(unref(i18n).baseText("nodeErrorView.details.stackTrace")), 1),
|
|
2596
|
-
createBaseVNode("pre", _hoisted_61, [
|
|
2597
|
-
createBaseVNode("code", null, toDisplayString(_ctx.error.stack), 1)
|
|
2598
|
-
])
|
|
2599
|
-
])) : createCommentVNode("", true)
|
|
2600
|
-
])
|
|
2601
|
-
])
|
|
2602
|
-
])
|
|
2603
|
-
])) : createCommentVNode("", true)
|
|
2604
|
-
], 2);
|
|
2605
|
-
};
|
|
2606
|
-
}
|
|
2607
|
-
});
|
|
2608
|
-
const fallbackParser = (execData) => ({
|
|
2609
|
-
type: "json",
|
|
2610
|
-
data: execData,
|
|
2611
|
-
parsed: false
|
|
2612
|
-
});
|
|
2613
|
-
const outputTypeParsers = {
|
|
2614
|
-
[NodeConnectionTypes.AiLanguageModel](execData) {
|
|
2615
|
-
const response = execData.response ?? execData;
|
|
2616
|
-
if (!response) throw new Error("No response from Language Model");
|
|
2617
|
-
if (Array.isArray(response?.messages) && response?.messages.length === 1 && typeof response?.messages[0] === "string") {
|
|
2618
|
-
return {
|
|
2619
|
-
type: "text",
|
|
2620
|
-
data: response.messages[0],
|
|
2621
|
-
parsed: true
|
|
2622
|
-
};
|
|
2623
|
-
}
|
|
2624
|
-
if (response.messages && Array.isArray(response.messages)) {
|
|
2625
|
-
return outputTypeParsers[NodeConnectionTypes.AiMemory](execData);
|
|
2626
|
-
}
|
|
2627
|
-
if (response.generations) {
|
|
2628
|
-
const generations = response.generations;
|
|
2629
|
-
const content = generations.map((generation) => {
|
|
2630
|
-
if (generation?.text) return generation.text;
|
|
2631
|
-
if (Array.isArray(generation)) {
|
|
2632
|
-
return generation.map((item) => item.text ?? item).join("\n\n").trim();
|
|
2633
|
-
}
|
|
2634
|
-
return generation;
|
|
2635
|
-
});
|
|
2636
|
-
return {
|
|
2637
|
-
type: "json",
|
|
2638
|
-
data: content,
|
|
2639
|
-
parsed: true
|
|
2640
|
-
};
|
|
2641
|
-
}
|
|
2642
|
-
return {
|
|
2643
|
-
type: "json",
|
|
2644
|
-
data: response,
|
|
2645
|
-
parsed: true
|
|
2646
|
-
};
|
|
2647
|
-
},
|
|
2648
|
-
[NodeConnectionTypes.AiTool]: fallbackParser,
|
|
2649
|
-
[NodeConnectionTypes.AiAgent]: fallbackParser,
|
|
2650
|
-
[NodeConnectionTypes.AiMemory](execData) {
|
|
2651
|
-
const chatHistory = execData.chatHistory ?? execData.messages ?? execData?.response?.chat_history;
|
|
2652
|
-
if (Array.isArray(chatHistory)) {
|
|
2653
|
-
const responseText = chatHistory.map((content) => {
|
|
2654
|
-
if (content.type === "constructor" && content.id?.includes("messages") && content.kwargs) {
|
|
2655
|
-
let message = String(content.kwargs.content);
|
|
2656
|
-
if (Array.isArray(message)) {
|
|
2657
|
-
message = message.map((item) => {
|
|
2658
|
-
const { type, image_url } = item;
|
|
2659
|
-
if (type === "image_url" && typeof image_url === "object" && typeof image_url.url === "string") {
|
|
2660
|
-
return ``;
|
|
2661
|
-
} else if (typeof image_url === "string") {
|
|
2662
|
-
return ``;
|
|
2663
|
-
}
|
|
2664
|
-
return item.text;
|
|
2665
|
-
}).join("\n");
|
|
2666
|
-
}
|
|
2667
|
-
if (Object.keys(content.kwargs.additional_kwargs).length) {
|
|
2668
|
-
message += ` (${JSON.stringify(content.kwargs.additional_kwargs)})`;
|
|
2669
|
-
}
|
|
2670
|
-
if (content.id.includes("HumanMessage")) {
|
|
2671
|
-
message = `**Human:** ${String(message).trim()}`;
|
|
2672
|
-
} else if (content.id.includes("AIMessage")) {
|
|
2673
|
-
message = `**AI:** ${message}`;
|
|
2674
|
-
} else if (content.id.includes("SystemMessage")) {
|
|
2675
|
-
message = `**System Message:** ${message}`;
|
|
2676
|
-
}
|
|
2677
|
-
return message;
|
|
2678
|
-
}
|
|
2679
|
-
return "";
|
|
2680
|
-
}).join("\n\n");
|
|
2681
|
-
if (responseText.length === 0) {
|
|
2682
|
-
return fallbackParser(execData);
|
|
2683
|
-
}
|
|
2684
|
-
return {
|
|
2685
|
-
type: "markdown",
|
|
2686
|
-
data: responseText,
|
|
2687
|
-
parsed: true
|
|
2688
|
-
};
|
|
2689
|
-
}
|
|
2690
|
-
return fallbackParser(execData);
|
|
2691
|
-
},
|
|
2692
|
-
[NodeConnectionTypes.AiOutputParser]: fallbackParser,
|
|
2693
|
-
[NodeConnectionTypes.AiRetriever]: fallbackParser,
|
|
2694
|
-
[NodeConnectionTypes.AiVectorStore](execData) {
|
|
2695
|
-
if (execData.documents) {
|
|
2696
|
-
return {
|
|
2697
|
-
type: "json",
|
|
2698
|
-
data: execData.documents,
|
|
2699
|
-
parsed: true
|
|
2700
|
-
};
|
|
2701
|
-
}
|
|
2702
|
-
return fallbackParser(execData);
|
|
2703
|
-
},
|
|
2704
|
-
[NodeConnectionTypes.AiEmbedding](execData) {
|
|
2705
|
-
if (execData.documents) {
|
|
2706
|
-
return {
|
|
2707
|
-
type: "json",
|
|
2708
|
-
data: execData.documents,
|
|
2709
|
-
parsed: true
|
|
2710
|
-
};
|
|
2711
|
-
}
|
|
2712
|
-
return fallbackParser(execData);
|
|
2713
|
-
},
|
|
2714
|
-
[NodeConnectionTypes.AiDocument](execData) {
|
|
2715
|
-
if (execData.documents) {
|
|
2716
|
-
return {
|
|
2717
|
-
type: "json",
|
|
2718
|
-
data: execData.documents,
|
|
2719
|
-
parsed: true
|
|
2720
|
-
};
|
|
2721
|
-
}
|
|
2722
|
-
return fallbackParser(execData);
|
|
2723
|
-
},
|
|
2724
|
-
[NodeConnectionTypes.AiTextSplitter](execData) {
|
|
2725
|
-
const arrayData = Array.isArray(execData.response) ? execData.response : [execData.textSplitter];
|
|
2726
|
-
return {
|
|
2727
|
-
type: "text",
|
|
2728
|
-
data: arrayData.join("\n\n"),
|
|
2729
|
-
parsed: true
|
|
2730
|
-
};
|
|
2731
|
-
}
|
|
2732
|
-
};
|
|
2733
|
-
function parseAiContent(executionData, endpointType) {
|
|
2734
|
-
if ([NodeConnectionTypes.AiChain, NodeConnectionTypes.Main].includes(
|
|
2735
|
-
endpointType
|
|
2736
|
-
)) {
|
|
2737
|
-
return executionData.map((data) => ({ raw: data.json, parsedContent: null }));
|
|
2738
|
-
}
|
|
2739
|
-
const contentJson = executionData.map((node) => {
|
|
2740
|
-
const hasBinaryData = !isObjectEmpty(node.binary);
|
|
2741
|
-
return hasBinaryData ? node.binary : node.json;
|
|
2742
|
-
});
|
|
2743
|
-
const parser = outputTypeParsers[endpointType];
|
|
2744
|
-
if (!parser)
|
|
2745
|
-
return [
|
|
2746
|
-
{
|
|
2747
|
-
raw: contentJson.filter((item) => item !== void 0),
|
|
2748
|
-
parsedContent: null
|
|
2749
|
-
}
|
|
2750
|
-
];
|
|
2751
|
-
return contentJson.filter((c) => c !== void 0).map((c) => ({ raw: c, parsedContent: parser(c) }));
|
|
2752
|
-
}
|
|
2753
|
-
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
2754
|
-
__name: "ConsumedTokensDetails",
|
|
2755
|
-
props: {
|
|
2756
|
-
consumedTokens: {}
|
|
2757
|
-
},
|
|
2758
|
-
setup(__props) {
|
|
2759
|
-
const i18n = useI18n();
|
|
2760
|
-
return (_ctx, _cache) => {
|
|
2761
|
-
return openBlock(), createElementBlock("div", null, [
|
|
2762
|
-
createVNode(unref(N8nText), {
|
|
2763
|
-
bold: true,
|
|
2764
|
-
size: "small"
|
|
2765
|
-
}, {
|
|
2766
|
-
default: withCtx(() => [
|
|
2767
|
-
createTextVNode(toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens.prompt")) + " " + toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens", {
|
|
2768
|
-
interpolate: {
|
|
2769
|
-
count: unref(formatTokenUsageCount)(_ctx.consumedTokens, "prompt")
|
|
2770
|
-
}
|
|
2771
|
-
})), 1)
|
|
2772
|
-
]),
|
|
2773
|
-
_: 1
|
|
2774
|
-
}),
|
|
2775
|
-
_cache[0] || (_cache[0] = createBaseVNode("br", null, null, -1)),
|
|
2776
|
-
createVNode(unref(N8nText), {
|
|
2777
|
-
bold: true,
|
|
2778
|
-
size: "small"
|
|
2779
|
-
}, {
|
|
2780
|
-
default: withCtx(() => [
|
|
2781
|
-
createTextVNode(toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens.completion")) + " " + toDisplayString(unref(i18n).baseText("runData.aiContentBlock.tokens", {
|
|
2782
|
-
interpolate: {
|
|
2783
|
-
count: unref(formatTokenUsageCount)(_ctx.consumedTokens, "completion")
|
|
2784
|
-
}
|
|
2785
|
-
})), 1)
|
|
2786
|
-
]),
|
|
2787
|
-
_: 1
|
|
2788
|
-
})
|
|
2789
|
-
]);
|
|
2790
|
-
};
|
|
2791
|
-
}
|
|
2792
|
-
});
|
|
2793
|
-
const _hoisted_1$7 = ["href"];
|
|
2794
|
-
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
2795
|
-
__name: "ViewSubExecution",
|
|
2796
|
-
props: {
|
|
2797
|
-
taskMetadata: {},
|
|
2798
|
-
displayMode: {},
|
|
2799
|
-
inline: { type: Boolean, default: false }
|
|
2800
|
-
},
|
|
2801
|
-
setup(__props) {
|
|
2802
|
-
const { trackOpeningRelatedExecution, resolveRelatedExecutionUrl } = useExecutionHelpers();
|
|
2803
|
-
const i18n = useI18n();
|
|
2804
|
-
const props = __props;
|
|
2805
|
-
const hasRelatedExecution = computed(() => {
|
|
2806
|
-
return Boolean(props.taskMetadata.subExecution ?? props.taskMetadata.parentExecution);
|
|
2807
|
-
});
|
|
2808
|
-
function getExecutionLinkLabel(task) {
|
|
2809
|
-
if (task.parentExecution) {
|
|
2810
|
-
return i18n.baseText("runData.openParentExecution", {
|
|
2811
|
-
interpolate: { id: task.parentExecution.executionId }
|
|
2812
|
-
});
|
|
2813
|
-
}
|
|
2814
|
-
if (task.subExecution) {
|
|
2815
|
-
if (props.taskMetadata.subExecutionsCount === 1) {
|
|
2816
|
-
return i18n.baseText("runData.openSubExecutionSingle");
|
|
2817
|
-
} else {
|
|
2818
|
-
return i18n.baseText("runData.openSubExecutionWithId", {
|
|
2819
|
-
interpolate: { id: task.subExecution.executionId }
|
|
2820
|
-
});
|
|
2821
|
-
}
|
|
2822
|
-
}
|
|
2823
|
-
return;
|
|
2824
|
-
}
|
|
2825
|
-
return (_ctx, _cache) => {
|
|
2826
|
-
const _component_N8nIcon = resolveComponent("N8nIcon");
|
|
2827
|
-
return hasRelatedExecution.value ? (openBlock(), createElementBlock("a", {
|
|
2828
|
-
key: 0,
|
|
2829
|
-
class: normalizeClass({ [_ctx.$style.relatedExecutionInfo]: !_ctx.inline }),
|
|
2830
|
-
"data-test-id": "related-execution-link",
|
|
2831
|
-
href: unref(resolveRelatedExecutionUrl)(_ctx.taskMetadata),
|
|
2832
|
-
target: "_blank",
|
|
2833
|
-
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => unref(trackOpeningRelatedExecution)(_ctx.taskMetadata, _ctx.displayMode), ["stop"]))
|
|
2834
|
-
}, [
|
|
2835
|
-
createVNode(_component_N8nIcon, {
|
|
2836
|
-
icon: "external-link-alt",
|
|
2837
|
-
size: "xsmall"
|
|
2838
|
-
}),
|
|
2839
|
-
createTextVNode(" " + toDisplayString(getExecutionLinkLabel(_ctx.taskMetadata)), 1)
|
|
2840
|
-
], 10, _hoisted_1$7)) : createCommentVNode("", true);
|
|
2841
|
-
};
|
|
2842
|
-
}
|
|
2843
|
-
});
|
|
2844
|
-
const relatedExecutionInfo = "_relatedExecutionInfo_saqms_123";
|
|
2845
|
-
const style0$4 = {
|
|
2846
|
-
relatedExecutionInfo
|
|
2847
|
-
};
|
|
2848
|
-
const cssModules$4 = {
|
|
2849
|
-
"$style": style0$4
|
|
2850
|
-
};
|
|
2851
|
-
const ViewSubExecution = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$4]]);
|
|
2852
|
-
var vueJsonPretty$1 = { exports: {} };
|
|
2853
|
-
var vueJsonPretty = vueJsonPretty$1.exports;
|
|
2854
|
-
var hasRequiredVueJsonPretty;
|
|
2855
|
-
function requireVueJsonPretty() {
|
|
2856
|
-
if (hasRequiredVueJsonPretty) return vueJsonPretty$1.exports;
|
|
2857
|
-
hasRequiredVueJsonPretty = 1;
|
|
2858
|
-
(function(module, exports) {
|
|
2859
|
-
!function(e, t) {
|
|
2860
|
-
module.exports = t(requireVue());
|
|
2861
|
-
}(vueJsonPretty, function(e) {
|
|
2862
|
-
return function() {
|
|
2863
|
-
var t = { 789: function(t2) {
|
|
2864
|
-
t2.exports = e;
|
|
2865
|
-
} }, n = {};
|
|
2866
|
-
function o(e2) {
|
|
2867
|
-
var r2 = n[e2];
|
|
2868
|
-
if (void 0 !== r2) return r2.exports;
|
|
2869
|
-
var l = n[e2] = { exports: {} };
|
|
2870
|
-
return t[e2](l, l.exports, o), l.exports;
|
|
2871
|
-
}
|
|
2872
|
-
o.d = function(e2, t2) {
|
|
2873
|
-
for (var n2 in t2) o.o(t2, n2) && !o.o(e2, n2) && Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] });
|
|
2874
|
-
}, o.o = function(e2, t2) {
|
|
2875
|
-
return Object.prototype.hasOwnProperty.call(e2, t2);
|
|
2876
|
-
}, o.r = function(e2) {
|
|
2877
|
-
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true });
|
|
2878
|
-
};
|
|
2879
|
-
var r = {};
|
|
2880
|
-
return function() {
|
|
2881
|
-
function e2(e3, t3) {
|
|
2882
|
-
(null == t3 || t3 > e3.length) && (t3 = e3.length);
|
|
2883
|
-
for (var n3 = 0, o2 = new Array(t3); n3 < t3; n3++) o2[n3] = e3[n3];
|
|
2884
|
-
return o2;
|
|
2885
|
-
}
|
|
2886
|
-
function t2(t3, n3) {
|
|
2887
|
-
if (t3) {
|
|
2888
|
-
if ("string" == typeof t3) return e2(t3, n3);
|
|
2889
|
-
var o2 = Object.prototype.toString.call(t3).slice(8, -1);
|
|
2890
|
-
return "Object" === o2 && t3.constructor && (o2 = t3.constructor.name), "Map" === o2 || "Set" === o2 ? Array.from(t3) : "Arguments" === o2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o2) ? e2(t3, n3) : void 0;
|
|
1671
|
+
o.d = function(e2, t2) {
|
|
1672
|
+
for (var n2 in t2) o.o(t2, n2) && !o.o(e2, n2) && Object.defineProperty(e2, n2, { enumerable: true, get: t2[n2] });
|
|
1673
|
+
}, o.o = function(e2, t2) {
|
|
1674
|
+
return Object.prototype.hasOwnProperty.call(e2, t2);
|
|
1675
|
+
}, o.r = function(e2) {
|
|
1676
|
+
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true });
|
|
1677
|
+
};
|
|
1678
|
+
var r = {};
|
|
1679
|
+
return function() {
|
|
1680
|
+
function e2(e3, t3) {
|
|
1681
|
+
(null == t3 || t3 > e3.length) && (t3 = e3.length);
|
|
1682
|
+
for (var n3 = 0, o2 = new Array(t3); n3 < t3; n3++) o2[n3] = e3[n3];
|
|
1683
|
+
return o2;
|
|
1684
|
+
}
|
|
1685
|
+
function t2(t3, n3) {
|
|
1686
|
+
if (t3) {
|
|
1687
|
+
if ("string" == typeof t3) return e2(t3, n3);
|
|
1688
|
+
var o2 = Object.prototype.toString.call(t3).slice(8, -1);
|
|
1689
|
+
return "Object" === o2 && t3.constructor && (o2 = t3.constructor.name), "Map" === o2 || "Set" === o2 ? Array.from(t3) : "Arguments" === o2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o2) ? e2(t3, n3) : void 0;
|
|
2891
1690
|
}
|
|
2892
1691
|
}
|
|
2893
1692
|
function n2(n3) {
|
|
@@ -3059,344 +1858,956 @@ function requireVueJsonPretty() {
|
|
|
3059
1858
|
}
|
|
3060
1859
|
return n3;
|
|
3061
1860
|
}
|
|
3062
|
-
function C(e3) {
|
|
3063
|
-
for (var t3 = 1; t3 < arguments.length; t3++) {
|
|
3064
|
-
var n3 = null != arguments[t3] ? arguments[t3] : {};
|
|
3065
|
-
t3 % 2 ? m(Object(n3), true).forEach(function(t4) {
|
|
3066
|
-
l(e3, t4, n3[t4]);
|
|
3067
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e3, Object.getOwnPropertyDescriptors(n3)) : m(Object(n3)).forEach(function(t4) {
|
|
3068
|
-
Object.defineProperty(e3, t4, Object.getOwnPropertyDescriptor(n3, t4));
|
|
3069
|
-
});
|
|
1861
|
+
function C(e3) {
|
|
1862
|
+
for (var t3 = 1; t3 < arguments.length; t3++) {
|
|
1863
|
+
var n3 = null != arguments[t3] ? arguments[t3] : {};
|
|
1864
|
+
t3 % 2 ? m(Object(n3), true).forEach(function(t4) {
|
|
1865
|
+
l(e3, t4, n3[t4]);
|
|
1866
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e3, Object.getOwnPropertyDescriptors(n3)) : m(Object(n3)).forEach(function(t4) {
|
|
1867
|
+
Object.defineProperty(e3, t4, Object.getOwnPropertyDescriptor(n3, t4));
|
|
1868
|
+
});
|
|
1869
|
+
}
|
|
1870
|
+
return e3;
|
|
1871
|
+
}
|
|
1872
|
+
var k = (0, a.defineComponent)({ name: "Tree", props: C(C({}, b), {}, { data: { type: [String, Number, Boolean, Array, Object], default: null }, deep: { type: Number, default: 1 / 0 }, pathCollapsible: { type: Function, default: function() {
|
|
1873
|
+
return false;
|
|
1874
|
+
} }, rootPath: { type: String, default: "root" }, virtual: { type: Boolean, default: false }, height: { type: Number, default: 400 }, itemHeight: { type: Number, default: 20 }, selectedValue: { type: [String, Array], default: function() {
|
|
1875
|
+
return "";
|
|
1876
|
+
} }, collapsedOnClickBrackets: { type: Boolean, default: true }, style: Object, onSelectedChange: { type: Function } }), slots: ["renderNodeKey", "renderNodeValue"], emits: ["nodeClick", "bracketsClick", "iconClick", "selectedChange", "update:selectedValue", "update:data"], setup: function(e3, o2) {
|
|
1877
|
+
var r2 = o2.emit, c2 = o2.slots, i2 = (0, a.ref)(), u2 = (0, a.computed)(function() {
|
|
1878
|
+
return p(e3.data, e3.rootPath);
|
|
1879
|
+
}), d2 = function(t3) {
|
|
1880
|
+
return u2.value.reduce(function(n3, o3) {
|
|
1881
|
+
var r3, a2 = o3.level >= t3, c3 = null === (r3 = e3.pathCollapsible) || void 0 === r3 ? void 0 : r3.call(e3, o3);
|
|
1882
|
+
return "objectStart" !== o3.type && "arrayStart" !== o3.type || !a2 && !c3 ? n3 : C(C({}, n3), {}, l({}, o3.path, 1));
|
|
1883
|
+
}, {});
|
|
1884
|
+
}, s2 = (0, a.reactive)({ translateY: 0, visibleData: null, hiddenPaths: d2(e3.deep) }), h3 = (0, a.computed)(function() {
|
|
1885
|
+
for (var e4 = null, t3 = [], n3 = u2.value.length, o3 = 0; o3 < n3; o3++) {
|
|
1886
|
+
var r3 = C(C({}, u2.value[o3]), {}, { id: o3 }), l2 = s2.hiddenPaths[r3.path];
|
|
1887
|
+
if (e4 && e4.path === r3.path) {
|
|
1888
|
+
var a2 = "objectStart" === e4.type, c3 = C(C(C({}, r3), e4), {}, { showComma: r3.showComma, content: a2 ? "{...}" : "[...]", type: a2 ? "objectCollapsed" : "arrayCollapsed" });
|
|
1889
|
+
e4 = null, t3.push(c3);
|
|
1890
|
+
} else {
|
|
1891
|
+
if (l2 && !e4) {
|
|
1892
|
+
e4 = r3;
|
|
1893
|
+
continue;
|
|
1894
|
+
}
|
|
1895
|
+
if (e4) continue;
|
|
1896
|
+
t3.push(r3);
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
return t3;
|
|
1900
|
+
}), y2 = (0, a.computed)(function() {
|
|
1901
|
+
var t3 = e3.selectedValue;
|
|
1902
|
+
return t3 && "multiple" === e3.selectableType && Array.isArray(t3) ? t3 : [t3];
|
|
1903
|
+
}), v2 = (0, a.computed)(function() {
|
|
1904
|
+
return !e3.selectableType || e3.selectOnClickNode || e3.showSelectController ? "" : "When selectableType is not null, selectOnClickNode and showSelectController cannot be false at the same time, because this will cause the selection to fail.";
|
|
1905
|
+
}), b2 = function() {
|
|
1906
|
+
var t3 = h3.value;
|
|
1907
|
+
if (e3.virtual) {
|
|
1908
|
+
var n3, o3 = e3.height / e3.itemHeight, r3 = (null === (n3 = i2.value) || void 0 === n3 ? void 0 : n3.scrollTop) || 0, l2 = Math.floor(r3 / e3.itemHeight), a2 = l2 < 0 ? 0 : l2 + o3 > t3.length ? t3.length - o3 : l2;
|
|
1909
|
+
a2 < 0 && (a2 = 0);
|
|
1910
|
+
var c3 = a2 + o3;
|
|
1911
|
+
s2.translateY = a2 * e3.itemHeight, s2.visibleData = t3.filter(function(e4, t4) {
|
|
1912
|
+
return t4 >= a2 && t4 < c3;
|
|
1913
|
+
});
|
|
1914
|
+
} else s2.visibleData = t3;
|
|
1915
|
+
}, m2 = function() {
|
|
1916
|
+
b2();
|
|
1917
|
+
}, k2 = function(o3) {
|
|
1918
|
+
var l2, a2, c3 = o3.path, i3 = e3.selectableType;
|
|
1919
|
+
if ("multiple" === i3) {
|
|
1920
|
+
var u3 = y2.value.findIndex(function(e4) {
|
|
1921
|
+
return e4 === c3;
|
|
1922
|
+
}), d3 = n2(y2.value);
|
|
1923
|
+
-1 !== u3 ? d3.splice(u3, 1) : d3.push(c3), r2("update:selectedValue", d3), r2("selectedChange", d3, n2(y2.value));
|
|
1924
|
+
} else if ("single" === i3 && y2.value[0] !== c3) {
|
|
1925
|
+
var s3 = (l2 = y2.value, a2 = 1, function(e4) {
|
|
1926
|
+
if (Array.isArray(e4)) return e4;
|
|
1927
|
+
}(l2) || function(e4, t3) {
|
|
1928
|
+
var n3 = null == e4 ? null : "undefined" != typeof Symbol && e4[Symbol.iterator] || e4["@@iterator"];
|
|
1929
|
+
if (null != n3) {
|
|
1930
|
+
var o4, r3, l3 = [], a3 = true, c4 = false;
|
|
1931
|
+
try {
|
|
1932
|
+
for (n3 = n3.call(e4); !(a3 = (o4 = n3.next()).done) && (l3.push(o4.value), !t3 || l3.length !== t3); a3 = true) ;
|
|
1933
|
+
} catch (e5) {
|
|
1934
|
+
c4 = true, r3 = e5;
|
|
1935
|
+
} finally {
|
|
1936
|
+
try {
|
|
1937
|
+
a3 || null == n3.return || n3.return();
|
|
1938
|
+
} finally {
|
|
1939
|
+
if (c4) throw r3;
|
|
1940
|
+
}
|
|
1941
|
+
}
|
|
1942
|
+
return l3;
|
|
1943
|
+
}
|
|
1944
|
+
}(l2, a2) || t2(l2, a2) || function() {
|
|
1945
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
1946
|
+
}())[0], p2 = c3;
|
|
1947
|
+
r2("update:selectedValue", p2), r2("selectedChange", p2, s3);
|
|
1948
|
+
}
|
|
1949
|
+
}, w = function(e4) {
|
|
1950
|
+
r2("nodeClick", e4);
|
|
1951
|
+
}, N = function(e4, t3) {
|
|
1952
|
+
if (e4) s2.hiddenPaths = C(C({}, s2.hiddenPaths), {}, l({}, t3, 1));
|
|
1953
|
+
else {
|
|
1954
|
+
var n3 = C({}, s2.hiddenPaths);
|
|
1955
|
+
delete n3[t3], s2.hiddenPaths = n3;
|
|
1956
|
+
}
|
|
1957
|
+
}, j = function(t3, n3) {
|
|
1958
|
+
e3.collapsedOnClickBrackets && N(t3, n3), r2("bracketsClick", t3);
|
|
1959
|
+
}, S = function(e4, t3) {
|
|
1960
|
+
N(e4, t3), r2("iconClick", e4);
|
|
1961
|
+
}, O = function(t3, n3) {
|
|
1962
|
+
var o3 = f(e3.data), l2 = e3.rootPath;
|
|
1963
|
+
new Function("data", "val", "data".concat(n3.slice(l2.length), "=val"))(o3, t3), r2("update:data", o3);
|
|
1964
|
+
};
|
|
1965
|
+
return (0, a.watchEffect)(function() {
|
|
1966
|
+
v2.value && function(e4) {
|
|
1967
|
+
throw new Error("[VueJSONPretty] ".concat(e4));
|
|
1968
|
+
}(v2.value);
|
|
1969
|
+
}), (0, a.watchEffect)(function() {
|
|
1970
|
+
h3.value && b2();
|
|
1971
|
+
}), (0, a.watch)(function() {
|
|
1972
|
+
return e3.deep;
|
|
1973
|
+
}, function(e4) {
|
|
1974
|
+
e4 && (s2.hiddenPaths = d2(e4));
|
|
1975
|
+
}), function() {
|
|
1976
|
+
var t3, n3, o3 = null !== (t3 = e3.renderNodeKey) && void 0 !== t3 ? t3 : c2.renderNodeKey, r3 = null !== (n3 = e3.renderNodeValue) && void 0 !== n3 ? n3 : c2.renderNodeValue, l2 = s2.visibleData && s2.visibleData.map(function(t4) {
|
|
1977
|
+
return (0, a.createVNode)(g, { key: t4.id, node: t4, collapsed: !!s2.hiddenPaths[t4.path], showDoubleQuotes: e3.showDoubleQuotes, showLength: e3.showLength, checked: y2.value.includes(t4.path), selectableType: e3.selectableType, showLine: e3.showLine, showLineNumber: e3.showLineNumber, showSelectController: e3.showSelectController, selectOnClickNode: e3.selectOnClickNode, nodeSelectable: e3.nodeSelectable, highlightSelectedNode: e3.highlightSelectedNode, editable: e3.editable, editableTrigger: e3.editableTrigger, showIcon: e3.showIcon, showKeyValueSpace: e3.showKeyValueSpace, renderNodeKey: o3, renderNodeValue: r3, onNodeClick: w, onBracketsClick: j, onIconClick: S, onSelectedChange: k2, onValueChange: O, style: e3.itemHeight && 20 !== e3.itemHeight ? { lineHeight: "".concat(e3.itemHeight, "px") } : {} }, null);
|
|
1978
|
+
});
|
|
1979
|
+
return (0, a.createVNode)("div", { ref: i2, class: { "vjs-tree": true, "is-virtual": e3.virtual }, onScroll: e3.virtual ? m2 : void 0, style: e3.showLineNumber ? C({ paddingLeft: "".concat(12 * Number(u2.value.length.toString().length), "px") }, e3.style) : e3.style }, [e3.virtual ? (0, a.createVNode)("div", { class: "vjs-tree-list", style: { height: "".concat(e3.height, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder", style: { height: "".concat(h3.value.length * e3.itemHeight, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder-inner", style: { transform: "translateY(".concat(s2.translateY, "px)") } }, [l2])])]) : l2]);
|
|
1980
|
+
};
|
|
1981
|
+
} });
|
|
1982
|
+
}(), r;
|
|
1983
|
+
}();
|
|
1984
|
+
});
|
|
1985
|
+
})(vueJsonPretty$1);
|
|
1986
|
+
return vueJsonPretty$1.exports;
|
|
1987
|
+
}
|
|
1988
|
+
var vueJsonPrettyExports = requireVueJsonPretty();
|
|
1989
|
+
const VueJsonPretty = /* @__PURE__ */ getDefaultExportFromCjs(vueJsonPrettyExports);
|
|
1990
|
+
const sanitizeOptions = {
|
|
1991
|
+
allowVulnerableTags: false,
|
|
1992
|
+
enforceHtmlBoundary: false,
|
|
1993
|
+
disallowedTagsMode: "discard",
|
|
1994
|
+
allowedTags: [...sanitizeHtmlExports.defaults.allowedTags, "style", "img", "title"],
|
|
1995
|
+
allowedAttributes: {
|
|
1996
|
+
...sanitizeHtmlExports.defaults.allowedAttributes,
|
|
1997
|
+
"*": ["class", "style"]
|
|
1998
|
+
},
|
|
1999
|
+
transformTags: {
|
|
2000
|
+
head: ""
|
|
2001
|
+
}
|
|
2002
|
+
};
|
|
2003
|
+
const _sfc_main$9 = {
|
|
2004
|
+
name: "RunDataHtml",
|
|
2005
|
+
props: {
|
|
2006
|
+
inputHtml: {
|
|
2007
|
+
type: String,
|
|
2008
|
+
required: true
|
|
2009
|
+
}
|
|
2010
|
+
},
|
|
2011
|
+
computed: {
|
|
2012
|
+
sanitizedHtml() {
|
|
2013
|
+
return sanitizeHtml(this.inputHtml, sanitizeOptions);
|
|
2014
|
+
}
|
|
2015
|
+
}
|
|
2016
|
+
};
|
|
2017
|
+
const _hoisted_1$8 = ["srcdoc"];
|
|
2018
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
2019
|
+
return openBlock(), createElementBlock("iframe", {
|
|
2020
|
+
class: "__html-display",
|
|
2021
|
+
srcdoc: $options.sanitizedHtml
|
|
2022
|
+
}, null, 8, _hoisted_1$8);
|
|
2023
|
+
}
|
|
2024
|
+
const RunDataHtml = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render]]);
|
|
2025
|
+
const RunDataHtml$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
2026
|
+
__proto__: null,
|
|
2027
|
+
default: RunDataHtml
|
|
2028
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
2029
|
+
const _hoisted_1$7 = { key: 0 };
|
|
2030
|
+
const _hoisted_2$4 = { key: 1 };
|
|
2031
|
+
const _hoisted_3$3 = { key: 2 };
|
|
2032
|
+
const _hoisted_4$3 = {
|
|
2033
|
+
key: 0,
|
|
2034
|
+
controls: "",
|
|
2035
|
+
autoplay: ""
|
|
2036
|
+
};
|
|
2037
|
+
const _hoisted_5$3 = ["src", "type"];
|
|
2038
|
+
const _hoisted_6$2 = {
|
|
2039
|
+
key: 1,
|
|
2040
|
+
controls: "",
|
|
2041
|
+
autoplay: ""
|
|
2042
|
+
};
|
|
2043
|
+
const _hoisted_7$2 = ["src", "type"];
|
|
2044
|
+
const _hoisted_8$2 = ["src"];
|
|
2045
|
+
const _hoisted_9$2 = ["src"];
|
|
2046
|
+
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
2047
|
+
__name: "BinaryDataDisplayEmbed",
|
|
2048
|
+
props: {
|
|
2049
|
+
binaryData: {}
|
|
2050
|
+
},
|
|
2051
|
+
setup(__props) {
|
|
2052
|
+
const props = __props;
|
|
2053
|
+
const isLoading = ref(true);
|
|
2054
|
+
const embedSource = ref("");
|
|
2055
|
+
const error = ref(false);
|
|
2056
|
+
const data = ref("");
|
|
2057
|
+
const workflowsStore = useWorkflowsStore();
|
|
2058
|
+
const i18n = useI18n();
|
|
2059
|
+
const embedClass = computed(() => {
|
|
2060
|
+
return [props.binaryData.fileType ?? "other"];
|
|
2061
|
+
});
|
|
2062
|
+
onMounted(async () => {
|
|
2063
|
+
const { id, data: binaryData, fileName, fileType, mimeType } = props.binaryData;
|
|
2064
|
+
const isJSONData = fileType === "json";
|
|
2065
|
+
const isHTMLData = fileType === "html";
|
|
2066
|
+
if (!id) {
|
|
2067
|
+
if (isJSONData || isHTMLData) {
|
|
2068
|
+
data.value = isJSONData ? jsonParse(base64DecodeUTF8(binaryData)) : base64DecodeUTF8(binaryData);
|
|
2069
|
+
} else {
|
|
2070
|
+
embedSource.value = `data:${mimeType};charset=utf-8;base64,${binaryData}`;
|
|
2071
|
+
}
|
|
2072
|
+
} else {
|
|
2073
|
+
try {
|
|
2074
|
+
const binaryUrl = workflowsStore.getBinaryUrl(id, "view", fileName ?? "", mimeType);
|
|
2075
|
+
if (isJSONData || isHTMLData) {
|
|
2076
|
+
const fetchedData = await fetch(binaryUrl, { credentials: "include" });
|
|
2077
|
+
data.value = await (isJSONData ? fetchedData.json() : fetchedData.text());
|
|
2078
|
+
} else {
|
|
2079
|
+
embedSource.value = binaryUrl;
|
|
2080
|
+
}
|
|
2081
|
+
} catch (e) {
|
|
2082
|
+
error.value = true;
|
|
2083
|
+
}
|
|
2084
|
+
}
|
|
2085
|
+
isLoading.value = false;
|
|
2086
|
+
});
|
|
2087
|
+
return (_ctx, _cache) => {
|
|
2088
|
+
return openBlock(), createElementBlock("span", null, [
|
|
2089
|
+
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1$7, "Loading binary data...")) : error.value ? (openBlock(), createElementBlock("div", _hoisted_2$4, "Error loading binary data")) : (openBlock(), createElementBlock("span", _hoisted_3$3, [
|
|
2090
|
+
_ctx.binaryData.fileType === "video" ? (openBlock(), createElementBlock("video", _hoisted_4$3, [
|
|
2091
|
+
createBaseVNode("source", {
|
|
2092
|
+
src: embedSource.value,
|
|
2093
|
+
type: _ctx.binaryData.mimeType
|
|
2094
|
+
}, null, 8, _hoisted_5$3),
|
|
2095
|
+
createTextVNode(" " + toDisplayString(unref(i18n).baseText("binaryDataDisplay.yourBrowserDoesNotSupport")), 1)
|
|
2096
|
+
])) : _ctx.binaryData.fileType === "audio" ? (openBlock(), createElementBlock("audio", _hoisted_6$2, [
|
|
2097
|
+
createBaseVNode("source", {
|
|
2098
|
+
src: embedSource.value,
|
|
2099
|
+
type: _ctx.binaryData.mimeType
|
|
2100
|
+
}, null, 8, _hoisted_7$2),
|
|
2101
|
+
createTextVNode(" " + toDisplayString(unref(i18n).baseText("binaryDataDisplay.yourBrowserDoesNotSupport")), 1)
|
|
2102
|
+
])) : _ctx.binaryData.fileType === "image" ? (openBlock(), createElementBlock("img", {
|
|
2103
|
+
key: 2,
|
|
2104
|
+
src: embedSource.value
|
|
2105
|
+
}, null, 8, _hoisted_8$2)) : _ctx.binaryData.fileType === "json" ? (openBlock(), createBlock(unref(VueJsonPretty), {
|
|
2106
|
+
key: 3,
|
|
2107
|
+
data: data.value,
|
|
2108
|
+
deep: 3,
|
|
2109
|
+
"show-length": true
|
|
2110
|
+
}, null, 8, ["data"])) : _ctx.binaryData.fileType === "html" ? (openBlock(), createBlock(RunDataHtml, {
|
|
2111
|
+
key: 4,
|
|
2112
|
+
"input-html": data.value
|
|
2113
|
+
}, null, 8, ["input-html"])) : (openBlock(), createElementBlock("embed", {
|
|
2114
|
+
key: 5,
|
|
2115
|
+
src: embedSource.value,
|
|
2116
|
+
class: normalizeClass(["binary-data", embedClass.value])
|
|
2117
|
+
}, null, 10, _hoisted_9$2))
|
|
2118
|
+
]))
|
|
2119
|
+
]);
|
|
2120
|
+
};
|
|
2121
|
+
}
|
|
2122
|
+
});
|
|
2123
|
+
const _hoisted_1$6 = { class: "binary-data-window-wrapper" };
|
|
2124
|
+
const _hoisted_2$3 = { key: 0 };
|
|
2125
|
+
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
2126
|
+
__name: "BinaryDataDisplay",
|
|
2127
|
+
props: {
|
|
2128
|
+
displayData: {},
|
|
2129
|
+
windowVisible: { type: Boolean }
|
|
2130
|
+
},
|
|
2131
|
+
emits: ["close"],
|
|
2132
|
+
setup(__props, { emit: __emit }) {
|
|
2133
|
+
const props = __props;
|
|
2134
|
+
const emit = __emit;
|
|
2135
|
+
const nodeHelpers = useNodeHelpers();
|
|
2136
|
+
const workflowsStore = useWorkflowsStore();
|
|
2137
|
+
const i18n = useI18n();
|
|
2138
|
+
const workflowRunData = computed(() => {
|
|
2139
|
+
const workflowExecution = workflowsStore.getWorkflowExecution;
|
|
2140
|
+
if (workflowExecution === null) {
|
|
2141
|
+
return null;
|
|
2142
|
+
}
|
|
2143
|
+
const executionData = workflowExecution.data;
|
|
2144
|
+
return executionData ? executionData.resultData.runData : null;
|
|
2145
|
+
});
|
|
2146
|
+
const binaryData = computed(() => {
|
|
2147
|
+
if (typeof props.displayData.node !== "string" || typeof props.displayData.key !== "string" || typeof props.displayData.runIndex !== "number" || typeof props.displayData.index !== "number" || typeof props.displayData.outputIndex !== "number") {
|
|
2148
|
+
return null;
|
|
2149
|
+
}
|
|
2150
|
+
const binaryDataLocal = nodeHelpers.getBinaryData(
|
|
2151
|
+
workflowRunData.value,
|
|
2152
|
+
props.displayData.node,
|
|
2153
|
+
props.displayData.runIndex,
|
|
2154
|
+
props.displayData.outputIndex
|
|
2155
|
+
);
|
|
2156
|
+
if (binaryDataLocal.length === 0) {
|
|
2157
|
+
return null;
|
|
2158
|
+
}
|
|
2159
|
+
if (props.displayData.index >= binaryDataLocal.length || binaryDataLocal[props.displayData.index][props.displayData.key] === void 0) {
|
|
2160
|
+
return null;
|
|
2161
|
+
}
|
|
2162
|
+
const binaryDataItem = binaryDataLocal[props.displayData.index][props.displayData.key];
|
|
2163
|
+
return binaryDataItem;
|
|
2164
|
+
});
|
|
2165
|
+
function closeWindow() {
|
|
2166
|
+
emit("close");
|
|
2167
|
+
return false;
|
|
2168
|
+
}
|
|
2169
|
+
return (_ctx, _cache) => {
|
|
2170
|
+
const _component_n8n_button = resolveComponent("n8n-button");
|
|
2171
|
+
return _ctx.windowVisible ? (openBlock(), createElementBlock("div", {
|
|
2172
|
+
key: 0,
|
|
2173
|
+
class: normalizeClass(["binary-data-window", binaryData.value?.fileType])
|
|
2174
|
+
}, [
|
|
2175
|
+
createVNode(_component_n8n_button, {
|
|
2176
|
+
size: "small",
|
|
2177
|
+
class: "binary-data-window-back",
|
|
2178
|
+
title: unref(i18n).baseText("binaryDataDisplay.backToOverviewPage"),
|
|
2179
|
+
icon: "arrow-left",
|
|
2180
|
+
label: unref(i18n).baseText("binaryDataDisplay.backToList"),
|
|
2181
|
+
onClick: withModifiers(closeWindow, ["stop"])
|
|
2182
|
+
}, null, 8, ["title", "label"]),
|
|
2183
|
+
createBaseVNode("div", _hoisted_1$6, [
|
|
2184
|
+
!binaryData.value ? (openBlock(), createElementBlock("div", _hoisted_2$3, toDisplayString(unref(i18n).baseText("binaryDataDisplay.noDataFoundToDisplay")), 1)) : (openBlock(), createBlock(_sfc_main$8, {
|
|
2185
|
+
key: 1,
|
|
2186
|
+
"binary-data": binaryData.value
|
|
2187
|
+
}, null, 8, ["binary-data"]))
|
|
2188
|
+
])
|
|
2189
|
+
], 2)) : createCommentVNode("", true);
|
|
2190
|
+
};
|
|
2191
|
+
}
|
|
2192
|
+
});
|
|
2193
|
+
const _hoisted_1$5 = { class: "node-error-view__header" };
|
|
2194
|
+
const _hoisted_2$2 = {
|
|
2195
|
+
class: "node-error-view__header-message",
|
|
2196
|
+
"data-test-id": "node-error-message"
|
|
2197
|
+
};
|
|
2198
|
+
const _hoisted_3$2 = {
|
|
2199
|
+
key: 0,
|
|
2200
|
+
"data-test-id": "node-error-description",
|
|
2201
|
+
class: "node-error-view__header-description"
|
|
2202
|
+
};
|
|
2203
|
+
const _hoisted_4$2 = { key: 1 };
|
|
2204
|
+
const _hoisted_5$2 = {
|
|
2205
|
+
key: 2,
|
|
2206
|
+
class: "node-error-view__button",
|
|
2207
|
+
"data-test-id": "node-error-view-ask-assistant-button"
|
|
2208
|
+
};
|
|
2209
|
+
const _hoisted_6$1 = {
|
|
2210
|
+
key: 0,
|
|
2211
|
+
class: "node-error-view__info"
|
|
2212
|
+
};
|
|
2213
|
+
const _hoisted_7$1 = { class: "node-error-view__info-header" };
|
|
2214
|
+
const _hoisted_8$1 = { class: "node-error-view__info-title" };
|
|
2215
|
+
const _hoisted_9$1 = { class: "copy-button" };
|
|
2216
|
+
const _hoisted_10 = { class: "node-error-view__info-content" };
|
|
2217
|
+
const _hoisted_11 = {
|
|
2218
|
+
key: 0,
|
|
2219
|
+
class: "node-error-view__details"
|
|
2220
|
+
};
|
|
2221
|
+
const _hoisted_12 = { class: "node-error-view__details-summary" };
|
|
2222
|
+
const _hoisted_13 = { class: "node-error-view__details-content" };
|
|
2223
|
+
const _hoisted_14 = {
|
|
2224
|
+
key: 0,
|
|
2225
|
+
class: "node-error-view__details-row"
|
|
2226
|
+
};
|
|
2227
|
+
const _hoisted_15 = { class: "node-error-view__details-label" };
|
|
2228
|
+
const _hoisted_16 = { class: "node-error-view__details-value" };
|
|
2229
|
+
const _hoisted_17 = {
|
|
2230
|
+
key: 1,
|
|
2231
|
+
class: "node-error-view__details-row"
|
|
2232
|
+
};
|
|
2233
|
+
const _hoisted_18 = { class: "node-error-view__details-label" };
|
|
2234
|
+
const _hoisted_19 = { class: "node-error-view__details-value" };
|
|
2235
|
+
const _hoisted_20 = {
|
|
2236
|
+
key: 2,
|
|
2237
|
+
class: "node-error-view__details-row"
|
|
2238
|
+
};
|
|
2239
|
+
const _hoisted_21 = { class: "node-error-view__details-label" };
|
|
2240
|
+
const _hoisted_22 = { class: "node-error-view__details-value" };
|
|
2241
|
+
const _hoisted_23 = {
|
|
2242
|
+
key: 3,
|
|
2243
|
+
class: "node-error-view__details-row"
|
|
2244
|
+
};
|
|
2245
|
+
const _hoisted_24 = { class: "node-error-view__details-label" };
|
|
2246
|
+
const _hoisted_25 = { class: "node-error-view__details-value" };
|
|
2247
|
+
const _hoisted_26 = {
|
|
2248
|
+
key: 4,
|
|
2249
|
+
class: "node-error-view__details-row"
|
|
2250
|
+
};
|
|
2251
|
+
const _hoisted_27 = { class: "node-error-view__details-label" };
|
|
2252
|
+
const _hoisted_28 = { class: "node-error-view__details-value" };
|
|
2253
|
+
const _hoisted_29 = { class: "node-error-view__details" };
|
|
2254
|
+
const _hoisted_30 = { class: "node-error-view__details-summary" };
|
|
2255
|
+
const _hoisted_31 = { class: "node-error-view__details-content" };
|
|
2256
|
+
const _hoisted_32 = {
|
|
2257
|
+
key: 0,
|
|
2258
|
+
class: "node-error-view__details-row"
|
|
2259
|
+
};
|
|
2260
|
+
const _hoisted_33 = { class: "node-error-view__details-label" };
|
|
2261
|
+
const _hoisted_34 = { class: "node-error-view__details-value" };
|
|
2262
|
+
const _hoisted_35 = {
|
|
2263
|
+
key: 1,
|
|
2264
|
+
class: "node-error-view__details-row"
|
|
2265
|
+
};
|
|
2266
|
+
const _hoisted_36 = { class: "node-error-view__details-label" };
|
|
2267
|
+
const _hoisted_37 = { class: "node-error-view__details-value" };
|
|
2268
|
+
const _hoisted_38 = {
|
|
2269
|
+
key: 2,
|
|
2270
|
+
class: "node-error-view__details-row"
|
|
2271
|
+
};
|
|
2272
|
+
const _hoisted_39 = { class: "node-error-view__details-label" };
|
|
2273
|
+
const _hoisted_40 = { class: "node-error-view__details-value" };
|
|
2274
|
+
const _hoisted_41 = {
|
|
2275
|
+
key: 3,
|
|
2276
|
+
class: "node-error-view__details-row"
|
|
2277
|
+
};
|
|
2278
|
+
const _hoisted_42 = { class: "node-error-view__details-label" };
|
|
2279
|
+
const _hoisted_43 = { class: "node-error-view__details-value" };
|
|
2280
|
+
const _hoisted_44 = {
|
|
2281
|
+
key: 4,
|
|
2282
|
+
class: "node-error-view__details-row"
|
|
2283
|
+
};
|
|
2284
|
+
const _hoisted_45 = { class: "node-error-view__details-label" };
|
|
2285
|
+
const _hoisted_46 = { class: "node-error-view__details-value" };
|
|
2286
|
+
const _hoisted_47 = { class: "node-error-view__details-row" };
|
|
2287
|
+
const _hoisted_48 = { class: "node-error-view__details-label" };
|
|
2288
|
+
const _hoisted_49 = { class: "node-error-view__details-value" };
|
|
2289
|
+
const _hoisted_50 = {
|
|
2290
|
+
key: 5,
|
|
2291
|
+
class: "node-error-view__details-row"
|
|
2292
|
+
};
|
|
2293
|
+
const _hoisted_51 = { class: "node-error-view__details-label" };
|
|
2294
|
+
const _hoisted_52 = { class: "node-error-view__details-value" };
|
|
2295
|
+
const _hoisted_53 = {
|
|
2296
|
+
key: 6,
|
|
2297
|
+
class: "node-error-view__details-row"
|
|
2298
|
+
};
|
|
2299
|
+
const _hoisted_54 = { class: "node-error-view__details-label" };
|
|
2300
|
+
const _hoisted_55 = { class: "node-error-view__details-value" };
|
|
2301
|
+
const _hoisted_56 = {
|
|
2302
|
+
key: 7,
|
|
2303
|
+
class: "node-error-view__details-row"
|
|
2304
|
+
};
|
|
2305
|
+
const _hoisted_57 = { class: "node-error-view__details-label" };
|
|
2306
|
+
const _hoisted_58 = { class: "node-error-view__details-value" };
|
|
2307
|
+
const _hoisted_59 = {
|
|
2308
|
+
key: 8,
|
|
2309
|
+
class: "node-error-view__details-row"
|
|
2310
|
+
};
|
|
2311
|
+
const _hoisted_60 = { class: "node-error-view__details-label" };
|
|
2312
|
+
const _hoisted_61 = { class: "node-error-view__details-value" };
|
|
2313
|
+
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
2314
|
+
__name: "NodeErrorView",
|
|
2315
|
+
props: {
|
|
2316
|
+
error: {},
|
|
2317
|
+
showDetails: { type: Boolean },
|
|
2318
|
+
compact: { type: Boolean }
|
|
2319
|
+
},
|
|
2320
|
+
setup(__props) {
|
|
2321
|
+
const props = __props;
|
|
2322
|
+
const clipboard = useClipboard();
|
|
2323
|
+
const toast = useToast();
|
|
2324
|
+
const i18n = useI18n();
|
|
2325
|
+
const assistantHelpers = useAIAssistantHelpers();
|
|
2326
|
+
const nodeTypesStore = useNodeTypesStore();
|
|
2327
|
+
const ndvStore = useNDVStore();
|
|
2328
|
+
const rootStore = useRootStore();
|
|
2329
|
+
const assistantStore = useAssistantStore();
|
|
2330
|
+
const uiStore = useUIStore();
|
|
2331
|
+
const displayCause = computed(() => {
|
|
2332
|
+
return JSON.stringify(props.error.cause ?? "").length < MAX_DISPLAY_DATA_SIZE;
|
|
2333
|
+
});
|
|
2334
|
+
const node = computed(() => {
|
|
2335
|
+
return props.error.node || ndvStore.activeNode;
|
|
2336
|
+
});
|
|
2337
|
+
const parameters = computed(() => {
|
|
2338
|
+
if (!node.value) {
|
|
2339
|
+
return [];
|
|
2340
|
+
}
|
|
2341
|
+
const nodeType = nodeTypesStore.getNodeType(node.value.type, node.value.typeVersion);
|
|
2342
|
+
if (nodeType === null) {
|
|
2343
|
+
return [];
|
|
2344
|
+
}
|
|
2345
|
+
return nodeType.properties;
|
|
2346
|
+
});
|
|
2347
|
+
const n8nVersion = computed(() => {
|
|
2348
|
+
const baseUrl = rootStore.urlBaseEditor;
|
|
2349
|
+
let instanceType = "Self Hosted";
|
|
2350
|
+
if (baseUrl.includes("n8n.cloud")) {
|
|
2351
|
+
instanceType = "Cloud";
|
|
2352
|
+
}
|
|
2353
|
+
return rootStore.versionCli + ` (${instanceType})`;
|
|
2354
|
+
});
|
|
2355
|
+
const hasManyInputItems = computed(() => {
|
|
2356
|
+
return ndvStore.ndvInputData.length > 1;
|
|
2357
|
+
});
|
|
2358
|
+
const nodeDefaultName = computed(() => {
|
|
2359
|
+
if (!node.value) {
|
|
2360
|
+
return "Node";
|
|
2361
|
+
}
|
|
2362
|
+
const nodeType = nodeTypesStore.getNodeType(node.value.type, node.value.typeVersion);
|
|
2363
|
+
return nodeType?.defaults?.name || node.value.name;
|
|
2364
|
+
});
|
|
2365
|
+
const prepareRawMessages = computed(() => {
|
|
2366
|
+
const returnData = [];
|
|
2367
|
+
if (!props.error.messages?.length) {
|
|
2368
|
+
return [];
|
|
2369
|
+
}
|
|
2370
|
+
const errorMessage = getErrorMessage();
|
|
2371
|
+
Array.from(new Set(props.error.messages)).forEach((message) => {
|
|
2372
|
+
const isParsable = /^\d{3} - \{/.test(message);
|
|
2373
|
+
const parts = isParsable ? message.split(" - ").map((part) => part.trim()) : [];
|
|
2374
|
+
for (const part of parts) {
|
|
2375
|
+
try {
|
|
2376
|
+
const parsed = JSON.parse(part);
|
|
2377
|
+
if (typeof parsed === "object") {
|
|
2378
|
+
returnData.push(parsed);
|
|
2379
|
+
return;
|
|
3070
2380
|
}
|
|
3071
|
-
|
|
2381
|
+
} catch (error) {
|
|
3072
2382
|
}
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
var r2 = o2.emit, c2 = o2.slots, i2 = (0, a.ref)(), u2 = (0, a.computed)(function() {
|
|
3079
|
-
return p(e3.data, e3.rootPath);
|
|
3080
|
-
}), d2 = function(t3) {
|
|
3081
|
-
return u2.value.reduce(function(n3, o3) {
|
|
3082
|
-
var r3, a2 = o3.level >= t3, c3 = null === (r3 = e3.pathCollapsible) || void 0 === r3 ? void 0 : r3.call(e3, o3);
|
|
3083
|
-
return "objectStart" !== o3.type && "arrayStart" !== o3.type || !a2 && !c3 ? n3 : C(C({}, n3), {}, l({}, o3.path, 1));
|
|
3084
|
-
}, {});
|
|
3085
|
-
}, s2 = (0, a.reactive)({ translateY: 0, visibleData: null, hiddenPaths: d2(e3.deep) }), h3 = (0, a.computed)(function() {
|
|
3086
|
-
for (var e4 = null, t3 = [], n3 = u2.value.length, o3 = 0; o3 < n3; o3++) {
|
|
3087
|
-
var r3 = C(C({}, u2.value[o3]), {}, { id: o3 }), l2 = s2.hiddenPaths[r3.path];
|
|
3088
|
-
if (e4 && e4.path === r3.path) {
|
|
3089
|
-
var a2 = "objectStart" === e4.type, c3 = C(C(C({}, r3), e4), {}, { showComma: r3.showComma, content: a2 ? "{...}" : "[...]", type: a2 ? "objectCollapsed" : "arrayCollapsed" });
|
|
3090
|
-
e4 = null, t3.push(c3);
|
|
3091
|
-
} else {
|
|
3092
|
-
if (l2 && !e4) {
|
|
3093
|
-
e4 = r3;
|
|
3094
|
-
continue;
|
|
3095
|
-
}
|
|
3096
|
-
if (e4) continue;
|
|
3097
|
-
t3.push(r3);
|
|
3098
|
-
}
|
|
3099
|
-
}
|
|
3100
|
-
return t3;
|
|
3101
|
-
}), y2 = (0, a.computed)(function() {
|
|
3102
|
-
var t3 = e3.selectedValue;
|
|
3103
|
-
return t3 && "multiple" === e3.selectableType && Array.isArray(t3) ? t3 : [t3];
|
|
3104
|
-
}), v2 = (0, a.computed)(function() {
|
|
3105
|
-
return !e3.selectableType || e3.selectOnClickNode || e3.showSelectController ? "" : "When selectableType is not null, selectOnClickNode and showSelectController cannot be false at the same time, because this will cause the selection to fail.";
|
|
3106
|
-
}), b2 = function() {
|
|
3107
|
-
var t3 = h3.value;
|
|
3108
|
-
if (e3.virtual) {
|
|
3109
|
-
var n3, o3 = e3.height / e3.itemHeight, r3 = (null === (n3 = i2.value) || void 0 === n3 ? void 0 : n3.scrollTop) || 0, l2 = Math.floor(r3 / e3.itemHeight), a2 = l2 < 0 ? 0 : l2 + o3 > t3.length ? t3.length - o3 : l2;
|
|
3110
|
-
a2 < 0 && (a2 = 0);
|
|
3111
|
-
var c3 = a2 + o3;
|
|
3112
|
-
s2.translateY = a2 * e3.itemHeight, s2.visibleData = t3.filter(function(e4, t4) {
|
|
3113
|
-
return t4 >= a2 && t4 < c3;
|
|
3114
|
-
});
|
|
3115
|
-
} else s2.visibleData = t3;
|
|
3116
|
-
}, m2 = function() {
|
|
3117
|
-
b2();
|
|
3118
|
-
}, k2 = function(o3) {
|
|
3119
|
-
var l2, a2, c3 = o3.path, i3 = e3.selectableType;
|
|
3120
|
-
if ("multiple" === i3) {
|
|
3121
|
-
var u3 = y2.value.findIndex(function(e4) {
|
|
3122
|
-
return e4 === c3;
|
|
3123
|
-
}), d3 = n2(y2.value);
|
|
3124
|
-
-1 !== u3 ? d3.splice(u3, 1) : d3.push(c3), r2("update:selectedValue", d3), r2("selectedChange", d3, n2(y2.value));
|
|
3125
|
-
} else if ("single" === i3 && y2.value[0] !== c3) {
|
|
3126
|
-
var s3 = (l2 = y2.value, a2 = 1, function(e4) {
|
|
3127
|
-
if (Array.isArray(e4)) return e4;
|
|
3128
|
-
}(l2) || function(e4, t3) {
|
|
3129
|
-
var n3 = null == e4 ? null : "undefined" != typeof Symbol && e4[Symbol.iterator] || e4["@@iterator"];
|
|
3130
|
-
if (null != n3) {
|
|
3131
|
-
var o4, r3, l3 = [], a3 = true, c4 = false;
|
|
3132
|
-
try {
|
|
3133
|
-
for (n3 = n3.call(e4); !(a3 = (o4 = n3.next()).done) && (l3.push(o4.value), !t3 || l3.length !== t3); a3 = true) ;
|
|
3134
|
-
} catch (e5) {
|
|
3135
|
-
c4 = true, r3 = e5;
|
|
3136
|
-
} finally {
|
|
3137
|
-
try {
|
|
3138
|
-
a3 || null == n3.return || n3.return();
|
|
3139
|
-
} finally {
|
|
3140
|
-
if (c4) throw r3;
|
|
3141
|
-
}
|
|
3142
|
-
}
|
|
3143
|
-
return l3;
|
|
3144
|
-
}
|
|
3145
|
-
}(l2, a2) || t2(l2, a2) || function() {
|
|
3146
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
3147
|
-
}())[0], p2 = c3;
|
|
3148
|
-
r2("update:selectedValue", p2), r2("selectedChange", p2, s3);
|
|
3149
|
-
}
|
|
3150
|
-
}, w = function(e4) {
|
|
3151
|
-
r2("nodeClick", e4);
|
|
3152
|
-
}, N = function(e4, t3) {
|
|
3153
|
-
if (e4) s2.hiddenPaths = C(C({}, s2.hiddenPaths), {}, l({}, t3, 1));
|
|
3154
|
-
else {
|
|
3155
|
-
var n3 = C({}, s2.hiddenPaths);
|
|
3156
|
-
delete n3[t3], s2.hiddenPaths = n3;
|
|
3157
|
-
}
|
|
3158
|
-
}, j = function(t3, n3) {
|
|
3159
|
-
e3.collapsedOnClickBrackets && N(t3, n3), r2("bracketsClick", t3);
|
|
3160
|
-
}, S = function(e4, t3) {
|
|
3161
|
-
N(e4, t3), r2("iconClick", e4);
|
|
3162
|
-
}, O = function(t3, n3) {
|
|
3163
|
-
var o3 = f(e3.data), l2 = e3.rootPath;
|
|
3164
|
-
new Function("data", "val", "data".concat(n3.slice(l2.length), "=val"))(o3, t3), r2("update:data", o3);
|
|
3165
|
-
};
|
|
3166
|
-
return (0, a.watchEffect)(function() {
|
|
3167
|
-
v2.value && function(e4) {
|
|
3168
|
-
throw new Error("[VueJSONPretty] ".concat(e4));
|
|
3169
|
-
}(v2.value);
|
|
3170
|
-
}), (0, a.watchEffect)(function() {
|
|
3171
|
-
h3.value && b2();
|
|
3172
|
-
}), (0, a.watch)(function() {
|
|
3173
|
-
return e3.deep;
|
|
3174
|
-
}, function(e4) {
|
|
3175
|
-
e4 && (s2.hiddenPaths = d2(e4));
|
|
3176
|
-
}), function() {
|
|
3177
|
-
var t3, n3, o3 = null !== (t3 = e3.renderNodeKey) && void 0 !== t3 ? t3 : c2.renderNodeKey, r3 = null !== (n3 = e3.renderNodeValue) && void 0 !== n3 ? n3 : c2.renderNodeValue, l2 = s2.visibleData && s2.visibleData.map(function(t4) {
|
|
3178
|
-
return (0, a.createVNode)(g, { key: t4.id, node: t4, collapsed: !!s2.hiddenPaths[t4.path], showDoubleQuotes: e3.showDoubleQuotes, showLength: e3.showLength, checked: y2.value.includes(t4.path), selectableType: e3.selectableType, showLine: e3.showLine, showLineNumber: e3.showLineNumber, showSelectController: e3.showSelectController, selectOnClickNode: e3.selectOnClickNode, nodeSelectable: e3.nodeSelectable, highlightSelectedNode: e3.highlightSelectedNode, editable: e3.editable, editableTrigger: e3.editableTrigger, showIcon: e3.showIcon, showKeyValueSpace: e3.showKeyValueSpace, renderNodeKey: o3, renderNodeValue: r3, onNodeClick: w, onBracketsClick: j, onIconClick: S, onSelectedChange: k2, onValueChange: O, style: e3.itemHeight && 20 !== e3.itemHeight ? { lineHeight: "".concat(e3.itemHeight, "px") } : {} }, null);
|
|
3179
|
-
});
|
|
3180
|
-
return (0, a.createVNode)("div", { ref: i2, class: { "vjs-tree": true, "is-virtual": e3.virtual }, onScroll: e3.virtual ? m2 : void 0, style: e3.showLineNumber ? C({ paddingLeft: "".concat(12 * Number(u2.value.length.toString().length), "px") }, e3.style) : e3.style }, [e3.virtual ? (0, a.createVNode)("div", { class: "vjs-tree-list", style: { height: "".concat(e3.height, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder", style: { height: "".concat(h3.value.length * e3.itemHeight, "px") } }, [(0, a.createVNode)("div", { class: "vjs-tree-list-holder-inner", style: { transform: "translateY(".concat(s2.translateY, "px)") } }, [l2])])]) : l2]);
|
|
3181
|
-
};
|
|
3182
|
-
} });
|
|
3183
|
-
}(), r;
|
|
3184
|
-
}();
|
|
2383
|
+
}
|
|
2384
|
+
if (message === errorMessage) return;
|
|
2385
|
+
returnData.push(message);
|
|
2386
|
+
});
|
|
2387
|
+
return returnData;
|
|
3185
2388
|
});
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
const
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
2389
|
+
const isAskAssistantAvailable = computed(() => {
|
|
2390
|
+
if (!node.value || isSubNodeError.value) {
|
|
2391
|
+
return false;
|
|
2392
|
+
}
|
|
2393
|
+
const isCustomNode = node.value.type === void 0 || isCommunityPackageName(node.value.type);
|
|
2394
|
+
return assistantStore.canShowAssistantButtonsOnCanvas && !isCustomNode && !nodeIsHidden();
|
|
2395
|
+
});
|
|
2396
|
+
const assistantAlreadyAsked = computed(() => {
|
|
2397
|
+
return assistantStore.isNodeErrorActive({
|
|
2398
|
+
error: assistantHelpers.simplifyErrorForAssistant(props.error),
|
|
2399
|
+
node: props.error.node || ndvStore.activeNode
|
|
2400
|
+
});
|
|
2401
|
+
});
|
|
2402
|
+
const isSubNodeError = computed(() => {
|
|
2403
|
+
return props.error.name === "NodeOperationError" && props.error.functionality === "configuration-node";
|
|
2404
|
+
});
|
|
2405
|
+
function nodeVersionTag(nodeType) {
|
|
2406
|
+
if (!nodeType || "hidden" in nodeType && nodeType.hidden) {
|
|
2407
|
+
return i18n.baseText("nodeSettings.deprecated");
|
|
2408
|
+
}
|
|
2409
|
+
const latestNodeVersion = Math.max(...nodeTypesStore.getNodeVersions(nodeType.type));
|
|
2410
|
+
if (latestNodeVersion === nodeType.typeVersion) {
|
|
2411
|
+
return i18n.baseText("nodeSettings.latest");
|
|
2412
|
+
}
|
|
2413
|
+
return i18n.baseText("nodeSettings.latestVersion", {
|
|
2414
|
+
interpolate: { version: latestNodeVersion.toString() }
|
|
2415
|
+
});
|
|
2416
|
+
}
|
|
2417
|
+
function prepareDescription(description) {
|
|
2418
|
+
return sanitizeHtml$1(description.replace(/`(.*?)`/g, "<code>$1</code>"));
|
|
2419
|
+
}
|
|
2420
|
+
function getErrorDescription() {
|
|
2421
|
+
if (props.error.context?.descriptionKey) {
|
|
2422
|
+
const interpolate = {
|
|
2423
|
+
nodeCause: props.error.context.nodeCause,
|
|
2424
|
+
runIndex: props.error.context.runIndex ?? "0",
|
|
2425
|
+
itemIndex: props.error.context.itemIndex ?? "0"
|
|
2426
|
+
};
|
|
2427
|
+
return prepareDescription(
|
|
2428
|
+
i18n.baseText(
|
|
2429
|
+
`nodeErrorView.description.${props.error.context.descriptionKey}`,
|
|
2430
|
+
{ interpolate }
|
|
2431
|
+
)
|
|
2432
|
+
);
|
|
2433
|
+
}
|
|
2434
|
+
if (!props.error.context?.descriptionTemplate) {
|
|
2435
|
+
return prepareDescription(props.error.description ?? "");
|
|
2436
|
+
}
|
|
2437
|
+
const parameterName = parameterDisplayName(props.error.context.parameter);
|
|
2438
|
+
return prepareDescription(
|
|
2439
|
+
props.error.context.descriptionTemplate.replace(/%%PARAMETER%%/g, parameterName)
|
|
2440
|
+
);
|
|
2441
|
+
}
|
|
2442
|
+
function addItemIndexSuffix(message) {
|
|
2443
|
+
let itemIndexSuffix = "";
|
|
2444
|
+
if (hasManyInputItems.value && props.error?.context?.itemIndex !== void 0) {
|
|
2445
|
+
itemIndexSuffix = `item ${props.error.context.itemIndex}`;
|
|
2446
|
+
}
|
|
2447
|
+
if (message.includes(itemIndexSuffix)) return message;
|
|
2448
|
+
return `${message} [${itemIndexSuffix}]`;
|
|
2449
|
+
}
|
|
2450
|
+
function getErrorMessage() {
|
|
2451
|
+
let message = "";
|
|
2452
|
+
const isNonEmptyString = (value) => !!value && typeof value === "string";
|
|
2453
|
+
if (isSubNodeError.value) {
|
|
2454
|
+
message = i18n.baseText("nodeErrorView.errorSubNode", {
|
|
2455
|
+
interpolate: { node: props.error.node.name }
|
|
2456
|
+
});
|
|
2457
|
+
} else if (isNonEmptyString(props.error.message) && (props.error.message === props.error.description || !props.error.context?.messageTemplate)) {
|
|
2458
|
+
message = props.error.message;
|
|
2459
|
+
} else if (isNonEmptyString(props.error.context?.messageTemplate) && isNonEmptyString(props.error.context?.parameter)) {
|
|
2460
|
+
const parameterName = parameterDisplayName(props.error.context.parameter);
|
|
2461
|
+
message = props.error.context.messageTemplate.replace(/%%PARAMETER%%/g, parameterName);
|
|
2462
|
+
} else if (Array.isArray(props.error.messages) && props.error.messages.length > 0) {
|
|
2463
|
+
message = props.error.messages[0];
|
|
2464
|
+
}
|
|
2465
|
+
return addItemIndexSuffix(message);
|
|
2466
|
+
}
|
|
2467
|
+
function parameterDisplayName(path, fullPath = true) {
|
|
2468
|
+
try {
|
|
2469
|
+
const params = getParameterName(parameters.value, path.split("."));
|
|
2470
|
+
if (!params.length) {
|
|
2471
|
+
throw new Error();
|
|
2472
|
+
}
|
|
2473
|
+
if (!fullPath) {
|
|
2474
|
+
return params.pop().displayName;
|
|
2475
|
+
}
|
|
2476
|
+
return params.map((parameter) => parameter.displayName).join(" > ");
|
|
2477
|
+
} catch (error) {
|
|
2478
|
+
return `Could not find parameter "${path}"`;
|
|
2479
|
+
}
|
|
3210
2480
|
}
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
2481
|
+
function getParameterName(params, pathParts) {
|
|
2482
|
+
let currentParameterName = pathParts.shift();
|
|
2483
|
+
if (currentParameterName === void 0) {
|
|
2484
|
+
return [];
|
|
2485
|
+
}
|
|
2486
|
+
const arrayMatch = currentParameterName.match(/(.*)\[([\d])\]$/);
|
|
2487
|
+
if (arrayMatch !== null && arrayMatch.length > 0) {
|
|
2488
|
+
currentParameterName = arrayMatch[1];
|
|
2489
|
+
}
|
|
2490
|
+
const currentParameter = params.find(
|
|
2491
|
+
(parameter) => parameter.name === currentParameterName
|
|
2492
|
+
);
|
|
2493
|
+
if (currentParameter === void 0) {
|
|
2494
|
+
throw new Error(`Could not find parameter "${currentParameterName}"`);
|
|
2495
|
+
}
|
|
2496
|
+
if (pathParts.length === 0) {
|
|
2497
|
+
return [currentParameter];
|
|
2498
|
+
}
|
|
2499
|
+
if (currentParameter.hasOwnProperty("options")) {
|
|
2500
|
+
return [
|
|
2501
|
+
currentParameter,
|
|
2502
|
+
...getParameterName(currentParameter.options, pathParts)
|
|
2503
|
+
];
|
|
2504
|
+
}
|
|
2505
|
+
if (currentParameter.hasOwnProperty("values")) {
|
|
2506
|
+
return [
|
|
2507
|
+
currentParameter,
|
|
2508
|
+
...getParameterName(currentParameter.values, pathParts)
|
|
2509
|
+
];
|
|
2510
|
+
}
|
|
2511
|
+
return [currentParameter];
|
|
3215
2512
|
}
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
const
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
}
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
const
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
const _hoisted_8$1 = ["src"];
|
|
3246
|
-
const _hoisted_9$1 = ["src"];
|
|
3247
|
-
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
3248
|
-
__name: "BinaryDataDisplayEmbed",
|
|
3249
|
-
props: {
|
|
3250
|
-
binaryData: {}
|
|
3251
|
-
},
|
|
3252
|
-
setup(__props) {
|
|
3253
|
-
const props = __props;
|
|
3254
|
-
const isLoading = ref(true);
|
|
3255
|
-
const embedSource = ref("");
|
|
3256
|
-
const error = ref(false);
|
|
3257
|
-
const data = ref("");
|
|
3258
|
-
const workflowsStore = useWorkflowsStore();
|
|
3259
|
-
const i18n = useI18n();
|
|
3260
|
-
const embedClass = computed(() => {
|
|
3261
|
-
return [props.binaryData.fileType ?? "other"];
|
|
3262
|
-
});
|
|
3263
|
-
onMounted(async () => {
|
|
3264
|
-
const { id, data: binaryData, fileName, fileType, mimeType } = props.binaryData;
|
|
3265
|
-
const isJSONData = fileType === "json";
|
|
3266
|
-
const isHTMLData = fileType === "html";
|
|
3267
|
-
if (!id) {
|
|
3268
|
-
if (isJSONData || isHTMLData) {
|
|
3269
|
-
data.value = jsonParse(atob(binaryData));
|
|
3270
|
-
} else {
|
|
3271
|
-
embedSource.value = "data:" + mimeType + ";base64," + binaryData;
|
|
2513
|
+
function copyErrorDetails() {
|
|
2514
|
+
const error = props.error;
|
|
2515
|
+
const errorInfo = {
|
|
2516
|
+
errorMessage: getErrorMessage()
|
|
2517
|
+
};
|
|
2518
|
+
if (error.description) {
|
|
2519
|
+
errorInfo.errorDescription = error.description;
|
|
2520
|
+
}
|
|
2521
|
+
const errorDetails = {};
|
|
2522
|
+
if (error?.messages?.length) {
|
|
2523
|
+
errorDetails.rawErrorMessage = error.messages;
|
|
2524
|
+
}
|
|
2525
|
+
if ("httpCode" in error && error.httpCode) {
|
|
2526
|
+
errorDetails.httpCode = error.httpCode;
|
|
2527
|
+
}
|
|
2528
|
+
if (error.context && error.context.data) {
|
|
2529
|
+
errorDetails.errorData = error.context.data;
|
|
2530
|
+
}
|
|
2531
|
+
if (error.extra) {
|
|
2532
|
+
errorDetails.errorExtra = error.extra;
|
|
2533
|
+
}
|
|
2534
|
+
errorInfo.errorDetails = errorDetails;
|
|
2535
|
+
const n8nDetails = {};
|
|
2536
|
+
if (error.node) {
|
|
2537
|
+
n8nDetails.nodeName = error.node.name;
|
|
2538
|
+
n8nDetails.nodeType = error.node.type;
|
|
2539
|
+
n8nDetails.nodeVersion = error.node.typeVersion;
|
|
2540
|
+
if (error.node?.parameters?.resource) {
|
|
2541
|
+
n8nDetails.resource = error.node.parameters.resource;
|
|
3272
2542
|
}
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
const binaryUrl = workflowsStore.getBinaryUrl(id, "view", fileName ?? "", mimeType);
|
|
3276
|
-
if (isJSONData || isHTMLData) {
|
|
3277
|
-
const fetchedData = await fetch(binaryUrl, { credentials: "include" });
|
|
3278
|
-
data.value = await (isJSONData ? fetchedData.json() : fetchedData.text());
|
|
3279
|
-
} else {
|
|
3280
|
-
embedSource.value = binaryUrl;
|
|
3281
|
-
}
|
|
3282
|
-
} catch (e) {
|
|
3283
|
-
error.value = true;
|
|
2543
|
+
if (error?.node?.parameters?.operation) {
|
|
2544
|
+
n8nDetails.operation = error.node.parameters.operation;
|
|
3284
2545
|
}
|
|
3285
2546
|
}
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
src: embedSource.value,
|
|
3300
|
-
type: _ctx.binaryData.mimeType
|
|
3301
|
-
}, null, 8, _hoisted_7$1),
|
|
3302
|
-
createTextVNode(" " + toDisplayString(unref(i18n).baseText("binaryDataDisplay.yourBrowserDoesNotSupport")), 1)
|
|
3303
|
-
])) : _ctx.binaryData.fileType === "image" ? (openBlock(), createElementBlock("img", {
|
|
3304
|
-
key: 2,
|
|
3305
|
-
src: embedSource.value
|
|
3306
|
-
}, null, 8, _hoisted_8$1)) : _ctx.binaryData.fileType === "json" ? (openBlock(), createBlock(unref(VueJsonPretty), {
|
|
3307
|
-
key: 3,
|
|
3308
|
-
data: data.value,
|
|
3309
|
-
deep: 3,
|
|
3310
|
-
"show-length": true
|
|
3311
|
-
}, null, 8, ["data"])) : _ctx.binaryData.fileType === "html" ? (openBlock(), createBlock(RunDataHtml, {
|
|
3312
|
-
key: 4,
|
|
3313
|
-
"input-html": data.value
|
|
3314
|
-
}, null, 8, ["input-html"])) : (openBlock(), createElementBlock("embed", {
|
|
3315
|
-
key: 5,
|
|
3316
|
-
src: embedSource.value,
|
|
3317
|
-
class: normalizeClass(["binary-data", embedClass.value])
|
|
3318
|
-
}, null, 10, _hoisted_9$1))
|
|
3319
|
-
]))
|
|
3320
|
-
]);
|
|
3321
|
-
};
|
|
3322
|
-
}
|
|
3323
|
-
});
|
|
3324
|
-
const _hoisted_1$4 = { class: "binary-data-window-wrapper" };
|
|
3325
|
-
const _hoisted_2$2 = { key: 0 };
|
|
3326
|
-
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
3327
|
-
__name: "BinaryDataDisplay",
|
|
3328
|
-
props: {
|
|
3329
|
-
displayData: {},
|
|
3330
|
-
windowVisible: { type: Boolean }
|
|
3331
|
-
},
|
|
3332
|
-
emits: ["close"],
|
|
3333
|
-
setup(__props, { emit: __emit }) {
|
|
3334
|
-
const props = __props;
|
|
3335
|
-
const emit = __emit;
|
|
3336
|
-
const nodeHelpers = useNodeHelpers();
|
|
3337
|
-
const workflowsStore = useWorkflowsStore();
|
|
3338
|
-
const i18n = useI18n();
|
|
3339
|
-
const workflowRunData = computed(() => {
|
|
3340
|
-
const workflowExecution = workflowsStore.getWorkflowExecution;
|
|
3341
|
-
if (workflowExecution === null) {
|
|
3342
|
-
return null;
|
|
2547
|
+
if (error.context) {
|
|
2548
|
+
if (error.context.itemIndex !== void 0) {
|
|
2549
|
+
n8nDetails.itemIndex = error.context.itemIndex;
|
|
2550
|
+
}
|
|
2551
|
+
if (error.context.runIndex !== void 0) {
|
|
2552
|
+
n8nDetails.runIndex = error.context.runIndex;
|
|
2553
|
+
}
|
|
2554
|
+
if (error.context.parameter !== void 0) {
|
|
2555
|
+
n8nDetails.parameter = error.context.parameter;
|
|
2556
|
+
}
|
|
2557
|
+
if (error.context.causeDetailed) {
|
|
2558
|
+
n8nDetails.causeDetailed = error.context.causeDetailed;
|
|
2559
|
+
}
|
|
3343
2560
|
}
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
});
|
|
3347
|
-
const binaryData = computed(() => {
|
|
3348
|
-
if (typeof props.displayData.node !== "string" || typeof props.displayData.key !== "string" || typeof props.displayData.runIndex !== "number" || typeof props.displayData.index !== "number" || typeof props.displayData.outputIndex !== "number") {
|
|
3349
|
-
return null;
|
|
2561
|
+
if (error.timestamp) {
|
|
2562
|
+
n8nDetails.time = new Date(error.timestamp).toLocaleString();
|
|
3350
2563
|
}
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
props.displayData.outputIndex
|
|
3356
|
-
);
|
|
3357
|
-
if (binaryDataLocal.length === 0) {
|
|
3358
|
-
return null;
|
|
2564
|
+
n8nDetails.n8nVersion = n8nVersion.value;
|
|
2565
|
+
n8nDetails.binaryDataMode = rootStore.binaryDataMode;
|
|
2566
|
+
if (error.cause) {
|
|
2567
|
+
n8nDetails.cause = error.cause;
|
|
3359
2568
|
}
|
|
3360
|
-
|
|
3361
|
-
|
|
2569
|
+
n8nDetails.stackTrace = error.stack?.split("\n");
|
|
2570
|
+
errorInfo.n8nDetails = n8nDetails;
|
|
2571
|
+
void clipboard.copy(JSON.stringify(errorInfo, null, 2));
|
|
2572
|
+
copySuccess();
|
|
2573
|
+
}
|
|
2574
|
+
function copySuccess() {
|
|
2575
|
+
toast.showMessage({
|
|
2576
|
+
title: i18n.baseText("nodeErrorView.showMessage.title"),
|
|
2577
|
+
type: "info"
|
|
2578
|
+
});
|
|
2579
|
+
}
|
|
2580
|
+
function nodeIsHidden() {
|
|
2581
|
+
const nodeType = nodeTypesStore.getNodeType(node?.value.type);
|
|
2582
|
+
return nodeType?.hidden ?? false;
|
|
2583
|
+
}
|
|
2584
|
+
const onOpenErrorNodeDetailClick = () => {
|
|
2585
|
+
ndvStore.activeNodeName = props.error.node.name;
|
|
2586
|
+
};
|
|
2587
|
+
async function onAskAssistantClick() {
|
|
2588
|
+
const { message, lineNumber, description } = props.error;
|
|
2589
|
+
const sessionInProgress = !assistantStore.isSessionEnded;
|
|
2590
|
+
const errorHelp = {
|
|
2591
|
+
error: {
|
|
2592
|
+
name: props.error.name,
|
|
2593
|
+
message,
|
|
2594
|
+
lineNumber,
|
|
2595
|
+
description: description ?? getErrorDescription(),
|
|
2596
|
+
type: "type" in props.error ? props.error.type : void 0
|
|
2597
|
+
},
|
|
2598
|
+
node: node.value
|
|
2599
|
+
};
|
|
2600
|
+
if (sessionInProgress) {
|
|
2601
|
+
uiStore.openModalWithData({
|
|
2602
|
+
name: NEW_ASSISTANT_SESSION_MODAL,
|
|
2603
|
+
data: { context: { errorHelp } }
|
|
2604
|
+
});
|
|
2605
|
+
return;
|
|
3362
2606
|
}
|
|
3363
|
-
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3367
|
-
|
|
3368
|
-
|
|
2607
|
+
await assistantStore.initErrorHelper(errorHelp);
|
|
2608
|
+
assistantStore.trackUserOpenedAssistant({
|
|
2609
|
+
source: "error",
|
|
2610
|
+
task: "error",
|
|
2611
|
+
has_existing_session: false
|
|
2612
|
+
});
|
|
3369
2613
|
}
|
|
3370
2614
|
return (_ctx, _cache) => {
|
|
3371
2615
|
const _component_n8n_button = resolveComponent("n8n-button");
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
2616
|
+
const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
|
|
2617
|
+
const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
|
|
2618
|
+
const _directive_n8n_html = resolveDirective("n8n-html");
|
|
2619
|
+
return openBlock(), createElementBlock("div", {
|
|
2620
|
+
class: normalizeClass(["node-error-view", props.compact ? "node-error-view_compact" : ""])
|
|
3375
2621
|
}, [
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
2622
|
+
createBaseVNode("div", _hoisted_1$5, [
|
|
2623
|
+
createBaseVNode("div", _hoisted_2$2, [
|
|
2624
|
+
createBaseVNode("div", null, toDisplayString(getErrorMessage()), 1)
|
|
2625
|
+
]),
|
|
2626
|
+
(_ctx.error.description || _ctx.error.context?.descriptionKey) && !isSubNodeError.value ? withDirectives((openBlock(), createElementBlock("div", _hoisted_3$2, null, 512)), [
|
|
2627
|
+
[_directive_n8n_html, getErrorDescription()]
|
|
2628
|
+
]) : createCommentVNode("", true),
|
|
2629
|
+
isSubNodeError.value ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
|
|
2630
|
+
createVNode(_component_n8n_button, {
|
|
2631
|
+
icon: "arrow-right",
|
|
2632
|
+
type: "secondary",
|
|
2633
|
+
label: unref(i18n).baseText("pushConnection.executionError.openNode"),
|
|
2634
|
+
class: "node-error-view__button",
|
|
2635
|
+
"data-test-id": "node-error-view-open-node-button",
|
|
2636
|
+
onClick: onOpenErrorNodeDetailClick
|
|
2637
|
+
}, null, 8, ["label"])
|
|
2638
|
+
])) : createCommentVNode("", true),
|
|
2639
|
+
isAskAssistantAvailable.value ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
|
|
2640
|
+
createVNode(InlineAskAssistantButton, {
|
|
2641
|
+
asked: assistantAlreadyAsked.value,
|
|
2642
|
+
onClick: onAskAssistantClick
|
|
2643
|
+
}, null, 8, ["asked"])
|
|
2644
|
+
])) : createCommentVNode("", true)
|
|
2645
|
+
]),
|
|
2646
|
+
_ctx.showDetails ? (openBlock(), createElementBlock("div", _hoisted_6$1, [
|
|
2647
|
+
createBaseVNode("div", _hoisted_7$1, [
|
|
2648
|
+
createBaseVNode("p", _hoisted_8$1, toDisplayString(unref(i18n).baseText("nodeErrorView.details.title")), 1),
|
|
2649
|
+
createVNode(_component_n8n_tooltip, {
|
|
2650
|
+
class: "item",
|
|
2651
|
+
content: unref(i18n).baseText("nodeErrorView.copyToClipboard.tooltip"),
|
|
2652
|
+
placement: "left"
|
|
2653
|
+
}, {
|
|
2654
|
+
default: withCtx(() => [
|
|
2655
|
+
createBaseVNode("div", _hoisted_9$1, [
|
|
2656
|
+
createVNode(unref(_sfc_main$b), {
|
|
2657
|
+
icon: "copy",
|
|
2658
|
+
type: "secondary",
|
|
2659
|
+
size: "mini",
|
|
2660
|
+
text: true,
|
|
2661
|
+
"transparent-background": "transparent",
|
|
2662
|
+
onClick: copyErrorDetails
|
|
2663
|
+
})
|
|
2664
|
+
])
|
|
2665
|
+
]),
|
|
2666
|
+
_: 1
|
|
2667
|
+
}, 8, ["content"])
|
|
2668
|
+
]),
|
|
2669
|
+
createBaseVNode("div", _hoisted_10, [
|
|
2670
|
+
"httpCode" in _ctx.error && _ctx.error.httpCode || prepareRawMessages.value.length || _ctx.error?.context?.data || _ctx.error.extra ? (openBlock(), createElementBlock("details", _hoisted_11, [
|
|
2671
|
+
createBaseVNode("summary", _hoisted_12, [
|
|
2672
|
+
createVNode(_component_font_awesome_icon, {
|
|
2673
|
+
class: "node-error-view__details-icon",
|
|
2674
|
+
icon: "angle-right"
|
|
2675
|
+
}),
|
|
2676
|
+
createTextVNode(" " + toDisplayString(unref(i18n).baseText("nodeErrorView.details.from", {
|
|
2677
|
+
interpolate: { node: `${nodeDefaultName.value}` }
|
|
2678
|
+
})), 1)
|
|
2679
|
+
]),
|
|
2680
|
+
createBaseVNode("div", _hoisted_13, [
|
|
2681
|
+
"httpCode" in _ctx.error && _ctx.error.httpCode ? (openBlock(), createElementBlock("div", _hoisted_14, [
|
|
2682
|
+
createBaseVNode("p", _hoisted_15, toDisplayString(unref(i18n).baseText("nodeErrorView.errorCode")), 1),
|
|
2683
|
+
createBaseVNode("p", _hoisted_16, [
|
|
2684
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.httpCode), 1)
|
|
2685
|
+
])
|
|
2686
|
+
])) : createCommentVNode("", true),
|
|
2687
|
+
prepareRawMessages.value.length ? (openBlock(), createElementBlock("div", _hoisted_17, [
|
|
2688
|
+
createBaseVNode("p", _hoisted_18, toDisplayString(unref(i18n).baseText("nodeErrorView.details.rawMessages")), 1),
|
|
2689
|
+
createBaseVNode("div", _hoisted_19, [
|
|
2690
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(prepareRawMessages.value, (msg, index) => {
|
|
2691
|
+
return openBlock(), createElementBlock("div", { key: index }, [
|
|
2692
|
+
createBaseVNode("pre", null, [
|
|
2693
|
+
createBaseVNode("code", null, toDisplayString(msg), 1)
|
|
2694
|
+
])
|
|
2695
|
+
]);
|
|
2696
|
+
}), 128))
|
|
2697
|
+
])
|
|
2698
|
+
])) : createCommentVNode("", true),
|
|
2699
|
+
_ctx.error?.context?.data ? (openBlock(), createElementBlock("div", _hoisted_20, [
|
|
2700
|
+
createBaseVNode("p", _hoisted_21, toDisplayString(unref(i18n).baseText("nodeErrorView.details.errorData")), 1),
|
|
2701
|
+
createBaseVNode("div", _hoisted_22, [
|
|
2702
|
+
createBaseVNode("pre", null, [
|
|
2703
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.context.data), 1)
|
|
2704
|
+
])
|
|
2705
|
+
])
|
|
2706
|
+
])) : createCommentVNode("", true),
|
|
2707
|
+
_ctx.error.extra ? (openBlock(), createElementBlock("div", _hoisted_23, [
|
|
2708
|
+
createBaseVNode("p", _hoisted_24, toDisplayString(unref(i18n).baseText("nodeErrorView.details.errorExtra")), 1),
|
|
2709
|
+
createBaseVNode("div", _hoisted_25, [
|
|
2710
|
+
createBaseVNode("pre", null, [
|
|
2711
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.extra), 1)
|
|
2712
|
+
])
|
|
2713
|
+
])
|
|
2714
|
+
])) : createCommentVNode("", true),
|
|
2715
|
+
_ctx.error.context && _ctx.error.context.request ? (openBlock(), createElementBlock("div", _hoisted_26, [
|
|
2716
|
+
createBaseVNode("p", _hoisted_27, toDisplayString(unref(i18n).baseText("nodeErrorView.details.request")), 1),
|
|
2717
|
+
createBaseVNode("div", _hoisted_28, [
|
|
2718
|
+
createBaseVNode("pre", null, [
|
|
2719
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.context.request), 1)
|
|
2720
|
+
])
|
|
2721
|
+
])
|
|
2722
|
+
])) : createCommentVNode("", true)
|
|
2723
|
+
])
|
|
2724
|
+
])) : createCommentVNode("", true),
|
|
2725
|
+
createBaseVNode("details", _hoisted_29, [
|
|
2726
|
+
createBaseVNode("summary", _hoisted_30, [
|
|
2727
|
+
createVNode(_component_font_awesome_icon, {
|
|
2728
|
+
class: "node-error-view__details-icon",
|
|
2729
|
+
icon: "angle-right"
|
|
2730
|
+
}),
|
|
2731
|
+
createTextVNode(" " + toDisplayString(unref(i18n).baseText("nodeErrorView.details.info")), 1)
|
|
2732
|
+
]),
|
|
2733
|
+
createBaseVNode("div", _hoisted_31, [
|
|
2734
|
+
_ctx.error.context && _ctx.error.context.itemIndex !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_32, [
|
|
2735
|
+
createBaseVNode("p", _hoisted_33, toDisplayString(unref(i18n).baseText("nodeErrorView.itemIndex")), 1),
|
|
2736
|
+
createBaseVNode("p", _hoisted_34, [
|
|
2737
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.context.itemIndex), 1)
|
|
2738
|
+
])
|
|
2739
|
+
])) : createCommentVNode("", true),
|
|
2740
|
+
_ctx.error.context && _ctx.error.context.runIndex !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_35, [
|
|
2741
|
+
createBaseVNode("p", _hoisted_36, toDisplayString(unref(i18n).baseText("nodeErrorView.runIndex")), 1),
|
|
2742
|
+
createBaseVNode("p", _hoisted_37, [
|
|
2743
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.context.runIndex), 1)
|
|
2744
|
+
])
|
|
2745
|
+
])) : createCommentVNode("", true),
|
|
2746
|
+
_ctx.error.context && _ctx.error.context.parameter !== void 0 ? (openBlock(), createElementBlock("div", _hoisted_38, [
|
|
2747
|
+
createBaseVNode("p", _hoisted_39, toDisplayString(unref(i18n).baseText("nodeErrorView.inParameter")), 1),
|
|
2748
|
+
createBaseVNode("p", _hoisted_40, [
|
|
2749
|
+
createBaseVNode("code", null, toDisplayString(parameterDisplayName(`${_ctx.error.context.parameter}`)), 1)
|
|
2750
|
+
])
|
|
2751
|
+
])) : createCommentVNode("", true),
|
|
2752
|
+
_ctx.error.node && _ctx.error.node.type ? (openBlock(), createElementBlock("div", _hoisted_41, [
|
|
2753
|
+
createBaseVNode("p", _hoisted_42, toDisplayString(unref(i18n).baseText("nodeErrorView.details.nodeType")), 1),
|
|
2754
|
+
createBaseVNode("p", _hoisted_43, [
|
|
2755
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.node.type), 1)
|
|
2756
|
+
])
|
|
2757
|
+
])) : createCommentVNode("", true),
|
|
2758
|
+
_ctx.error.node && _ctx.error.node.typeVersion ? (openBlock(), createElementBlock("div", _hoisted_44, [
|
|
2759
|
+
createBaseVNode("p", _hoisted_45, toDisplayString(unref(i18n).baseText("nodeErrorView.details.nodeVersion")), 1),
|
|
2760
|
+
createBaseVNode("p", _hoisted_46, [
|
|
2761
|
+
createBaseVNode("code", null, [
|
|
2762
|
+
createBaseVNode("span", null, toDisplayString(_ctx.error.node.typeVersion + " "), 1),
|
|
2763
|
+
createBaseVNode("span", null, "(" + toDisplayString(nodeVersionTag(_ctx.error.node)) + ")", 1)
|
|
2764
|
+
])
|
|
2765
|
+
])
|
|
2766
|
+
])) : createCommentVNode("", true),
|
|
2767
|
+
createBaseVNode("div", _hoisted_47, [
|
|
2768
|
+
createBaseVNode("p", _hoisted_48, toDisplayString(unref(i18n).baseText("nodeErrorView.details.n8nVersion")), 1),
|
|
2769
|
+
createBaseVNode("p", _hoisted_49, [
|
|
2770
|
+
createBaseVNode("code", null, toDisplayString(n8nVersion.value), 1)
|
|
2771
|
+
])
|
|
2772
|
+
]),
|
|
2773
|
+
_ctx.error.timestamp ? (openBlock(), createElementBlock("div", _hoisted_50, [
|
|
2774
|
+
createBaseVNode("p", _hoisted_51, toDisplayString(unref(i18n).baseText("nodeErrorView.time")), 1),
|
|
2775
|
+
createBaseVNode("p", _hoisted_52, [
|
|
2776
|
+
createBaseVNode("code", null, toDisplayString(new Date(_ctx.error.timestamp).toLocaleString()), 1)
|
|
2777
|
+
])
|
|
2778
|
+
])) : createCommentVNode("", true),
|
|
2779
|
+
_ctx.error.cause && displayCause.value ? (openBlock(), createElementBlock("div", _hoisted_53, [
|
|
2780
|
+
createBaseVNode("p", _hoisted_54, toDisplayString(unref(i18n).baseText("nodeErrorView.details.errorCause")), 1),
|
|
2781
|
+
createBaseVNode("pre", _hoisted_55, [
|
|
2782
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.cause), 1)
|
|
2783
|
+
])
|
|
2784
|
+
])) : createCommentVNode("", true),
|
|
2785
|
+
_ctx.error.context && _ctx.error.context.causeDetailed ? (openBlock(), createElementBlock("div", _hoisted_56, [
|
|
2786
|
+
createBaseVNode("p", _hoisted_57, toDisplayString(unref(i18n).baseText("nodeErrorView.details.causeDetailed")), 1),
|
|
2787
|
+
createBaseVNode("pre", _hoisted_58, [
|
|
2788
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.context.causeDetailed), 1)
|
|
2789
|
+
])
|
|
2790
|
+
])) : createCommentVNode("", true),
|
|
2791
|
+
_ctx.error.stack ? (openBlock(), createElementBlock("div", _hoisted_59, [
|
|
2792
|
+
createBaseVNode("p", _hoisted_60, toDisplayString(unref(i18n).baseText("nodeErrorView.details.stackTrace")), 1),
|
|
2793
|
+
createBaseVNode("pre", _hoisted_61, [
|
|
2794
|
+
createBaseVNode("code", null, toDisplayString(_ctx.error.stack), 1)
|
|
2795
|
+
])
|
|
2796
|
+
])) : createCommentVNode("", true)
|
|
2797
|
+
])
|
|
2798
|
+
])
|
|
2799
|
+
])
|
|
2800
|
+
])) : createCommentVNode("", true)
|
|
2801
|
+
], 2);
|
|
3391
2802
|
};
|
|
3392
2803
|
}
|
|
3393
2804
|
});
|
|
3394
|
-
const _hoisted_1$
|
|
2805
|
+
const _hoisted_1$4 = { key: 0 };
|
|
3395
2806
|
const _hoisted_2$1 = { key: 1 };
|
|
3396
2807
|
const _hoisted_3$1 = { key: 2 };
|
|
3397
2808
|
const _hoisted_4$1 = { key: 0 };
|
|
3398
2809
|
const _hoisted_5$1 = { key: 1 };
|
|
3399
|
-
const _sfc_main$
|
|
2810
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
3400
2811
|
__name: "RunDataPinButton",
|
|
3401
2812
|
props: {
|
|
3402
2813
|
tooltipContentsVisibility: {},
|
|
@@ -3418,7 +2829,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
3418
2829
|
visible: visible.value
|
|
3419
2830
|
}, {
|
|
3420
2831
|
content: withCtx(() => [
|
|
3421
|
-
props.tooltipContentsVisibility.binaryDataTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
2832
|
+
props.tooltipContentsVisibility.binaryDataTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_1$4, toDisplayString(unref(locale).baseText("ndv.pinData.pin.binary")), 1)) : props.tooltipContentsVisibility.pinDataDiscoveryTooltipContent ? (openBlock(), createElementBlock("div", _hoisted_2$1, toDisplayString(unref(locale).baseText("node.discovery.pinData.ndv")), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$1, [
|
|
3422
2833
|
_ctx.pinnedData.hasData.value ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
|
|
3423
2834
|
createBaseVNode("strong", null, toDisplayString(unref(locale).baseText("ndv.pinData.unpin.title")), 1)
|
|
3424
2835
|
])) : (openBlock(), createElementBlock("div", _hoisted_5$1, [
|
|
@@ -3461,13 +2872,72 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
3461
2872
|
}
|
|
3462
2873
|
});
|
|
3463
2874
|
const pinDataButton = "_pinDataButton_12tk2_123";
|
|
3464
|
-
const style0$
|
|
2875
|
+
const style0$4 = {
|
|
3465
2876
|
pinDataButton
|
|
3466
2877
|
};
|
|
2878
|
+
const cssModules$4 = {
|
|
2879
|
+
"$style": style0$4
|
|
2880
|
+
};
|
|
2881
|
+
const RunDataPinButton = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$4]]);
|
|
2882
|
+
const _hoisted_1$3 = ["href"];
|
|
2883
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
2884
|
+
__name: "ViewSubExecution",
|
|
2885
|
+
props: {
|
|
2886
|
+
taskMetadata: {},
|
|
2887
|
+
displayMode: {},
|
|
2888
|
+
inline: { type: Boolean, default: false }
|
|
2889
|
+
},
|
|
2890
|
+
setup(__props) {
|
|
2891
|
+
const { trackOpeningRelatedExecution, resolveRelatedExecutionUrl } = useExecutionHelpers();
|
|
2892
|
+
const i18n = useI18n();
|
|
2893
|
+
const props = __props;
|
|
2894
|
+
const hasRelatedExecution = computed(() => {
|
|
2895
|
+
return Boolean(props.taskMetadata.subExecution ?? props.taskMetadata.parentExecution);
|
|
2896
|
+
});
|
|
2897
|
+
function getExecutionLinkLabel(task) {
|
|
2898
|
+
if (task.parentExecution) {
|
|
2899
|
+
return i18n.baseText("runData.openParentExecution", {
|
|
2900
|
+
interpolate: { id: task.parentExecution.executionId }
|
|
2901
|
+
});
|
|
2902
|
+
}
|
|
2903
|
+
if (task.subExecution) {
|
|
2904
|
+
if (props.taskMetadata.subExecutionsCount === 1) {
|
|
2905
|
+
return i18n.baseText("runData.openSubExecutionSingle");
|
|
2906
|
+
} else {
|
|
2907
|
+
return i18n.baseText("runData.openSubExecutionWithId", {
|
|
2908
|
+
interpolate: { id: task.subExecution.executionId }
|
|
2909
|
+
});
|
|
2910
|
+
}
|
|
2911
|
+
}
|
|
2912
|
+
return;
|
|
2913
|
+
}
|
|
2914
|
+
return (_ctx, _cache) => {
|
|
2915
|
+
const _component_N8nIcon = resolveComponent("N8nIcon");
|
|
2916
|
+
return hasRelatedExecution.value ? (openBlock(), createElementBlock("a", {
|
|
2917
|
+
key: 0,
|
|
2918
|
+
class: normalizeClass({ [_ctx.$style.relatedExecutionInfo]: !_ctx.inline }),
|
|
2919
|
+
"data-test-id": "related-execution-link",
|
|
2920
|
+
href: unref(resolveRelatedExecutionUrl)(_ctx.taskMetadata),
|
|
2921
|
+
target: "_blank",
|
|
2922
|
+
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => unref(trackOpeningRelatedExecution)(_ctx.taskMetadata, _ctx.displayMode), ["stop"]))
|
|
2923
|
+
}, [
|
|
2924
|
+
createVNode(_component_N8nIcon, {
|
|
2925
|
+
icon: "external-link-alt",
|
|
2926
|
+
size: "xsmall"
|
|
2927
|
+
}),
|
|
2928
|
+
createTextVNode(" " + toDisplayString(getExecutionLinkLabel(_ctx.taskMetadata)), 1)
|
|
2929
|
+
], 10, _hoisted_1$3)) : createCommentVNode("", true);
|
|
2930
|
+
};
|
|
2931
|
+
}
|
|
2932
|
+
});
|
|
2933
|
+
const relatedExecutionInfo = "_relatedExecutionInfo_saqms_123";
|
|
2934
|
+
const style0$3 = {
|
|
2935
|
+
relatedExecutionInfo
|
|
2936
|
+
};
|
|
3467
2937
|
const cssModules$3 = {
|
|
3468
2938
|
"$style": style0$3
|
|
3469
2939
|
};
|
|
3470
|
-
const
|
|
2940
|
+
const ViewSubExecution = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$3]]);
|
|
3471
2941
|
const _hoisted_1$2 = { key: 0 };
|
|
3472
2942
|
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
3473
2943
|
__name: "RunDataItemCount",
|
|
@@ -3723,22 +3193,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3723
3193
|
emits: ["search", "runChange", "itemHover", "linkRun", "unlinkRun", "activatePane", "tableMounted", "displayModeChange"],
|
|
3724
3194
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
3725
3195
|
const LazyRunDataTable = defineAsyncComponent(
|
|
3726
|
-
async () => await __vitePreload(() => import("./RunDataTable-
|
|
3196
|
+
async () => await __vitePreload(() => import("./RunDataTable-jsoKHQg5.js"), true ? __vite__mapDeps([0,1,2,3,4]) : void 0)
|
|
3727
3197
|
);
|
|
3728
3198
|
const LazyRunDataJson = defineAsyncComponent(
|
|
3729
|
-
async () => await __vitePreload(() => import("./RunDataJson-
|
|
3199
|
+
async () => await __vitePreload(() => import("./RunDataJson-BtfKusCo.js"), true ? __vite__mapDeps([5,1,2,6,3,7]) : void 0)
|
|
3730
3200
|
);
|
|
3731
3201
|
const LazyRunDataSchema = defineAsyncComponent(
|
|
3732
|
-
async () => await __vitePreload(() => import("./index
|
|
3202
|
+
async () => await __vitePreload(() => import("./index--ag0tEQM.js").then((n) => n.iu), true ? __vite__mapDeps([1,2]) : void 0)
|
|
3733
3203
|
);
|
|
3734
3204
|
const LazyRunDataHtml = defineAsyncComponent(
|
|
3735
3205
|
async () => await __vitePreload(() => Promise.resolve().then(() => RunDataHtml$1), true ? void 0 : void 0)
|
|
3736
3206
|
);
|
|
3737
3207
|
const LazyRunDataAi = defineAsyncComponent(
|
|
3738
|
-
async () => await __vitePreload(() => import("./RunDataParsedAiContent-
|
|
3208
|
+
async () => await __vitePreload(() => import("./RunDataParsedAiContent-DPcEKWtn.js"), true ? __vite__mapDeps([8,1,2,6,3,9]) : void 0)
|
|
3739
3209
|
);
|
|
3740
3210
|
const LazyRunDataSearch = defineAsyncComponent(
|
|
3741
|
-
async () => await __vitePreload(() => import("./RunDataSearch-
|
|
3211
|
+
async () => await __vitePreload(() => import("./RunDataSearch-CIKPqFBd.js"), true ? __vite__mapDeps([10,1,2,11]) : void 0)
|
|
3742
3212
|
);
|
|
3743
3213
|
const props = __props;
|
|
3744
3214
|
const emit = __emit;
|
|
@@ -4678,7 +4148,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4678
4148
|
]),
|
|
4679
4149
|
_: 1
|
|
4680
4150
|
}, 8, ["class"])) : createCommentVNode("", true),
|
|
4681
|
-
binaryDataDisplayData.value ? (openBlock(), createBlock(_sfc_main$
|
|
4151
|
+
binaryDataDisplayData.value ? (openBlock(), createBlock(_sfc_main$7, {
|
|
4682
4152
|
key: 1,
|
|
4683
4153
|
"window-visible": binaryDataDisplayVisible.value,
|
|
4684
4154
|
"display-data": binaryDataDisplayData.value,
|
|
@@ -4973,7 +4443,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4973
4443
|
key: 2,
|
|
4974
4444
|
class: normalizeClass(_ctx.$style.stretchVertically)
|
|
4975
4445
|
}, [
|
|
4976
|
-
createVNode(_sfc_main$
|
|
4446
|
+
createVNode(_sfc_main$6, {
|
|
4977
4447
|
compact: _ctx.compact,
|
|
4978
4448
|
error: subworkflowExecutionError.value,
|
|
4979
4449
|
class: normalizeClass(_ctx.$style.errorDisplay),
|
|
@@ -5068,14 +4538,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
5068
4538
|
]),
|
|
5069
4539
|
_: 1
|
|
5070
4540
|
}, 8, ["class"])) : _ctx.$slots["content"] ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
5071
|
-
workflowRunErrorAsNodeError.value ? (openBlock(), createBlock(_sfc_main$
|
|
4541
|
+
workflowRunErrorAsNodeError.value ? (openBlock(), createBlock(_sfc_main$6, {
|
|
5072
4542
|
key: 0,
|
|
5073
4543
|
error: workflowRunErrorAsNodeError.value,
|
|
5074
4544
|
class: normalizeClass(_ctx.$style.inlineError),
|
|
5075
4545
|
compact: _ctx.compact
|
|
5076
4546
|
}, null, 8, ["error", "class", "compact"])) : createCommentVNode("", true),
|
|
5077
4547
|
renderSlot(_ctx.$slots, "content", {}, void 0, true)
|
|
5078
|
-
])) : workflowRunErrorAsNodeError.value ? (openBlock(), createBlock(_sfc_main$
|
|
4548
|
+
])) : workflowRunErrorAsNodeError.value ? (openBlock(), createBlock(_sfc_main$6, {
|
|
5079
4549
|
key: 2,
|
|
5080
4550
|
error: workflowRunErrorAsNodeError.value,
|
|
5081
4551
|
class: normalizeClass(_ctx.$style.dataDisplay),
|
|
@@ -5526,30 +4996,13 @@ const style0 = {
|
|
|
5526
4996
|
const cssModules = {
|
|
5527
4997
|
"$style": style0
|
|
5528
4998
|
};
|
|
5529
|
-
const RunData = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-
|
|
4999
|
+
const RunData = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-44a9b4ca"]]);
|
|
5530
5000
|
export {
|
|
5531
5001
|
HighlightJS as H,
|
|
5532
5002
|
RunData as R,
|
|
5533
5003
|
VueMarkdown as V,
|
|
5534
|
-
_sfc_main$
|
|
5535
|
-
|
|
5536
|
-
|
|
5537
|
-
|
|
5538
|
-
deepToRaw as d,
|
|
5539
|
-
getEntryAtRelativeIndex as e,
|
|
5540
|
-
formatTokenUsageCount as f,
|
|
5541
|
-
getSubtreeTotalConsumedTokens as g,
|
|
5542
|
-
hasSubExecution as h,
|
|
5543
|
-
getDepth as i,
|
|
5544
|
-
findLogEntryRec as j,
|
|
5545
|
-
flattenLogEntries as k,
|
|
5546
|
-
_sfc_main$a as l,
|
|
5547
|
-
mergeStartData as m,
|
|
5548
|
-
getConsumedTokens as n,
|
|
5549
|
-
ViewSubExecution as o,
|
|
5550
|
-
parseAiContent as p,
|
|
5551
|
-
createAiData as q,
|
|
5552
|
-
getTreeNodeData as r,
|
|
5553
|
-
getReferencedData as s,
|
|
5554
|
-
VueJsonPretty as t
|
|
5004
|
+
_sfc_main$a as _,
|
|
5005
|
+
VueJsonPretty as a,
|
|
5006
|
+
_sfc_main$6 as b,
|
|
5007
|
+
ViewSubExecution as c
|
|
5555
5008
|
};
|