windmill-components 1.677.1 → 1.695.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 (552) hide show
  1. package/package/components/AppConnectInner.svelte +6 -0
  2. package/package/components/ArgInput.svelte +2 -0
  3. package/package/components/AutoscalingConfigEditor.svelte +18 -4
  4. package/package/components/CiTestResults.svelte +64 -0
  5. package/package/components/CiTestResults.svelte.d.ts +7 -0
  6. package/package/components/CompareWorkspaces.svelte +741 -484
  7. package/package/components/DBManager.svelte +35 -4
  8. package/package/components/DBManager.svelte.d.ts +2 -0
  9. package/package/components/DBManagerContent.svelte +3 -1
  10. package/package/components/DBManagerContent.svelte.d.ts +3 -0
  11. package/package/components/DBManagerDrawer.svelte +145 -3
  12. package/package/components/DBTableEditor.svelte +14 -4
  13. package/package/components/DatatablePicker.svelte +2 -5
  14. package/package/components/DatatableSchemaDiff.svelte +531 -0
  15. package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
  16. package/package/components/DedicatedWorkersSelector.svelte +4 -2
  17. package/package/components/DefaultTagsInner.svelte +42 -2
  18. package/package/components/DeployWorkspaceDrawer.svelte +1 -1
  19. package/package/components/Dev.svelte +407 -74
  20. package/package/components/EditableSchemaForm.svelte +4 -0
  21. package/package/components/Editor.svelte +1 -1
  22. package/package/components/EditorBar.svelte +1 -1
  23. package/package/components/EditorBar.svelte.d.ts +1 -1
  24. package/package/components/ErrorOrRecoveryHandler.svelte +2 -2
  25. package/package/components/FlowPreviewContent.svelte +32 -30
  26. package/package/components/FlowRestartButton.svelte +143 -61
  27. package/package/components/FlowRestartButton.svelte.d.ts +37 -0
  28. package/package/components/FlowStatusViewer.svelte +15 -1
  29. package/package/components/FlowStatusViewer.svelte.d.ts +10 -2
  30. package/package/components/FlowStatusViewerInner.svelte +270 -222
  31. package/package/components/FlowStatusViewerInner.svelte.d.ts +6 -2
  32. package/package/components/FlowTimeline.svelte +1 -1
  33. package/package/components/FolderEditor.svelte +189 -4
  34. package/package/components/ForkConflictModal.svelte +57 -0
  35. package/package/components/ForkConflictModal.svelte.d.ts +3 -0
  36. package/package/components/ForkWorkspaceBanner.svelte +82 -11
  37. package/package/components/GitRepoViewer.svelte +251 -97
  38. package/package/components/GlobalUserOffboardingModal.svelte +293 -0
  39. package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
  40. package/package/components/InputTransformSchemaForm.svelte +1 -1
  41. package/package/components/InstanceSettings.svelte +58 -19
  42. package/package/components/Login.svelte +133 -36
  43. package/package/components/Login.svelte.d.ts +1 -0
  44. package/package/components/ModuleTest.svelte +2 -1
  45. package/package/components/NoMainFuncBadge.svelte +1 -1
  46. package/package/components/OffboardItemsBox.svelte +56 -0
  47. package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
  48. package/package/components/OffboardReassignControls.svelte +47 -0
  49. package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
  50. package/package/components/OffboardWorkspaceSection.svelte +110 -0
  51. package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
  52. package/package/components/OnBehalfOfSelector.svelte +21 -3
  53. package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
  54. package/package/components/Path.svelte +7 -1
  55. package/package/components/Path.svelte.d.ts +1 -1
  56. package/package/components/QueueAlerts.svelte +10 -10
  57. package/package/components/ResourcePicker.svelte +2 -2
  58. package/package/components/RunsPage.svelte +2 -1
  59. package/package/components/S3FilePickerInner.svelte +89 -89
  60. package/package/components/ScriptBuilder.svelte +52 -11
  61. package/package/components/ScriptEditor.svelte +19 -8
  62. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  63. package/package/components/ShareModal.svelte +236 -98
  64. package/package/components/ShareModal.svelte.d.ts +1 -1
  65. package/package/components/SuperadminSettingsInner.svelte +362 -315
  66. package/package/components/UserOffboardingModal.svelte +238 -0
  67. package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
  68. package/package/components/WorkspaceDeployLayout.svelte +3 -3
  69. package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
  70. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -0
  71. package/package/components/apps/components/helpers/executeRunnable.js +2 -1
  72. package/package/components/apps/editor/AppReportsDrawerInner.svelte +1 -1
  73. package/package/components/apps/editor/appPolicy.js +2 -1
  74. package/package/components/apps/editor/commonAppUtils.d.ts +3 -0
  75. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
  76. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +7 -0
  77. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
  78. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte +49 -0
  79. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
  81. package/package/components/apps/inputType.d.ts +1 -0
  82. package/package/components/apps/sharedTypes.d.ts +1 -0
  83. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  84. package/package/components/auditLogs/AuditLogsFilters.svelte +8 -3
  85. package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
  86. package/package/components/common/fileUpload/S3ArgInput.svelte +12 -10
  87. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +2 -0
  88. package/package/components/common/table/AppRow.svelte +3 -3
  89. package/package/components/common/table/FlowRow.svelte +3 -3
  90. package/package/components/common/table/RawAppRow.svelte +4 -4
  91. package/package/components/common/table/Row.svelte +6 -2
  92. package/package/components/common/table/ScriptRow.svelte +11 -3
  93. package/package/components/copilot/chat/AIChatDisplay.svelte +5 -36
  94. package/package/components/copilot/chat/AIChatInput.svelte +56 -47
  95. package/package/components/copilot/chat/AIChatManager.svelte.js +50 -48
  96. package/package/components/copilot/chat/ContextElementBadge.svelte +6 -4
  97. package/package/components/copilot/chat/anthropic.d.ts +7 -1
  98. package/package/components/copilot/chat/anthropic.js +5 -2
  99. package/package/components/copilot/chat/app/core.d.ts +12 -20
  100. package/package/components/copilot/chat/app/core.js +230 -159
  101. package/package/components/copilot/chat/app/core.test.js +417 -0
  102. package/package/components/copilot/chat/chatLoop.d.ts +3 -0
  103. package/package/components/copilot/chat/chatLoop.js +13 -5
  104. package/package/components/copilot/chat/context.js +44 -0
  105. package/package/components/copilot/chat/flow/FlowAIChat.svelte +57 -76
  106. package/package/components/copilot/chat/flow/core.d.ts +14 -3
  107. package/package/components/copilot/chat/flow/core.js +494 -116
  108. package/package/components/copilot/chat/flow/helperUtils.d.ts +22 -0
  109. package/package/components/copilot/chat/flow/helperUtils.js +100 -0
  110. package/package/components/copilot/chat/flow/helperUtils.test.js +231 -0
  111. package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
  112. package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
  113. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  114. package/package/components/copilot/chat/flow/openFlowZod.gen.js +24 -0
  115. package/package/components/copilot/chat/flow/utils.test.js +59 -0
  116. package/package/components/copilot/chat/openai-responses.d.ts +7 -1
  117. package/package/components/copilot/chat/openai-responses.js +5 -2
  118. package/package/components/copilot/chat/script/core.js +3 -0
  119. package/package/components/copilot/chat/shared.d.ts +7 -2
  120. package/package/components/copilot/chat/shared.js +116 -53
  121. package/package/components/copilot/chat/shared.test.d.ts +1 -0
  122. package/package/components/copilot/chat/shared.test.js +412 -0
  123. package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
  124. package/package/components/copilot/chat/tokenUsage.js +42 -0
  125. package/package/components/copilot/chat/workspaceTools.d.ts +7 -0
  126. package/package/components/copilot/chat/workspaceTools.js +239 -0
  127. package/package/components/copilot/chat/workspaceToolsZod.gen.d.ts +1295 -0
  128. package/package/components/copilot/chat/workspaceToolsZod.gen.js +424 -0
  129. package/package/components/copilot/lib.d.ts +5 -1
  130. package/package/components/copilot/lib.js +24 -6
  131. package/package/components/copilot/lib.test.d.ts +1 -0
  132. package/package/components/copilot/lib.test.js +19 -0
  133. package/package/components/copilot/modelConfig.d.ts +3 -0
  134. package/package/components/copilot/modelConfig.js +10 -0
  135. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
  136. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +18 -8
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
  139. package/package/components/flows/FlowAssetsHandler.svelte +19 -21
  140. package/package/components/flows/FlowProgressBar.svelte +5 -2
  141. package/package/components/flows/agentToolTree.d.ts +17 -0
  142. package/package/components/flows/agentToolTree.js +114 -0
  143. package/package/components/flows/agentToolTree.test.d.ts +1 -0
  144. package/package/components/flows/agentToolTree.test.js +86 -0
  145. package/package/components/flows/agentToolUtils.d.ts +0 -5
  146. package/package/components/flows/agentToolUtils.js +0 -49
  147. package/package/components/flows/content/FlowLoop.svelte +7 -4
  148. package/package/components/flows/content/FlowModuleComponent.svelte +636 -599
  149. package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
  150. package/package/components/flows/content/FlowSettings.svelte +29 -0
  151. package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -10
  152. package/package/components/flows/dfs.d.ts +6 -2
  153. package/package/components/flows/dfs.js +19 -11
  154. package/package/components/flows/flowDeleteController.d.ts +32 -0
  155. package/package/components/flows/flowDeleteController.js +54 -0
  156. package/package/components/flows/flowDeleteController.test.d.ts +1 -0
  157. package/package/components/flows/flowDeleteController.test.js +121 -0
  158. package/package/components/flows/flowDeleteUtils.d.ts +48 -0
  159. package/package/components/flows/flowDeleteUtils.js +150 -0
  160. package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
  161. package/package/components/flows/flowDeleteUtils.test.js +131 -0
  162. package/package/components/flows/flowDiff.d.ts +2 -47
  163. package/package/components/flows/flowDiff.js +16 -293
  164. package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
  165. package/package/components/flows/flowDiff.testUtils.js +26 -0
  166. package/package/components/flows/flowDiffManager.svelte.js +20 -75
  167. package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
  168. package/package/components/flows/flowExplorer.d.ts +4 -0
  169. package/package/components/flows/flowExplorer.js +7 -30
  170. package/package/components/flows/flowState.d.ts +1 -0
  171. package/package/components/flows/flowStateUtils.svelte.js +11 -2
  172. package/package/components/flows/flowTree.d.ts +91 -0
  173. package/package/components/flows/flowTree.js +326 -0
  174. package/package/components/flows/flowTree.test.d.ts +1 -0
  175. package/package/components/flows/flowTree.test.js +236 -0
  176. package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
  177. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  178. package/package/components/flows/map/FlowModuleSchemaMap.svelte +73 -229
  179. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
  180. package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
  181. package/package/components/flows/previousResults.js +13 -41
  182. package/package/components/flows/previousResults.test.d.ts +1 -0
  183. package/package/components/flows/previousResults.test.js +65 -0
  184. package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
  185. package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
  186. package/package/components/flows/propPicker/StepHistory.svelte +9 -1
  187. package/package/components/git_sync/GitSyncContext.svelte.js +11 -7
  188. package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
  189. package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
  190. package/package/components/graph/FlowGraphV2.svelte +8 -4
  191. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  192. package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
  193. package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
  194. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +8 -2
  195. package/package/components/home/HomeConnectDrawer.svelte +125 -0
  196. package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
  197. package/package/components/home/deploy_ui.js +1 -1
  198. package/package/components/icons/AzureIcon.svelte +12 -25
  199. package/package/components/icons/AzureIcon.svelte.d.ts +3 -2
  200. package/package/components/icons/GithubIcon.svelte +4 -4
  201. package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
  202. package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
  203. package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
  204. package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
  205. package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
  206. package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
  207. package/package/components/instanceSettings.d.ts +1 -0
  208. package/package/components/instanceSettings.js +66 -8
  209. package/package/components/mcp/McpScopeSelector.svelte +119 -9
  210. package/package/components/mcp/McpScopeSelector.svelte.d.ts +1 -0
  211. package/package/components/offboarding-utils.d.ts +11 -0
  212. package/package/components/offboarding-utils.js +102 -0
  213. package/package/components/progressBar/ProgressBar.svelte +9 -5
  214. package/package/components/progressBar/ProgressBar.svelte.d.ts +1 -0
  215. package/package/components/raw_apps/DeleteAfterUsePopup.svelte +52 -0
  216. package/package/components/raw_apps/DeleteAfterUsePopup.svelte.d.ts +9 -0
  217. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +5 -1
  218. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
  219. package/package/components/raw_apps/RawAppEditor.svelte +186 -102
  220. package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
  221. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
  222. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +9 -3
  223. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +2 -1
  224. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +1 -0
  225. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +1 -0
  226. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +48 -5
  227. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte +129 -0
  228. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte.d.ts +5 -0
  229. package/package/components/raw_apps/RawAppSidebar.svelte +12 -0
  230. package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
  231. package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
  232. package/package/components/raw_apps/dataTableRefUtils.d.ts +7 -0
  233. package/package/components/raw_apps/dataTableRefUtils.js +34 -0
  234. package/package/components/raw_apps/dataTableRefUtils.test.d.ts +1 -0
  235. package/package/components/raw_apps/dataTableRefUtils.test.js +29 -0
  236. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  237. package/package/components/raw_apps/rawAppPolicy.d.ts +1 -0
  238. package/package/components/raw_apps/rawAppPolicy.js +17 -2
  239. package/package/components/resources/resourceTypesFilter.d.ts +19 -0
  240. package/package/components/resources/resourceTypesFilter.js +21 -0
  241. package/package/components/restartFromStepPath.d.ts +39 -0
  242. package/package/components/restartFromStepPath.js +89 -0
  243. package/package/components/runs/JobDetailFieldConfig.d.ts +1 -0
  244. package/package/components/runs/JobDetailFieldConfig.js +57 -10
  245. package/package/components/runs/JobDetailHeader.svelte +24 -3
  246. package/package/components/runs/runsFilter.d.ts +1 -1
  247. package/package/components/schema/FlowPropertyEditor.svelte +30 -1
  248. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +5 -2
  249. package/package/components/script_builder.d.ts +1 -1
  250. package/package/components/search/GlobalSearchModal.svelte +8 -1
  251. package/package/components/select/Select.svelte +3 -2
  252. package/package/components/select/Select.svelte.d.ts +1 -0
  253. package/package/components/settings/CreateToken.svelte +91 -71
  254. package/package/components/settings/CreateToken.svelte.d.ts +3 -0
  255. package/package/components/settings/EditTokenScopesModal.svelte +57 -0
  256. package/package/components/settings/EditTokenScopesModal.svelte.d.ts +10 -0
  257. package/package/components/settings/ScopesPicker.svelte +43 -0
  258. package/package/components/settings/ScopesPicker.svelte.d.ts +11 -0
  259. package/package/components/settings/TokensTable.svelte +51 -15
  260. package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
  261. package/package/components/sidebar/OperatorMenu.svelte +6 -0
  262. package/package/components/sidebar/SidebarContent.svelte +68 -2
  263. package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
  264. package/package/components/triggers/AddTriggersButton.svelte +17 -0
  265. package/package/components/triggers/CaptureWrapper.svelte +19 -1
  266. package/package/components/triggers/PermissionedAsLine.svelte +37 -3
  267. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
  268. package/package/components/triggers/TriggerEditorToolbar.svelte.d.ts +1 -1
  269. package/package/components/triggers/TriggerModeToggle.svelte +36 -7
  270. package/package/components/triggers/TriggerModeToggle.svelte.d.ts +1 -1
  271. package/package/components/triggers/TriggerSuspendedJobsModal.svelte.d.ts +1 -1
  272. package/package/components/triggers/TriggersEditor.svelte +10 -2
  273. package/package/components/triggers/TriggersWrapper.svelte +20 -0
  274. package/package/components/triggers/azure/AzureCapture.svelte +41 -0
  275. package/package/components/triggers/azure/AzureCapture.svelte.d.ts +44 -0
  276. package/package/components/triggers/azure/AzureTriggerEditor.svelte +20 -0
  277. package/package/components/triggers/azure/AzureTriggerEditor.svelte.d.ts +9 -0
  278. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte +301 -0
  279. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte.d.ts +16 -0
  280. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte +422 -0
  281. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte.d.ts +25 -0
  282. package/package/components/triggers/azure/AzureTriggerPanel.svelte +55 -0
  283. package/package/components/triggers/azure/AzureTriggerPanel.svelte.d.ts +10 -0
  284. package/{dist/sharedUtils/components/triggers/kafka → package/components/triggers/azure}/utils.d.ts +1 -1
  285. package/package/components/triggers/azure/utils.js +56 -0
  286. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +15 -11
  287. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +22 -14
  288. package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
  289. package/package/components/triggers/http/RouteEditorInner.svelte +16 -14
  290. package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
  291. package/package/components/triggers/http/RoutesPanel.svelte +1 -1
  292. package/package/components/triggers/http/utils.d.ts +1 -1
  293. package/package/components/triggers/http/utils.js +2 -2
  294. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +22 -14
  295. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +22 -14
  296. package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
  297. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
  298. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
  299. package/package/components/triggers/native/utils.js +14 -0
  300. package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
  301. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +22 -14
  302. package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
  303. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +22 -14
  304. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +22 -14
  305. package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
  306. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +22 -14
  307. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  308. package/package/components/triggers/triggers.svelte.js +24 -1
  309. package/package/components/triggers/utils.js +47 -6
  310. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -14
  311. package/package/components/triggers.d.ts +1 -1
  312. package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
  313. package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
  314. package/package/components/useNestedRestartState.svelte.d.ts +56 -0
  315. package/package/components/useNestedRestartState.svelte.js +320 -0
  316. package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
  317. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
  318. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
  319. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
  320. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
  321. package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
  322. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  323. package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
  324. package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
  325. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
  326. package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
  327. package/package/components/workspaceSettings/SharedUiSettings.svelte +175 -0
  328. package/package/components/workspaceSettings/SharedUiSettings.svelte.d.ts +3 -0
  329. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
  330. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
  331. package/package/consts.d.ts +3 -0
  332. package/package/consts.js +10 -0
  333. package/package/gen/core/OpenAPI.js +1 -1
  334. package/package/gen/schemas.gen.d.ts +795 -59
  335. package/package/gen/schemas.gen.js +801 -60
  336. package/package/gen/services.gen.d.ts +475 -5
  337. package/package/gen/services.gen.js +976 -23
  338. package/package/gen/types.gen.d.ts +1865 -75
  339. package/package/githubApp.js +5 -1
  340. package/package/hubPaths.json +2 -8
  341. package/package/infer.d.ts +1 -1
  342. package/package/infer.js +50 -52
  343. package/package/infer.svelte.js +10 -1
  344. package/package/mcpEndpointTools.js +60 -4
  345. package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
  346. package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
  347. package/package/script_helpers.d.ts +8 -2
  348. package/package/script_helpers.js +31 -0
  349. package/package/stores.d.ts +11 -0
  350. package/package/stores.js +6 -0
  351. package/package/system_prompts/index.d.ts +1 -0
  352. package/package/system_prompts/index.js +8 -0
  353. package/package/system_prompts/prompts.d.ts +17 -13
  354. package/package/system_prompts/prompts.js +921 -61
  355. package/package/templates/ci_test_bun.ts.template +27 -0
  356. package/package/templates/ci_test_python.py.template +26 -0
  357. package/package/utils/forkConflict.d.ts +26 -0
  358. package/package/utils/forkConflict.js +56 -0
  359. package/package/utils_deployable.d.ts +164 -121
  360. package/package/utils_deployable.js +61 -11
  361. package/package/utils_workspace_deploy.d.ts +8 -8
  362. package/package/utils_workspace_deploy.js +89 -421
  363. package/package.json +30 -6
  364. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  365. package/dist/sharedUtils/base.d.ts +0 -1
  366. package/dist/sharedUtils/cloud.d.ts +0 -1
  367. package/dist/sharedUtils/common.d.ts +0 -111
  368. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  369. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  370. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  371. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  372. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  373. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  374. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  375. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  376. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  377. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  378. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  379. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  380. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  381. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  382. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  383. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  384. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  385. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  386. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  387. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  388. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  389. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  390. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  391. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  392. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  393. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  394. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  395. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  396. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  397. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  398. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  399. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  400. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  401. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  402. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  403. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  404. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  405. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  406. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  407. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  408. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  409. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  410. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  411. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  412. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  413. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  414. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  415. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  416. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  417. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  418. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  419. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  420. package/dist/sharedUtils/gen/index.d.ts +0 -6
  421. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  422. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  423. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  424. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  425. package/dist/sharedUtils/hub.d.ts +0 -49
  426. package/dist/sharedUtils/jsr.json +0 -6
  427. package/dist/sharedUtils/lib.d.ts +0 -5
  428. package/dist/sharedUtils/lib.es.js +0 -1588
  429. package/dist/sharedUtils/package.json +0 -12
  430. package/dist/sharedUtils/schema.d.ts +0 -3
  431. package/dist/sharedUtils/stores.d.ts +0 -97
  432. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  433. package/dist/sharedUtils/toast.d.ts +0 -8
  434. package/dist/sharedUtils/utils.d.ts +0 -265
  435. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
  436. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
  437. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
  438. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
  439. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
  440. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
  441. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
  442. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
  443. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
  444. package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
  445. package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
  446. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
  447. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
  448. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
  449. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
  450. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
  451. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
  452. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
  453. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
  454. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
  455. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
  456. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
  457. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
  458. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
  459. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
  460. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
  461. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
  462. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
  463. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
  464. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
  465. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
  466. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
  467. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
  468. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
  469. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
  470. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
  471. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
  472. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
  473. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
  474. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
  475. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
  476. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
  477. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
  478. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
  479. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
  480. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
  481. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
  482. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
  483. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
  484. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
  485. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
  486. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
  487. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
  488. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
  489. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
  490. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
  491. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
  492. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
  493. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
  494. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
  495. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
  496. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
  497. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
  498. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
  499. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
  500. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
  501. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
  502. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
  503. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
  504. package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
  505. package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
  506. package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
  507. package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
  508. package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
  509. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
  510. package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
  511. package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
  512. package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
  513. package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
  514. package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
  515. package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
  516. package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
  517. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
  518. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
  519. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
  520. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
  521. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
  522. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
  523. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
  524. package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
  525. package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
  526. package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
  527. package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
  528. package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
  529. package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
  530. package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
  531. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
  532. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
  533. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
  534. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
  535. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
  536. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
  537. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
  538. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
  539. package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
  540. package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
  541. package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
  542. package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
  543. package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
  544. package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
  545. package/package/components/copilot/chat/flow/openFlowZod.js +0 -24
  546. package/package/components/copilot/chat/flow/utils.d.ts +0 -14
  547. package/package/components/copilot/chat/flow/utils.js +0 -108
  548. package/package/components/flows/agentToolUtils.test.js +0 -55
  549. /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
  550. /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
  551. /package/package/components/copilot/chat/flow/{openFlowZod.d.ts → openFlowZod.gen.d.ts} +0 -0
  552. /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
