n8n-editor-ui 1.113.1 → 1.114.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.
Files changed (133) hide show
  1. package/.build/cache-marker +1 -1
  2. package/.build/node-popularity.json +1 -3918
  3. package/dist/assets/{AddDataStoreModal-C-20tjW5.js → AddDataStoreModal-CsFLy-os.js} +8 -8
  4. package/dist/assets/{AnimatedSpinner-WDiU4lXb.js → AnimatedSpinner-BdYQZRvm.js} +1 -1
  5. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CV4yKdOK.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-C-w_sFn5.js} +1 -1
  6. package/dist/assets/{AuthView-BfD8L-MR.js → AuthView-DfDkMLKR.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-BHlNjnju.js → ChangePasswordView-D7ySKRGb.js} +3 -3
  8. package/dist/assets/CollectionParameter-CNnsizMe.js +4 -0
  9. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-Bm1msTtB.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-ZKSyv6Rm.js} +1 -1
  10. package/dist/assets/{CredentialsView-Bpi1QEHU.js → CredentialsView-BSSTTfsB.js} +19 -19
  11. package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-BCsNv_gY.js → DataStoreActions.vue_vue_type_script_setup_true_lang-D4LRnvHA.js} +1 -1
  12. package/dist/assets/{DataStoreDetailsView-BwvQ5I7d.js → DataStoreDetailsView-Dkr_HtEW.js} +38 -26
  13. package/dist/assets/{DataStoreView-Bctk8RYi.js → DataStoreView-Cms5uqRt.js} +13 -14
  14. package/dist/assets/{DemoFooter-CxWGBc_7.js → DemoFooter-CKaunwpF.js} +6 -6
  15. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DqQrOg_2.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-BS4e8zRV.js} +3 -3
  16. package/dist/assets/{EntityNotFound-D7CGrbgk.js → EntityNotFound-D80vzHfS.js} +1 -1
  17. package/dist/assets/{EntityUnAuthorised-BO9xlb2N.js → EntityUnAuthorised-BlMXoT9N.js} +1 -1
  18. package/dist/assets/{ErrorView-C1PhniXH.js → ErrorView-Cg-eq9CL.js} +9 -9
  19. package/dist/assets/{EvaluationsRootView-C0QRKk3k.js → EvaluationsRootView-DWg4U9MD.js} +5 -5
  20. package/dist/assets/{EvaluationsView-CYpgbXKx.js → EvaluationsView-DZT93B1S.js} +3 -3
  21. package/dist/assets/{ExecutionsTime-etWexlXm.css → ExecutionsTime-CWHk7ZwI.css} +6 -6
  22. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-Dh8inRTk.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-BZMWMaK1.js} +39 -39
  23. package/dist/assets/{ExecutionsView-BCb0Zr7W.js → ExecutionsView-DVSp3FTL.js} +10 -10
  24. package/dist/assets/{FixedCollectionParameter-D4km_FeH.js → FixedCollectionParameter-BFbAkjot.js} +4 -4
  25. package/dist/assets/{FixedCollectionParameter-Dg7ZadcB.css → FixedCollectionParameter-TY1-sHgZ.css} +18 -18
  26. package/dist/assets/{ForgotMyPasswordView-CdhGWxw4.js → ForgotMyPasswordView-1gl-DTSD.js} +3 -3
  27. package/dist/assets/{InfoAccordion-DE2_sS98.js → InfoAccordion-B4atTFpH.js} +1 -1
  28. package/dist/assets/{InsightsChartAverageRuntime-D5ZE_Nla.js → InsightsChartAverageRuntime-BdVbh5ca.js} +4 -4
  29. package/dist/assets/{InsightsChartFailed-BdeF-nyF.js → InsightsChartFailed-tRahEeus.js} +4 -4
  30. package/dist/assets/{InsightsChartFailureRate-C_YnwTyc.js → InsightsChartFailureRate-aLmvV-2j.js} +4 -4
  31. package/dist/assets/{InsightsChartTimeSaved-cTOv1Iga.js → InsightsChartTimeSaved-Bw1GK02H.js} +4 -4
  32. package/dist/assets/{InsightsChartTotal-BKK9PNU1.js → InsightsChartTotal-YCLp-Mvg.js} +4 -4
  33. package/dist/assets/{InsightsDashboard-COAZWSu2.js → InsightsDashboard-C0GhlvO0.js} +11 -11
  34. package/dist/assets/{InsightsPaywall-BWpRemTn.js → InsightsPaywall-BqrNu0Sm.js} +1 -1
  35. package/dist/assets/{InsightsSummary-jcJA88u3.js → InsightsSummary-BIsW50Wb.js} +2 -3
  36. package/dist/assets/{InsightsTableWorkflows-Bh_NN7kQ.js → InsightsTableWorkflows-m0FuDdM6.js} +6 -7
  37. package/dist/assets/{Logo-DZ3J8N5N.js → Logo-CJDZZ9Dc.js} +1 -1
  38. package/dist/assets/{LogsPanel-DSS_hDBL.js → LogsPanel-AuBzspf5.js} +189 -101
  39. package/dist/assets/{LogsPanel-CUsQIBpC.css → LogsPanel-BE9Gl1z0.css} +26 -27
  40. package/dist/assets/{MainHeader-6lIHYgJG.css → MainHeader-BM1jYnSL.css} +6 -6
  41. package/dist/assets/{MainHeader-DfMxpY4d.js → MainHeader-CTr2-gOV.js} +17 -17
  42. package/dist/assets/{MainSidebar-a73tcV9E.css → MainSidebar-BWPXOik1.css} +156 -0
  43. package/dist/assets/{MainSidebar-C7fZf9ti.js → MainSidebar-wsfu6n1v.js} +204 -48
  44. package/dist/assets/{NodeCreation-DndFLn5s.js → NodeCreation-Uqspyd-Q.js} +11 -11
  45. package/dist/assets/{NodeCreator-DG0hCOby.js → NodeCreator-Cho8tlDH.js} +47 -34
  46. package/dist/assets/{NodeDetailsView-G0hcQtkE.js → NodeDetailsView-Cla0enix.js} +27 -27
  47. package/dist/assets/{NodeDetailsViewV2-BGHhaOjo.js → NodeDetailsViewV2-CImiiHw5.js} +16 -16
  48. package/dist/assets/{NodeView-Chs2u0U9.css → NodeView-DoRx_8YL.css} +0 -165
  49. package/dist/assets/{NodeView-D_Lf20Cj.js → NodeView-R0RrSafO.js} +82 -258
  50. package/dist/assets/{PageViewLayout-cxvwso_r.js → PageViewLayout-XMbxzupW.js} +1 -1
  51. package/dist/assets/{PrebuiltAgentTemplatesView--njlASMr.js → PrebuiltAgentTemplatesView-CVQlXLgD.js} +2 -2
  52. package/dist/assets/{ProjectBreadcrumb-KIWhTojS.js → ProjectBreadcrumb-CARSpK7o.js} +28 -12
  53. package/dist/assets/{ProjectHeader-B5uv4DKo.css → ProjectHeader-BNMKpvzV.css} +9 -9
  54. package/dist/assets/{ProjectHeader-PFXNU0--.js → ProjectHeader-CSMsPy1n.js} +10 -10
  55. package/dist/assets/{ProjectSettings-C1kZ9wA5.js → ProjectSettings-BfGExA4I.js} +169 -161
  56. package/dist/assets/{ProjectSettings-B5z1mrGW.css → ProjectSettings-Cj1kC16G.css} +30 -15
  57. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-Bzf7nqUd.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-QmS6y6VJ.js} +5 -5
  58. package/dist/assets/{ResourcesListLayout-DQODsJpR.js → ResourcesListLayout-ATgLHOKO.js} +42 -42
  59. package/dist/assets/{ResourcesListLayout-vTwRIDRz.css → ResourcesListLayout-BseE8-rt.css} +8 -8
  60. package/dist/assets/{RunDataJson-BcUo9gnI.js → RunDataJson-PRchch-O.js} +3 -3
  61. package/dist/assets/{RunDataJsonActions-BCQ7lOd5.js → RunDataJsonActions-Ca-7abwJ.js} +1 -1
  62. package/dist/assets/{RunDataParsedAiContent-BnKhGr-k.js → RunDataParsedAiContent-LwO8lYeE.js} +2 -2
  63. package/dist/assets/{RunDataSearch-CiRa4kQq.js → RunDataSearch-_AawIJ1P.js} +59 -16
  64. package/dist/assets/{RunDataTable-Cb01UpR9.js → RunDataTable-C2IhJVY7.js} +4 -4
  65. package/dist/assets/{SamlOnboarding-BqIwhbZw.js → SamlOnboarding-DNGq1d-y.js} +3 -3
  66. package/dist/assets/{SelectedItemsInfo-DuFbVGZm.js → SelectedItemsInfo-DCbeoQ__.js} +1 -1
  67. package/dist/assets/{SettingsApiView-D2j7Vbwi.js → SettingsApiView-B8W2w9F3.js} +23 -24
  68. package/dist/assets/{SettingsCommunityNodesView-oZIjk1s_.js → SettingsCommunityNodesView-CSGQvqSv.js} +31 -31
  69. package/dist/assets/{SettingsExternalSecrets-Cea9JY7A.js → SettingsExternalSecrets-DvgKCijP.js} +18 -18
  70. package/dist/assets/{SettingsLdapView-Cg2gnd72.js → SettingsLdapView-Bls3Hiov.js} +17 -17
  71. package/dist/assets/{SettingsLogStreamingView-BScR5ZFJ.js → SettingsLogStreamingView-DC0NxA14.js} +29 -29
  72. package/dist/assets/SettingsMCPView-D_A3IzDR.js +626 -0
  73. package/dist/assets/SettingsMCPView-INU33iV4.css +370 -0
  74. package/dist/assets/{SettingsPersonalView-BfEdqrEE.js → SettingsPersonalView-BfvHbPzX.js} +31 -31
  75. package/dist/assets/{SettingsSourceControl-CQiyVvB3.js → SettingsSourceControl-DEAYOup_.js} +208 -65
  76. package/dist/assets/{SettingsSso-CAAxAbK6.js → SettingsSso-DT7TNXiC.js} +61 -23
  77. package/dist/assets/{SettingsUsageAndPlan-DTV0d49_.js → SettingsUsageAndPlan-BunLqdZX.js} +16 -17
  78. package/dist/assets/{SettingsUsageAndPlan-CfFJy6fo.css → SettingsUsageAndPlan-CfunueCX.css} +3 -3
  79. package/dist/assets/{SettingsUsersView-Ceq9-_wv.js → SettingsUsersView-C1DaGjPi.js} +4 -4
  80. package/dist/assets/{SettingsView-sqSuzp6q.js → SettingsView-BVBdo1Q8.js} +13 -12
  81. package/dist/assets/{SetupView-DNxfN7wc.js → SetupView-Ds_FejJz.js} +3 -3
  82. package/dist/assets/{SetupWorkflowCredentialsButton-DUCOv6F6.js → SetupWorkflowCredentialsButton-7QTSQ-Cp.js} +3 -3
  83. package/dist/assets/{SetupWorkflowFromTemplateView-DU4khxPx.js → SetupWorkflowFromTemplateView-DgAeg0pL.js} +13 -13
  84. package/dist/assets/{SigninView-BnzCVklk.js → SigninView-CTCti60k.js} +17 -17
  85. package/dist/assets/{SignoutView-CQx1YcpJ.js → SignoutView-BfiSDA3M.js} +1 -1
  86. package/dist/assets/{SignupView-CVowy7ND.js → SignupView-CHc0tHGl.js} +3 -3
  87. package/dist/assets/{TableBase-ChC-0JXo.js → TableBase-DCODsxOa.js} +1 -1
  88. package/dist/assets/{Tags-BElvlb53.js → Tags-D9gPKoUj.js} +1 -1
  89. package/dist/assets/{TemplateDetails-DFAU0IXa.js → TemplateDetails-BlV9NmCy.js} +11 -11
  90. package/dist/assets/{TemplateList-BqOvn2Up.js → TemplateList-CazlTEkA.js} +15 -15
  91. package/dist/assets/{TemplatesCollectionView-DUe-c9UK.js → TemplatesCollectionView-BEeRygO7.js} +15 -15
  92. package/dist/assets/{TemplatesSearchView-DqlXEFp4.js → TemplatesSearchView-CI00kxyK.js} +30 -30
  93. package/dist/assets/{TemplatesView-e-KwnRmC.js → TemplatesView-mLslH3Uw.js} +3 -3
  94. package/dist/assets/{TemplatesWorkflowView-DGdEHxRG.js → TemplatesWorkflowView-SSmdLOOW.js} +18 -18
  95. package/dist/assets/{TriggerPanel-BC7r1f-p.js → TriggerPanel-BHkYzUPx.js} +100 -124
  96. package/dist/assets/{TriggerPanel-DiD8pi0I.css → TriggerPanel-CZRJpcTa.css} +26 -24
  97. package/dist/assets/{VariablesView-BHcrNXsw.css → VariablesView-CO67wOhz.css} +6 -6
  98. package/dist/assets/{VariablesView-q3KOFXbh.js → VariablesView-k-pzl-O9.js} +9 -9
  99. package/dist/assets/{WorkerView-p9Gb5B1L.js → WorkerView-Cx8ge4xs.js} +27 -27
  100. package/dist/assets/{WorkflowActivator-jI4sUqXL.css → WorkflowActivator-BqnfTqdT.css} +2 -2
  101. package/dist/assets/{WorkflowActivator-3wlzZHDO.js → WorkflowActivator-By5Pii_6.js} +35 -27
  102. package/dist/assets/{WorkflowExecutionsInfoAccordion-MSQf1wi3.js → WorkflowExecutionsInfoAccordion-eJG4y2WA.js} +2 -2
  103. package/dist/assets/{WorkflowExecutionsLandingPage-C70_LGAv.js → WorkflowExecutionsLandingPage-C0mutLGh.js} +3 -3
  104. package/dist/assets/{WorkflowExecutionsPreview-D_xisYpD.js → WorkflowExecutionsPreview-G-4e7QQ9.js} +17 -17
  105. package/dist/assets/{WorkflowExecutionsView-ezc5vRrS.js → WorkflowExecutionsView-B0SmXxbP.js} +20 -20
  106. package/dist/assets/{WorkflowExecutionsView-DqWqyiNg.css → WorkflowExecutionsView-BI8VcrjR.css} +2 -2
  107. package/dist/assets/{WorkflowHistory-DeSZ98ik.js → WorkflowHistory-BiN2BqQR.js} +23 -23
  108. package/dist/assets/{WorkflowOnboardingView-XDAzh9C1.js → WorkflowOnboardingView-B9FkhZA-.js} +1 -1
  109. package/dist/assets/{WorkflowPreview-R4owDoRV.js → WorkflowPreview-BsgTaevQ.js} +5 -5
  110. package/dist/assets/{WorkflowsView-BJ_oKX3h.js → WorkflowsView-CLXbFUXb.js} +314 -136
  111. package/dist/assets/{WorkflowsView-MF9XcT0u.css → WorkflowsView-Cn8b7sC6.css} +295 -18
  112. package/dist/assets/{canvas-tCm4ovGg.js → canvas-BXznnLzi.js} +1 -1
  113. package/dist/assets/{chartjs.utils-B2U_02-S.js → chartjs.utils-D46nHC00.js} +2 -2
  114. package/dist/assets/{core-BDQ6uBcD.js → core-HeJRdxVB.js} +1 -1
  115. package/dist/assets/{global-link-actions-Cz-zl4uP.js → global-link-actions-dPKQ-sAY.js} +1 -1
  116. package/dist/assets/{index-CpPc1kM8.css → index-BlwIvpv7.css} +2746 -2641
  117. package/dist/assets/{index-CCyQeXiT.js → index-DGBHFnWS.js} +1 -1
  118. package/dist/assets/{index-BDDH_NIA.js → index-cWho1w-N.js} +15923 -17969
  119. package/dist/assets/{pickBy-B2RJpRoj.js → pickBy-DvVK9TvT.js} +1 -1
  120. package/dist/assets/{readyToRunWorkflows.store-lmsJGEVO.js → readyToRunWorkflows.store-o5xlMxpo.js} +1 -1
  121. package/dist/assets/{readyToRunWorkflowsV2.store-Bl7jk-i9.js → readyToRunWorkflowsV2.store-C_fY_4MX.js} +2 -2
  122. package/dist/assets/{templateActions-Bvze3qDu.js → templateActions-jNqx4MKh.js} +1 -1
  123. package/dist/assets/{useBeforeUnload-C1FPWSkO.js → useBeforeUnload-rUCiQOqr.js} +1 -1
  124. package/dist/assets/{useExecutionDebugging-Dgg7jmNh.js → useExecutionDebugging-BaETRwGq.js} +1 -1
  125. package/dist/assets/{useImportCurlCommand-sjcpA0Ub.js → useImportCurlCommand-BdmWWgaO.js} +1 -1
  126. package/dist/assets/{useProjectPages-B5KBSvIU.js → useProjectPages-BauGQpM_.js} +1 -1
  127. package/dist/assets/{usePushConnection-BEiaZIUU.js → usePushConnection-Bc8yBAxj.js} +12 -6
  128. package/dist/assets/{useWorkflowActivate-DykqGtLA.js → useWorkflowActivate-bxZnJPU3.js} +1 -1
  129. package/dist/index.html +2 -2
  130. package/package.json +1 -1
  131. package/scripts/cache-marker.mjs +11 -0
  132. package/turbo.json +2 -1
  133. package/dist/assets/CollectionParameter-D7XE8ypc.js +0 -4
