n8n-editor-ui 1.85.2 → 1.87.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-ChSRgyeI.css +39 -0
  2. package/dist/assets/AnimatedSpinner-urWn52iY.js +18 -0
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-B2Xk-4o2.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DIbgkfAC.js} +1 -1
  4. package/dist/assets/{AuthView-Bhr2Ols-.js → AuthView-DIQI5asI.js} +2 -2
  5. package/dist/assets/{CanvasChatSwitch-BcSDHC-c.css → CanvasChatSwitch-0IWSu8RE.css} +488 -46
  6. package/dist/assets/{CanvasChatSwitch-E9vu2jW8.js → CanvasChatSwitch-BIpZuY-n.js} +697 -214
  7. package/dist/assets/{ChangePasswordView-BzAEcqVw.js → ChangePasswordView-D8Qv0tim.js} +3 -3
  8. package/dist/assets/CollectionParameter-DT1MnS63.js +4 -0
  9. package/dist/assets/{CredentialsView-CZiEXdjH.js → CredentialsView-tJ8-2RrO.js} +8 -8
  10. package/dist/assets/{ErrorView-C1QywuMY.js → ErrorView-CZEZD7LB.js} +1 -1
  11. package/dist/assets/{ExecutionsTime-BOPJEomw.css → ExecutionsTime-DZHUIJjP.css} +6 -6
  12. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-l5VZIkoy.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-gcknFyjA.js} +23 -20
  13. package/dist/assets/{ExecutionsView-Bo0Nk8lV.js → ExecutionsView-BCfIz8EF.js} +49 -57
  14. package/dist/assets/{ExecutionsView-JCKikuIS.css → ExecutionsView-ByQf9yli.css} +13 -47
  15. package/dist/assets/{FileSaver.min-D3VgyjMF.js → FileSaver.min-Bs2qHlKb.js} +1 -1
  16. package/dist/assets/{FixedCollectionParameter-RpfOY9Ho.js → FixedCollectionParameter-E0LDqNW3.js} +1 -1
  17. package/dist/assets/{ForgotMyPasswordView-DPTddCxG.js → ForgotMyPasswordView-YOnrzvKJ.js} +3 -3
  18. package/dist/assets/InsightsChartAverageRuntime-DWrrriYN.js +61 -0
  19. package/dist/assets/InsightsChartFailed-DRi6JC3m.js +57 -0
  20. package/dist/assets/InsightsChartFailureRate-BdFNsMpg.js +57 -0
  21. package/dist/assets/InsightsChartTimeSaved-C12GZzSQ.js +71 -0
  22. package/dist/assets/InsightsChartTotal-Cn386HO4.js +59 -0
  23. package/dist/assets/InsightsDashboard-BawwZ0Oo.js +154 -0
  24. package/dist/assets/InsightsDashboard-CB4vHnBh.css +152 -0
  25. package/dist/assets/InsightsPaywall-OeXh6LeZ.css +133 -0
  26. package/dist/assets/InsightsPaywall-g3JcqAYL.js +58 -0
  27. package/dist/assets/{useOverview-DcRuPjLJ.css → InsightsSummary-W08OzElS.css} +57 -35
  28. package/dist/assets/InsightsSummary-vMmKUcie.js +185 -0
  29. package/dist/assets/InsightsTableWorkflows-DQQ1vvMz.js +129 -0
  30. package/dist/assets/InsightsTableWorkflows-Us3j4UTO.css +128 -0
  31. package/dist/assets/{Logo-CxllxUni.js → Logo-Vm92axlM.js} +1 -1
  32. package/dist/assets/{MainHeader-9gTxUJIR.js → MainHeader-BUhpvu2K.js} +9 -10
  33. package/dist/assets/{MainSidebar-CRJML8mh.js → MainSidebar-D5P5FSUQ.js} +11 -4
  34. package/dist/assets/{NodeCreation-zoYjBJl6.js → NodeCreation-BgW5u-Bc.js} +4 -4
  35. package/dist/assets/{NodeCreator-D-qBRyBy.js → NodeCreator-CFe2n6vJ.js} +10 -26
  36. package/dist/assets/{NodeDetailsView-C1z3N5z_.css → NodeDetailsView-BT-ro74o.css} +63 -70
  37. package/dist/assets/{NodeDetailsView-C1iBFaC1.js → NodeDetailsView-CmtK-rDD.js} +145 -482
  38. package/dist/assets/{NodeView-Bio-FnnF.js → NodeView-BqaNPfpx.js} +19 -21
  39. package/dist/assets/{ProjectCardBadge-BEflW6oP.js → ProjectCardBadge-BKgtzWr1.js} +69 -36
  40. package/dist/assets/{ProjectCardBadge-C78ap7Rc.css → ProjectCardBadge-t3v64i1e.css} +18 -13
  41. package/dist/assets/{ProjectHeader-DK3_g_D8.js → ProjectHeader-BWVSdavS.js} +33 -7
  42. package/dist/assets/{ProjectHeader-B-a6_GH6.css → ProjectHeader-BsBpG-Mj.css} +7 -7
  43. package/dist/assets/{ProjectSettings-CLMy_-YC.js → ProjectSettings-BL-2-uOg.js} +3 -3
  44. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CSazgsi8.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-BL-bMMgn.js} +1 -2
  45. package/dist/assets/{ResourcesListLayout-CBvvL0VM.js → ResourcesListLayout-CozpmfUY.js} +1 -1
  46. package/dist/assets/{RunDataAi-C-tu9GrI.js → RunDataAi-B_EadpzG.js} +188 -94
  47. package/dist/assets/{RunDataAi-CN9FrT9c.css → RunDataAi-CUUDqZRP.css} +128 -0
  48. package/dist/assets/{RunDataJson-ClpS_600.js → RunDataJson-CyNNCtyd.js} +11 -12
  49. package/dist/assets/{RunDataJsonActions-gWW8Qkt_.js → RunDataJsonActions-SQqaiBEP.js} +1 -2
  50. package/dist/assets/{RunDataSearch-Dgv5JYk-.js → RunDataSearch-BF9kshKq.js} +1 -1
  51. package/dist/assets/{RunDataTable-nsOk35pD.js → RunDataTable-DsW7wuc2.js} +10 -8
  52. package/dist/assets/{SamlOnboarding-C5TSdGcx.js → SamlOnboarding-BX7RiRJB.js} +3 -3
  53. package/dist/assets/{SettingsApiView-CzQG1ofR.js → SettingsApiView-CDIPYvaG.js} +1 -1
  54. package/dist/assets/{SettingsCommunityNodesView-D_F3n2NO.js → SettingsCommunityNodesView-BRSEkT73.js} +4 -5
  55. package/dist/assets/{SettingsExternalSecrets-BUgKlMoR.js → SettingsExternalSecrets-D7ASuAnS.js} +1 -1
  56. package/dist/assets/{SettingsLdapView-CAmuVErd.js → SettingsLdapView-DA5fZZ51.js} +1 -1
  57. package/dist/assets/{SettingsLogStreamingView-DLkHrsx5.js → SettingsLogStreamingView-C9qkYvCr.js} +1 -1
  58. package/dist/assets/{SettingsPersonalView-2elwsG0f.js → SettingsPersonalView-BnNOJcvO.js} +2 -2
  59. package/dist/assets/{SettingsSourceControl-BD426GUo.js → SettingsSourceControl--ozL4427.js} +1 -1
  60. package/dist/assets/{SettingsSso-B-7lLoTI.js → SettingsSso-Bfe_HRSr.js} +1 -1
  61. package/dist/assets/{SettingsUsageAndPlan-EUWVJYe2.js → SettingsUsageAndPlan-CzvMNudh.js} +1 -1
  62. package/dist/assets/{SettingsUsersView-C3GbTYvU.js → SettingsUsersView-DGu5ku48.js} +1 -1
  63. package/dist/assets/{SettingsView-DSMM_8SL.js → SettingsView-CvreVxXL.js} +1 -1
  64. package/dist/assets/{SetupView-CexY8Lic.js → SetupView-BJT6GtIA.js} +3 -3
  65. package/dist/assets/{SetupWorkflowCredentialsButton-BpLp754t.js → SetupWorkflowCredentialsButton-BEq2gs_-.js} +2 -4
  66. package/dist/assets/{SetupWorkflowFromTemplateView-CLvS9Kda.js → SetupWorkflowFromTemplateView-F9oCDWX8.js} +3 -12
  67. package/dist/assets/{SigninView-CYkcm3hG.js → SigninView-DyoDtCBc.js} +3 -3
  68. package/dist/assets/{SignoutView-C2HutrZm.js → SignoutView-DclBslYe.js} +1 -1
  69. package/dist/assets/{SignupView-B-o-ka0Z.js → SignupView-BhB0Hhj0.js} +3 -3
  70. package/dist/assets/{TemplateDetails-C20G_lj4.js → TemplateDetails-B3utdyMi.js} +1 -1
  71. package/dist/assets/{TemplateList-DQzcYS6n.js → TemplateList-Bgz1iiiH.js} +1 -1
  72. package/dist/assets/{TemplatesCollectionView-DEEMhmYZ.js → TemplatesCollectionView-CORzb8YZ.js} +7 -9
  73. package/dist/assets/{TemplatesSearchView-S6802uNr.js → TemplatesSearchView-DTuv4-5C.js} +3 -3
  74. package/dist/assets/{TemplatesView-CT7S5O4K.js → TemplatesView-CFV5SVF7.js} +1 -1
  75. package/dist/assets/{TemplatesWorkflowView-BMd9OmqA.js → TemplatesWorkflowView-CQVVdNty.js} +5 -7
  76. package/dist/assets/{TestDefinitionEditView-BXhOuJrU.css → TestDefinitionEditView-Cwkrz308.css} +12 -143
  77. package/dist/assets/{TestDefinitionEditView-5kDGEtaD.js → TestDefinitionEditView-DX6GIeq2.js} +179 -331
  78. package/dist/assets/{TestDefinitionListView-BM-hghAY.js → TestDefinitionListView-CLEkthYQ.js} +1 -1
  79. package/dist/assets/{TestDefinitionNewView-CNN-qAmL.js → TestDefinitionNewView-DWTTqvlN.js} +2 -2
  80. package/dist/assets/{TestDefinitionRootView-S8g84AaK.js → TestDefinitionRootView-D0yLW0V6.js} +1 -1
  81. package/dist/assets/{VariablesView-D90WCfYK.js → VariablesView-Dsr4pqth.js} +3 -3
  82. package/dist/assets/{WorkerView-BHVIRKm_.js → WorkerView-Bbu5wv-g.js} +6 -7
  83. package/dist/assets/{WorkflowActivator-BsceIfln.js → WorkflowActivator-C197X_D6.js} +2 -2
  84. package/dist/assets/{WorkflowExecutionsInfoAccordion-DxGIzmq4.js → WorkflowExecutionsInfoAccordion-CHPlRtMQ.js} +1 -1
  85. package/dist/assets/{WorkflowExecutionsLandingPage-czqJYUnQ.js → WorkflowExecutionsLandingPage-CnvMc3SA.js} +2 -2
  86. package/dist/assets/{WorkflowExecutionsPreview-BzCGXWj0.js → WorkflowExecutionsPreview-CJBM3Awe.js} +24 -256
  87. package/dist/assets/{WorkflowExecutionsPreview-CHu6M3Dh.css → WorkflowExecutionsPreview-D7jTJ8GL.css} +16 -48
  88. package/dist/assets/{WorkflowExecutionsView-syep-_N0.js → WorkflowExecutionsView-BwB6WS6M.js} +11 -17
  89. package/dist/assets/{WorkflowHistory-CmHn_hnX.js → WorkflowHistory-U5a4aYts.js} +4 -4
  90. package/dist/assets/{WorkflowOnboardingView-BmhaZBkH.js → WorkflowOnboardingView-DHUUTLOo.js} +1 -1
  91. package/dist/assets/{WorkflowPreview-BN13256Q.js → WorkflowPreview-D8pwehRe.js} +1 -1
  92. package/dist/assets/{WorkflowsView-r9qJOUEb.css → WorkflowsView-CJB9aI6A.css} +27 -41
  93. package/dist/assets/{WorkflowsView-6qbtftll.js → WorkflowsView-DIh7kqZk.js} +76 -141
  94. package/dist/assets/chartjs.utils-DTEY3u-V.js +193 -0
  95. package/dist/assets/dateFormatter-C7xnNKzY.js +21 -0
  96. package/dist/assets/{easyAiWorkflowUtils-C7LfXIgb.js → easyAiWorkflowUtils-V__OjFo9.js} +1 -1
  97. package/dist/assets/{global-link-actions-znEIb0N4.js → global-link-actions-vGpWr9Uz.js} +1 -1
  98. package/dist/assets/{import-curl-BsKs3fYs.js → import-curl-C6ERUxFe.js} +1 -1
  99. package/dist/assets/{index-Cjz62pAo.js → index-BrjPYODL.js} +3 -1
  100. package/dist/assets/{index-DZljH0cm.js → index-DD7Wuhk5.js} +11407 -5580
  101. package/dist/assets/{index-CgXKy7t-.css → index-DJ205bL0.css} +418 -92
  102. package/dist/assets/{pickBy-DlIFPp_M.js → pickBy-BILEJ4hg.js} +1 -1
  103. package/dist/assets/{templateActions-ClDjWPHA.js → templateActions-M3qRQiV6.js} +2 -7
  104. package/dist/assets/{useBeforeUnload-BFlrxvKb.js → useBeforeUnload-DTsj_abb.js} +1 -1
  105. package/dist/assets/{useCanvasMapping-CJcAsQmx.css → useCanvasMapping-BkGr1HdJ.css} +29 -28
  106. package/dist/assets/{useCanvasMapping-C0PMQVwg.js → useCanvasMapping-DJvMRP2s.js} +71 -56
  107. package/dist/assets/{useCanvasOperations-2Ca5hPmu.js → useCanvasOperations-DCaSrD1N.js} +26 -254
  108. package/dist/assets/{useClearExecutionButtonVisible-D8unhL-H.js → useClearExecutionButtonVisible-CVPKhr9F.js} +2 -2
  109. package/dist/assets/{useExecutionDebugging-MiAgkS54.js → useExecutionDebugging-yY2o_eNc.js} +1 -1
  110. package/dist/assets/{useExecutionHelpers-CgD9G_XU.js → useExecutionHelpers-BVY9xXbG.js} +2 -19
  111. package/dist/assets/{useImportCurlCommand-D6LUnncf.js → useImportCurlCommand-Chewi-_x.js} +2 -2
  112. package/dist/assets/{usePushConnection-DAhrfl2L.js → usePushConnection-9zsAnuvC.js} +13 -6
  113. package/dist/assets/{useTestDefinitionForm-TDiKTq9o.js → useTestDefinitionForm-CCVy0jKP.js} +1 -31
  114. package/dist/assets/{useWorkflowActivate-C_GRAYoC.js → useWorkflowActivate-DeEvbrsK.js} +1 -1
  115. package/dist/index.html +2 -2
  116. package/package.json +1 -1
  117. package/dist/assets/CollectionParameter-XKkHxrwX.js +0 -4
  118. package/dist/assets/pushConnection.store-DHLcz9cC.js +0 -238
  119. package/dist/assets/useOverview-BqIOGpWx.js +0 -161
  120. package/dist/assets/useRunWorkflow-sGIs6NeH.js +0 -521