@@ -20,7 +20,7 @@ import Skeleton from './common/skeleton/Skeleton.svelte';
20
20
  import Button from './common/button/Button.svelte';
21
21
  import { sameTopDomainOrigin } from '../cookies';
22
22
  import { isValidLogoutRedirect } from '../logoutRedirect';
23
- let { rd = undefined, email = $bindable(undefined), password = $bindable(undefined), error = undefined, popup = false, firstTime = false, onLoginSuccess = undefined } = $props();
23
+ let { rd = undefined, email = $bindable(undefined), password = $bindable(undefined), error = undefined, popup = false, firstTime = false, autoRedirect = true, onLoginSuccess = undefined } = $props();
24
24
  const providers = [
25
25
  {
26
26
  type: 'github',
@@ -68,6 +68,9 @@ let showPassword = $state(false);
68
68
  let logins = $state(undefined);
69
69
  let saml = $state(undefined);
70
70
  let smtpConfigured = $state(undefined);
71
+ let disablePasswordLogin = $state(false);
72
+ let autoRedirecting = $state(false);
73
+ let oauthFlowDone = false;
71
74
  async function login() {
72
75
  if (!email || !password) {
73
76
  sendUserToast('Please fill in both email and password', true);
@@ -155,20 +158,56 @@ async function redirectUser() {
155
158
  }
156
159
  }
157
160
  async function loadLogins() {
158
- try {
159
- const allLogins = await OauthService.listOauthLogins();
160
- logins = allLogins.oauth.map((login) => ({
161
+ const [loginsResult, disabledResult] = await Promise.allSettled([
162
+ OauthService.listOauthLogins(),
163
+ UserService.isPasswordLoginDisabled()
164
+ ]);
165
+ if (disabledResult.status === 'fulfilled') {
166
+ disablePasswordLogin = disabledResult.value ?? false;
167
+ }
168
+ else {
169
+ disablePasswordLogin = false;
170
+ console.error('Could not load password login setting', disabledResult.reason);
171
+ }
172
+ let autoLogin = undefined;
173
+ if (loginsResult.status === 'fulfilled') {
174
+ logins = loginsResult.value.oauth.map((login) => ({
161
175
  type: login.type,
162
176
  displayName: login.display_name || login.type
163
177
  }));
164
- saml = allLogins.saml;
165
- showPassword = (logins.length == 0 && !saml) || (email != undefined && email.length > 0);
178
+ saml = loginsResult.value.saml;
179
+ autoLogin = loginsResult.value.auto_login;
166
180
  }
167
- catch (e) {
181
+ else {
168
182
  logins = [];
169
183
  saml = undefined;
170
- showPassword = true;
171
- console.error('Could not load logins', e);
184
+ console.error('Could not load logins', loginsResult.reason);
185
+ }
186
+ showPassword =
187
+ !disablePasswordLogin &&
188
+ ((logins?.length === 0 && !saml) || (email != undefined && email.length > 0));
189
+ if (autoRedirect && autoLogin && !error && !shouldSkipAutoRedirect()) {
190
+ if (autoLogin === 'saml' && saml) {
191
+ autoRedirecting = true;
192
+ if (!redirectSaml())
193
+ autoRedirecting = false;
194
+ }
195
+ else if (logins?.some((l) => l.type === autoLogin)) {
196
+ autoRedirecting = true;
197
+ if (!storeRedirect(autoLogin)) {
198
+ autoRedirecting = false;
199
+ sendUserToast('Popup blocked — please click the sign-in button to continue.', true);
200
+ }
201
+ }
202
+ }
203
+ }
204
+ function shouldSkipAutoRedirect() {
205
+ try {
206
+ const params = new URLSearchParams(window.location.search);
207
+ return params.get('no_sso') === '1';
208
+ }
209
+ catch {
210
+ return false;
172
211
  }
173
212
  }
174
213
  loadLogins();
@@ -221,17 +260,23 @@ function processPopupData(data) {
221
260
  sendUserToast(data.error, true);
222
261
  }
223
262
  else if (data.type === 'success') {
224
- onLoginSuccess?.();
263
+ finishOauthFlow('postMessage');
225
264
  }
226
265
  }
227
266
  function handleStorageEvent(event) {
228
267
  if (event.key === 'oauth-success') {
229
268
  try {
230
- processPopupData(JSON.parse(event.newValue));
269
+ const data = JSON.parse(event.newValue);
231
270
  console.log('oauth-success from storage');
232
271
  // Clean up
233
272
  localStorage.removeItem('oauth-success');
234
273
  window.removeEventListener('storage', handleStorageEvent);
274
+ if (data?.type === 'success') {
275
+ finishOauthFlow('storage');
276
+ }
277
+ else {
278
+ processPopupData(data);
279
+ }
235
280
  }
236
281
  catch (e) {
237
282
  console.error('Could not process oauth-success from storage', e);
@@ -241,11 +286,22 @@ function handleStorageEvent(event) {
241
286
  console.log('Storage event', event.key);
242
287
  }
243
288
  }
289
+ function finishOauthFlow(via, win) {
290
+ if (oauthFlowDone)
291
+ return;
292
+ oauthFlowDone = true;
293
+ console.log(`oauth: signaled via ${via}`);
294
+ if (win && !win.closed)
295
+ win.close();
296
+ window.removeEventListener('message', popupListener);
297
+ window.removeEventListener('storage', handleStorageEvent);
298
+ onLoginSuccess?.();
299
+ }
244
300
  onDestroy(() => {
245
301
  window.removeEventListener('message', popupListener);
246
302
  window.removeEventListener('storage', handleStorageEvent);
247
303
  });
248
- function storeRedirect(provider) {
304
+ function persistRd() {
249
305
  if (rd) {
250
306
  try {
251
307
  localStorage.setItem('rd', rd);
@@ -254,18 +310,71 @@ function storeRedirect(provider) {
254
310
  console.error('Could not persist redirection to local storage', e);
255
311
  }
256
312
  }
313
+ }
314
+ function storeRedirect(provider) {
315
+ persistRd();
257
316
  let url = base + '/api/oauth/login/' + provider + (popup ? '?close=true' : '');
258
317
  console.log('storeRedirect', popup, url);
259
318
  if (popup) {
260
319
  localStorage.setItem('closeUponLogin', 'true');
261
320
  window.addEventListener('message', popupListener);
262
321
  window.addEventListener('storage', handleStorageEvent);
263
- window.open(url, '_blank', 'popup');
322
+ const win = window.open(url, '_blank', 'popup');
323
+ if (!win) {
324
+ window.removeEventListener('message', popupListener);
325
+ window.removeEventListener('storage', handleStorageEvent);
326
+ return false;
327
+ }
328
+ // Safety net for Safari: when the popup is opened without a fresh user
329
+ // gesture (auto-login), ITP can partition cookies/localStorage between
330
+ // popup and parent, so neither the close cookie, the postMessage, nor
331
+ // the localStorage 'oauth-success' signal reaches us. The session
332
+ // cookie is set same-origin and isn't subject to that partitioning, so
333
+ // polling whoami catches the success and lets us force-close the popup.
334
+ pollForLoginSuccess(win);
335
+ return true;
264
336
  }
265
337
  else {
266
338
  localStorage.setItem('closeUponLogin', 'false');
267
339
  window.location.href = url;
340
+ return true;
341
+ }
342
+ }
343
+ function pollForLoginSuccess(win) {
344
+ const startedAt = Date.now();
345
+ const interval = setInterval(async () => {
346
+ if (oauthFlowDone) {
347
+ clearInterval(interval);
348
+ return;
349
+ }
350
+ if (Date.now() - startedAt > 5 * 60 * 1000) {
351
+ clearInterval(interval);
352
+ console.log('oauth: poll timed out after 5 minutes');
353
+ return;
354
+ }
355
+ if (win.closed) {
356
+ clearInterval(interval);
357
+ console.log('oauth: popup closed before login completed');
358
+ return;
359
+ }
360
+ try {
361
+ await UserService.getCurrentEmail();
362
+ }
363
+ catch {
364
+ return;
365
+ }
366
+ clearInterval(interval);
367
+ finishOauthFlow('poll', win);
368
+ }, 1500);
369
+ }
370
+ function redirectSaml() {
371
+ if (!saml) {
372
+ sendUserToast('No SAML login available', true);
373
+ return false;
268
374
  }
375
+ persistRd();
376
+ window.location.href = saml;
377
+ return true;
269
378
  }
270
379
  $effect(() => {
271
380
  error && sendUserToast(escapeHtml(error), true);
@@ -273,7 +382,14 @@ $effect(() => {
273
382
  </script>
274
383
 
275
384
  <div class="bg-surface px-4 py-8 border sm:rounded-lg sm:px-10">
276
- <div class="grid {logins && logins.length > 2 ? 'grid-cols-2' : ''} gap-4">
385
+ {#if autoRedirecting}
386
+ <p class="text-sm text-center text-secondary py-4">Signing you in…</p>
387
+ {/if}
388
+ <div
389
+ class="grid {logins && logins.length > 2 ? 'grid-cols-2' : ''} gap-4 {autoRedirecting
390
+ ? 'hidden'
391
+ : ''}"
392
+ >
277
393
  {#if !logins}
278
394
  {#each Array(4) as _}
279
395
  <Skeleton layout={[0.5, [2.375]]} />
@@ -301,29 +417,10 @@ $effect(() => {
301
417
  {/each}
302
418
  {/if}
303
419
  {#if saml}
304
- <Button
305
- variant="default"
306
- btnClasses="mt-2 w-full"
307
- on:click={() => {
308
- if (saml) {
309
- if (rd) {
310
- try {
311
- localStorage.setItem('rd', rd)
312
- } catch (e) {
313
- console.error('Could not persist redirection to local storage', e)
314
- }
315
- }
316
- window.location.href = saml
317
- } else {
318
- sendUserToast('No SAML login available', true)
319
- }
320
- }}
321
- >
322
- SSO
323
- </Button>
420
+ <Button variant="default" btnClasses="mt-2 w-full" on:click={redirectSaml}>SSO</Button>
324
421
  {/if}
325
422
  </div>
326
- {#if saml || (logins && logins.length > 0)}
423
+ {#if !autoRedirecting && !disablePasswordLogin && (saml || (logins && logins.length > 0))}
327
424
  <div class={classNames('center-center', logins && logins.length > 0 ? 'mt-6' : '')}>
328
425
  <Button
329
426
  size="xs"
@@ -337,7 +434,7 @@ $effect(() => {
337
434
  </div>
338
435
  {/if}
339
436
 
340
- {#if showPassword}
437
+ {#if !autoRedirecting && showPassword && !disablePasswordLogin}
341
438
  <div>
342
439
  {#if firstTime}
343
440
  <p class="text-xs text-center w-full pb-4 text-secondary">
@@ -5,6 +5,7 @@ interface Props {
5
5
  error?: string | undefined;
6
6
  popup?: boolean;
7
7
  firstTime?: boolean;
8
+ autoRedirect?: boolean;
8
9
  onLoginSuccess?: () => void;
9
10
  }
10
11
  declare const Login: import("svelte").Component<Props, {}, "email" | "password">;
@@ -85,7 +85,8 @@ function jobDone(testJob) {
85
85
  ...flowStateStore.val[mod.id],
86
86
  previewResult: testJob.result,
87
87
  previewSuccess: testJob.success,
88
- previewJobId: testJob.id
88
+ previewJobId: testJob.id,
89
+ previewLogs: testJob['logs']
89
90
  };
90
91
  }
91
92
  stepHistoryLoader?.resetInitial(mod.id);
@@ -6,5 +6,5 @@ import { Badge } from './common';
6
6
  {#snippet text()}
7
7
  Library script (no exported main function)
8
8
  {/snippet}
9
- <Badge small color="yellow" baseClass="border border-indigo-200">Library</Badge>
9
+ <Badge small color="yellow" baseClass="border">Library</Badge>
10
10
  </Popover>
@@ -0,0 +1,56 @@
1
+ <script lang="ts">import { ChevronDown, ChevronRight } from 'lucide-svelte';
2
+ import { flattenPaths, itemHref, kindLabel } from './offboarding-utils';
3
+ let { title, paths, variant = 'default', description, headerExtra } = $props();
4
+ let expanded = $state(false);
5
+ let isWarning = $derived(variant === 'warning');
6
+ </script>
7
+
8
+ <div
9
+ class={isWarning
10
+ ? 'bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-700/40 rounded-md p-3'
11
+ : 'bg-surface-secondary rounded-md p-3'}
12
+ >
13
+ <div class="flex items-center justify-between gap-2">
14
+ <button class="flex items-center gap-1 text-left" onclick={() => (expanded = !expanded)}>
15
+ {#if expanded}<ChevronDown size={14} />{:else}<ChevronRight size={14} />{/if}
16
+ <span
17
+ class={isWarning
18
+ ? 'text-xs font-medium text-yellow-800 dark:text-yellow-100/90'
19
+ : 'text-xs font-medium text-primary'}>{title}</span
20
+ >
21
+ </button>
22
+ {#if headerExtra}
23
+ {@render headerExtra()}
24
+ {/if}
25
+ </div>
26
+ {#if description}
27
+ <p
28
+ class="{isWarning
29
+ ? 'text-yellow-700 dark:text-yellow-100/70'
30
+ : 'text-tertiary'} text-xs mt-1 ml-5"
31
+ >
32
+ {description}
33
+ </p>
34
+ {/if}
35
+ {#if expanded}
36
+ <ul
37
+ class="mt-1.5 ml-5 text-xs {isWarning
38
+ ? 'text-yellow-800 dark:text-yellow-100/90'
39
+ : 'text-secondary'} max-h-40 overflow-y-auto flex flex-col gap-0.5"
40
+ >
41
+ {#each flattenPaths(paths) as { kind, path }}
42
+ <li class="flex gap-1.5"
43
+ ><span
44
+ class="{isWarning
45
+ ? 'text-yellow-600 dark:text-yellow-300'
46
+ : 'text-tertiary'} w-24 shrink-0">{kindLabel(kind)}</span
47
+ >{#if itemHref(kind, path)}<a
48
+ href={itemHref(kind, path)}
49
+ target="_blank"
50
+ class="truncate hover:underline text-blue-500 dark:text-blue-400">{path}</a
51
+ >{:else}<span class="truncate">{path}</span>{/if}</li
52
+ >
53
+ {/each}
54
+ </ul>
55
+ {/if}
56
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { OffboardAffectedPaths } from '../gen';
2
+ import type { Snippet } from 'svelte';
3
+ type Props = {
4
+ title: string;
5
+ paths: OffboardAffectedPaths;
6
+ variant?: 'default' | 'warning';
7
+ description?: string;
8
+ headerExtra?: Snippet;
9
+ };
10
+ declare const OffboardItemsBox: import("svelte").Component<Props, {}, "">;
11
+ type OffboardItemsBox = ReturnType<typeof OffboardItemsBox>;
12
+ export default OffboardItemsBox;
@@ -0,0 +1,47 @@
1
+ <script lang="ts">import Select from './select/Select.svelte';
2
+ import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
3
+ import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
4
+ let { username, targetKind = $bindable(), selectedUser = $bindable(), selectedFolder = $bindable(), selectedOperator = $bindable(), users, folders, showTargetSelector = true, size = 'md' } = $props();
5
+ $effect(() => {
6
+ if (targetKind === 'user' && selectedUser && !selectedOperator) {
7
+ selectedOperator = selectedUser;
8
+ }
9
+ });
10
+ </script>
11
+
12
+ {#if showTargetSelector}
13
+ <div class={size === 'sm' ? 'mb-2' : ''}>
14
+ <span
15
+ class={size === 'sm'
16
+ ? 'text-xs font-medium text-secondary block mb-1'
17
+ : 'text-sm font-medium text-primary block mb-1.5'}>Move u/{username}/* items to</span
18
+ >
19
+ <ToggleButtonGroup
20
+ selected={targetKind}
21
+ onSelected={(value) => {
22
+ targetKind = value
23
+ }}
24
+ class={size === 'sm' ? 'mb-1.5' : 'mb-2'}
25
+ >
26
+ {#snippet children({ item })}
27
+ <ToggleButton value="user" label="User" small {item} />
28
+ <ToggleButton value="folder" label="Folder" small {item} />
29
+ {/snippet}
30
+ </ToggleButtonGroup>
31
+ {#if targetKind === 'user'}
32
+ <Select items={users} bind:value={selectedUser} placeholder="Select a user..." {size} />
33
+ {:else}
34
+ <Select items={folders} bind:value={selectedFolder} placeholder="Select a folder..." {size} />
35
+ {/if}
36
+ </div>
37
+ {/if}
38
+
39
+ <div>
40
+ <span
41
+ class={size === 'sm'
42
+ ? 'text-xs font-medium text-secondary block mb-0.5'
43
+ : 'text-sm font-medium text-primary block mb-1.5'}
44
+ >Update triggers/runnables permissions to</span
45
+ >
46
+ <Select items={users} bind:value={selectedOperator} placeholder="Select a user..." {size} />
47
+ </div>
@@ -0,0 +1,20 @@
1
+ type Props = {
2
+ username: string;
3
+ targetKind: 'user' | 'folder';
4
+ selectedUser: string | undefined;
5
+ selectedFolder: string | undefined;
6
+ selectedOperator: string | undefined;
7
+ users: Array<{
8
+ label: string;
9
+ value: string;
10
+ }>;
11
+ folders: Array<{
12
+ label: string;
13
+ value: string;
14
+ }>;
15
+ showTargetSelector?: boolean;
16
+ size?: 'sm' | 'md';
17
+ };
18
+ declare const OffboardReassignControls: import("svelte").Component<Props, {}, "targetKind" | "selectedUser" | "selectedFolder" | "selectedOperator">;
19
+ type OffboardReassignControls = ReturnType<typeof OffboardReassignControls>;
20
+ export default OffboardReassignControls;
@@ -0,0 +1,110 @@
1
+ <script lang="ts">import { Alert, Button } from './common';
2
+ import { ChevronDown, ChevronRight, Download } from 'lucide-svelte';
3
+ import OffboardItemsBox from './OffboardItemsBox.svelte';
4
+ import OffboardReassignControls from './OffboardReassignControls.svelte';
5
+ import { countPaths, pl, downloadCsv, flattenPaths } from './offboarding-utils';
6
+ let { preview, username, deleteUser = true, targetKind = $bindable(), selectedUser = $bindable(), selectedFolder = $bindable(), selectedOperator = $bindable(), users, folders, size = 'md', csvFilename = `offboard-${username}.csv`, instanceLevel = false } = $props();
7
+ let ownedCount = $derived(countPaths(preview.owned));
8
+ let onBehalfCount = $derived(countPaths(preview.executing_on_behalf));
9
+ let referencingCount = $derived(countPaths(preview.referencing));
10
+ function downloadAffectedCsv() {
11
+ if (!preview.referencing)
12
+ return;
13
+ const rows = [['type', 'path']];
14
+ for (const { kind, path } of flattenPaths(preview.referencing)) {
15
+ rows.push([kind, path]);
16
+ }
17
+ downloadCsv(rows, csvFilename);
18
+ }
19
+ let tokensExpanded = $state(false);
20
+ </script>
21
+
22
+ <div class="flex flex-col gap-2">
23
+ {#if ownedCount > 0}
24
+ <OffboardItemsBox title="u/{username}/* items ({ownedCount})" paths={preview.owned} />
25
+ {/if}
26
+ {#if onBehalfCount > 0}
27
+ <OffboardItemsBox
28
+ title="Permissioned as u/{username} ({onBehalfCount})"
29
+ paths={preview.executing_on_behalf}
30
+ />
31
+ {/if}
32
+ {#if deleteUser && (!instanceLevel || (preview.tokens?.length ?? 0) > 0)}
33
+ <div
34
+ class="bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-700/40 rounded-md p-3"
35
+ >
36
+ {#if (preview.tokens?.length ?? 0) > 0}
37
+ <button
38
+ class="flex items-center gap-1 w-full text-left"
39
+ onclick={() => (tokensExpanded = !tokensExpanded)}
40
+ >
41
+ {#if tokensExpanded}<ChevronDown size={14} />{:else}<ChevronRight size={14} />{/if}
42
+ <span class="text-xs font-medium text-yellow-800 dark:text-yellow-100/90"
43
+ >Tokens ({preview.tokens?.length})</span
44
+ >
45
+ </button>
46
+ <p class="text-xs text-yellow-700 dark:text-yellow-100/70 mt-1 ml-5">
47
+ All workspace tokens for this user will be deleted. This may break webhooks and HTTP
48
+ triggers using these tokens.
49
+ </p>
50
+ {:else}
51
+ <p class="text-xs font-medium text-yellow-800 dark:text-yellow-100/90">Tokens</p>
52
+ <p class="text-xs text-yellow-700 dark:text-yellow-100/70 mt-1">
53
+ All workspace tokens for this user will be deleted. This may break webhooks and HTTP
54
+ triggers using these tokens.
55
+ </p>
56
+ {/if}
57
+ {#if tokensExpanded && (preview.tokens?.length ?? 0) > 0}
58
+ <div
59
+ class="flex flex-col gap-0.5 text-xs text-yellow-800 dark:text-yellow-100/90 mt-1.5 ml-5"
60
+ >
61
+ {#each preview.tokens ?? [] as token}
62
+ <span>{token.label || '(no label)'}: {token.scopes?.join(', ') || '(no scopes)'}</span>
63
+ {/each}
64
+ </div>
65
+ {/if}
66
+ </div>
67
+ {/if}
68
+ {#if referencingCount > 0}
69
+ <OffboardItemsBox
70
+ title="Referencing items ({referencingCount})"
71
+ paths={preview.referencing}
72
+ variant="warning"
73
+ description="These items reference u/{username}/* paths and may break after reassignment. Check them and update manually."
74
+ >
75
+ {#snippet headerExtra()}
76
+ <Button
77
+ variant="subtle"
78
+ size="xs2"
79
+ startIcon={{ icon: Download }}
80
+ onclick={downloadAffectedCsv}>CSV</Button
81
+ >
82
+ {/snippet}
83
+ </OffboardItemsBox>
84
+ {/if}
85
+ </div>
86
+
87
+ {#if preview.http_triggers > 0 || preview.email_triggers > 0}
88
+ <Alert type="warning" title="Webhook and email trigger URLs will change">
89
+ <p class="text-xs">
90
+ {#if preview.http_triggers > 0}{pl(preview.http_triggers, 'HTTP trigger')} will have new webhook
91
+ URLs.
92
+ {/if}
93
+ {#if preview.email_triggers > 0}{pl(preview.email_triggers, 'email trigger')} will have new addresses.
94
+ {/if}
95
+ Update any external integrations that reference these endpoints.
96
+ </p>
97
+ </Alert>
98
+ {/if}
99
+
100
+ <OffboardReassignControls
101
+ {username}
102
+ bind:targetKind
103
+ bind:selectedUser
104
+ bind:selectedFolder
105
+ bind:selectedOperator
106
+ {users}
107
+ {folders}
108
+ showTargetSelector={ownedCount > 0 || onBehalfCount > 0}
109
+ {size}
110
+ />
@@ -0,0 +1,24 @@
1
+ import type { OffboardPreview } from '../gen/types.gen';
2
+ type Props = {
3
+ preview: OffboardPreview;
4
+ username: string;
5
+ deleteUser?: boolean;
6
+ targetKind: 'user' | 'folder';
7
+ selectedUser: string | undefined;
8
+ selectedFolder: string | undefined;
9
+ selectedOperator: string | undefined;
10
+ users: Array<{
11
+ label: string;
12
+ value: string;
13
+ }>;
14
+ folders: Array<{
15
+ label: string;
16
+ value: string;
17
+ }>;
18
+ size?: 'sm' | 'md';
19
+ csvFilename?: string;
20
+ instanceLevel?: boolean;
21
+ };
22
+ declare const OffboardWorkspaceSection: import("svelte").Component<Props, {}, "targetKind" | "selectedUser" | "selectedFolder" | "selectedOperator">;
23
+ type OffboardWorkspaceSection = ReturnType<typeof OffboardWorkspaceSection>;
24
+ export default OffboardWorkspaceSection;
@@ -19,7 +19,7 @@ import Modal from './common/modal/Modal.svelte';
19
19
  import { userStore } from '../stores';
20
20
  import { UserService } from '../gen';
21
21
  import TextInput from './text_input/TextInput.svelte';
22
- let { targetWorkspace, targetValue, selected, onSelect, kind, canPreserve, customValue, isDeployment = true } = $props();
22
+ let { targetWorkspace, targetValue, selected, onSelect, kind, canPreserve, customValue, isDeployment = true, folderDefault = undefined } = $props();
23
23
  const isTrigger = $derived(kind === 'trigger');
24
24
  let label = $derived(isTrigger
25
25
  ? 'Set the user this will be permissioned as:'
@@ -62,12 +62,22 @@ let filteredUsers = $derived(searchQuery
62
62
  (u.name?.toLowerCase()?.includes(q) ?? false));
63
63
  })
64
64
  : activeUsers);
65
- // Preselect "target" when available and user has permission to preserve
65
+ // Preselect "target" when available and user has permission to preserve.
66
+ // When no target is set but a folder default is, preselect that as a custom value.
67
+ // We track `users.length` so the effect re-runs once the async user list loads.
66
68
  $effect(() => {
67
- if (selected === undefined && targetValue && canPreserve) {
69
+ if (selected !== undefined || !canPreserve)
70
+ return;
71
+ if (targetValue) {
68
72
  onSelect('target');
69
73
  }
74
+ else if (folderDefault && users.length > 0) {
75
+ const username = folderDefault.startsWith('u/') ? folderDefault.slice(2) : folderDefault;
76
+ const email = users.find((u) => u.username === username)?.email ?? folderDefault;
77
+ onSelect('custom', { email, permissionedAs: folderDefault });
78
+ }
70
79
  });
80
+ const isFolderDefaultSelected = $derived(selected === 'custom' && folderDefault !== undefined && customValue === folderDefault);
71
81
  function openModal() {
72
82
  loadUsers();
73
83
  searchQuery = '';
@@ -95,6 +105,14 @@ let selectedDisplayName = $derived.by(() => {
95
105
  {#if selectedDisplayName}
96
106
  <span class="text-xs truncate max-w-24">{selectedDisplayName}</span>
97
107
  {/if}
108
+ {#if isFolderDefaultSelected}
109
+ <span
110
+ class="text-[10px] px-1 py-0.5 rounded bg-blue-50 dark:bg-blue-950/50 text-blue-700 dark:text-blue-300 border border-blue-200 dark:border-blue-900"
111
+ title="From this folder's default_permissioned_as rule"
112
+ >
113
+ folder default
114
+ </span>
115
+ {/if}
98
116
  </span>
99
117
  {/snippet}
100
118
  {#snippet content({ close: closePopover })}
@@ -25,6 +25,13 @@ interface Props {
25
25
  customValue?: string | undefined;
26
26
  /** When false, labels say "current" instead of "target" and modal text refers to "this workspace" */
27
27
  isDeployment?: boolean;
28
+ /**
29
+ * Folder default permissioned_as for this item path — resolved by the parent via
30
+ * `useFolderDefaultPermissionedAs`. When set and no explicit choice has been made,
31
+ * the selector preselects `'custom'` with this value and shows a "folder default"
32
+ * badge so the user sees where the value came from.
33
+ */
34
+ folderDefault?: string | undefined;
28
35
  }
29
36
  declare const OnBehalfOfSelector: import("svelte").Component<Props, {}, "">;
30
37
  type OnBehalfOfSelector = ReturnType<typeof OnBehalfOfSelector>;
@@ -4,7 +4,7 @@ const lastMetaUsed = writable(undefined);
4
4
 
5
5
  <script lang="ts">import { pathToMeta } from '../common';
6
6
  import { localeConcatAnd, pluralize } from '../utils';
7
- import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService, WebsocketTriggerService, KafkaTriggerService, PostgresTriggerService, NatsTriggerService, MqttTriggerService, SqsTriggerService, GcpTriggerService, EmailTriggerService } from '../gen';
7
+ import { AppService, FlowService, FolderService, ResourceService, ScheduleService, ScriptService, HttpTriggerService, VariableService, WebsocketTriggerService, KafkaTriggerService, PostgresTriggerService, NatsTriggerService, MqttTriggerService, SqsTriggerService, GcpTriggerService, AzureTriggerService, EmailTriggerService } from '../gen';
8
8
  import { superadmin, userStore, workspaceStore } from '../stores';
9
9
  import { createEventDispatcher, getContext, untrack } from 'svelte';
10
10
  import { writable } from 'svelte/store';
@@ -226,6 +226,12 @@ async function pathExists(path, kind) {
226
226
  path: path
227
227
  });
228
228
  }
229
+ else if (kind === 'azure_trigger') {
230
+ return await AzureTriggerService.existsAzureTrigger({
231
+ workspace: $workspaceStore,
232
+ path: path
233
+ });
234
+ }
229
235
  else if (kind === 'email_trigger') {
230
236
  return await EmailTriggerService.existsEmailTrigger({
231
237
  workspace: $workspaceStore,
@@ -1,4 +1,4 @@
1
- type PathKind = 'resource' | 'script' | 'variable' | 'flow' | 'schedule' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger' | 'kafka_trigger' | 'postgres_trigger' | 'nats_trigger' | 'mqtt_trigger' | 'sqs_trigger' | 'gcp_trigger' | 'email_trigger';
1
+ type PathKind = 'resource' | 'script' | 'variable' | 'flow' | 'schedule' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger' | 'kafka_trigger' | 'postgres_trigger' | 'nats_trigger' | 'mqtt_trigger' | 'sqs_trigger' | 'gcp_trigger' | 'azure_trigger' | 'email_trigger';
2
2
  interface Props {
3
3
  fullNamePlaceholder?: string | undefined;
4
4
  namePlaceholder?: string;