n8n-editor-ui 1.78.0 → 1.79.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 (95) hide show
  1. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-eVUE5od5.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DKtXGQ8b.js} +1 -1
  2. package/dist/assets/{AuthView-D1tEXMXA.js → AuthView-DC9bB5r3.js} +2 -2
  3. package/dist/assets/{CanvasChat-BLb-TUbz.js → CanvasChat-D3lTBObM.js} +5 -4
  4. package/dist/assets/{CanvasControls-BN3S3-fQ.js → CanvasControls-3_c-idq1.js} +1 -1
  5. package/dist/assets/{ChangePasswordView-V1JTrEew.js → ChangePasswordView-hTCZFDsu.js} +3 -3
  6. package/dist/assets/CollectionParameter-BJPPrJT6.js +4 -0
  7. package/dist/assets/{ConcurrentExecutionsHeader-BNA8q-8c.js → ConcurrentExecutionsHeader-SdaUSwM5.js} +2 -2
  8. package/dist/assets/{CredentialsView-AQksN2m1.js → CredentialsView-s41qhyQi.js} +4 -4
  9. package/dist/assets/{ErrorView-CLT4S_BD.js → ErrorView-BPR4tLUF.js} +1 -1
  10. package/dist/assets/{ExecutionsView-qI0J-9KP.js → ExecutionsView-CTGQ4_xb.js} +5 -5
  11. package/dist/assets/{FileSaver.min-B-zoCBIE.js → FileSaver.min-BYPjeNsQ.js} +1 -1
  12. package/dist/assets/{FixedCollectionParameter-DQeeV-mE.js → FixedCollectionParameter-kIB2Fa5A.js} +1 -1
  13. package/dist/assets/{ForgotMyPasswordView-BYvqdrhp.js → ForgotMyPasswordView-2fgritvN.js} +3 -3
  14. package/dist/assets/{Logo-CmkNIoey.js → Logo-hPeyHcb-.js} +1 -1
  15. package/dist/assets/{MainHeader-rUYFpqrO.js → MainHeader-Box9TeIZ.js} +10 -9
  16. package/dist/assets/{MainSidebar-B9_KVa79.js → MainSidebar-B50zuWdl.js} +10 -10
  17. package/dist/assets/{MainSidebar-Djaxwdmm.css → MainSidebar-BQVC8zBU.css} +13 -13
  18. package/dist/assets/{NodeCreation-CWLKVrNb.js → NodeCreation-Ceo0bVoB.js} +4 -4
  19. package/dist/assets/{NodeCreator-CzIIkTTW.js → NodeCreator-B2c_Rd6j.js} +5 -4
  20. package/dist/assets/{NodeViewSwitcher-Det3o0gl.css → NodeViewSwitcher-9WCdidKb.css} +23 -23
  21. package/dist/assets/{NodeViewSwitcher-BUNM0KZ6.js → NodeViewSwitcher-CzTWzm1u.js} +75 -61
  22. package/dist/assets/{ProjectCardBadge-BbA_Exq8.js → ProjectCardBadge-COQxXr59.js} +1 -1
  23. package/dist/assets/{ProjectHeader-DlgpDOwX.js → ProjectHeader-CE7TnWTW.js} +1 -1
  24. package/dist/assets/{ProjectSettings-DqEtmmAS.js → ProjectSettings-MOBpI-14.js} +2 -2
  25. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DL91BcV8.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-3s6oaYcd.js} +7 -4
  26. package/dist/assets/{ResourcesListLayout-D2ZxA1Uw.js → ResourcesListLayout-qO3XuEfV.js} +1 -1
  27. package/dist/assets/{useRunWorkflow-B-O5w0ED.js → RunDataAi-CH-Sjvla.js} +4 -320
  28. package/dist/assets/{RunDataJson-UkDmIQKn.js → RunDataJson-B6NXnfu2.js} +16 -14
  29. package/dist/assets/{RunDataJsonActions-BqDvrghZ.js → RunDataJsonActions-CuA1XQyQ.js} +4 -5
  30. package/dist/assets/{RunDataSearch-UNQ4_4vM.js → RunDataSearch-CUG23MTn.js} +1 -1
  31. package/dist/assets/{RunDataTable-BdbNPKnU.js → RunDataTable-Bc0J9GkT.js} +2 -2
  32. package/dist/assets/{SamlOnboarding-Rzkh3AGB.js → SamlOnboarding-BJ9WtdP1.js} +3 -3
  33. package/dist/assets/{SettingsApiView-C27ofqQf.js → SettingsApiView-DBxgGFH0.js} +1 -1
  34. package/dist/assets/{SettingsCommunityNodesView-CWp_YPSH.js → SettingsCommunityNodesView-BomJXH9c.js} +5 -4
  35. package/dist/assets/{SettingsExternalSecrets-BytZbZef.js → SettingsExternalSecrets-D4rqzyAM.js} +1 -1
  36. package/dist/assets/{SettingsLdapView-DvNozRM0.js → SettingsLdapView-DiXHZhqV.js} +1 -1
  37. package/dist/assets/{SettingsLogStreamingView-C4Y3N6rF.js → SettingsLogStreamingView-Bt-LEIIQ.js} +1 -1
  38. package/dist/assets/{SettingsPersonalView--Z9y3dtC.js → SettingsPersonalView-BvEc_axB.js} +1 -1
  39. package/dist/assets/{SettingsSourceControl-BElByx3w.js → SettingsSourceControl-DPlmwsou.js} +1 -1
  40. package/dist/assets/{SettingsSso-DUOhZeok.js → SettingsSso-zllqGFae.js} +1 -1
  41. package/dist/assets/{SettingsUsageAndPlan-DTw2vCOM.js → SettingsUsageAndPlan-C-iqlwdT.js} +1 -1
  42. package/dist/assets/{SettingsUsersView-B2lC671-.js → SettingsUsersView-DPpywObQ.js} +1 -1
  43. package/dist/assets/{SettingsView-tGXgBeZb.js → SettingsView-Do0ZcFE1.js} +1 -1
  44. package/dist/assets/{SetupView-BB-PMekL.js → SetupView-BSTPJreH.js} +3 -3
  45. package/dist/assets/{SetupWorkflowCredentialsButton-B7i_jYti.js → SetupWorkflowCredentialsButton-DiQzzioV.js} +1 -1
  46. package/dist/assets/{SetupWorkflowFromTemplateView-Co52TGFE.js → SetupWorkflowFromTemplateView-Dth4uXJ3.js} +3 -3
  47. package/dist/assets/{SigninView-B8lcx39e.js → SigninView-DU81K-a8.js} +3 -3
  48. package/dist/assets/{SignoutView-CamkX68g.js → SignoutView-NOUoiBhH.js} +1 -1
  49. package/dist/assets/{SignupView-D9e7FiEj.js → SignupView-D06cun4d.js} +3 -3
  50. package/dist/assets/{TemplateDetails-C0RPBtYu.js → TemplateDetails-rk_My4uB.js} +1 -1
  51. package/dist/assets/{TemplateList-B6jscn2o.js → TemplateList-BdriMiIx.js} +1 -1
  52. package/dist/assets/{TemplatesCollectionView-9fi4vQ1-.js → TemplatesCollectionView-Bm07hQFM.js} +5 -5
  53. package/dist/assets/{TemplatesSearchView-VlRyjuTl.js → TemplatesSearchView-Bf3SRbIa.js} +3 -3
  54. package/dist/assets/{TemplatesView-CgQelQ-w.js → TemplatesView-DxMjsDBv.js} +1 -1
  55. package/dist/assets/{TemplatesWorkflowView-BhhfuZZ9.js → TemplatesWorkflowView-CP1jwG6W.js} +5 -5
  56. package/dist/assets/{TestDefinitionEditView-Cv4ImQQb.js → TestDefinitionEditView-BntbT16p.js} +4 -3
  57. package/dist/assets/{TestDefinitionListView-CywmtGBZ.js → TestDefinitionListView-CLiFw2i4.js} +1 -1
  58. package/dist/assets/{TestDefinitionRootView-BhZESeJD.js → TestDefinitionRootView-Dq2vyM8t.js} +1 -1
  59. package/dist/assets/{VariablesView-B_Ju8Kay.js → VariablesView-C-mPkz2b.js} +2 -2
  60. package/dist/assets/{WorkerView-Lif0hJie.js → WorkerView-DOIKhi2W.js} +6 -5
  61. package/dist/assets/{WorkflowActivator-Bv0WPJm3.js → WorkflowActivator-CcQuszbk.js} +2 -2
  62. package/dist/assets/{WorkflowExecutionsInfoAccordion-DitIU6bv.js → WorkflowExecutionsInfoAccordion-AONJXhOM.js} +1 -1
  63. package/dist/assets/{WorkflowExecutionsLandingPage-vuyCAPrk.js → WorkflowExecutionsLandingPage-C8XFRzTf.js} +2 -2
  64. package/dist/assets/{WorkflowExecutionsPreview-DN_WSVD_.js → WorkflowExecutionsPreview-CqgapiEE.js} +5 -5
  65. package/dist/assets/{WorkflowExecutionsView-BhFMyj3l.js → WorkflowExecutionsView-DLBbg4s6.js} +5 -5
  66. package/dist/assets/{WorkflowHistory-XSHcXPVZ.js → WorkflowHistory-Xzp1cgz9.js} +3 -3
  67. package/dist/assets/{WorkflowOnboardingView-DdujIOw8.js → WorkflowOnboardingView-CM5jKrBr.js} +1 -1
  68. package/dist/assets/{WorkflowPreview-YDi-9g3Y.js → WorkflowPreview-CLrfHawQ.js} +1 -1
  69. package/dist/assets/{WorkflowsView-BLTTQnV3.js → WorkflowsView-B8QO2U4z.js} +7 -7
  70. package/dist/assets/_commonjs-dynamic-modules-TGKdzP3c.js +6 -0
  71. package/dist/assets/{easyAiWorkflowUtils-WSNP3eeS.js → easyAiWorkflowUtils-BEjLgBYH.js} +2 -2
  72. package/dist/assets/global-link-actions-CmKpJf6C.js +5 -0
  73. package/dist/assets/import-curl-Dm0tXAal.js +5 -0
  74. package/dist/assets/{index-BwoviwZU.js → index-BgTszcKd.js} +1813 -1740
  75. package/dist/assets/{index-DFFkAkMx.css → index-xKO0gQfI.css} +23 -19
  76. package/dist/assets/pushConnection.store-Z13Buj1P.js +238 -0
  77. package/dist/assets/{templateActions-CDiqnge9.js → templateActions-BsBOWAkR.js} +1 -1
  78. package/dist/assets/{useBeforeUnload-BQCxN-bM.js → useBeforeUnload-BzdqZUNR.js} +1 -1
  79. package/dist/assets/{useCanvasOperations-CKa4_bqL.css → useCanvasMapping-DeC609A4.css} +213 -160
  80. package/dist/assets/{useCanvasOperations-DQSiUE8i.js → useCanvasMapping-Dj_ctboo.js} +3362 -3174
  81. package/dist/assets/{useExecutionDebugging-BlSzHQ7f.js → useExecutionDebugging-DV8arYl7.js} +1 -1
  82. package/dist/assets/{useExecutionHelpers-DpNwTiuj.js → useExecutionHelpers-OayET-Qz.js} +1 -1
  83. package/dist/assets/useImportCurlCommand-CKdAqJ54.js +9055 -0
  84. package/dist/assets/{usePushConnection-ioPocbvz.js → usePushConnection-DT6QRFOS.js} +4 -3
  85. package/dist/assets/useRunWorkflow-g6q3R4P4.js +616 -0
  86. package/dist/assets/{useWorkflowActivate-CbVB4JlR.js → useWorkflowActivate-B4fObrrf.js} +1 -1
  87. package/dist/index.html +2 -2
  88. package/dist/tree-sitter-bash.wasm +0 -0
  89. package/dist/tree-sitter.wasm +0 -0
  90. package/package.json +1 -1
  91. package/vite.config.mts +14 -1
  92. package/dist/assets/CollectionParameter-C28x26Fy.js +0 -4
  93. package/dist/assets/pushConnection.store-BlMyXexG.js +0 -117
  94. package/dist/assets/usePinnedData-E0jv55-6.js +0 -274
  95. /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-b4b07b46] .cm-editor {
32697
+ [data-v-03c698a0] .cm-editor {
32698
32698
  padding-left: 0;
32699
32699
  }
32700
- [data-v-b4b07b46] .cm-content {
32700
+ [data-v-03c698a0] .cm-content {
32701
32701
  padding-left: var(--spacing-2xs);
32702
32702
  }
32703
- [data-v-b4b07b46] .cm-content[aria-readonly=true] {
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-aea273b0] {
36676
+ .readonly-code[data-v-0ce25612] {
36677
36677
  font-size: var(--font-size-xs);
36678
36678
  }
36679
- .switch-input[data-v-aea273b0] {
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-aea273b0] {
36682
+ .parameter-value-container[data-v-0ce25612] {
36683
36683
  display: flex;
36684
36684
  align-items: center;
36685
36685
  }
36686
- .parameter-actions[data-v-aea273b0] {
36686
+ .parameter-actions[data-v-0ce25612] {
36687
36687
  display: inline-flex;
36688
36688
  align-items: center;
36689
36689
  }
36690
- .parameter-switch[data-v-aea273b0] {
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-aea273b0] {
36696
+ .parameter-input[data-v-0ce25612] {
36697
36697
  display: inline-block;
36698
36698
  position: relative;
36699
36699
  }
36700
- .parameter-input[data-v-aea273b0] .color-input {
36700
+ .parameter-input[data-v-0ce25612] .color-input {
36701
36701
  display: flex;
36702
36702
  }
36703
- .parameter-input[data-v-aea273b0] .color-input .el-color-picker__trigger {
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
- ._parameterItem_be015_123 {
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
- ._parameterItem_be015_123 ._parameterInput_be015_127 {
45810
+ ._parameterItem_1yw1o_123 ._parameterInput_1yw1o_128 {
45810
45811
  width: 100%;
45811
45812
  }
45812
- ._parameterItem_be015_123._hasIssues_be015_130 ._parameterIssues_be015_130 {
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
- ._parameterItem_be015_123._hasIssues_be015_130 input,
45817
- ._parameterItem_be015_123._hasIssues_be015_130 input:focus {
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
- ._parameterTooltipIcon_be015_140 {
45825
+ ._parameterTooltipIcon_1yw1o_144 {
45822
45826
  color: var(--color-text-light) !important;
45823
45827
  }
45824
- ._addOption_be015_144 {
45828
+ ._addOption_1yw1o_148 {
45825
45829
  margin-top: var(--spacing-l);
45826
45830
  padding: 0 0 0 var(--spacing-s);
45827
45831
  }
45828
- ._staleDataWarning_be015_149 {
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-BgTszcKd.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 { fG as TEMPLATE_CREDENTIAL_SETUP_EXPERIMENT, ds as assert, V as VIEWS, dV as tryToParseNumber, fK as doesNodeHaveCredentialsToFill, fL as getNewWorkflow, fM as replaceAllTemplateNodeCredentials, dU as getFixedNodesList } from "./index-BwoviwZU.js";
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-BgTszcKd.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-BwoviwZU.js";
1
+ import { K as useUIStore, $ as useCanvasStore, r as ref, q as computed, V as VIEWS, g as useI18n } from "./index-BgTszcKd.js";
2
2
  function useBeforeUnload({ route }) {
3
3
  const uiStore = useUIStore();
4
4
  const canvasStore = useCanvasStore();