UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 13.7 kB
(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`n8n@2.16.1`}}catch{}})();try{(function(){var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`bc6e957b-c9a2-4a5e-855d-aa9a6d12e027`,e._sentryDebugIdIdentifier=`sentry-dbid-bc6e957b-c9a2-4a5e-855d-aa9a6d12e027`)})()}catch{}import{Ft as e}from"./vue.runtime.esm-bundler-C3C09Zii.js";import{at as t}from"./core-Bz5WjPxS.js";import{Et as n,Fr as r,G as i,In as a,It as o,Ot as s,Pn as c,Pt as l,Rt as u,Tt as d,Y as f,aa as p,b as m,da as h,fr as g,it as _,lr as v,m as ee,oa as y,qi as b,r as x,ra as S,s as C,sr as w,w as T,y as E,zt as D}from"./users.store-xP93bV7X.js";import{Co as O,Ia as te,Ki as k,Qi as ne,mo as re,zs as ie}from"./constants-DuQbSl-q.js";import{T as ae,t as A}from"./useRootStore-XEREVjMN.js";import{$ as j,t as M}from"./settings.store-CAFiYCMH.js";import{t as N}from"./banners.store-CAM7bMAe.js";import{t as P}from"./assistant.store-C47L2JfA.js";import{t as F}from"./useCanvasOperations-BAcfYmDn.js";import{i as I,t as L}from"./useRunWorkflow-Cii0mAex.js";import{t as R}from"./pushConnection.store-D7Wwlyyp.js";import{t as z}from"./readyToRun.store-DUyOyjE3.js";import{t as B}from"./aiTemplatesStarterCollection.store-DhjVvT3h.js";async function V(e){s().updateBuilderCredits(e.data.creditsQuota,e.data.creditsClaimed)}async function H({data:e},t){let n=C(),r=w(),a=x(),o=B(),s=z();if(t.workflowState.executingNode.lastAddedExecutingNode=null,n.activeExecutionId===void 0)return;let c=g();ee();let l=r.getWorkflowById(e.workflowId)?.meta?.templateId;l&&(l===i.EasyAiTemplate?c.track(`User executed test AI workflow`,{status:e.status}):l.startsWith(`035_template_onboarding`)?o.trackUserExecutedWorkflow(l.split(`-`).pop()??``,e.status):l===`ready-to-run-ai-workflow`||l===`ready-to-run-ai-workflow-v5`||l===`ready-to-run-ai-workflow-v6`?e.status===`success`?s.trackExecuteAiWorkflowSuccess():s.trackExecuteAiWorkflow(e.status):f(l)&&c.track(`User executed tutorial template`,{template:l,status:e.status})),a.setProcessingExecutionResults(!0);let u=!1;e.status===`success`&&(X(t.workflowState,e.status,u),u=!0);let d=await W(e.executionId);if(!d){t.workflowState.setActiveExecutionId(void 0),a.setProcessingExecutionResults(!1);return}let p=G(d);a.setProcessingExecutionResults(!1),d.data?.waitTill===void 0?d.status===`error`||d.status===`canceled`?J(d,p):X(t.workflowState,d.status,u):q(e.workflowId,t),Z(d,p,t.workflowState),U(d,t)}function U(e,t){if(e.status!==`success`||e.data?.startData?.destinationNode!==void 0)return;let n=e.workflowData.nodes.find(e=>e.type===re),r=n?e?.data?.resultData?.runData[n.name]:void 0;if(!n||r===void 0)return;let i=r[0]?.data?.main[0],a=i?i[0]?.json?._rowsLeft:0;if(a&&a>0){let{runWorkflow:e}=L(t);e({triggerNode:n.name,nodeData:r[0],rerunTriggerNode:!0})}}async function W(e){let t=C();try{let n=await t.fetchExecutionDataById(e);return n?.data?{id:e,workflowId:n.workflowId,workflowData:t.workflow,data:n.data,status:n.status,startedAt:t.workflowExecutionData?.startedAt,stoppedAt:new Date}:void 0}catch{return}}function G(e){return k({...e.data,startData:e.data?.startData,resultData:e.data?.resultData??{runData:{}},executionData:e.data?.executionData})}function K(e){let n=t();if(e.status===`crashed`)return n.baseText(`pushConnection.executionFailed.message`);if(e.status===`canceled`){let e=C();return n.baseText(`executionsList.showMessage.stopExecution.message`,{interpolate:{activeExecutionId:e.activeExecutionId??``}})}return E({error:e.data?.resultData.error,lastNodeExecuted:e.data?.resultData.lastNodeExecuted})}function q(e,t){let n=C(),r=M(),i=D(t),a=n.workflowObject;if(!(((e?y(S(e)):void 0)?.settings??{}).saveManualExecutions??r.saveManualExecutions)){let e=x();l.emit(`registerGlobalLinkAction`,{key:`open-settings`,action:async()=>{n.isWorkflowSaved[n.workflowId]||await i.saveAsNewWorkflow(),e.openModal(ie)}})}u().setDocumentTitle(a.name,`IDLE`)}function J(e,n){let r=c(),i=t(),a=g(),o=C(),l=u(),f=d(),p=o.workflowObject;if(l.setDocumentTitle(p.name,`ERROR`),n.resultData.error?.name===`ExpressionError`&&n.resultData.error.functionality===`pairedItem`){let e=n.resultData.error;f.getWorkflowDataToSave().then(t=>{let n={caused_by_credential:!1,error_message:e.description,error_title:e.message,error_type:e.context.type,node_graph_string:JSON.stringify(ne(t,f.getNodeTypes()).nodeGraph),workflow_id:o.workflowId};if(e.context.nodeCause&&[`paired_item_no_info`,`paired_item_invalid_info`].includes(e.context.type)){let t=p.getNode(e.context.nodeCause);t&&(n.is_pinned=!!(o.workflowId?y(S(o.workflowId)):void 0)?.pinData?.[t.name],n.mode=t.parameters.mode,n.node_type=t.type,n.operation=t.parameters.operation,n.resource=t.parameters.resource)}a.track(`Instance FE emitted paired item error`,n)})}if(e.status===`canceled`)r.showMessage({title:i.baseText(`nodeView.showMessage.stopExecutionTry.title`),type:`success`});else if(e.data?.resultData.error){let{message:t,title:n}=m({error:e.data.resultData.error,lastNodeExecuted:e.data?.resultData.lastNodeExecuted});r.showMessage({title:n,message:t,type:`error`,duration:0}),s().incrementManualExecutionStats(`error`)}}function Y(e,t,n){let r=c();u().setDocumentTitle(e,`IDLE`),n.setActiveExecutionId(void 0),r.showMessage({title:t,type:`success`})}function X(e,n,r){let i=C(),a=c(),o=t(),l=T(),d=i.workflowObject.name??``,f=i.workflowId?y(S(i.workflowId)):void 0;u().setDocumentTitle(d,`IDLE`);let p=i.getWorkflowExecution;if(p?.executedNode){let t=f?.getNodeByName(p.executedNode)??null,n=t&&l.getNodeType(t.type,t.typeVersion),i=p.data?.resultData?.runData?.[p.executedNode];n?.polling&&!i?a.showMessage({title:o.baseText(`pushConnection.pollingNode.dataNotFound`,{interpolate:{service:b(n)}}),message:o.baseText(`pushConnection.pollingNode.dataNotFound.message`,{interpolate:{service:b(n)}}),type:`success`}):!i&&!r?a.showMessage({title:o.baseText(`pushConnection.nodeNotExecuted`),message:o.baseText(`pushConnection.nodeNotExecuted.message`),type:`warning`}):r||Y(d,o.baseText(`pushConnection.nodeExecutedSuccessfully`),e)}else r||Y(d,o.baseText(`pushConnection.workflowExecutedSuccessfully`),e);n===`success`&&!r&&s().incrementManualExecutionStats(`success`)}function Z(e,t,n){let r=C(),i=v(),s=K(e),c=r.getWorkflowExecution;if(n.executingNode.executingNode.length=0,c===null)return;n.setWorkflowExecutionData({...c,status:e.status,id:e.id,stoppedAt:e.stoppedAt}),r.setWorkflowExecutionRunData(t),n.setActiveExecutionId(void 0),i.updateNodesExecutionIssues();let l=t.resultData.lastNodeExecuted,u=0;l&&t.resultData.runData[l]&&!s&&(u=t.resultData.runData[l][0].data?.main[0]?.length??0),n.setActiveExecutionId(void 0),a().run(`pushConnection.executionFinished`,{itemsCount:u,nodeName:t.resultData.lastNodeExecuted,errorMessage:s,runDataExecutedStartData:t.startData,resultDataError:t.resultData.error});let d=t.resultData?.error?.lineNumber;o.emit(`highlightLine`,d??`last`)}async function oe({data:e},t){let n=C(),r=x();if(n.activeExecutionId===void 0)return;r.setProcessingExecutionResults(!0);let i=await W(e.executionId);if(!i){r.setProcessingExecutionResults(!1);return}let a=G(i);r.setProcessingExecutionResults(!1),i.data?.waitTill===void 0?i.status===`error`||i.status===`canceled`?J(i,a):X(t.workflowState,i.status,!1):q(i.workflowId??``,t),Z(i,a,t.workflowState)}async function se({data:e},t){let n=C(),r=window!==window.parent;if(n.activeExecutionId===void 0&&!r)return;let i=n.activeExecutionId===null||n.activeExecutionId===void 0||r&&n.activeExecutionId!==e.executionId;if(i&&t.workflowState.setActiveExecutionId(e.executionId),!n.workflowExecutionData?.data||i){let r=n.workflow;t.workflowState.setWorkflowExecutionData({id:e.executionId,finished:!1,mode:`manual`,status:`running`,createdAt:new Date,startedAt:new Date,workflowData:{id:r.id,name:r.name,active:r.active,isArchived:r.isArchived,nodes:r.nodes,connections:r.connections,createdAt:r.createdAt,updatedAt:r.updatedAt,versionId:r.versionId??``,activeVersionId:r.activeVersionId??null},data:k()})}n.workflowExecutionData?.data&&e.flattedRunData&&(n.workflowExecutionData.data.resultData.runData=h(e.flattedRunData))}async function ce(e){let t=T(),n=_();await t.getNodeTypes(),await n.fetchCredentialTypes(!0)}async function le({data:e},{workflowState:t}){let n=C(),i=P(),a={main:[]};if(e.itemCountByConnectionType&&typeof e.itemCountByConnectionType==`object`){let t={json:{[O]:!0}};for(let[n,i]of Object.entries(e.itemCountByConnectionType))r(n)&&(a[n]=i.map(e=>Array.from({length:e},()=>t)))}let o={...e,data:{...e.data,data:a}};n.updateNodeExecutionStatus(o),t.executingNode.removeExecutingNode(e.nodeName),i.onNodeExecution(e)}async function ue({data:e}){let t=C(),n=I();t.updateNodeExecutionRunData(e),n.trackSchemaPreviewExecution(e)}async function de({data:e},{workflowState:t}){let n=C();t.executingNode.addExecutingNode(e.nodeName),n.addNodeExecutionStartedData(e)}async function fe({data:e}){let t=T();await t.getNodeTypes();let n=te(e.name);await t.getFullNodesProperties([e],!n)}async function pe({data:e}){let t=T(),n=_(),r=[e];await n.fetchCredentialTypes(!1).then(()=>{t.removeNodeTypes(r)})}async function me({data:e}){console.log(e.source,...e.messages)}var Q=120*1e3,$=ae(`orchestrationManager`,{state:()=>({initialStatusReceived:!1,workers:{},workersHistory:{},workersLastUpdated:{},statusInterval:null}),actions:{updateWorkerStatus(e){this.workers[e.senderId]=e,this.workersHistory[e.senderId]||(this.workersHistory[e.senderId]=[]),this.workersHistory[e.senderId].push({data:e,timestamp:Date.now()}),this.workersHistory[e.senderId].length>100&&this.workersHistory[e.senderId].shift(),this.workersLastUpdated[e.senderId]=Date.now(),this.initialStatusReceived=!0},removeStaleWorkers(){for(let e in this.workersLastUpdated)this.workersLastUpdated[e]+Q<Date.now()&&(delete this.workers[e],delete this.workersHistory[e],delete this.workersLastUpdated[e])},startWorkerStatusPolling(){let e=A();this.statusInterval||=setInterval(async()=>{await j(e.restApiContext),this.removeStaleWorkers()},1e3)},stopWorkerStatusPolling(){this.statusInterval&&=(clearInterval(this.statusInterval),null)},getWorkerLastUpdated(e){return this.workersLastUpdated[e]??0},getWorkerStatus(e){return this.workers[e]},getWorkerStatusHistory(e){return this.workersHistory[e]??[]}}});async function he({data:e}){$().updateWorkerStatus(e.status)}async function ge({data:e},t){let n=C();e.workflowId===n.workflowId&&(n.executionWaitingForWebhook=!1,t.workflowState.setActiveExecutionId(void 0))}async function _e({data:e},t){let n=C();e.workflowId===n.workflowId&&(n.executionWaitingForWebhook=!1,t.workflowState.setActiveExecutionId(e.executionId??null))}async function ve({data:e}){let{initializeWorkspace:t}=F(),n=C(),r=w(),i=p(),a=N(),o=x(),{workflowId:s,activeVersionId:c}=e,l=n.workflowId===s,u=i?.value?.activeVersionId!==c;if(l&&u&&!o.stateIsDirty){let e=await r.fetchWorkflow(s);if(!e.checksum)throw Error(`Failed to fetch workflow`);await t(e)}l&&a.removeBannerFromStack(`WORKFLOW_AUTO_DEACTIVATED`)}async function ye({data:e}){let t=C(),n=w(),r=p(),{initializeWorkspace:i}=F(),a=N(),o=x();if(t.setWorkflowInactive(e.workflowId),t.workflowId===e.workflowId){if(o.stateIsDirty)r?.value?.setActiveState({activeVersionId:null,activeVersion:null});else{let t=await n.fetchWorkflow(e.workflowId);if(!t.checksum)throw Error(`Failed to fetch workflow`);await i(t)}a.pushBannerToStack(`WORKFLOW_AUTO_DEACTIVATED`)}}async function be({data:e}){let{initializeWorkspace:t}=F(),n=C(),r=w(),i=p(),a=x();if(n.workflowId===e.workflowId)if(a.stateIsDirty)i?.value?.setActiveState({activeVersionId:null,activeVersion:null});else{let n=await r.fetchWorkflow(e.workflowId);if(!n.checksum)throw Error(`Failed to fetch workflow`);await t(n)}}async function xe({data:e},n){let r=C(),i=p();if(r.workflowId!==e.workflowId)return;r.setWorkflowInactive(e.workflowId),i?.value?.setActiveState({activeVersionId:null,activeVersion:null});let a=c(),o=t();a.showError(Error(e.errorMessage),o.baseText(`workflowActivator.showError.title`,{interpolate:{newStateName:`activated`}})+`:`)}function Se(e){let t=[],n=!1;async function r(){if(n||t.length===0)return;n=!0;let i=t.shift();if(i!==void 0)try{await e(i)}catch(e){console.error(`Error processing event:`,e)}n=!1,await r()}function i(e){t.push(e),r()}return{enqueue:i}}function Ce({router:t,workflowState:r}){let i=R(),a={router:t,workflowState:r??n()},{enqueue:o}=Se(u),s=e(null);function c(){s.value=i.addEventListener(e=>{o(e)})}function l(){typeof s.value==`function`&&s.value()}async function u(e){switch(e.type){case`testWebhookDeleted`:return await ge(e,a);case`testWebhookReceived`:return await _e(e,a);case`reloadNodeType`:return await fe(e);case`removeNodeType`:return await pe(e);case`nodeDescriptionUpdated`:return await ce(e);case`nodeExecuteBefore`:return await de(e,a);case`nodeExecuteAfter`:return await le(e,a);case`nodeExecuteAfterData`:return await ue(e);case`executionStarted`:return await se(e,a);case`sendWorkerStatusMessage`:return await he(e);case`sendConsoleMessage`:return await me(e);case`workflowFailedToActivate`:return await xe(e,a);case`executionFinished`:return await H(e,a);case`executionRecovered`:return await oe(e,a);case`workflowActivated`:return await ve(e);case`workflowDeactivated`:return await be(e);case`workflowAutoDeactivated`:return await ye(e);case`updateBuilderCredits`:return await V(e)}}return{initialize:c,terminate:l}}export{$ as n,Ce as t}; //# sourceMappingURL=usePushConnection-B4egyiyG.js.map