@@ -1,4 +1,4 @@
1
- import { dT as baseSlice, dU as toString, dV as createCompounder, dW as SetCache, dX as arrayIncludes, dY as cacheHas, dZ as baseRest, d_ as isArrayLikeObject, d$ as baseFlatten, bu as useNodeTypesStore, q as computed, m as unref, e0 as isSubNodeType, a0 as useRootStore, T as useWorkflowsStore, a as useToast, e1 as PIN_DATA_NODE_TYPES_DENYLIST, e2 as jsonStringify, c as useI18n, e3 as toMegaBytes, e4 as stringSizeInBytes, ah as useTelemetry, aQ as useExternalHooks, bM as jsonParse, e5 as useDataSchema, bs as getNodeOutputs, be as NodeConnectionTypes, e6 as MAX_PINNED_DATA_SIZE, e7 as MAX_WORKFLOW_SIZE, e8 as MAX_EXPECTED_REQUEST_SIZE, e9 as CORE_NODES_CATEGORY, ea as DEFAULT_SUBCATEGORY, bi as v4, p as useSettingsStore, eb as AI_TRANSFORM_NODE_TYPE, bm as AI_SUBCATEGORY, ec as HUMAN_IN_THE_LOOP_CATEGORY, bn as AI_CATEGORY_AGENTS, ed as sortBy, d9 as i18n, ee as AI_CATEGORY_OTHER_TOOLS, ef as SEND_AND_WAIT_OPERATION, eg as AI_CATEGORY_DOCUMENT_LOADERS, eh as AI_CATEGORY_LANGUAGE_MODELS, ei as AI_CATEGORY_MEMORY, ej as AI_CATEGORY_OUTPUTPARSER, ek as AI_CATEGORY_RETRIEVERS, el as AI_CATEGORY_TEXT_SPLITTERS, em as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, en as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, eo as AI_CATEGORY_TOOLS, ep as AI_CATEGORY_EMBEDDING, eq as AI_CATEGORY_VECTOR_STORES, er as AI_UNCATEGORIZED_CATEGORY, es as AI_OTHERS_NODE_CREATOR_VIEW, aO as useTemplatesStore, et as AI_NODE_CREATOR_VIEW, eu as RSS_READ_NODE_TYPE, ev as EMAIL_SEND_NODE_TYPE, ew as SET_NODE_TYPE, ex as CODE_NODE_TYPE, ey as DATETIME_NODE_TYPE, ez as FILTER_NODE_TYPE, eA as REMOVE_DUPLICATES_NODE_TYPE, eB as SPLIT_OUT_NODE_TYPE, eC as LIMIT_NODE_TYPE, eD as SUMMARIZE_NODE_TYPE, eE as AGGREGATE_NODE_TYPE, eF as MERGE_NODE_TYPE, eG as HTML_NODE_TYPE, eH as MARKDOWN_NODE_TYPE, eI as XML_NODE_TYPE, eJ as CRYPTO_NODE_TYPE, eK as EXTRACT_FROM_FILE_NODE_TYPE, eL as CONVERT_TO_FILE_NODE_TYPE, eM as COMPRESSION_NODE_TYPE, eN as EDIT_IMAGE_NODE_TYPE, eO as TRANSFORM_DATA_SUBCATEGORY, eP as IF_NODE_TYPE, eQ as SPLIT_IN_BATCHES_NODE_TYPE, eR as FLOWS_CONTROL_SUBCATEGORY, eS as HTTP_REQUEST_NODE_TYPE, eT as WEBHOOK_NODE_TYPE, eU as HELPERS_SUBCATEGORY, eV as HITL_SUBCATEGORY, eW as TRIGGER_NODE_CREATOR_VIEW, eX as REGULAR_NODE_CREATOR_VIEW, eY as MANUAL_TRIGGER_NODE_TYPE, eZ as EMAIL_IMAP_NODE_TYPE, e_ as SCHEDULE_TRIGGER_NODE_TYPE, e$ as FORM_TRIGGER_NODE_TYPE, dx as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bt as CHAT_TRIGGER_NODE_TYPE, f0 as OTHER_TRIGGER_NODES_SUBCATEGORY, bo as AI_CATEGORY_CHAINS, S as defineStore, r as ref, a1 as useCanvasStore, f1 as AI_CATEGORY_ROOT_NODES, z as nextTick, bp as AI_CODE_NODE_TYPE, f2 as AI_TRANSFORM_NODE_TYPE$1, f3 as isValidCanvasConnectionMode, bW as CanvasConnectionMode, bV as isValidNodeConnectionType, at as useNDVStore, L as useUIStore, f4 as isVueFlowConnection, bq as getNodeInputs, f5 as CUSTOM_API_CALL_KEY, X as STORES, bZ as NODE_CREATOR_OPEN_SOURCES, bE as useCredentialsStore, bH as useHistoryStore, E as useTagsStore, au as useExecutionsStore, a3 as useProjectsStore, a6 as useWorkflowHelpers, bv as useNodeHelpers, b8 as useClipboard, f6 as UPDATE_WEBHOOK_ID_NODE_TYPES, dr as generateNodesGraph, f7 as getNewNodePosition, dE as AddConnectionCommand, az as STICKY_NODE_TYPE, dF as RemoveConnectionCommand, ab as EnterpriseEditionFeature, c2 as deepCopy, f8 as isPresent, dG as RemoveNodeCommand, f9 as RenameNodeCommand, fa as MoveNodeCommand, fb as DEFAULT_NODE_SIZE, fc as CONFIGURATION_NODE_SIZE, br as getConnectionTypes, fd as generateOffsets, fe as CONFIGURABLE_NODE_SIZE, ff as PUSH_NODES_OFFSET, dH as AddNodeCommand, fg as NODE_SIZE, fh as GRID_SIZE, fi as getNodeParameters } from "./index-DZljH0cm.js";
1
+ import { dM as baseSlice, dN as toString, dO as createCompounder, dP as SetCache, dQ as arrayIncludes, dR as cacheHas, dS as baseRest, dT as isArrayLikeObject, dU as baseFlatten, dV as CORE_NODES_CATEGORY, dW as DEFAULT_SUBCATEGORY, bj as v4, p as useSettingsStore, dX as AI_TRANSFORM_NODE_TYPE, bn as AI_SUBCATEGORY, dY as HUMAN_IN_THE_LOOP_CATEGORY, bo as AI_CATEGORY_AGENTS, dZ as sortBy, de as i18n, d_ as AI_CATEGORY_OTHER_TOOLS, d$ as SEND_AND_WAIT_OPERATION, e0 as AI_CATEGORY_DOCUMENT_LOADERS, e1 as AI_CATEGORY_LANGUAGE_MODELS, e2 as AI_CATEGORY_MEMORY, e3 as AI_CATEGORY_OUTPUTPARSER, e4 as AI_CATEGORY_RETRIEVERS, e5 as AI_CATEGORY_TEXT_SPLITTERS, e6 as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, e7 as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, c as useI18n, e8 as AI_CATEGORY_TOOLS, e9 as AI_CATEGORY_EMBEDDING, ea as AI_CATEGORY_VECTOR_STORES, eb as AI_UNCATEGORIZED_CATEGORY, ec as AI_OTHERS_NODE_CREATOR_VIEW, bu as NodeConnectionTypes, bw as useNodeTypesStore, aP as useTemplatesStore, ed as AI_NODE_CREATOR_VIEW, ee as RSS_READ_NODE_TYPE, ef as EMAIL_SEND_NODE_TYPE, eg as SET_NODE_TYPE, eh as CODE_NODE_TYPE, ei as DATETIME_NODE_TYPE, ej as FILTER_NODE_TYPE, ek as REMOVE_DUPLICATES_NODE_TYPE, el as SPLIT_OUT_NODE_TYPE, em as LIMIT_NODE_TYPE, en as SUMMARIZE_NODE_TYPE, eo as AGGREGATE_NODE_TYPE, ep as MERGE_NODE_TYPE, eq as HTML_NODE_TYPE, er as MARKDOWN_NODE_TYPE, es as XML_NODE_TYPE, et as CRYPTO_NODE_TYPE, eu as EXTRACT_FROM_FILE_NODE_TYPE, ev as CONVERT_TO_FILE_NODE_TYPE, ew as COMPRESSION_NODE_TYPE, ex as EDIT_IMAGE_NODE_TYPE, ey as TRANSFORM_DATA_SUBCATEGORY, ez as IF_NODE_TYPE, eA as SPLIT_IN_BATCHES_NODE_TYPE, eB as FLOWS_CONTROL_SUBCATEGORY, eC as HTTP_REQUEST_NODE_TYPE, eD as WEBHOOK_NODE_TYPE, eE as HELPERS_SUBCATEGORY, eF as HITL_SUBCATEGORY, eG as TRIGGER_NODE_CREATOR_VIEW, eH as REGULAR_NODE_CREATOR_VIEW, eI as MANUAL_TRIGGER_NODE_TYPE, eJ as EMAIL_IMAP_NODE_TYPE, eK as SCHEDULE_TRIGGER_NODE_TYPE, eL as FORM_TRIGGER_NODE_TYPE, dB as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bv as CHAT_TRIGGER_NODE_TYPE, eM as OTHER_TRIGGER_NODES_SUBCATEGORY, bp as AI_CATEGORY_CHAINS, S as defineStore, r as ref, q as computed, a2 as useCanvasStore, eN as AI_CATEGORY_ROOT_NODES, z as nextTick, eO as getThemedValue, L as useUIStore, bq as AI_CODE_NODE_TYPE, eP as AI_TRANSFORM_NODE_TYPE$1, eQ as isValidCanvasConnectionMode, c2 as CanvasConnectionMode, c1 as isValidNodeConnectionType, U as useWorkflowsStore, au as useNDVStore, aR as useExternalHooks, eR as isVueFlowConnection, br as getNodeInputs, eS as CUSTOM_API_CALL_KEY, Y as STORES, c5 as NODE_CREATOR_OPEN_SOURCES, ai as useTelemetry, a1 as useRootStore, bM as useCredentialsStore, bP as useHistoryStore, E as useTagsStore, av as useExecutionsStore, a4 as useProjectsStore, a as useToast, a7 as useWorkflowHelpers, bx as useNodeHelpers, ba as useClipboard, eT as UPDATE_WEBHOOK_ID_NODE_TYPES, dw as generateNodesGraph, eU as getNewNodePosition, eV as AddConnectionCommand, aA as STICKY_NODE_TYPE, bt as getNodeOutputs, eW as RemoveConnectionCommand, ac as EnterpriseEditionFeature, cb as deepCopy, eX as isPresent, eY as RemoveNodeCommand, eZ as RenameNodeCommand, bi as usePinnedData, e_ as useDataSchema, e$ as MoveNodeCommand, f0 as DEFAULT_NODE_SIZE, f1 as CONFIGURATION_NODE_SIZE, bs as getConnectionTypes, f2 as generateOffsets, f3 as CONFIGURABLE_NODE_SIZE, f4 as PUSH_NODES_OFFSET, f5 as AddNodeCommand, f6 as NODE_SIZE, f7 as GRID_SIZE, f8 as getNodeParameters } from "./index-DD7Wuhk5.js";
2
2
  function castSlice(array, start, end) {
3
3
  var length = array.length;
4
4
  end = end === void 0 ? length : end;
@@ -72,236 +72,6 @@ function baseDifference(array, values, iteratee, comparator) {
72
72
  var difference = baseRest(function(array, values) {
73
73
  return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];
74
74
  });
75
- function useNodeType(options = {}) {
76
- const nodeTypesStore = useNodeTypesStore();
77
- const nodeType = computed(() => {
78
- if (options.nodeType) {
79
- return unref(options.nodeType);
80
- }
81
- const activeNode = unref(options.node);
82
- if (activeNode) {
83
- return nodeTypesStore.getNodeType(activeNode.type, activeNode.typeVersion);
84
- }
85
- return null;
86
- });
87
- const isSubNodeType$1 = computed(() => isSubNodeType(nodeType.value));
88
- const isMultipleOutputsNodeType = computed(() => {
89
- const outputs = nodeType.value?.outputs;
90
- if (typeof outputs === "string") return false;
91
- return (outputs ?? []).length > 1;
92
- });
93
- return {
94
- nodeType,
95
- isSubNodeType: isSubNodeType$1,
96
- isMultipleOutputsNodeType
97
- };
98
- }
99
- function usePinnedData(node, options = {}) {
100
- const rootStore = useRootStore();
101
- const workflowsStore = useWorkflowsStore();
102
- const toast = useToast();
103
- const i18n2 = useI18n();
104
- const telemetry = useTelemetry();
105
- const externalHooks = useExternalHooks();
106
- const { getInputDataWithPinned } = useDataSchema();
107
- const { isSubNodeType: isSubNodeType2, isMultipleOutputsNodeType } = useNodeType({
108
- node
109
- });
110
- const data = computed(() => {
111
- const targetNode = unref(node);
112
- return targetNode ? workflowsStore.pinDataByNodeName(targetNode.name) : void 0;
113
- });
114
- const hasData = computed(() => {
115
- const targetNode = unref(node);
116
- return !!targetNode && typeof data.value !== "undefined";
117
- });
118
- const isValidNodeType = computed(() => {
119
- const targetNode = unref(node);
120
- return !!targetNode && !isSubNodeType2.value && !isMultipleOutputsNodeType.value && !PIN_DATA_NODE_TYPES_DENYLIST.includes(targetNode.type);
121
- });
122
- function canPinNode(checkDataEmpty = false, outputIndex) {
123
- const targetNode = unref(node);
124
- if (targetNode === null || PIN_DATA_NODE_TYPES_DENYLIST.includes(targetNode.type)) return false;
125
- const nodeType = useNodeTypesStore().getNodeType(targetNode.type, targetNode.typeVersion);
126
- const dataToPin = getInputDataWithPinned(targetNode);
127
- if (!nodeType || checkDataEmpty && dataToPin.length === 0) return false;
128
- const workflow = workflowsStore.getCurrentWorkflow();
129
- const outputs = getNodeOutputs(workflow, targetNode, nodeType).map(
130
- (output) => typeof output === "string" ? { type: output } : output
131
- );
132
- const mainOutputs = outputs.filter(
133
- (output) => output.type === NodeConnectionTypes.Main && output.category !== "error"
134
- );
135
- let indexAcceptable = true;
136
- if (outputIndex !== void 0) {
137
- const output = outputs[outputIndex];
138
- if (outputs[outputIndex] === void 0) return false;
139
- indexAcceptable = output.type === NodeConnectionTypes.Main && output.category !== "error";
140
- }
141
- return mainOutputs.length === 1 && indexAcceptable;
142
- }
143
- function isValidJSON(data2) {
144
- try {
145
- JSON.parse(data2);
146
- return true;
147
- } catch (error) {
148
- const title = i18n2.baseText("runData.editOutputInvalid");
149
- const toRemove = new RegExp(/JSON\.parse:|of the JSON data/, "g");
150
- const message = error.message.replace(toRemove, "").trim();
151
- const positionMatchRegEx = /at position (\d+)/;
152
- const positionMatch = error.message.match(positionMatchRegEx);
153
- error.message = message.charAt(0).toUpperCase() + message.slice(1);
154
- error.message = error.message.replace(
155
- "Unexpected token ' in JSON",
156
- i18n2.baseText("runData.editOutputInvalid.singleQuote")
157
- );
158
- if (positionMatch) {
159
- const position = parseInt(positionMatch[1], 10);
160
- const lineBreaksUpToPosition = (data2.slice(0, position).match(/\n/g) || []).length;
161
- error.message = error.message.replace(
162
- positionMatchRegEx,
163
- i18n2.baseText("runData.editOutputInvalid.atPosition", {
164
- interpolate: {
165
- position: `${position}`
166
- }
167
- })
168
- );
169
- error.message = `${i18n2.baseText("runData.editOutputInvalid.onLine", {
170
- interpolate: {
171
- line: `${lineBreaksUpToPosition + 1}`
172
- }
173
- })} ${error.message}`;
174
- }
175
- toast.showError(error, title);
176
- return false;
177
- }
178
- }
179
- function getMaxPinnedDataSize() {
180
- return window.maxPinnedDataSize ?? MAX_PINNED_DATA_SIZE;
181
- }
182
- function isValidSize(data2) {
183
- const targetNode = unref(node);
184
- if (!targetNode) {
185
- return false;
186
- }
187
- if (typeof data2 === "object") data2 = JSON.stringify(data2);
188
- const { pinData: currentPinData, ...workflow } = workflowsStore.getCurrentWorkflow();
189
- const workflowJson = jsonStringify(workflow, { replaceCircularRefs: true });
190
- const newPinData = { ...currentPinData, [targetNode.name]: data2 };
191
- const newPinDataSize = workflowsStore.getPinDataSize(newPinData);
192
- if (newPinDataSize > getMaxPinnedDataSize()) {
193
- toast.showError(
194
- new Error(
195
- i18n2.baseText("ndv.pinData.error.tooLarge.description", {
196
- interpolate: {
197
- size: toMegaBytes(newPinDataSize),
198
- limit: toMegaBytes(getMaxPinnedDataSize())
199
- }
200
- })
201
- ),
202
- i18n2.baseText("ndv.pinData.error.tooLarge.title")
203
- );
204
- return false;
205
- }
206
- const workflowSize = stringSizeInBytes(workflowJson) + newPinDataSize;
207
- const limit = MAX_WORKFLOW_SIZE - MAX_EXPECTED_REQUEST_SIZE;
208
- if (workflowSize > limit) {
209
- toast.showError(
210
- new Error(
211
- i18n2.baseText("ndv.pinData.error.tooLargeWorkflow.description", {
212
- interpolate: { size: toMegaBytes(workflowSize), limit: toMegaBytes(limit) }
213
- })
214
- ),
215
- i18n2.baseText("ndv.pinData.error.tooLargeWorkflow.title")
216
- );
217
- return false;
218
- }
219
- return true;
220
- }
221
- function onSetDataSuccess({ source }) {
222
- const targetNode = unref(node);
223
- const displayMode = unref(options.displayMode);
224
- const runIndex = unref(options.runIndex);
225
- const telemetryPayload = {
226
- pinning_source: source,
227
- node_type: targetNode?.type,
228
- push_ref: rootStore.pushRef,
229
- data_size: stringSizeInBytes(data.value),
230
- view: displayMode,
231
- run_index: runIndex
232
- };
233
- void externalHooks.run("runData.onDataPinningSuccess", telemetryPayload);
234
- telemetry.track("Ndv data pinning success", telemetryPayload);
235
- }
236
- function onSetDataError({
237
- errorType,
238
- source
239
- }) {
240
- const targetNode = unref(node);
241
- const displayMode = unref(options.displayMode);
242
- const runIndex = unref(options.runIndex);
243
- telemetry.track("Ndv data pinning failure", {
244
- pinning_source: source,
245
- node_type: targetNode?.type,
246
- push_ref: rootStore.pushRef,
247
- data_size: stringSizeInBytes(data.value),
248
- view: displayMode,
249
- run_index: runIndex,
250
- error_type: errorType
251
- });
252
- }
253
- function setData(data2, source) {
254
- const targetNode = unref(node);
255
- if (!targetNode) {
256
- return;
257
- }
258
- if (typeof data2 === "string") {
259
- if (!isValidJSON(data2)) {
260
- onSetDataError({ errorType: "invalid-json", source });
261
- throw new Error("Invalid JSON");
262
- }
263
- data2 = jsonParse(data2);
264
- }
265
- if (!isValidSize(data2)) {
266
- onSetDataError({ errorType: "data-too-large", source });
267
- throw new Error("Data too large");
268
- }
269
- workflowsStore.pinData({ node: targetNode, data: data2 });
270
- onSetDataSuccess({ source });
271
- }
272
- function onUnsetData({ source }) {
273
- const targetNode = unref(node);
274
- const runIndex = unref(options.runIndex);
275
- telemetry.track("User unpinned ndv data", {
276
- node_type: targetNode?.type,
277
- push_ref: rootStore.pushRef,
278
- run_index: runIndex,
279
- source,
280
- data_size: stringSizeInBytes(data.value)
281
- });
282
- }
283
- function unsetData(source) {
284
- const targetNode = unref(node);
285
- if (!targetNode) {
286
- return;
287
- }
288
- onUnsetData({ source });
289
- workflowsStore.unpinData({ node: targetNode });
290
- }
291
- return {
292
- data,
293
- hasData,
294
- isValidNodeType,
295
- canPinNode,
296
- setData,
297
- onSetDataSuccess,
298
- onSetDataError,
299
- unsetData,
300
- onUnsetData,
301
- isValidJSON,
302
- isValidSize
303
- };
304
- }
305
75
  const SEQUENTIAL_BONUS = 60;
306
76
  const SEPARATOR_BONUS = 30;
307
77
  const CAMEL_BONUS = 30;
@@ -1415,6 +1185,7 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
1415
1185
  extendedInfo = { info: relatedAIView?.properties.info };
1416
1186
  }
