n8n-editor-ui 1.91.1 → 1.93.0

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.
Files changed (120) hide show
  1. package/dist/assets/{AnimatedSpinner-BrkRvAXQ.js → AnimatedSpinner-hbTZDd93.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DRamY8Fo.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CYzc5StE.js} +1 -1
  3. package/dist/assets/{AuthView-ehh7NFh5.js → AuthView-8SLMP0H_.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-DUBgoMXw.js → CanvasChatSwitch-Dt8TgNJg.js} +22 -10
  5. package/dist/assets/{ChangePasswordView-BLFb7_-o.js → ChangePasswordView-DIRyDp89.js} +3 -3
  6. package/dist/assets/CollectionParameter-Cj4t6-hd.js +4 -0
  7. package/dist/assets/{CredentialsView-1uYUpp0G.js → CredentialsView-B6-VxAJ6.js} +26 -11
  8. package/dist/assets/{DemoFooter-CNfkqkRC.js → DemoFooter-CIHwH5PG.js} +8 -8
  9. package/dist/assets/{ErrorView-CmYweWFA.js → ErrorView-C7i0TZwT.js} +1 -1
  10. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-DAWTDTON.js → ExecutionsTime.vue_vue_type_script_setup_true_lang--2G21NNR.js} +2 -2
  11. package/dist/assets/{ExecutionsView-fotg1R4V.js → ExecutionsView-C_YtciAr.js} +10 -9
  12. package/dist/assets/{FileSaver.min-CcnqpaV-.js → FileSaver.min-bgn7Q9Gt.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-BYR4RzWw.js → FixedCollectionParameter-BPCJ5aaq.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-CQMKtpr-.js → ForgotMyPasswordView-DyUaGd6Z.js} +3 -3
  15. package/dist/assets/{InsightsChartAverageRuntime-B-9BU5qw.js → InsightsChartAverageRuntime-BB2I2vpV.js} +4 -4
  16. package/dist/assets/{InsightsChartFailed-Bd1BlFEm.js → InsightsChartFailed-CN_Rl3Bl.js} +4 -4
  17. package/dist/assets/{InsightsChartFailureRate-DPTCueAp.js → InsightsChartFailureRate-CHKlg6tg.js} +4 -4
  18. package/dist/assets/{InsightsChartTimeSaved-CSVKB08W.js → InsightsChartTimeSaved-Cd05cM8q.js} +4 -4
  19. package/dist/assets/{InsightsChartTotal-Bxjmisao.js → InsightsChartTotal-ChAO7myf.js} +4 -4
  20. package/dist/assets/{InsightsDashboard-5cOORj5z.js → InsightsDashboard-BeCfBVUz.js} +10 -10
  21. package/dist/assets/{InsightsPaywall-Bdo_3Ic_.js → InsightsPaywall-Chz8CDc3.js} +1 -1
  22. package/dist/assets/{InsightsSummary-DB62HhNM.js → InsightsSummary-MECenLJQ.js} +1 -1
  23. package/dist/assets/{InsightsTableWorkflows-BEC5Yh0b.js → InsightsTableWorkflows-5rpYY7YT.js} +2 -2
  24. package/dist/assets/{Logo-CK8euEWT.js → Logo-DUDCllkm.js} +1 -1
  25. package/dist/assets/{LogsPanel-CrGEYFLo.js → LogsPanel-D9r5AcQH.js} +75 -106
  26. package/dist/assets/{LogsPanel-DLC2TAqh.css → LogsPanel-mTaFEGk_.css} +38 -34
  27. package/dist/assets/{MainHeader-CEPLiR-5.css → MainHeader-CEMGASqv.css} +18 -11
  28. package/dist/assets/{MainHeader-C7XOaZKu.js → MainHeader-DkKOOZ_D.js} +145 -79
  29. package/dist/assets/{MainSidebar-CKMiDGvH.css → MainSidebar-D1_1YFQZ.css} +13 -12
  30. package/dist/assets/{MainSidebar-DD_ugRL3.js → MainSidebar-ZUBIWeXm.js} +36 -19
  31. package/dist/assets/{NodeCreation-S2FoBcnW.js → NodeCreation-DCfAFuL5.js} +10 -5
  32. package/dist/assets/{NodeCreator-D9fmPdS2.css → NodeCreator-D18StsVZ.css} +1021 -174
  33. package/dist/assets/{NodeCreator-D6TKVgLu.js → NodeCreator-a0YVv1IE.js} +863 -418
  34. package/dist/assets/{NodeDetailsView-DtvMtBqp.js → NodeDetailsView-C5_hVJzj.js} +60 -47
  35. package/dist/assets/{NodeDetailsView-CGgV4Pn_.css → NodeDetailsView-pYP-34nS.css} +20 -20
  36. package/dist/assets/{NodeView-BPhaaoWK.js → NodeView-Bk9h8GYy.js} +49 -25
  37. package/dist/assets/{ProjectCardBadge-C_L_pqWA.js → ProjectCardBadge-DRlDZx3d.js} +38 -2
  38. package/dist/assets/{ProjectHeader-C0FZTxjm.js → ProjectHeader-DNm605Kk.js} +106 -64
  39. package/dist/assets/{ProjectSettings-DlggJ6Ti.js → ProjectSettings-Dge_6KaR.js} +3 -2
  40. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BNtCDFSj.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-CUf0LkWR.js} +1 -1
  41. package/dist/assets/{ResourcesListLayout-HzoSFUaj.js → ResourcesListLayout-Bbl-1i4l.js} +156 -53
  42. package/dist/assets/{ResourcesListLayout-CtGME7aU.css → ResourcesListLayout-DuNjbsMn.css} +8 -8
  43. package/dist/assets/{RunData-C9dtm1M2.css → RunData-DQeENuzG.css} +12 -2
  44. package/dist/assets/{RunData-D8Eax0cQ.js → RunData-b0RE2JWc.js} +418 -207
  45. package/dist/assets/{RunDataAi-BF2gZZGr.css → RunDataAi-D9VLFXIf.css} +10 -51
  46. package/dist/assets/{RunDataAi-BUnCQIRN.js → RunDataAi-DnWcCR_0.js} +27 -310
  47. package/dist/assets/{RunDataJson-DXd3nZxI.js → RunDataJson-CptVuHuA.js} +7 -7
  48. package/dist/assets/{RunDataJsonActions-aivOaol2.js → RunDataJsonActions-3jjDztw7.js} +1 -1
  49. package/dist/assets/RunDataParsedAiContent-9EEUzCKp.css +176 -0
  50. package/dist/assets/RunDataParsedAiContent-BbXv-NPD.js +148 -0
  51. package/dist/assets/{RunDataSearch-DJ9BZGTu.js → RunDataSearch-B90wjsDA.js} +1 -1
  52. package/dist/assets/{RunDataTable-vEPCwbcC.js → RunDataTable-CpS78GlT.js} +3 -3
  53. package/dist/assets/{SamlOnboarding--OTxMEws.js → SamlOnboarding-Ch9K5rRW.js} +3 -3
  54. package/dist/assets/{SettingsApiView-BulxWyyY.js → SettingsApiView-9GU5n_rm.js} +1 -1
  55. package/dist/assets/{SettingsCommunityNodesView-4wwPXFO2.js → SettingsCommunityNodesView-CPnVRzNX.js} +24 -11
  56. package/dist/assets/{SettingsExternalSecrets-zt7dxBKK.js → SettingsExternalSecrets-D7xTMV9h.js} +1 -1
  57. package/dist/assets/{SettingsLdapView-xneO6UIv.js → SettingsLdapView-OfrjGKkt.js} +1 -1
  58. package/dist/assets/{SettingsLogStreamingView-_h8wUzum.js → SettingsLogStreamingView-C_VnOaeX.js} +1 -1
  59. package/dist/assets/{SettingsPersonalView-CwYMP4sk.js → SettingsPersonalView-Dm24akPV.js} +14 -13
  60. package/dist/assets/{SettingsSourceControl-B9Tg93u3.js → SettingsSourceControl-DDCmL82j.js} +1 -1
  61. package/dist/assets/{SettingsSso-XaL1PzfW.js → SettingsSso-BGGQ0Cpg.js} +14 -1
  62. package/dist/assets/{SettingsUsageAndPlan-Ci15FW81.js → SettingsUsageAndPlan-BzO_zdkH.js} +1 -1
  63. package/dist/assets/{SettingsUsersView-DBJV4vSK.js → SettingsUsersView-DHQUqhqB.js} +1 -1
  64. package/dist/assets/{SettingsView-DMzdPF-1.js → SettingsView-CbtAqjOX.js} +1 -1
  65. package/dist/assets/{SetupView-BqWgdvDq.js → SetupView-BME1OE6U.js} +3 -3
  66. package/dist/assets/{SetupWorkflowCredentialsButton-B2wnuUnF.js → SetupWorkflowCredentialsButton-DZr4TCPC.js} +1 -1
  67. package/dist/assets/{SetupWorkflowFromTemplateView-BwC_wFSc.js → SetupWorkflowFromTemplateView-CPkKEY04.js} +3 -3
  68. package/dist/assets/{SigninView-DpTLJJwD.js → SigninView-DUeRvOiY.js} +3 -3
  69. package/dist/assets/{SignoutView-dkTtOCo1.js → SignoutView-BC7SBunZ.js} +1 -1
  70. package/dist/assets/{SignupView-CJFJJO3L.js → SignupView-B5ecYJ2q.js} +3 -3
  71. package/dist/assets/{TemplateDetails-84YElIBA.js → TemplateDetails-DjanZgC1.js} +1 -1
  72. package/dist/assets/{TemplateList-CGsfKuVA.js → TemplateList-8TyNGxY-.js} +1 -1
  73. package/dist/assets/{TemplatesCollectionView-2y8KZk0I.js → TemplatesCollectionView-BkH4pJCv.js} +5 -5
  74. package/dist/assets/{TemplatesSearchView-DgosiOzl.js → TemplatesSearchView-Bcdhi1SL.js} +3 -3
  75. package/dist/assets/{TemplatesView-CgQSZO4a.js → TemplatesView-De2XB6We.js} +1 -1
  76. package/dist/assets/{TemplatesWorkflowView-2pSUmAbX.js → TemplatesWorkflowView-BVnwtrMa.js} +5 -5
  77. package/dist/assets/{TestDefinitionEditView-C26sWE7p.js → TestDefinitionEditView-DjmPnrTk.js} +7 -7
  78. package/dist/assets/{TestDefinitionListView-Cyl6bsLP.js → TestDefinitionListView-BL2s_qBZ.js} +1 -1
  79. package/dist/assets/{TestDefinitionNewView-CfIZ0atk.js → TestDefinitionNewView-B9BqJZST.js} +2 -2
  80. package/dist/assets/{TestDefinitionRootView-CYg7HBL-.js → TestDefinitionRootView-AlWyxbc0.js} +1 -1
  81. package/dist/assets/{VariablesView-BFE9B0_b.js → VariablesView-BZCvPfan.js} +4 -3
  82. package/dist/assets/{WorkerView-BUMCMS_B.js → WorkerView-CigxqnWi.js} +6 -6
  83. package/dist/assets/{WorkflowActivator-BDLto9c0.js → WorkflowActivator-B7jRy4L1.js} +8 -4
  84. package/dist/assets/{WorkflowActivator-DAyH7N29.css → WorkflowActivator-DrMTmuTZ.css} +2 -2
  85. package/dist/assets/{WorkflowExecutionsInfoAccordion-manN-WIj.js → WorkflowExecutionsInfoAccordion-C_ZycbsF.js} +1 -1
  86. package/dist/assets/{WorkflowExecutionsLandingPage-BzGmpGvf.js → WorkflowExecutionsLandingPage-DOqrfKlC.js} +2 -2
  87. package/dist/assets/{WorkflowExecutionsPreview-CNEV2lom.js → WorkflowExecutionsPreview-B4Cj2gXW.js} +6 -6
  88. package/dist/assets/{WorkflowExecutionsView-WiNvtAmD.js → WorkflowExecutionsView-RXfP7zkJ.js} +11 -9
  89. package/dist/assets/{WorkflowHistory-6uJJqB4x.js → WorkflowHistory-DrXrRwIS.js} +37 -19
  90. package/dist/assets/{WorkflowOnboardingView-CPt_AUR-.js → WorkflowOnboardingView-CXH1vCW2.js} +1 -1
  91. package/dist/assets/{WorkflowPreview-CHUEX6H6.js → WorkflowPreview-B_MuFEV8.js} +1 -1
  92. package/dist/assets/{WorkflowsView-B2_HJCJ5.css → WorkflowsView-CQvTAWQ0.css} +24 -13
  93. package/dist/assets/{WorkflowsView-DbGBRbfc.js → WorkflowsView-D90hfJ35.js} +300 -158
  94. package/dist/assets/{chartjs.utils-C--HONKb.js → chartjs.utils-DalQn9bk.js} +2 -2
  95. package/dist/assets/{dateFormatter-DbKqmK4w.js → dateFormatter-BPfJSa6q.js} +1 -1
  96. package/dist/assets/{easyAiWorkflowUtils-BWgfZ0am.js → easyAiWorkflowUtils-kgtpBx2h.js} +1 -1
  97. package/dist/assets/{global-link-actions-COf-9vBh.js → global-link-actions-CnWOMvqA.js} +1 -1
  98. package/dist/assets/{import-curl-BiXaU2jk.js → import-curl-BvX_O56D.js} +1 -1
  99. package/dist/assets/{index-B6xE9gZ1.js → index-Bb2NNknG.js} +1 -1
  100. package/dist/assets/{index-BLAboPd2.js → index-DZ6VpjNj.js} +4635 -2824
  101. package/dist/assets/{index-sq5ggyEC.css → index-yNaoC3fo.css} +363 -97
  102. package/dist/assets/{pickBy-gZHb6vZ2.js → pickBy-B_HGYyxS.js} +1 -1
  103. package/dist/assets/{templateActions-DCx74tPa.js → templateActions-DQfZ3ni5.js} +1 -1
  104. package/dist/assets/{useBeforeUnload-DbfysOS-.js → useBeforeUnload-Cu0LPVWe.js} +1 -1
  105. package/dist/assets/{useCanvasMapping-CSuq_dYj.js → useCanvasMapping-CTTq6x8X.js} +62 -40
  106. package/dist/assets/{useCanvasMapping-cuXLM-h-.css → useCanvasMapping-VtpW_QZA.css} +6 -5
  107. package/dist/assets/{useCanvasOperations-C0pQBHW3.js → useCanvasOperations-u8oSDa_u.js} +96 -445
  108. package/dist/assets/{useClearExecutionButtonVisible-Cvfxw8xC.js → useClearExecutionButtonVisible-Dwc1_eG9.js} +2 -2
  109. package/dist/assets/{useExecutionDebugging-D2H5O6fT.js → useExecutionDebugging-rc72wLIp.js} +1 -1
  110. package/dist/assets/{useExecutionHelpers-C--m0pTQ.js → useExecutionHelpers-DqwMonFW.js} +2 -2
  111. package/dist/assets/{useImportCurlCommand-XFn6Ezp2.js → useImportCurlCommand-D_onuFvo.js} +19 -10
  112. package/dist/assets/useProjectPages-e8b03-5_.js +17 -0
  113. package/dist/assets/usePushConnection-wm-7Id6Q.js +629 -0
  114. package/dist/assets/{useTestDefinitionForm-2YP-8pAN.js → useTestDefinitionForm-DlUOnNC0.js} +1 -1
  115. package/dist/assets/{useWorkflowActivate-CvmIpy5T.js → useWorkflowActivate-65xML23U.js} +1 -1
  116. package/dist/assets/useWorkflowSaving-CUel20JA.js +66 -0
  117. package/dist/index.html +2 -2
  118. package/package.json +1 -1
  119. package/dist/assets/CollectionParameter-BaH_a73u.js +0 -4
  120. package/dist/assets/usePushConnection-x0iF1Axz.js +0 -537