@@ -1,4 +1,4 @@
1
- import { _ as _export_sfc, fS as _sfc_main$1, d as defineComponent, ag as useSourceControlStore, aB as usePageRedirectionHelper, a as useToast, ay as useDocumentTitle, fT as useLoadingService, r as ref, x as computed, o as onMounted, c as useI18n, db as reactive, h as createElementBlock, g as openBlock, i as createVNode, e as createBlock, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, j as createBaseVNode, f as createCommentVNode, ac as I18nT, z as N8nCallout, n as normalizeClass, f1 as N8nFormInput, q as N8nButton, fa as CopyInput, eb as N8nNotice, aa as Tooltip, f3 as N8nCheckbox, e0 as N8nActionBox, an as useMessage, ao as MODAL_CONFIRM } from "./index-BDDH_NIA.js";
1
+ import { _ as _export_sfc, fW as _sfc_main$1, d as defineComponent, ag as useSourceControlStore, aB as usePageRedirectionHelper, a as useToast, ay as useDocumentTitle, fX as useLoadingService, r as ref, x as computed, o as onMounted, c as useI18n, de as reactive, a8 as watch, h as createElementBlock, g as openBlock, i as createVNode, e as createBlock, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, m as N8nHeading, f as createCommentVNode, j as createBaseVNode, ac as I18nT, z as N8nCallout, n as normalizeClass, f5 as N8nFormInput, q as N8nButton, ef as N8nNotice, fe as CopyInput, aa as Tooltip, f7 as N8nCheckbox, e4 as N8nActionBox, an as useMessage, ao as MODAL_CONFIRM } from "./index-cWho1w-N.js";
2
2
  const component = "_component_y1zn3_123";