1417
1187
  await nextTick();
1188
+ const iconName = getThemedValue(relatedAIView?.properties.icon, useUIStore().appliedTheme);
1418
1189
  pushViewStack(
1419
1190
  {
1420
1191
  title: relatedAIView?.properties.title,
@@ -1422,11 +1193,11 @@ const useViewStacks = defineStore("nodeCreatorViewStacks", () => {
1422
1193
  rootView: AI_OTHERS_NODE_CREATOR_VIEW,
1423
1194
  mode: "nodes",
1424
1195
  items: nodeCreatorStore.allNodeCreatorNodes,
1425
- nodeIcon: {
1426
- iconType: "icon",
1427
- icon: relatedAIView?.properties.icon,
1196
+ nodeIcon: iconName ? {
1197
+ type: "icon",
1198
+ name: iconName,
1428
1199
  color: relatedAIView?.properties.iconProps?.color
1429
- },
1200
+ } : void 0,
1430
1201
  panelClass: relatedAIView?.properties.panelClass,
1431
1202
  baseFilter: (i) => {
1432
1203
  if (i.key === AI_CODE_NODE_TYPE) return false;
@@ -2081,11 +1852,15 @@ function useCanvasOperations({ router }) {
2081
1852
  trackTidyUp({ result, source, target });
2082
1853
  }
2083
1854
  function trackTidyUp({ result, source, target }) {
2084
- telemetry.track("User tidied up canvas", {
2085
- source,
2086
- target,
2087
- nodes_count: result.nodes.length
2088
- });
1855
+ telemetry.track(
1856
+ "User tidied up canvas",
1857
+ {
1858
+ source,
1859
+ target,
1860
+ nodes_count: result.nodes.length
1861
+ },
1862
+ { withPostHog: true }
1863
+ );
2089
1864
  }
2090
1865
  function updateNodesPosition(events, { trackHistory = false, trackBulk = true } = {}) {
2091
1866
  if (trackHistory && trackBulk) {
@@ -2605,7 +2380,8 @@ function useCanvasOperations({ router }) {
2605
2380
  node.parameters,
2606
2381
  true,
2607
2382
  false,
2608
- node
2383
+ node,
2384
+ nodeTypeDescription
2609
2385
  );
2610
2386
  node.parameters = nodeParameters ?? {};
2611
2387
  }
@@ -3353,11 +3129,9 @@ function useCanvasOperations({ router }) {
3353
3129
  uiStore.stateIsDirty = false;
3354
3130
  return data;
3355
3131
  }
3356
- async function toggleChatOpen(source) {
3132
+ async function toggleChatOpen(source, isOpen) {
3357
3133
  const workflow = workflowsStore.getCurrentWorkflow();
3358
- workflowsStore.setPanelState(
3359
- workflowsStore.chatPanelState === "closed" ? "attached" : "closed"
3360
- );
3134
+ workflowsStore.toggleLogsPanelOpen(isOpen);
3361
3135
  const payload = {
3362
3136
  workflow_id: workflow.id,
3363
3137
  button_type: source
@@ -3440,18 +3214,16 @@ export {
3440
3214
  capitalize as d,
3441
3215
  checkOverlap as e,
3442
3216
  mapLegacyConnectionsToCanvasConnections as f,
3443
- useNodeType as g,
3444
- upperFirst as h,
3217
+ formatTriggerActionName as g,
3218
+ useViewStacks as h,
3445
3219
  insertSpacersBetweenEndpoints as i,
3446
- formatTriggerActionName as j,
3447
- useViewStacks as k,
3448
- camelCase as l,
3220
+ camelCase as j,
3221
+ useKeyboardNavigation as k,
3222
+ AIView as l,
3449
3223
  mapLegacyEndpointsToCanvasConnectionPort as m,
3450
- useKeyboardNavigation as n,
3451
- AIView as o,
3224
+ flattenCreateElements as n,
3452
3225
  parseCanvasConnectionHandleString as p,
3453
- flattenCreateElements as q,
3454
3226
  sortNodeCreateElements as s,
3455
3227
  transformNodeType as t,
3456
- usePinnedData as u
3228
+ upperFirst as u
3457
3229
  };
@@ -1,5 +1,5 @@
1
- import { U as useRoute, a2 as useSourceControlStore, T as useWorkflowsStore, q as computed, b as useRouter, bu as useNodeTypesStore, bK as START_NODE_TYPE } from "./index-DZljH0cm.js";
2
- import { b as useCanvasOperations } from "./useCanvasOperations-2Ca5hPmu.js";
1
+ import { W as useRoute, a3 as useSourceControlStore, U as useWorkflowsStore, q as computed, b as useRouter, bw as useNodeTypesStore, bS as START_NODE_TYPE } from "./index-DD7Wuhk5.js";
2
+ import { b as useCanvasOperations } from "./useCanvasOperations-DCaSrD1N.js";
3
3
  function useClearExecutionButtonVisible() {
4
4
  const route = useRoute();
5
5
  const sourceControlStore = useSourceControlStore();
@@ -1,4 +1,4 @@
1
- import { b as useRouter, a as useToast, T as useWorkflowsStore, p as useSettingsStore, L as useUIStore, a7 as usePageRedirectionHelper, q as computed, ab as EnterpriseEditionFeature, c as useI18n, ca as DEBUG_PAYWALL_MODAL_KEY, ar as h, cb as sanitizeHtml, aj as useMessage, ak as MODAL_CONFIRM, V as VIEWS, ah as useTelemetry, a0 as useRootStore, cc as isFullExecutionResponse } from "./index-DZljH0cm.js";
1
+ import { b as useRouter, a as useToast, U as useWorkflowsStore, p as useSettingsStore, L as useUIStore, a8 as usePageRedirectionHelper, q as computed, ac as EnterpriseEditionFeature, c as useI18n, ch as DEBUG_PAYWALL_MODAL_KEY, as as h, ci as sanitizeHtml, ak as useMessage, al as MODAL_CONFIRM, V as VIEWS, ai as useTelemetry, a1 as useRootStore, cj as isFullExecutionResponse } from "./index-DD7Wuhk5.js";
2
2
  const useExecutionDebugging = () => {
3
3
  const telemetry = useTelemetry();
4
4
  const router = useRouter();
@@ -1,18 +1,5 @@
1
- import { fj as dateFormat, b as useRouter, V as VIEWS, ah as useTelemetry, c as useI18n } from "./index-DZljH0cm.js";
2
- const convertToDisplayDateComponents = (fullDate) => {
3
- const mask = `d mmm${new Date(fullDate).getFullYear() === (/* @__PURE__ */ new Date()).getFullYear() ? "" : ", yyyy"}#HH:MM:ss`;
4
- const formattedDate = dateFormat(fullDate, mask);
5
- const [date, time] = formattedDate.split("#");
6
- return { date, time };
7
- };
8
- function convertToDisplayDate(fullDate) {
9
- const mask = `d mmm${new Date(fullDate).getFullYear() === (/* @__PURE__ */ new Date()).getFullYear() ? "" : ", yyyy"}#HH:MM:ss`;
10
- const formattedDate = dateFormat(fullDate, mask);
11
- const [date, time] = formattedDate.split("#");
12
- return { date, time };
13
- }
14
- const toDayMonth = (fullDate) => dateFormat(fullDate, "d mmm");
15
- const toTime = (fullDate) => dateFormat(fullDate, "HH:MM:ss");
1
+ import { c as convertToDisplayDate } from "./dateFormatter-C7xnNKzY.js";
2
+ import { b as useRouter, V as VIEWS, ai as useTelemetry, c as useI18n } from "./index-DD7Wuhk5.js";
16
3
  function useExecutionHelpers() {
17
4
  const i18n = useI18n();
18
5
  const router = useRouter();
@@ -104,9 +91,5 @@ function useExecutionHelpers() {
104
91
  };
105
92
  }
106
93
  export {
107
- toTime as a,
108
- convertToDisplayDateComponents as b,
109
- convertToDisplayDate as c,
110
- toDayMonth as t,
111
94
  useExecutionHelpers as u
112
95
  };
@@ -1,6 +1,6 @@
1
- import { gR as require$$0, ce as getDefaultExportFromCjs, a as useToast, m as unref, cF as assert, gS as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, gT as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, gU as get } from "./index-DZljH0cm.js";
1
+ import { gP as require$$0, cl as getDefaultExportFromCjs, a as useToast, m as unref, cM as assert, gQ as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, gR as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, gS as get } from "./index-DD7Wuhk5.js";
2
2
  import { c as commonjsRequire } from "./_commonjs-dynamic-modules-TGKdzP3c.js";
3
- import { i as importCurlEventBus } from "./import-curl-BsKs3fYs.js";
3
+ import { i as importCurlEventBus } from "./import-curl-C6ERUxFe.js";
4
4
  class CCError extends Error {
5
5
  }
6
6
  const UTF8encoder = new TextEncoder();
@@ -1,7 +1,6 @@
1
- import { dk as makeRestApiRequest, S as defineStore, a0 as useRootStore, d as defineComponent, c3 as resolveDirective, i as createElementBlock, g as openBlock, aB as withDirectives, k as createBaseVNode, t as toDisplayString, m as unref, c as useI18n, a6 as useWorkflowHelpers, bv as useNodeHelpers, a as useToast, bE as useCredentialsStore, bu as useNodeTypesStore, p as useSettingsStore, L as useUIStore, T as useWorkflowsStore, dl as useAssistantStore, av as usePostHog, r as ref, dm as clearPopupWindowState, bT as AI_CREDITS_EXPERIMENT, ah as useTelemetry, dn as parse, dp as hasTrimmedItem, dq as codeNodeEditorEventBus, al as WORKFLOW_SETTINGS_MODAL_KEY, dr as generateNodesGraph, ar as h, ds as getTriggerNodeServiceName, dt as hasTrimmedData, aQ as useExternalHooks, du as useSchemaPreviewStore } from "./index-DZljH0cm.js";
2
- import { g as globalLinkActionsEventBus } from "./global-link-actions-znEIb0N4.js";
3
- import { u as usePushConnectionStore } from "./pushConnection.store-DHLcz9cC.js";
4
- import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-C7LfXIgb.js";
1
+ import { dq as makeRestApiRequest, S as defineStore, a1 as useRootStore, d as defineComponent, cc as resolveDirective, i as createElementBlock, g as openBlock, aC as withDirectives, k as createBaseVNode, t as toDisplayString, m as unref, c as useI18n, a7 as useWorkflowHelpers, bx as useNodeHelpers, a as useToast, bM as useCredentialsStore, bw as useNodeTypesStore, T as usePushConnectionStore, p as useSettingsStore, L as useUIStore, U as useWorkflowsStore, dr as useAssistantStore, aw as usePostHog, r as ref, ds as clearPopupWindowState, b$ as AI_CREDITS_EXPERIMENT, ai as useTelemetry, dt as parse, du as hasTrimmedItem, dv as codeNodeEditorEventBus, am as WORKFLOW_SETTINGS_MODAL_KEY, dw as generateNodesGraph, as as h, dx as getTriggerNodeServiceName, dy as hasTrimmedData, aR as useExternalHooks, dz as useSchemaPreviewStore } from "./index-DD7Wuhk5.js";
2
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-vGpWr9Uz.js";
3
+ import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-V__OjFo9.js";
5
4
  const GET_STATUS_ENDPOINT = "/orchestration/worker/status";
6
5
  const sendGetWorkerStatus = async (context) => {
7
6
  await makeRestApiRequest(context, "POST", GET_STATUS_ENDPOINT);
@@ -228,7 +227,13 @@ function usePushConnection({ router }) {
228
227
  let executionData;
229
228
  if (receivedData.type === "executionFinished" && receivedData.data.rawData) {
230
229
  const { workflowId, status, rawData } = receivedData.data;
231
- executionData = { workflowId, data: parse(rawData), status };
230
+ executionData = {
231
+ workflowId,
232
+ data: parse(rawData),
233
+ status,
234
+ startedAt: workflowsStore.workflowExecutionData?.startedAt ?? /* @__PURE__ */ new Date(),
235
+ stoppedAt: /* @__PURE__ */ new Date()
236
+ };
232
237
  } else {
233
238
  uiStore.setProcessingExecutionResults(true);
234
239
  if (receivedData.type === "executionFinished" && receivedData.data.status === "success") {
@@ -253,7 +258,9 @@ function usePushConnection({ router }) {
253
258
  executionData = {
254
259
  workflowId: execution.workflowId,
255
260
  data: parse(execution.data),
256
- status: execution.status
261
+ status: execution.status,
262
+ startedAt: workflowsStore.workflowExecutionData?.startedAt,
263
+ stoppedAt: receivedData.type === "executionFinished" ? /* @__PURE__ */ new Date() : void 0
257
264
  };
258
265
  } catch {
259
266
  uiStore.setProcessingExecutionResults(false);
@@ -1,4 +1,4 @@
1
- import { c4 as useTestDefinitionStore, r as ref, q as computed } from "./index-DZljH0cm.js";
1
+ import { g5 as useTestDefinitionStore, r as ref, q as computed } from "./index-DD7Wuhk5.js";
2
2
  function useTestDefinitionForm() {
3
3
  const evaluationsStore = useTestDefinitionStore();
4
4
  const state = ref({
@@ -22,7 +22,6 @@ function useTestDefinitionForm() {
22
22
  value: "",
23
23
  __rl: true
24
24
  },
25
- metrics: [],
26
25
  mockedNodes: []
27
26
  });
28
27
  const isSaving = ref(false);
@@ -37,7 +36,6 @@ function useTestDefinitionForm() {
37
36
  await evaluationsStore.fetchAll({ force: true, workflowId });
38
37
  const testDefinition = evaluationsStore.testDefinitionsById[testId];
39
38
  if (testDefinition) {
40
- const metrics = await evaluationsStore.fetchMetrics(testId);
41
39
  state.value.description = {
42
40
  value: testDefinition.description ?? "",
43
41
  isEditing: false,
@@ -58,7 +56,6 @@ function useTestDefinitionForm() {
58
56
  value: testDefinition.evaluationWorkflowId ?? "",
59
57
  __rl: true
60
58
  };
61
- state.value.metrics = metrics;
62
59
  state.value.mockedNodes = testDefinition.mockedNodes ?? [];
63
60
  evaluationsStore.updateRunFieldIssues(testDefinition.id);
64
61
  }
@@ -80,31 +77,6 @@ function useTestDefinitionForm() {
80
77
  isSaving.value = false;
81
78
  }
82
79
  };
83
- const deleteMetric = async (metricId, testId) => {
84
- await evaluationsStore.deleteMetric({ id: metricId, testDefinitionId: testId });
85
- state.value.metrics = state.value.metrics.filter((metric) => metric.id !== metricId);
86
- };
87
- const updateMetrics = async (testId) => {
88
- const promises = state.value.metrics.map(async (metric) => {
89
- if (!metric.name) return;
90
- if (!metric.id) {
91
- const createdMetric = await evaluationsStore.createMetric({
92
- name: metric.name,
93
- testDefinitionId: testId
94
- });
95
- metric.id = createdMetric.id;
96
- } else {
97
- await evaluationsStore.updateMetric({
98
- name: metric.name,
99
- id: metric.id,
100
- testDefinitionId: testId
101
- });
102
- }
103
- });
104
- isSaving.value = true;
105
- await Promise.all(promises);
106
- isSaving.value = false;
107
- };
108
80
  const updateTest = async (testId) => {
109
81
  if (isSaving.value) return;
110
82
  isSaving.value = true;
@@ -168,8 +140,6 @@ function useTestDefinitionForm() {
168
140
  state,
169
141
  fields,
170
142
  isSaving: computed(() => isSaving.value),
171
- deleteMetric,
172
- updateMetrics,
173
143
  loadTestData,
174
144
  createTest,
175
145
  updateTest,
@@ -1,4 +1,4 @@
1
- import { r as ref, b as useRouter, a6 as useWorkflowHelpers, T as useWorkflowsStore, L as useUIStore, a as useToast, a4 as useNpsSurveyStore, W as PLACEHOLDER_EMPTY_WORKFLOW_ID, ah as useTelemetry, aQ as useExternalHooks, c as useI18n, aK as useStorage, dA as LOCAL_STORAGE_ACTIVATION_FLAG, dB as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-DZljH0cm.js";
1
+ import { r as ref, b as useRouter, a7 as useWorkflowHelpers, U as useWorkflowsStore, L as useUIStore, a as useToast, a5 as useNpsSurveyStore, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, ai as useTelemetry, aR as useExternalHooks, c as useI18n, aL as useStorage, dE as LOCAL_STORAGE_ACTIVATION_FLAG, dF as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-DD7Wuhk5.js";
2
2
  function useWorkflowActivate() {
3
3
  const updatingWorkflowActivation = ref(false);
4
4
  const router = useRouter();
package/dist/index.html CHANGED
@@ -16,8 +16,8 @@
16
16
  <script>!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag onFeatureFlags reloadFeatureFlags".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[])</script>
17
17
 
18
18
  <title>n8n.io - Workflow Automation</title>
19
- <script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-DZljH0cm.js"></script>
20
- <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-CgXKy7t-.css">
19
+ <script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-DD7Wuhk5.js"></script>
20
+ <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-DJ205bL0.css">
21
21
  </head>
22
22
  <body>
23
23
  <noscript>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-editor-ui",
3
- "version": "1.85.2",
3
+ "version": "1.87.0",
4
4
  "description": "Workflow Editor UI for n8n",
5
5
  "main": "index.js",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -1,4 +0,0 @@
1
- import { gQ as _sfc_main } from "./index-DZljH0cm.js";
2
- export {
3
- _sfc_main as default
4
- };