@@ -120,71 +120,30 @@
120
120
  -------------------------- */
121
121
  /* BEM
122
122
  -------------------------- */
123
- ._copyToClipboard_kaw5r_123 {
124
- position: absolute;
125
- right: var(--spacing-s);
126
- top: var(--spacing-s);
127
- }
128
- ._rawContent_kaw5r_129 {
129
- position: relative;
130
- }
131
- ._markdown_kaw5r_133 {
132
- white-space: pre-wrap;
133
- }
134
- ._markdown_kaw5r_133 h1 {
135
- font-size: var(--font-size-l);
136
- line-height: var(--font-line-height-xloose);
137
- }
138
- ._markdown_kaw5r_133 h2 {
139
- font-size: var(--font-size-m);
140
- line-height: var(--font-line-height-loose);
141
- }
142
- ._markdown_kaw5r_133 h3 {
143
- font-size: var(--font-size-s);
144
- line-height: var(--font-line-height-regular);
145
- }
146
- ._markdown_kaw5r_133 pre {
147
- background: var(--chat--message--pre--background);
148
- border-radius: var(--border-radius-base);
149
- line-height: var(--font-line-height-xloose);
150
- padding: var(--spacing-s);
151
- font-size: var(--font-size-s);
152
- white-space: pre-wrap;
153
- }
154
- ._contentText_kaw5r_157 {
155
- padding-top: var(--spacing-s);
156
- padding-left: var(--spacing-m);
157
- padding-right: var(--spacing-m);
158
- font-size: var(--font-size-s);
159
- }
160
- ._block_kaw5r_164 {
123
+ ._block_wafm4_123 {
161
124
  padding: var(--spacing-s) 0 var(--spacing-2xs) var(--spacing-2xs);
162
125
  border: 1px solid var(--color-foreground-light);
163
126
  margin-top: var(--spacing-s);
164
127
  border-radius: var(--border-radius-base);
165
128
  }
166
- :root ._blockContent_kaw5r_171 {
129
+ :root ._blockContent_wafm4_130 {
167
130
  height: 0;
168
131
  overflow: hidden;
169
132
  }
170
- :root ._blockContent_kaw5r_171._blockContentExpanded_kaw5r_175 {
133
+ :root ._blockContent_wafm4_130._blockContentExpanded_wafm4_134 {
171
134
  height: auto;
172
135
  }
173
- ._runText_kaw5r_179 {
174
- line-height: var(--font-line-height-xloose);
175
- white-space: pre-line;
176
- }
177
- ._rawSwitch_kaw5r_184 {
136
+ ._rawSwitch_wafm4_138 {
178
137
  opacity: 0;
179
138
  height: -moz-fit-content;
180
139
  height: fit-content;
181
140
  margin-left: auto;
182
141
  margin-right: var(--spacing-2xs);
183
142
  }
184
- ._block_kaw5r_164:hover ._rawSwitch_kaw5r_184 {
143
+ ._block_wafm4_123:hover ._rawSwitch_wafm4_138 {
185
144
  opacity: 1;
186
145
  }
187
- ._blockHeader_kaw5r_194 {
146
+ ._blockHeader_wafm4_148 {
188
147
  display: flex;
189
148
  gap: var(--spacing-xs);
190
149
  cursor: pointer;
@@ -193,24 +152,24 @@
193
152
  padding: var(--spacing-2xs) var(--spacing-xs);
194
153
  align-items: center;
195
154
  }
196
- ._blockHeader_kaw5r_194 * {
155
+ ._blockHeader_wafm4_148 * {
197
156
  -webkit-user-select: none;
198
157
  user-select: none;
199
158
  }
200
- ._blockTitle_kaw5r_207 {
159
+ ._blockTitle_wafm4_161 {
201
160
  font-size: var(--font-size-s);
202
161
  color: var(--color-text-dark);
203
162
  margin: 0;
204
163
  padding-bottom: var(--spacing-4xs);
205
164
  }
206
- ._blockToggle_kaw5r_214 {
165
+ ._blockToggle_wafm4_168 {
207
166
  border: none;
208
167
  background: none;
209
168
  padding: 0;
210
169
  color: var(--color-text-base);
211
170
  margin-top: calc(-1 * var(--spacing-3xs));
212
171
  }
213
- ._error_kaw5r_222 {
172
+ ._error_wafm4_176 {
214
173
  padding: var(--spacing-s) 0;
215
174
  }
216
175
  ._container_dypaw_2 {
@@ -1,159 +1,7 @@
1
- import { h as _sfc_main$3, H as HighlightJS, i as getConsumedTokens, V as ViewSubExecution, f as formatTokenUsageCount, _ as _sfc_main$5, j as createAiData, k as getTreeNodeData, l as getReferencedData } from "./RunData-D8Eax0cQ.js";
2
- import { bm as NodeConnectionTypes, ek as isObjectEmpty, d as defineComponent, bf as useClipboard, a as useToast, r as ref, o as onMounted, h as resolveComponent, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, e as createBlock, f as createCommentVNode, j as createVNode, t as toDisplayString, m as unref, F as Fragment, D as renderList, b8 as VueMarkdown, c as useI18n, _ as _export_sfc, bz as useNodeTypesStore, Q as useWorkflowsStore, q as computed, bC as _sfc_main$4, w as withCtx, l as createTextVNode, X as watch, el as ElTree, B as normalizeStyle } from "./index-BLAboPd2.js";
3
- import { d as capitalize } from "./useCanvasOperations-C0pQBHW3.js";
4
- const fallbackParser = (execData) => ({
5
- type: "json",
6
- data: execData,
7
- parsed: false
8
- });
9
- const outputTypeParsers = {
10
- [NodeConnectionTypes.AiLanguageModel](execData) {
11
- const response = execData.response ?? execData;
12
- if (!response) throw new Error("No response from Language Model");
13
- if (Array.isArray(response?.messages) && response?.messages.length === 1 && typeof response?.messages[0] === "string") {
14
- return {
15
- type: "text",
16
- data: response.messages[0],
17
- parsed: true
18
- };
19
- }
20
- if (response.messages && Array.isArray(response.messages)) {
21
- return outputTypeParsers[NodeConnectionTypes.AiMemory](execData);
22
- }
23
- if (response.generations) {
24
- const generations = response.generations;
25
- const content = generations.map((generation) => {
26
- if (generation?.text) return generation.text;
27
- if (Array.isArray(generation)) {
28
- return generation.map((item) => item.text ?? item).join("\n\n").trim();
29
- }
30
- return generation;
31
- });
32
- return {
33
- type: "json",
34
- data: content,
35
- parsed: true
36
- };
37
- }
38
- return {
39
- type: "json",
40
- data: response,
41
- parsed: true
42
- };
43
- },
44
- [NodeConnectionTypes.AiTool]: fallbackParser,
45
- [NodeConnectionTypes.AiAgent]: fallbackParser,
46
- [NodeConnectionTypes.AiMemory](execData) {
47
- const chatHistory = execData.chatHistory ?? execData.messages ?? execData?.response?.chat_history;
48
- if (Array.isArray(chatHistory)) {
49
- const responseText = chatHistory.map((content) => {
50
- if (content.type === "constructor" && content.id?.includes("messages") && content.kwargs) {
51
- let message = content.kwargs.content;
52
- if (Array.isArray(message)) {
53
- message = message.map((item) => {
54
- const { type, image_url } = item;
55
- if (type === "image_url" && typeof image_url === "object" && typeof image_url.url === "string") {
56
- return `![Input image](${image_url.url})`;
57
- } else if (typeof image_url === "string") {
58
- return `![Input image](${image_url})`;
59
- }
60
- return item.text;
61
- }).join("\n");
62
- }
63
- if (Object.keys(content.kwargs.additional_kwargs).length) {
64
- message += ` (${JSON.stringify(content.kwargs.additional_kwargs)})`;
65
- }
66
- if (content.id.includes("HumanMessage")) {
67
- message = `**Human:** ${String(message).trim()}`;
68
- } else if (content.id.includes("AIMessage")) {
69
- message = `**AI:** ${message}`;
70
- } else if (content.id.includes("SystemMessage")) {
71
- message = `**System Message:** ${message}`;
72
- }
73
- return message;
74
- }
75
- return "";
76
- }).join("\n\n");
77
- if (responseText.length === 0) {
78
- return fallbackParser(execData);
79
- }
80
- return {
81
- type: "markdown",
82
- data: responseText,
83
- parsed: true
84
- };
85
- }
86
- return fallbackParser(execData);
87
- },
88
- [NodeConnectionTypes.AiOutputParser]: fallbackParser,
89
- [NodeConnectionTypes.AiRetriever]: fallbackParser,
90
- [NodeConnectionTypes.AiVectorStore](execData) {
91
- if (execData.documents) {
92
- return {
93
- type: "json",
94
- data: execData.documents,
95
- parsed: true
96
- };
97
- }
98
- return fallbackParser(execData);
99
- },
100
- [NodeConnectionTypes.AiEmbedding](execData) {
101
- if (execData.documents) {
102
- return {
103
- type: "json",
104
- data: execData.documents,
105
- parsed: true
106
- };
107
- }
108
- return fallbackParser(execData);
109
- },
110
- [NodeConnectionTypes.AiDocument](execData) {
111
- if (execData.documents) {
112
- return {
113
- type: "json",
114
- data: execData.documents,
115
- parsed: true
116
- };
117
- }
118
- return fallbackParser(execData);
119
- },
120
- [NodeConnectionTypes.AiTextSplitter](execData) {
121
- const arrayData = Array.isArray(execData.response) ? execData.response : [execData.textSplitter];
122
- return {
123
- type: "text",
124
- data: arrayData.join("\n\n"),
125
- parsed: true
126
- };
127
- }
128
- };
129
- const useAiContentParsers = () => {
130
- const parseAiRunData = (executionData, endpointType) => {
131
- if ([NodeConnectionTypes.AiChain, NodeConnectionTypes.Main].includes(
132
- endpointType
133
- )) {
134
- return executionData.map((data) => ({ raw: data.json, parsedContent: null }));
135
- }
136
- const contentJson = executionData.map((node) => {
137
- const hasBinaryData = !isObjectEmpty(node.binary);
138
- return hasBinaryData ? node.binary : node.json;
139
- });
140
- const parser = outputTypeParsers[endpointType];
141
- if (!parser)
142
- return [
143
- {
144
- raw: contentJson.filter((item) => item !== void 0),
145
- parsedContent: null
146
- }
147
- ];
148
- const parsedOutput = contentJson.filter((c) => c !== void 0).map((c) => ({ raw: c, parsedContent: parser(c) }));
149
- return parsedOutput;
150
- };
151
- return {
152
- parseAiRunData
153
- };
154
- };
155
- const _hoisted_1$2 = ["data-content-type"];
156
- const _hoisted_2$2 = ["textContent"];
1
+ import { p as parseAiContent, h as _sfc_main$3, i as getConsumedTokens, V as ViewSubExecution, f as formatTokenUsageCount, _ as _sfc_main$5, j as createAiData, k as getTreeNodeData, l as getReferencedData } from "./RunData-b0RE2JWc.js";
2
+ import { d as defineComponent, r as ref, q as computed, bm as NodeConnectionTypes, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, e as createBlock, f as createCommentVNode, j as createVNode, m as unref, er as FontAwesomeIcon, t as toDisplayString, bH as N8nRadioButtons, _ as _export_sfc, bz as useNodeTypesStore, Q as useWorkflowsStore, h as resolveComponent, bC as _sfc_main$4, w as withCtx, l as createTextVNode, c as useI18n, F as Fragment, D as renderList, X as watch, es as ElTree, B as normalizeStyle } from "./index-DZ6VpjNj.js";
3
+ import RunDataAi$1 from "./RunDataParsedAiContent-BbXv-NPD.js";
4
+ import { b as capitalize } from "./useCanvasOperations-u8oSDa_u.js";
157
5
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
158
6
  __name: "AiRunContentBlock",
159
7
  props: {
@@ -162,14 +10,12 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
162
10
  },
163
11
  setup(__props) {
164
12
  const props = __props;
165
- const i18n = useI18n();
166
- const clipboard = useClipboard();
167
- const { showMessage } = useToast();
168
- const contentParsers = useAiContentParsers();
169
13
  const isExpanded = ref(getInitialExpandedState());
170
14
  const renderType = ref("rendered");
171
- const contentParsed = ref(false);
172
- const parsedRun = ref(void 0);
15
+ const parsedRun = computed(() => parseAiContent(props.runData.data ?? [], props.runData.type));
16
+ const contentParsed = computed(
17
+ () => parsedRun.value.some((item) => item.parsedContent?.parsed === true)
18
+ );
173
19
  function getInitialExpandedState() {
174
20
  const collapsedTypes = {
175
21
  input: [
@@ -185,98 +31,14 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
185
31
  };
186
32
  return !collapsedTypes[props.runData.inOut].includes(props.runData.type);
187
33
  }
188
- function isJsonString(text) {
189
- try {
190
- JSON.parse(text);
191
- return true;
192
- } catch (e) {
193
- return false;
194
- }
195
- }
196
- const markdownOptions = {
197
- highlight(str, lang) {
198
- if (lang && HighlightJS.getLanguage(lang)) {
199
- try {
200
- return HighlightJS.highlight(str, { language: lang }).value;
201
- } catch {
202
- }
203
- }
204
- return "";
205
- }
206
- };
207
- function parseAiRunData(run) {
208
- if (!run.data) {
209
- return;
210
- }
211
- const parsedData = contentParsers.parseAiRunData(run.data, run.type);
212
- return parsedData;
213
- }
214
- function isMarkdown(content) {
215
- if (typeof content !== "string") return false;
216
- const markdownPatterns = [
217
- /^# .+/gm,
218
- // headers
219
- /\*{1,2}.+\*{1,2}/g,
220
- // emphasis and strong
221
- /\[.+\]\(.+\)/g,
222
- // links
223
- /```[\s\S]+```/g
224
- // code blocks
225
- ];
226
- return markdownPatterns.some((pattern) => pattern.test(content));
227
- }
228
- function formatToJsonMarkdown(data) {
229
- return "```json\n" + data + "\n```";
230
- }
231
- function jsonToMarkdown(data) {
232
- if (isMarkdown(data)) return data;
233
- if (Array.isArray(data) && data.length && typeof data[0] !== "number") {
234
- const markdownArray = data.map((item) => jsonToMarkdown(item));
235
- return markdownArray.join("\n\n").trim();
236
- }
237
- if (typeof data === "string") {
238
- if (isJsonString(data)) {
239
- return formatToJsonMarkdown(data);
240
- }
241
- return data;
242
- }
243
- return formatToJsonMarkdown(JSON.stringify(data, null, 2));
244
- }
245
- function setContentParsed(content) {
246
- contentParsed.value = !!content.find((item) => {
247
- if (item.parsedContent?.parsed === true) {
248
- return true;
249
- }
250
- return false;
251
- });
252
- }
253
34
  function onBlockHeaderClick() {
254
35
  isExpanded.value = !isExpanded.value;
255
36
  }
256
- function onCopyToClipboard(content) {
257
- try {
258
- void clipboard.copy(JSON.stringify(content, void 0, 2));
259
- showMessage({
260
- title: i18n.baseText("generic.copiedToClipboard"),
261
- type: "success"
262
- });
263
- } catch (err) {
264
- }
265
- }
266
37
  function onRenderTypeChange(value) {
267
38
  renderType.value = value;
268
39
  }
269
- onMounted(() => {
270
- parsedRun.value = parseAiRunData(props.runData);
271
- if (parsedRun.value) {
272
- setContentParsed(parsedRun.value);
273
- }
274
- });
275
40
  return (_ctx, _cache) => {
276
- const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
277
- const _component_n8n_radio_buttons = resolveComponent("n8n-radio-buttons");
278
41
  const _component_NodeErrorView = _sfc_main$3;
279
- const _component_n8n_icon_button = resolveComponent("n8n-icon-button");
280
42
  return openBlock(), createElementBlock("div", {
281
43
  class: normalizeClass(_ctx.$style.block)
282
44
  }, [
@@ -287,7 +49,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
287
49
  createBaseVNode("button", {
288
50
  class: normalizeClass(_ctx.$style.blockToggle)
289
51
  }, [
290
- createVNode(_component_font_awesome_icon, {
52
+ createVNode(unref(FontAwesomeIcon), {
291
53
  icon: isExpanded.value ? "angle-down" : "angle-right",
292
54
  size: "lg"
293
55
  }, null, 8, ["icon"])
@@ -295,7 +57,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
295
57
  createBaseVNode("p", {
296
58
  class: normalizeClass(_ctx.$style.blockTitle)
297
59
  }, toDisplayString(unref(capitalize)(_ctx.runData.inOut)), 3),
298
- contentParsed.value && !_ctx.error && isExpanded.value ? (openBlock(), createBlock(_component_n8n_radio_buttons, {
60
+ contentParsed.value && !_ctx.error && isExpanded.value ? (openBlock(), createBlock(unref(N8nRadioButtons), {
299
61
  key: 0,
300
62
  size: "small",
301
63
  "model-value": renderType.value,
@@ -316,77 +78,32 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
316
78
  _ctx.error ? (openBlock(), createBlock(_component_NodeErrorView, {
317
79
  key: 0,
318
80
  error: _ctx.error,
319
- class: normalizeClass(_ctx.$style.error)
320
- }, null, 8, ["error", "class"])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(parsedRun.value, ({ parsedContent, raw }, index) => {
321
- return openBlock(), createElementBlock("div", {
322
- key: index,
323
- class: normalizeClass(_ctx.$style.contentText),
324
- "data-content-type": parsedContent?.type
325
- }, [
326
- parsedContent && renderType.value === "rendered" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
327
- parsedContent.type === "json" ? (openBlock(), createBlock(unref(VueMarkdown), {
328
- key: 0,
329
- source: jsonToMarkdown(parsedContent.data),
330
- class: normalizeClass(_ctx.$style.markdown),
331
- options: markdownOptions
332
- }, null, 8, ["source", "class"])) : createCommentVNode("", true),
333
- parsedContent.type === "markdown" ? (openBlock(), createBlock(unref(VueMarkdown), {
334
- key: 1,
335
- source: parsedContent.data,
336
- class: normalizeClass(_ctx.$style.markdown),
337
- options: markdownOptions
338
- }, null, 8, ["source", "class"])) : createCommentVNode("", true),
339
- parsedContent.type === "text" ? (openBlock(), createElementBlock("p", {
340
- key: 2,
341
- class: normalizeClass(_ctx.$style.runText),
342
- textContent: toDisplayString(parsedContent.data)
343
- }, null, 10, _hoisted_2$2)) : createCommentVNode("", true)
344
- ], 64)) : (openBlock(), createElementBlock("div", {
345
- key: 1,
346
- class: normalizeClass(_ctx.$style.rawContent)
347
- }, [
348
- createVNode(_component_n8n_icon_button, {
349
- size: "small",
350
- class: normalizeClass(_ctx.$style.copyToClipboard),
351
- type: "secondary",
352
- title: unref(i18n).baseText("nodeErrorView.copyToClipboard"),
353
- icon: "copy",
354
- onClick: ($event) => onCopyToClipboard(raw)
355
- }, null, 8, ["class", "title", "onClick"]),
356
- createVNode(unref(VueMarkdown), {
357
- source: jsonToMarkdown(raw),
358
- class: normalizeClass(_ctx.$style.markdown)
359
- }, null, 8, ["source", "class"])
360
- ], 2))
361
- ], 10, _hoisted_1$2);
362
- }), 128))
81
+ class: normalizeClass(_ctx.$style.error),
82
+ "show-details": ""
83
+ }, null, 8, ["error", "class"])) : (openBlock(), createBlock(RunDataAi$1, {
84
+ key: 1,
85
+ data: _ctx.runData.data,
86
+ type: _ctx.runData.type,
87
+ content: parsedRun.value,
88
+ "render-type": renderType.value
89
+ }, null, 8, ["data", "type", "content", "render-type"]))
363
90
  ], 2)
364
91
  ], 2);
365
92
  };
366
93
  }
367
94
  });
368
- const copyToClipboard = "_copyToClipboard_kaw5r_123";
369
- const rawContent = "_rawContent_kaw5r_129";
370
- const markdown = "_markdown_kaw5r_133";
371
- const contentText = "_contentText_kaw5r_157";
372
- const block = "_block_kaw5r_164";
373
- const blockContent = "_blockContent_kaw5r_171";
374
- const blockContentExpanded = "_blockContentExpanded_kaw5r_175";
375
- const runText = "_runText_kaw5r_179";
376
- const rawSwitch = "_rawSwitch_kaw5r_184";
377
- const blockHeader = "_blockHeader_kaw5r_194";
378
- const blockTitle = "_blockTitle_kaw5r_207";
379
- const blockToggle = "_blockToggle_kaw5r_214";
380
- const error = "_error_kaw5r_222";
95
+ const block = "_block_wafm4_123";
96
+ const blockContent = "_blockContent_wafm4_130";
97
+ const blockContentExpanded = "_blockContentExpanded_wafm4_134";
98
+ const rawSwitch = "_rawSwitch_wafm4_138";
99
+ const blockHeader = "_blockHeader_wafm4_148";
100
+ const blockTitle = "_blockTitle_wafm4_161";
101
+ const blockToggle = "_blockToggle_wafm4_168";
102
+ const error = "_error_wafm4_176";
381
103
  const style0$2 = {
382
- copyToClipboard,
383
- rawContent,
384
- markdown,
385
- contentText,
386
104
  block,
387
105
  blockContent,
388
106
  blockContentExpanded,
389
- runText,
390
107
  rawSwitch,
391
108
  blockHeader,
392
109
  blockTitle,
@@ -1,9 +1,9 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataJsonActions-aivOaol2.js","assets/index-BLAboPd2.js","assets/index-sq5ggyEC.css","assets/_commonjs-dynamic-modules-TGKdzP3c.js","assets/RunDataJsonActions-DrgwFS0W.css"])))=>i.map(i=>d[i]);
2
- import { d as defineComponent, as as useNDVStore, r as ref, hz as useElementSize, q as computed, dW as executionDataToJson, i as createElementBlock, g as openBlock, e as createBlock, j as createVNode, w as withCtx, f as createCommentVNode, m as unref, c2 as defineAsyncComponent, c1 as Suspense, hu as TextWithHighlights, n as normalizeClass, hv as MappingPill, h2 as Draggable, ao as __vitePreload, v as shorten, hy as getMappedExpression, hA as isString, hB as nonExistingJsonPath, aP as useExternalHooks, ag as useTelemetry, _ as _export_sfc } from "./index-BLAboPd2.js";
3
- import { m as VueJsonPretty } from "./RunData-D8Eax0cQ.js";
4
- import "./FileSaver.min-CcnqpaV-.js";
5
- import "./useExecutionHelpers-C--m0pTQ.js";
6
- import "./dateFormatter-DbKqmK4w.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RunDataJsonActions-3jjDztw7.js","assets/index-DZ6VpjNj.js","assets/index-yNaoC3fo.css","assets/_commonjs-dynamic-modules-TGKdzP3c.js","assets/RunDataJsonActions-DrgwFS0W.css"])))=>i.map(i=>d[i]);
2
+ import { d as defineComponent, as as useNDVStore, r as ref, hM as useElementSize, q as computed, e2 as executionDataToJson, i as createElementBlock, g as openBlock, e as createBlock, j as createVNode, w as withCtx, f as createCommentVNode, m as unref, c5 as defineAsyncComponent, c4 as Suspense, hH as TextWithHighlights, n as normalizeClass, hI as MappingPill, hf as Draggable, ao as __vitePreload, v as shorten, hL as getMappedExpression, hN as isString, hO as nonExistingJsonPath, aP as useExternalHooks, ag as useTelemetry, _ as _export_sfc } from "./index-DZ6VpjNj.js";
3
+ import { m as VueJsonPretty } from "./RunData-b0RE2JWc.js";
4
+ import "./FileSaver.min-bgn7Q9Gt.js";
5
+ import "./useExecutionHelpers-DqwMonFW.js";
6
+ import "./dateFormatter-BPfJSa6q.js";
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "RunDataJson",
9
9
  props: {
@@ -22,7 +22,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
22
22
  },
23
23
  setup(__props) {
24
24
  const LazyRunDataJsonActions = defineAsyncComponent(
25
- async () => await __vitePreload(() => import("./RunDataJsonActions-aivOaol2.js"), true ? __vite__mapDeps([0,1,2,3,4]) : void 0)
25
+ async () => await __vitePreload(() => import("./RunDataJsonActions-3jjDztw7.js"), true ? __vite__mapDeps([0,1,2,3,4]) : void 0)
26
26
  );
27
27
  const props = __props;
28
28
  const ndvStore = useNDVStore();
@@ -1,4 +1,4 @@
1
- import { dF as commonjsGlobal, cq as getDefaultExportFromCjs, d as defineComponent, hB as nonExistingJsonPath, as as useNDVStore, Q as useWorkflowsStore, bA as useNodeHelpers, bf as useClipboard, bq as usePinnedData, a as useToast, R as useRoute, q as computed, h as resolveComponent, i as createElementBlock, g as openBlock, e as createBlock, m as unref, c as useI18n, w as withCtx, k as createBaseVNode, j as createVNode, l as createTextVNode, t as toDisplayString, n as normalizeClass, ag as useTelemetry, eg as clearJsonKey, dW as executionDataToJson, it as convertPath, _ as _export_sfc } from "./index-BLAboPd2.js";
1
+ import { dN as commonjsGlobal, cx as getDefaultExportFromCjs, d as defineComponent, hO as nonExistingJsonPath, as as useNDVStore, Q as useWorkflowsStore, bA as useNodeHelpers, bf as useClipboard, bq as usePinnedData, a as useToast, R as useRoute, q as computed, h as resolveComponent, i as createElementBlock, g as openBlock, e as createBlock, m as unref, c as useI18n, w as withCtx, k as createBaseVNode, j as createVNode, l as createTextVNode, t as toDisplayString, n as normalizeClass, ag as useTelemetry, en as clearJsonKey, e2 as executionDataToJson, iG as convertPath, _ as _export_sfc } from "./index-DZ6VpjNj.js";
2
2
  import { c as commonjsRequire } from "./_commonjs-dynamic-modules-TGKdzP3c.js";
3
3
  var jsonpath = { exports: {} };
4
4
  /*! jsonpath 1.1.1 */