3
3
  const input = "_input_y1zn3_128";
4
4
  const style0$1 = {
@@ -14,13 +14,16 @@ const _hoisted_1 = {
14
14
  "data-test-id": "source-control-content-licensed"
15
15
  };
16
16
  const _hoisted_2 = ["href"];
17
- const _hoisted_3 = { for: "repoUrl" };
18
- const _hoisted_4 = ["href"];
19
- const _hoisted_5 = {
20
- key: 2,
17
+ const _hoisted_3 = { for: "connectionType" };
18
+ const _hoisted_4 = { for: "repoUrl" };
19
+ const _hoisted_5 = { for: "httpsUsername" };
20
+ const _hoisted_6 = { for: "httpsPassword" };
21
+ const _hoisted_7 = ["href"];
22
+ const _hoisted_8 = {
23
+ key: 5,
21
24
  "data-test-id": "source-control-connected-content"
22
25
  };
23
- const _hoisted_6 = ["href"];
26
+ const _hoisted_9 = ["href"];
24
27
  const _sfc_main = /* @__PURE__ */ defineComponent({
25
28
  __name: "SettingsSourceControl",
26
29
  setup(__props) {
@@ -32,19 +35,32 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
32
35
  const documentTitle = useDocumentTitle();
33
36
  const loadingService = useLoadingService();
34
37
  const isConnected = ref(false);
38
+ const connectionType = ref("ssh");
39
+ const httpsUsername = ref("");
40
+ const httpsPassword = ref("");
35
41
  const branchNameOptions = computed(
36
42
  () => sourceControlStore.preferences.branches.map((branch) => ({
37
43
  value: branch,
38
44
  label: branch
39
45
  }))
40
46
  );
47
+ const connectionTypeOptions = [
48
+ { value: "ssh", label: "SSH" },
49
+ { value: "https", label: "HTTPS" }
50
+ ];
41
51
  const onConnect = async () => {
42
52
  loadingService.startLoading();
43
53
  loadingService.setLoadingText(locale.baseText("settings.sourceControl.loading.connecting"));
44
54
  try {
45
- await sourceControlStore.savePreferences({
46
- repositoryUrl: sourceControlStore.preferences.repositoryUrl
47
- });
55
+ const connectionData = {
56
+ repositoryUrl: sourceControlStore.preferences.repositoryUrl,
57
+ connectionType: connectionType.value
58
+ };
59
+ if (connectionType.value === "https") {
60
+ connectionData.httpsUsername = httpsUsername.value;
61
+ connectionData.httpsPassword = httpsPassword.value;
62
+ }
63
+ await sourceControlStore.savePreferences(connectionData);
48
64
  await sourceControlStore.getBranches();
49
65
  isConnected.value = true;
50
66
  toast.showMessage({
@@ -71,6 +87,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
71
87
  loadingService.startLoading();
72
88
  await sourceControlStore.disconnect(true);
73
89
  isConnected.value = false;
90
+ httpsUsername.value = "";
91
+ httpsPassword.value = "";
74
92
  toast.showMessage({
75
93
  title: locale.baseText("settings.sourceControl.toast.disconnected.title"),
76
94
  message: locale.baseText("settings.sourceControl.toast.disconnected.message"),
@@ -95,7 +113,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
95
113
  type: "success"
96
114
  });
97
115
  } catch (error) {
98
- toast.showError(error, "Error setting branch");
116
+ toast.showError(error, locale.baseText("settings.sourceControl.saved.error"));
99
117
  }
100
118
  loadingService.stopLoading();
101
119
  };
@@ -112,6 +130,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
112
130
  await sourceControlStore.getPreferences();
113
131
  if (sourceControlStore.preferences.connected) {
114
132
  isConnected.value = true;
133
+ connectionType.value = sourceControlStore.preferences.connectionType || "ssh";
115
134
  void sourceControlStore.getBranches();
116
135
  }
117
136
  };
@@ -122,23 +141,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
122
141
  });
123
142
  const formValidationStatus = reactive({
124
143
  repoUrl: false,
125
- keyGeneratorType: false
144
+ keyGeneratorType: false,
145
+ httpsUsername: false,
146
+ httpsPassword: false
126
147
  });
127
148
  function onValidate(key, value) {
128
149
  formValidationStatus[key] = value;
129
150
  }
130
- const repoUrlValidationRules = [
131
- { name: "REQUIRED" },
132
- {
133
- name: "MATCH_REGEX",
134
- config: {
135
- regex: /^(?:git@|ssh:\/\/git@|[\w-]+@)(?:[\w.-]+|\[[0-9a-fA-F:]+])(?::\d+)?[:\/][\w\-~.]+(?:\/[\w\-~.]+)*(?:\.git)?(?:\/.*)?$/,
136
- message: locale.baseText("settings.sourceControl.repoUrlInvalid")
137
- }
151
+ const repoUrlValidationRules = computed(() => {
152
+ const baseRules = [{ name: "REQUIRED" }];
153
+ if (connectionType.value === "ssh") {
154
+ baseRules.push({
155
+ name: "MATCH_REGEX",
156
+ config: {
157
+ regex: /^(?:git@|ssh:\/\/git@|[\w-]+@)(?:[\w.-]+|\[[0-9a-fA-F:]+])(?::\d+)?[:\/][\w\-~.]+(?:\/[\w\-~.]+)*(?:\.git)?(?:\/.*)?$/,
158
+ message: locale.baseText("settings.sourceControl.repoUrlInvalid")
159
+ }
160
+ });
161
+ } else {
162
+ baseRules.push({
163
+ name: "MATCH_REGEX",
164
+ config: {
165
+ regex: /^https:\/\/.+$/,
166
+ message: locale.baseText("settings.sourceControl.enterValidHttpsUrl")
167
+ }
168
+ });
138
169
  }
139
- ];
170
+ return baseRules;
171
+ });
140
172
  const keyGeneratorTypeValidationRules = [{ name: "REQUIRED" }];
141
- const validForConnection = computed(() => formValidationStatus.repoUrl);
173
+ const httpsCredentialValidationRules = [{ name: "REQUIRED" }];
174
+ const validForConnection = computed(() => {
175
+ if (connectionType.value === "ssh") {
176
+ return formValidationStatus.repoUrl;
177
+ } else {
178
+ return formValidationStatus.repoUrl && formValidationStatus.httpsUsername && formValidationStatus.httpsPassword;
179
+ }
180
+ });
142
181
  const branchNameValidationRules = [{ name: "REQUIRED" }];
143
182
  async function refreshSshKey() {
144
183
  try {
@@ -179,18 +218,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
179
218
  }
180
219
  sourceControlStore.preferences.keyGeneratorType = sshKeyType;
181
220
  };
221
+ watch(connectionType, () => {
222
+ formValidationStatus.repoUrl = false;
223
+ formValidationStatus.httpsUsername = false;
224
+ formValidationStatus.httpsPassword = false;
225
+ if (!isConnected.value) {
226
+ sourceControlStore.preferences.repositoryUrl = "";
227
+ }
228
+ });
182
229
  return (_ctx, _cache) => {
183
- const _component_n8n_heading = N8nHeading;
184
- const _component_n8n_callout = N8nCallout;
185
- const _component_n8n_form_input = N8nFormInput;
186
- const _component_n8n_button = N8nButton;
187
- const _component_n8n_notice = N8nNotice;
188
- const _component_n8n_tooltip = Tooltip;
189
- const _component_n8n_checkbox = N8nCheckbox;
190
- const _component_n8n_color_picker = N8nColorPicker;
191
- const _component_n8n_action_box = N8nActionBox;
230
+ const _component_N8nHeading = N8nHeading;
231
+ const _component_N8nCallout = N8nCallout;
232
+ const _component_N8nFormInput = N8nFormInput;
233
+ const _component_N8nButton = N8nButton;
234
+ const _component_N8nNotice = N8nNotice;
235
+ const _component_N8nTooltip = Tooltip;
236
+ const _component_N8nCheckbox = N8nCheckbox;
237
+ const _component_N8nColorPicker = N8nColorPicker;
238
+ const _component_N8nActionBox = N8nActionBox;
192
239
  return openBlock(), createElementBlock("div", null, [
193
- createVNode(_component_n8n_heading, {
240
+ createVNode(_component_N8nHeading, {
194
241
  size: "2xlarge",
195
242
  tag: "h1"
196
243
  }, {
@@ -200,7 +247,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
200
247
  _: 1
201
248
  }),
202
249
  unref(sourceControlStore).isEnterpriseSourceControlEnabled ? (openBlock(), createElementBlock("div", _hoisted_1, [
203
- createVNode(_component_n8n_callout, {
250
+ createVNode(_component_N8nCallout, {
204
251
  theme: "secondary",
205
252
  icon: "info",
206
253
  class: "mt-2xl mb-l"
@@ -222,7 +269,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
222
269
  ]),
223
270
  _: 1
224
271
  }),
225
- createVNode(_component_n8n_heading, {
272
+ createVNode(_component_N8nHeading, {
226
273
  size: "xlarge",
227
274
  tag: "h2",
228
275
  class: "mb-s"
@@ -232,27 +279,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
232
279
  ]),
233
280
  _: 1
234
281
  }),
282
+ !isConnected.value ? (openBlock(), createElementBlock("div", {
283
+ key: 0,
284
+ class: normalizeClass(_ctx.$style.group)
285
+ }, [
286
+ createBaseVNode("label", _hoisted_3, toDisplayString(unref(locale).baseText("settings.sourceControl.connectionType")), 1),
287
+ createVNode(_component_N8nFormInput, {
288
+ id: "connectionType",
289
+ modelValue: connectionType.value,
290
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => connectionType.value = $event),
291
+ label: "",
292
+ type: "select",
293
+ name: "connectionType",
294
+ options: connectionTypeOptions,
295
+ "data-test-id": "source-control-connection-type-select"
296
+ }, null, 8, ["modelValue"])
297
+ ], 2)) : createCommentVNode("", true),
235
298
  createBaseVNode("div", {
236
299
  class: normalizeClass(_ctx.$style.group)
237
300
  }, [
238
- createBaseVNode("label", _hoisted_3, toDisplayString(unref(locale).baseText("settings.sourceControl.repoUrl")), 1),
301
+ createBaseVNode("label", _hoisted_4, toDisplayString(connectionType.value === "ssh" ? unref(locale).baseText("settings.sourceControl.sshRepoUrl") : unref(locale).baseText("settings.sourceControl.httpsRepoUrl")), 1),
239
302
  createBaseVNode("div", {
240
303
  class: normalizeClass(_ctx.$style.groupFlex)
241
304
  }, [
242
- createVNode(_component_n8n_form_input, {
305
+ createVNode(_component_N8nFormInput, {
243
306
  id: "repoUrl",
244
307
  modelValue: unref(sourceControlStore).preferences.repositoryUrl,
245
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(sourceControlStore).preferences.repositoryUrl = $event),
308
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(sourceControlStore).preferences.repositoryUrl = $event),
246
309
  label: "",
247
310
  class: "ml-0",
248
311
  name: "repoUrl",
249
312
  "validate-on-blur": "",
250
- "validation-rules": repoUrlValidationRules,
313
+ "validation-rules": repoUrlValidationRules.value,
251
314
  disabled: isConnected.value,
252
- placeholder: unref(locale).baseText("settings.sourceControl.repoUrlPlaceholder"),
253
- onValidate: _cache[1] || (_cache[1] = (value) => onValidate("repoUrl", value))
254
- }, null, 8, ["modelValue", "disabled", "placeholder"]),
255
- isConnected.value ? (openBlock(), createBlock(_component_n8n_button, {
315
+ placeholder: connectionType.value === "ssh" ? unref(locale).baseText("settings.sourceControl.sshRepoUrlPlaceholder") : unref(locale).baseText("settings.sourceControl.httpsRepoUrlPlaceholder"),
316
+ onValidate: _cache[2] || (_cache[2] = (value) => onValidate("repoUrl", value))
317
+ }, null, 8, ["modelValue", "validation-rules", "disabled", "placeholder"]),
318
+ isConnected.value ? (openBlock(), createBlock(_component_N8nButton, {
256
319
  key: 0,
257
320
  class: normalizeClass(_ctx.$style.disconnectButton),
258
321
  type: "tertiary",
@@ -266,17 +329,97 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
266
329
  ]),
267
330
  _: 1
268
331
  }, 8, ["class"])) : createCommentVNode("", true)
269
- ], 2)
332
+ ], 2),
333
+ !isConnected.value && connectionType.value === "ssh" ? (openBlock(), createBlock(_component_N8nNotice, {
334
+ key: 0,
335
+ type: "info",
336
+ class: "mt-s"
337
+ }, {
338
+ default: withCtx(() => [
339
+ createTextVNode(toDisplayString(unref(locale).baseText("settings.sourceControl.sshFormatNotice")), 1)
340
+ ]),
341
+ _: 1
342
+ })) : createCommentVNode("", true),
343
+ !isConnected.value && connectionType.value === "https" ? (openBlock(), createBlock(_component_N8nNotice, {
344
+ key: 1,
345
+ type: "info",
346
+ class: "mt-s"
347
+ }, {
348
+ default: withCtx(() => [
349
+ createTextVNode(toDisplayString(unref(locale).baseText("settings.sourceControl.httpsFormatNotice")), 1)
350
+ ]),
351
+ _: 1
352
+ })) : createCommentVNode("", true)
270
353
  ], 2),
271
- unref(sourceControlStore).preferences.publicKey ? (openBlock(), createElementBlock("div", {
272
- key: 0,
354
+ connectionType.value === "https" && !isConnected.value ? (openBlock(), createElementBlock("div", {
355
+ key: 1,
356
+ class: normalizeClass(_ctx.$style.group)
357
+ }, [
358
+ createBaseVNode("label", _hoisted_5, toDisplayString(unref(locale).baseText("settings.sourceControl.httpsUsername")), 1),
359
+ createVNode(_component_N8nFormInput, {
360
+ id: "httpsUsername",
361
+ modelValue: httpsUsername.value,
362
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => httpsUsername.value = $event),
363
+ label: "",
364
+ name: "httpsUsername",
365
+ type: "text",
366
+ "validate-on-blur": "",
367
+ "validation-rules": httpsCredentialValidationRules,
368
+ placeholder: unref(locale).baseText("settings.sourceControl.httpsUsernamePlaceholder"),
369
+ onValidate: _cache[4] || (_cache[4] = (value) => onValidate("httpsUsername", value))
370
+ }, null, 8, ["modelValue", "placeholder"])
371
+ ], 2)) : createCommentVNode("", true),
372
+ connectionType.value === "https" && !isConnected.value ? (openBlock(), createElementBlock("div", {
373
+ key: 2,
374
+ class: normalizeClass(_ctx.$style.group)
375
+ }, [
376
+ createBaseVNode("label", _hoisted_6, toDisplayString(unref(locale).baseText("settings.sourceControl.httpsPersonalAccessToken")), 1),
377
+ createVNode(_component_N8nFormInput, {
378
+ id: "httpsPassword",
379
+ modelValue: httpsPassword.value,
380
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => httpsPassword.value = $event),
381
+ label: "",
382
+ name: "httpsPassword",
383
+ type: "password",
384
+ "validate-on-blur": "",
385
+ "validation-rules": httpsCredentialValidationRules,
386
+ placeholder: unref(locale).baseText("settings.sourceControl.httpsPersonalAccessTokenPlaceholder"),
387
+ onValidate: _cache[6] || (_cache[6] = (value) => onValidate("httpsPassword", value))
388
+ }, null, 8, ["modelValue", "placeholder"]),
389
+ createVNode(_component_N8nNotice, {
390
+ type: "warning",
391
+ class: "mt-s"
392
+ }, {
393
+ default: withCtx(() => [
394
+ createVNode(unref(I18nT), {
395
+ keypath: "settings.sourceControl.httpsWarningNotice",
396
+ tag: "span",
397
+ scope: "global"
398
+ }, {
399
+ strong: withCtx(() => [
400
+ createBaseVNode("strong", null, toDisplayString(unref(locale).baseText("settings.sourceControl.httpsWarningNotice.strong")), 1)
401
+ ]),
402
+ repo: withCtx(() => _cache[11] || (_cache[11] = [
403
+ createBaseVNode("code", null, "repo", -1)
404
+ ])),
405
+ publicRepo: withCtx(() => _cache[12] || (_cache[12] = [
406
+ createBaseVNode("code", null, "public_repo", -1)
407
+ ])),
408
+ _: 1
409
+ })
410
+ ]),
411
+ _: 1
412
+ })
413
+ ], 2)) : createCommentVNode("", true),
414
+ connectionType.value === "ssh" && unref(sourceControlStore).preferences.publicKey ? (openBlock(), createElementBlock("div", {
415
+ key: 3,
273
416
  class: normalizeClass(_ctx.$style.group)
274
417
  }, [
275
418
  createBaseVNode("label", null, toDisplayString(unref(locale).baseText("settings.sourceControl.sshKey")), 1),
276
419
  createBaseVNode("div", {
277
420
  class: normalizeClass({ [_ctx.$style.sshInput]: !isConnected.value })
278
421
  }, [
279
- !isConnected.value ? (openBlock(), createBlock(_component_n8n_form_input, {
422
+ !isConnected.value ? (openBlock(), createBlock(_component_N8nFormInput, {
280
423
  key: 0,
281
424
  id: "keyGeneratorType",
282
425
  class: normalizeClass(_ctx.$style.sshKeyTypeSelect),
@@ -288,7 +431,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
288
431
  "validation-rules": keyGeneratorTypeValidationRules,
289
432
  options: unref(sourceControlStore).sshKeyTypesWithLabel,
290
433
  "model-value": unref(sourceControlStore).preferences.keyGeneratorType,
291
- onValidate: _cache[2] || (_cache[2] = (value) => onValidate("keyGeneratorType", value)),
434
+ onValidate: _cache[7] || (_cache[7] = (value) => onValidate("keyGeneratorType", value)),
292
435
  "onUpdate:modelValue": onSelectSshKeyType
293
436
  }, null, 8, ["class", "options", "model-value"])) : createCommentVNode("", true),
294
437
  createVNode(CopyInput, {
@@ -298,7 +441,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
298
441
  value: unref(sourceControlStore).preferences.publicKey,
299
442
  "copy-button-text": unref(locale).baseText("generic.clickToCopy")
300
443
  }, null, 8, ["class", "value", "copy-button-text"]),
301
- !isConnected.value ? (openBlock(), createBlock(_component_n8n_button, {
444
+ !isConnected.value ? (openBlock(), createBlock(_component_N8nButton, {
302
445
  key: 1,
303
446
  size: "large",
304
447
  type: "tertiary",
@@ -312,7 +455,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
312
455
  _: 1
313
456
  })) : createCommentVNode("", true)
314
457
  ], 2),
315
- createVNode(_component_n8n_notice, {
458
+ createVNode(_component_N8nNotice, {
316
459
  type: "info",
317
460
  class: "mt-s"
318
461
  }, {
@@ -326,7 +469,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
326
469
  createBaseVNode("a", {
327
470
  href: unref(locale).baseText("settings.sourceControl.docs.setup.ssh.url"),
328
471
  target: "_blank"
329
- }, toDisplayString(unref(locale).baseText("settings.sourceControl.sshKeyDescriptionLink")), 9, _hoisted_4)
472
+ }, toDisplayString(unref(locale).baseText("settings.sourceControl.sshKeyDescriptionLink")), 9, _hoisted_7)
330
473
  ]),
331
474
  _: 1
332
475
  })
@@ -334,8 +477,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
334
477
  _: 1
335
478
  })
336
479
  ], 2)) : createCommentVNode("", true),
337
- !isConnected.value ? (openBlock(), createBlock(_component_n8n_button, {
338
- key: 1,
480
+ !isConnected.value ? (openBlock(), createBlock(_component_N8nButton, {
481
+ key: 4,
339
482
  size: "large",
340
483
  disabled: !validForConnection.value,
341
484
  class: normalizeClass(_ctx.$style.connect),
@@ -347,12 +490,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
347
490
  ]),
348
491
  _: 1
349
492
  }, 8, ["disabled", "class"])) : createCommentVNode("", true),
350
- isConnected.value ? (openBlock(), createElementBlock("div", _hoisted_5, [
493
+ isConnected.value ? (openBlock(), createElementBlock("div", _hoisted_8, [
351
494
  createBaseVNode("div", {
352
495
  class: normalizeClass(_ctx.$style.group)
353
496
  }, [
354
- _cache[6] || (_cache[6] = createBaseVNode("hr", null, null, -1)),
355
- createVNode(_component_n8n_heading, {
497
+ _cache[13] || (_cache[13] = createBaseVNode("hr", null, null, -1)),
498
+ createVNode(_component_N8nHeading, {
356
499
  size: "xlarge",
357
500
  tag: "h2",
358
501
  class: "mb-s"
@@ -366,7 +509,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
366
509
  createBaseVNode("div", {
367
510
  class: normalizeClass(_ctx.$style.branchSelection)
368
511
  }, [
369
- createVNode(_component_n8n_form_input, {
512
+ createVNode(_component_N8nFormInput, {
370
513
  id: "branchName",
371
514
  label: "",
372
515
  type: "select",
@@ -377,15 +520,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
377
520
  "validation-rules": branchNameValidationRules,
378
521
  options: branchNameOptions.value,
379
522
  "model-value": unref(sourceControlStore).preferences.branchName,
380
- onValidate: _cache[3] || (_cache[3] = (value) => onValidate("branchName", value)),
523
+ onValidate: _cache[8] || (_cache[8] = (value) => onValidate("branchName", value)),
381
524
  "onUpdate:modelValue": onSelect
382
525
  }, null, 8, ["options", "model-value"]),
383
- createVNode(_component_n8n_tooltip, { placement: "top" }, {
526
+ createVNode(_component_N8nTooltip, { placement: "top" }, {
384
527
  content: withCtx(() => [
385
528
  createBaseVNode("span", null, toDisplayString(unref(locale).baseText("settings.sourceControl.refreshBranches.tooltip")), 1)
386
529
  ]),
387
530
  default: withCtx(() => [
388
- createVNode(_component_n8n_button, {
531
+ createVNode(_component_N8nButton, {
389
532
  size: "small",
390
533
  type: "tertiary",
391
534
  icon: "refresh-cw",
@@ -398,9 +541,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
398
541
  _: 1
399
542
  })
400
543
  ], 2),
401
- createVNode(_component_n8n_checkbox, {
544
+ createVNode(_component_N8nCheckbox, {
402
545
  modelValue: unref(sourceControlStore).preferences.branchReadOnly,
403
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => unref(sourceControlStore).preferences.branchReadOnly = $event),
546
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => unref(sourceControlStore).preferences.branchReadOnly = $event),
404
547
  class: normalizeClass(_ctx.$style.readOnly)
405
548
  }, {
406
549
  default: withCtx(() => [
@@ -423,9 +566,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
423
566
  }, [
424
567
  createBaseVNode("label", null, toDisplayString(unref(locale).baseText("settings.sourceControl.color")), 1),
425
568
  createBaseVNode("div", null, [
426
- createVNode(_component_n8n_color_picker, {
569
+ createVNode(_component_N8nColorPicker, {
427
570
  modelValue: unref(sourceControlStore).preferences.branchColor,
428
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => unref(sourceControlStore).preferences.branchColor = $event),
571
+ "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => unref(sourceControlStore).preferences.branchColor = $event),
429
572
  size: "small"
430
573
  }, null, 8, ["modelValue"])
431
574
  ])
@@ -433,7 +576,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
433
576
  createBaseVNode("div", {
434
577
  class: normalizeClass([_ctx.$style.group, "pt-s"])
435
578
  }, [
436
- createVNode(_component_n8n_button, {
579
+ createVNode(_component_N8nButton, {
437
580
  size: "large",
438
581
  disabled: !unref(sourceControlStore).preferences.branchName,
439
582
  "data-test-id": "source-control-save-settings-button",
@@ -446,7 +589,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
446
589
  }, 8, ["disabled"])
447
590
  ], 2)
448
591
  ])) : createCommentVNode("", true)
449
- ])) : (openBlock(), createBlock(_component_n8n_action_box, {
592
+ ])) : (openBlock(), createBlock(_component_N8nActionBox, {
450
593
  key: 1,
451
594
  "data-test-id": "source-control-content-unlicensed",
452
595
  class: normalizeClass(_ctx.$style.actionBox),
@@ -462,7 +605,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
462
605
  createBaseVNode("a", {
463
606
  href: unref(locale).baseText("settings.sourceControl.docs.url"),
464
607
  target: "_blank"
465
- }, toDisplayString(unref(locale).baseText("settings.sourceControl.actionBox.description.link")), 9, _hoisted_6)
608
+ }, toDisplayString(unref(locale).baseText("settings.sourceControl.actionBox.description.link")), 9, _hoisted_9)
466
609
  ]),
467
610
  _: 1
468
611
  }, 8, ["class", "description", "button-text"]))