n8n-editor-ui 1.78.0 → 1.79.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/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-eVUE5od5.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DWFDE-uq.js} +1 -1
- package/dist/assets/{AuthView-D1tEXMXA.js → AuthView-BWy2AXVx.js} +2 -2
- package/dist/assets/{CanvasChat-BLb-TUbz.js → CanvasChat-BsICzNGY.js} +5 -4
- package/dist/assets/{CanvasControls-BN3S3-fQ.js → CanvasControls-BYFrPavs.js} +1 -1
- package/dist/assets/{ChangePasswordView-V1JTrEew.js → ChangePasswordView-CCLiIUKZ.js} +3 -3
- package/dist/assets/CollectionParameter-B3ZH0i1M.js +4 -0
- package/dist/assets/{ConcurrentExecutionsHeader-BNA8q-8c.js → ConcurrentExecutionsHeader-B2EowTfB.js} +2 -2
- package/dist/assets/{CredentialsView-AQksN2m1.js → CredentialsView-D432ux-I.js} +4 -4
- package/dist/assets/{ErrorView-CLT4S_BD.js → ErrorView-9_LZzUF-.js} +1 -1
- package/dist/assets/{ExecutionsView-qI0J-9KP.js → ExecutionsView-BIxxUIkR.js} +5 -5
- package/dist/assets/{FileSaver.min-B-zoCBIE.js → FileSaver.min-B1V6jKo8.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-DQeeV-mE.js → FixedCollectionParameter-YMjaDcrW.js} +1 -1
- package/dist/assets/{ForgotMyPasswordView-BYvqdrhp.js → ForgotMyPasswordView-BOt01WDb.js} +3 -3
- package/dist/assets/{Logo-CmkNIoey.js → Logo-DCNJYrds.js} +1 -1
- package/dist/assets/{MainHeader-rUYFpqrO.js → MainHeader-KzaLIjdh.js} +10 -9
- package/dist/assets/{MainSidebar-Djaxwdmm.css → MainSidebar-BQVC8zBU.css} +13 -13
- package/dist/assets/{MainSidebar-B9_KVa79.js → MainSidebar-DOmlVdj3.js} +10 -10
- package/dist/assets/{NodeCreation-CWLKVrNb.js → NodeCreation-DY007rCJ.js} +4 -4
- package/dist/assets/{NodeCreator-CzIIkTTW.js → NodeCreator-DOXRU1eU.js} +5 -4
- package/dist/assets/{NodeViewSwitcher-Det3o0gl.css → NodeViewSwitcher-9WCdidKb.css} +23 -23
- package/dist/assets/{NodeViewSwitcher-BUNM0KZ6.js → NodeViewSwitcher-mdZWG63-.js} +75 -61
- package/dist/assets/{ProjectCardBadge-BbA_Exq8.js → ProjectCardBadge-ncOmPQT3.js} +1 -1
- package/dist/assets/{ProjectHeader-DlgpDOwX.js → ProjectHeader-B2g2JlKl.js} +1 -1
- package/dist/assets/{ProjectSettings-DqEtmmAS.js → ProjectSettings-AKqh1FtB.js} +2 -2
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DL91BcV8.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-Dl-7_27h.js} +7 -4
- package/dist/assets/{ResourcesListLayout-D2ZxA1Uw.js → ResourcesListLayout-ByR63gYP.js} +1 -1
- package/dist/assets/{useRunWorkflow-B-O5w0ED.js → RunDataAi-ccnApOYE.js} +4 -320
- package/dist/assets/{RunDataJson-UkDmIQKn.js → RunDataJson-BKSpe5ct.js} +16 -14
- package/dist/assets/{RunDataJsonActions-BqDvrghZ.js → RunDataJsonActions-2mr7NT2e.js} +4 -5
- package/dist/assets/{RunDataSearch-UNQ4_4vM.js → RunDataSearch-Cr7Vco2g.js} +1 -1
- package/dist/assets/{RunDataTable-BdbNPKnU.js → RunDataTable-Di4ZRdsP.js} +2 -2
- package/dist/assets/{SamlOnboarding-Rzkh3AGB.js → SamlOnboarding-C6A4K5y_.js} +3 -3
- package/dist/assets/{SettingsApiView-C27ofqQf.js → SettingsApiView-lxJDg42B.js} +1 -1
- package/dist/assets/{SettingsCommunityNodesView-CWp_YPSH.js → SettingsCommunityNodesView-YkXQrq1A.js} +5 -4
- package/dist/assets/{SettingsExternalSecrets-BytZbZef.js → SettingsExternalSecrets-Cyrb1_mA.js} +1 -1
- package/dist/assets/{SettingsLdapView-DvNozRM0.js → SettingsLdapView-BiBAQFE3.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-C4Y3N6rF.js → SettingsLogStreamingView-B1xZpAcm.js} +1 -1
- package/dist/assets/{SettingsPersonalView--Z9y3dtC.js → SettingsPersonalView-D0iryycz.js} +1 -1
- package/dist/assets/{SettingsSourceControl-BElByx3w.js → SettingsSourceControl-B3SU8Cq3.js} +1 -1
- package/dist/assets/{SettingsSso-DUOhZeok.js → SettingsSso-DX4TKTsQ.js} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-DTw2vCOM.js → SettingsUsageAndPlan-DawDrfF4.js} +1 -1
- package/dist/assets/{SettingsUsersView-B2lC671-.js → SettingsUsersView-BQWBJqPE.js} +1 -1
- package/dist/assets/{SettingsView-tGXgBeZb.js → SettingsView-BNDKNELZ.js} +1 -1
- package/dist/assets/{SetupView-BB-PMekL.js → SetupView-C4Eo3Exo.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-B7i_jYti.js → SetupWorkflowCredentialsButton-D5_n7ODz.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-Co52TGFE.js → SetupWorkflowFromTemplateView-BhrvXdVP.js} +3 -3
- package/dist/assets/{SigninView-B8lcx39e.js → SigninView-Hl7bzZyS.js} +3 -3
- package/dist/assets/{SignoutView-CamkX68g.js → SignoutView-BTZ7B2eU.js} +1 -1
- package/dist/assets/{SignupView-D9e7FiEj.js → SignupView-BzD--VKr.js} +3 -3
- package/dist/assets/{TemplateDetails-C0RPBtYu.js → TemplateDetails-CE4hKdqt.js} +1 -1
- package/dist/assets/{TemplateList-B6jscn2o.js → TemplateList-C40kkbIk.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-9fi4vQ1-.js → TemplatesCollectionView-qnbaiTtg.js} +5 -5
- package/dist/assets/{TemplatesSearchView-VlRyjuTl.js → TemplatesSearchView-CxGzeepB.js} +3 -3
- package/dist/assets/{TemplatesView-CgQelQ-w.js → TemplatesView-CLnu-Vk0.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-BhhfuZZ9.js → TemplatesWorkflowView-DSUDCqLB.js} +5 -5
- package/dist/assets/{TestDefinitionEditView-Cv4ImQQb.js → TestDefinitionEditView-Cr91OHJq.js} +4 -3
- package/dist/assets/{TestDefinitionListView-CywmtGBZ.js → TestDefinitionListView-CHtb_wVa.js} +1 -1
- package/dist/assets/{TestDefinitionRootView-BhZESeJD.js → TestDefinitionRootView-qwBGRGcA.js} +1 -1
- package/dist/assets/{VariablesView-B_Ju8Kay.js → VariablesView-DbieMKqP.js} +2 -2
- package/dist/assets/{WorkerView-Lif0hJie.js → WorkerView-CGoEdLP1.js} +6 -5
- package/dist/assets/{WorkflowActivator-Bv0WPJm3.js → WorkflowActivator-DDV__yRf.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-DitIU6bv.js → WorkflowExecutionsInfoAccordion-BtuCDilo.js} +1 -1
- package/dist/assets/{WorkflowExecutionsLandingPage-vuyCAPrk.js → WorkflowExecutionsLandingPage-BY-k0RSJ.js} +2 -2
- package/dist/assets/{WorkflowExecutionsPreview-DN_WSVD_.js → WorkflowExecutionsPreview-CyaPgz0p.js} +5 -5
- package/dist/assets/{WorkflowExecutionsView-BhFMyj3l.js → WorkflowExecutionsView-BiJSnqfz.js} +5 -5
- package/dist/assets/{WorkflowHistory-XSHcXPVZ.js → WorkflowHistory-DPFTyd0-.js} +3 -3
- package/dist/assets/{WorkflowOnboardingView-DdujIOw8.js → WorkflowOnboardingView-CvM7VnUz.js} +1 -1
- package/dist/assets/{WorkflowPreview-YDi-9g3Y.js → WorkflowPreview-AXxLG6z_.js} +1 -1
- package/dist/assets/{WorkflowsView-BLTTQnV3.js → WorkflowsView-CJfwV6KM.js} +7 -7
- package/dist/assets/_commonjs-dynamic-modules-TGKdzP3c.js +6 -0
- package/dist/assets/{easyAiWorkflowUtils-WSNP3eeS.js → easyAiWorkflowUtils-Bgzcbe9I.js} +2 -2
- package/dist/assets/global-link-actions-ilTTGVxi.js +5 -0
- package/dist/assets/import-curl-BmGzfSSE.js +5 -0
- package/dist/assets/{index-BwoviwZU.js → index-DCrfHAqy.js} +1818 -1741
- package/dist/assets/{index-DFFkAkMx.css → index-xKO0gQfI.css} +23 -19
- package/dist/assets/pushConnection.store-BfRLeHNn.js +238 -0
- package/dist/assets/{templateActions-CDiqnge9.js → templateActions-B1TLkU9O.js} +1 -1
- package/dist/assets/{useBeforeUnload-BQCxN-bM.js → useBeforeUnload-QUAV6NNZ.js} +1 -1
- package/dist/assets/{useCanvasOperations-DQSiUE8i.js → useCanvasMapping-B7TPBzRe.js} +3362 -3174
- package/dist/assets/{useCanvasOperations-CKa4_bqL.css → useCanvasMapping-DeC609A4.css} +213 -160
- package/dist/assets/{useExecutionDebugging-BlSzHQ7f.js → useExecutionDebugging-Cgdyxfi_.js} +1 -1
- package/dist/assets/{useExecutionHelpers-DpNwTiuj.js → useExecutionHelpers-CN4pMvuh.js} +1 -1
- package/dist/assets/useImportCurlCommand-D-HLU11j.js +9055 -0
- package/dist/assets/{usePushConnection-ioPocbvz.js → usePushConnection-DNb5nQKO.js} +4 -3
- package/dist/assets/useRunWorkflow-DTE_Nd7p.js +616 -0
- package/dist/assets/{useWorkflowActivate-CbVB4JlR.js → useWorkflowActivate-FRUHj-WT.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/tree-sitter-bash.wasm +0 -0
- package/dist/tree-sitter.wasm +0 -0
- package/package.json +1 -1
- package/vite.config.mts +14 -1
- package/dist/assets/CollectionParameter-C28x26Fy.js +0 -4
- package/dist/assets/pushConnection.store-BlMyXexG.js +0 -117
- package/dist/assets/usePinnedData-E0jv55-6.js +0 -274
- /package/dist/assets/{useRunWorkflow-DWoFsQdi.css → RunDataAi-DWoFsQdi.css} +0 -0
|
@@ -32694,13 +32694,13 @@ code[class^=language-] {
|
|
|
32694
32694
|
-------------------------- */
|
|
32695
32695
|
/* BEM
|
|
32696
32696
|
-------------------------- */
|
|
32697
|
-
[data-v-
|
|
32697
|
+
[data-v-03c698a0] .cm-editor {
|
|
32698
32698
|
padding-left: 0;
|
|
32699
32699
|
}
|
|
32700
|
-
[data-v-
|
|
32700
|
+
[data-v-03c698a0] .cm-content {
|
|
32701
32701
|
padding-left: var(--spacing-2xs);
|
|
32702
32702
|
}
|
|
32703
|
-
[data-v-
|
|
32703
|
+
[data-v-03c698a0] .cm-content[aria-readonly=true] {
|
|
32704
32704
|
background-color: var(--disabled-fill, var(--color-background-light));
|
|
32705
32705
|
border-color: var(--disabled-border, var(--border-color-base));
|
|
32706
32706
|
color: var(--disabled-color, var(--color-text-base));
|
|
@@ -36673,34 +36673,34 @@ code[class^=language-] {
|
|
|
36673
36673
|
-------------------------- */
|
|
36674
36674
|
/* BEM
|
|
36675
36675
|
-------------------------- */
|
|
36676
|
-
.readonly-code[data-v-
|
|
36676
|
+
.readonly-code[data-v-0ce25612] {
|
|
36677
36677
|
font-size: var(--font-size-xs);
|
|
36678
36678
|
}
|
|
36679
|
-
.switch-input[data-v-
|
|
36679
|
+
.switch-input[data-v-0ce25612] {
|
|
36680
36680
|
margin: var(--spacing-5xs) 0 var(--spacing-2xs) 0;
|
|
36681
36681
|
}
|
|
36682
|
-
.parameter-value-container[data-v-
|
|
36682
|
+
.parameter-value-container[data-v-0ce25612] {
|
|
36683
36683
|
display: flex;
|
|
36684
36684
|
align-items: center;
|
|
36685
36685
|
}
|
|
36686
|
-
.parameter-actions[data-v-
|
|
36686
|
+
.parameter-actions[data-v-0ce25612] {
|
|
36687
36687
|
display: inline-flex;
|
|
36688
36688
|
align-items: center;
|
|
36689
36689
|
}
|
|
36690
|
-
.parameter-switch[data-v-
|
|
36690
|
+
.parameter-switch[data-v-0ce25612] {
|
|
36691
36691
|
display: inline-flex;
|
|
36692
36692
|
align-self: flex-start;
|
|
36693
36693
|
justify-items: center;
|
|
36694
36694
|
gap: var(--spacing-xs);
|
|
36695
36695
|
}
|
|
36696
|
-
.parameter-input[data-v-
|
|
36696
|
+
.parameter-input[data-v-0ce25612] {
|
|
36697
36697
|
display: inline-block;
|
|
36698
36698
|
position: relative;
|
|
36699
36699
|
}
|
|
36700
|
-
.parameter-input[data-v-
|
|
36700
|
+
.parameter-input[data-v-0ce25612] .color-input {
|
|
36701
36701
|
display: flex;
|
|
36702
36702
|
}
|
|
36703
|
-
.parameter-input[data-v-
|
|
36703
|
+
.parameter-input[data-v-0ce25612] .color-input .el-color-picker__trigger {
|
|
36704
36704
|
border: none;
|
|
36705
36705
|
}/* BEM support Func
|
|
36706
36706
|
-------------------------- */
|
|
@@ -45802,30 +45802,34 @@ tr:hover ._ops_p819s_133:not(._disabled_p819s_123) {
|
|
|
45802
45802
|
-------------------------- */
|
|
45803
45803
|
/* BEM
|
|
45804
45804
|
-------------------------- */
|
|
45805
|
-
.
|
|
45805
|
+
._parameterItem_1yw1o_123 {
|
|
45806
|
+
--delete-option-width: 22px;
|
|
45806
45807
|
display: flex;
|
|
45807
45808
|
padding: 0 0 0 var(--spacing-s);
|
|
45808
45809
|
}
|
|
45809
|
-
.
|
|
45810
|
+
._parameterItem_1yw1o_123 ._parameterInput_1yw1o_128 {
|
|
45810
45811
|
width: 100%;
|
|
45811
45812
|
}
|
|
45812
|
-
.
|
|
45813
|
+
._parameterItem_1yw1o_123 ._parameterInput_1yw1o_128:first-child {
|
|
45814
|
+
margin-left: var(--delete-option-width);
|
|
45815
|
+
}
|
|
45816
|
+
._parameterItem_1yw1o_123._hasIssues_1yw1o_134 ._parameterIssues_1yw1o_134 {
|
|
45813
45817
|
float: none;
|
|
45814
45818
|
padding-top: var(--spacing-xl);
|
|
45815
45819
|
}
|
|
45816
|
-
.
|
|
45817
|
-
.
|
|
45820
|
+
._parameterItem_1yw1o_123._hasIssues_1yw1o_134 input,
|
|
45821
|
+
._parameterItem_1yw1o_123._hasIssues_1yw1o_134 input:focus {
|
|
45818
45822
|
--input-border-color: var(--color-danger);
|
|
45819
45823
|
border-color: var(--color-danger);
|
|
45820
45824
|
}
|
|
45821
|
-
.
|
|
45825
|
+
._parameterTooltipIcon_1yw1o_144 {
|
|
45822
45826
|
color: var(--color-text-light) !important;
|
|
45823
45827
|
}
|
|
45824
|
-
.
|
|
45828
|
+
._addOption_1yw1o_148 {
|
|
45825
45829
|
margin-top: var(--spacing-l);
|
|
45826
45830
|
padding: 0 0 0 var(--spacing-s);
|
|
45827
45831
|
}
|
|
45828
|
-
.
|
|
45832
|
+
._staleDataWarning_1yw1o_153 {
|
|
45829
45833
|
display: flex;
|
|
45830
45834
|
height: var(--spacing-m);
|
|
45831
45835
|
align-items: baseline;
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { r as ref, gb as createHeartbeatMessage, R as defineStore, S as STORES, Z as useRootStore, p as useSettingsStore, H as watch, q as computed } from "./index-DCrfHAqy.js";
|
|
2
|
+
const useHeartbeat = (options) => {
|
|
3
|
+
const { interval, onHeartbeat } = options;
|
|
4
|
+
const heartbeatTimer = ref(null);
|
|
5
|
+
const startHeartbeat = () => {
|
|
6
|
+
heartbeatTimer.value = setInterval(onHeartbeat, interval);
|
|
7
|
+
};
|
|
8
|
+
const stopHeartbeat = () => {
|
|
9
|
+
if (heartbeatTimer.value) {
|
|
10
|
+
clearInterval(heartbeatTimer.value);
|
|
11
|
+
heartbeatTimer.value = null;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
return {
|
|
15
|
+
startHeartbeat,
|
|
16
|
+
stopHeartbeat
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
const useReconnectTimer = ({ onAttempt, onAttemptScheduled }) => {
|
|
20
|
+
const initialReconnectDelay = 1e3;
|
|
21
|
+
const maxReconnectDelay = 15e3;
|
|
22
|
+
const reconnectTimer = ref(null);
|
|
23
|
+
const reconnectAttempts = ref(0);
|
|
24
|
+
const scheduleReconnect = () => {
|
|
25
|
+
const delay = Math.min(initialReconnectDelay * 2 ** reconnectAttempts.value, maxReconnectDelay);
|
|
26
|
+
reconnectAttempts.value++;
|
|
27
|
+
onAttemptScheduled(delay);
|
|
28
|
+
reconnectTimer.value = setTimeout(() => {
|
|
29
|
+
onAttempt();
|
|
30
|
+
}, delay);
|
|
31
|
+
};
|
|
32
|
+
const stopReconnectTimer = () => {
|
|
33
|
+
if (reconnectTimer.value) {
|
|
34
|
+
clearTimeout(reconnectTimer.value);
|
|
35
|
+
reconnectTimer.value = null;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const resetConnectionAttempts = () => {
|
|
39
|
+
reconnectAttempts.value = 0;
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
scheduleReconnect,
|
|
43
|
+
stopReconnectTimer,
|
|
44
|
+
resetConnectionAttempts
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const useWebSocketClient = (options) => {
|
|
48
|
+
const isConnected = ref(false);
|
|
49
|
+
const socket = ref(null);
|
|
50
|
+
const { startHeartbeat, stopHeartbeat } = useHeartbeat({
|
|
51
|
+
interval: 3e4,
|
|
52
|
+
onHeartbeat: () => {
|
|
53
|
+
socket.value?.send(JSON.stringify(createHeartbeatMessage()));
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
const onConnected = () => {
|
|
57
|
+
socket.value?.removeEventListener("open", onConnected);
|
|
58
|
+
isConnected.value = true;
|
|
59
|
+
startHeartbeat();
|
|
60
|
+
reconnectTimer.resetConnectionAttempts();
|
|
61
|
+
};
|
|
62
|
+
const onConnectionLost = (event) => {
|
|
63
|
+
console.warn(`[WebSocketClient] Connection lost, code=${event.code ?? "unknown"}`);
|
|
64
|
+
disconnect();
|
|
65
|
+
reconnectTimer.scheduleReconnect();
|
|
66
|
+
};
|
|
67
|
+
const onMessage = (event) => {
|
|
68
|
+
options.onMessage(event.data);
|
|
69
|
+
};
|
|
70
|
+
const onError = (error) => {
|
|
71
|
+
console.warn("[WebSocketClient] Connection error:", error);
|
|
72
|
+
};
|
|
73
|
+
const disconnect = () => {
|
|
74
|
+
if (socket.value) {
|
|
75
|
+
stopHeartbeat();
|
|
76
|
+
reconnectTimer.stopReconnectTimer();
|
|
77
|
+
socket.value.removeEventListener("message", onMessage);
|
|
78
|
+
socket.value.removeEventListener("error", onError);
|
|
79
|
+
socket.value.removeEventListener("close", onConnectionLost);
|
|
80
|
+
socket.value.close(1e3);
|
|
81
|
+
socket.value = null;
|
|
82
|
+
}
|
|
83
|
+
isConnected.value = false;
|
|
84
|
+
};
|
|
85
|
+
const connect = () => {
|
|
86
|
+
disconnect();
|
|
87
|
+
socket.value = new WebSocket(options.url);
|
|
88
|
+
socket.value.addEventListener("open", onConnected);
|
|
89
|
+
socket.value.addEventListener("message", onMessage);
|
|
90
|
+
socket.value.addEventListener("error", onError);
|
|
91
|
+
socket.value.addEventListener("close", onConnectionLost);
|
|
92
|
+
};
|
|
93
|
+
const reconnectTimer = useReconnectTimer({
|
|
94
|
+
onAttempt: connect,
|
|
95
|
+
onAttemptScheduled: (delay) => {
|
|
96
|
+
console.log(`[WebSocketClient] Attempting to reconnect in ${delay}ms`);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
const sendMessage = (serializedMessage) => {
|
|
100
|
+
if (!isConnected.value || !socket.value) {
|
|
101
|
+
throw new Error("Not connected to the server");
|
|
102
|
+
}
|
|
103
|
+
socket.value.send(serializedMessage);
|
|
104
|
+
};
|
|
105
|
+
return {
|
|
106
|
+
isConnected,
|
|
107
|
+
connect,
|
|
108
|
+
disconnect,
|
|
109
|
+
sendMessage
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
const useEventSourceClient = (options) => {
|
|
113
|
+
const isConnected = ref(false);
|
|
114
|
+
const eventSource = ref(null);
|
|
115
|
+
const onConnected = () => {
|
|
116
|
+
isConnected.value = true;
|
|
117
|
+
reconnectTimer.resetConnectionAttempts();
|
|
118
|
+
};
|
|
119
|
+
const onConnectionLost = () => {
|
|
120
|
+
console.warn("[EventSourceClient] Connection lost");
|
|
121
|
+
isConnected.value = false;
|
|
122
|
+
reconnectTimer.scheduleReconnect();
|
|
123
|
+
};
|
|
124
|
+
const onMessage = (event) => {
|
|
125
|
+
options.onMessage(event.data);
|
|
126
|
+
};
|
|
127
|
+
const disconnect = () => {
|
|
128
|
+
if (eventSource.value) {
|
|
129
|
+
reconnectTimer.stopReconnectTimer();
|
|
130
|
+
eventSource.value.close();
|
|
131
|
+
eventSource.value = null;
|
|
132
|
+
}
|
|
133
|
+
isConnected.value = false;
|
|
134
|
+
};
|
|
135
|
+
const connect = () => {
|
|
136
|
+
disconnect();
|
|
137
|
+
eventSource.value = new EventSource(options.url, { withCredentials: true });
|
|
138
|
+
eventSource.value.addEventListener("open", onConnected);
|
|
139
|
+
eventSource.value.addEventListener("message", onMessage);
|
|
140
|
+
eventSource.value.addEventListener("close", onConnectionLost);
|
|
141
|
+
};
|
|
142
|
+
const reconnectTimer = useReconnectTimer({
|
|
143
|
+
onAttempt: connect,
|
|
144
|
+
onAttemptScheduled: (delay) => {
|
|
145
|
+
console.log(`[EventSourceClient] Attempting to reconnect in ${delay}ms`);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
const sendMessage = (_) => {
|
|
149
|
+
};
|
|
150
|
+
return {
|
|
151
|
+
isConnected,
|
|
152
|
+
connect,
|
|
153
|
+
disconnect,
|
|
154
|
+
sendMessage
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
const usePushConnectionStore = defineStore(STORES.PUSH, () => {
|
|
158
|
+
const rootStore = useRootStore();
|
|
159
|
+
const settingsStore = useSettingsStore();
|
|
160
|
+
const outgoingQueue = ref([]);
|
|
161
|
+
const isConnectionRequested = ref(false);
|
|
162
|
+
const onMessageReceivedHandlers = ref([]);
|
|
163
|
+
const addEventListener = (handler) => {
|
|
164
|
+
onMessageReceivedHandlers.value.push(handler);
|
|
165
|
+
return () => {
|
|
166
|
+
const index = onMessageReceivedHandlers.value.indexOf(handler);
|
|
167
|
+
if (index !== -1) {
|
|
168
|
+
onMessageReceivedHandlers.value.splice(index, 1);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
const useWebSockets = settingsStore.pushBackend === "websocket";
|
|
173
|
+
const getConnectionUrl = () => {
|
|
174
|
+
const restUrl = rootStore.restUrl;
|
|
175
|
+
const url2 = `/push?pushRef=${rootStore.pushRef}`;
|
|
176
|
+
if (useWebSockets) {
|
|
177
|
+
const { protocol, host } = window.location;
|
|
178
|
+
const baseUrl = restUrl.startsWith("http") ? restUrl.replace(/^http/, "ws") : `${protocol === "https:" ? "wss" : "ws"}://${host + restUrl}`;
|
|
179
|
+
return `${baseUrl}${url2}`;
|
|
180
|
+
} else {
|
|
181
|
+
return `${restUrl}${url2}`;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
async function onMessage(data) {
|
|
185
|
+
let receivedData;
|
|
186
|
+
try {
|
|
187
|
+
receivedData = JSON.parse(data);
|
|
188
|
+
} catch (error) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
onMessageReceivedHandlers.value.forEach((handler) => handler(receivedData));
|
|
192
|
+
}
|
|
193
|
+
const url = getConnectionUrl();
|
|
194
|
+
const client = useWebSockets ? useWebSocketClient({ url, onMessage }) : useEventSourceClient({ url, onMessage });
|
|
195
|
+
function serializeAndSend(message) {
|
|
196
|
+
if (client.isConnected.value) {
|
|
197
|
+
client.sendMessage(JSON.stringify(message));
|
|
198
|
+
} else {
|
|
199
|
+
outgoingQueue.value.push(message);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const pushConnect = () => {
|
|
203
|
+
isConnectionRequested.value = true;
|
|
204
|
+
client.connect();
|
|
205
|
+
};
|
|
206
|
+
const pushDisconnect = () => {
|
|
207
|
+
isConnectionRequested.value = false;
|
|
208
|
+
client.disconnect();
|
|
209
|
+
};
|
|
210
|
+
watch(client.isConnected, (didConnect) => {
|
|
211
|
+
if (!didConnect) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
if (outgoingQueue.value.length) {
|
|
215
|
+
for (const message of outgoingQueue.value) {
|
|
216
|
+
serializeAndSend(message);
|
|
217
|
+
}
|
|
218
|
+
outgoingQueue.value = [];
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
const clearQueue = () => {
|
|
222
|
+
outgoingQueue.value = [];
|
|
223
|
+
};
|
|
224
|
+
const isConnected = computed(() => client.isConnected.value);
|
|
225
|
+
return {
|
|
226
|
+
isConnected,
|
|
227
|
+
isConnectionRequested,
|
|
228
|
+
onMessageReceivedHandlers,
|
|
229
|
+
addEventListener,
|
|
230
|
+
pushConnect,
|
|
231
|
+
pushDisconnect,
|
|
232
|
+
send: serializeAndSend,
|
|
233
|
+
clearQueue
|
|
234
|
+
};
|
|
235
|
+
});
|
|
236
|
+
export {
|
|
237
|
+
usePushConnectionStore as u
|
|
238
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fE as TEMPLATE_CREDENTIAL_SETUP_EXPERIMENT, ds as assert, V as VIEWS, dV as tryToParseNumber, fI as doesNodeHaveCredentialsToFill, fJ as getNewWorkflow, fK as replaceAllTemplateNodeCredentials, dU as getFixedNodesList } from "./index-DCrfHAqy.js";
|
|
2
2
|
async function createWorkflowFromTemplate(opts) {
|
|
3
3
|
const { credentialOverrides, nodeTypeProvider, rootStore, template, workflowsStore } = opts;
|
|
4
4
|
const workflowData = await getNewWorkflow(rootStore.restApiContext, { name: template.name });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { K as useUIStore, $ as useCanvasStore, r as ref, q as computed, V as VIEWS, g as useI18n } from "./index-
|
|
1
|
+
import { K as useUIStore, $ as useCanvasStore, r as ref, q as computed, V as VIEWS, g as useI18n } from "./index-DCrfHAqy.js";
|
|
2
2
|
function useBeforeUnload({ route }) {
|
|
3
3
|
const uiStore = useUIStore();
|
|
4
4
|
const canvasStore = useCanvasStore();
|