windmill-components 1.623.1 → 1.623.2

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 (480) hide show
  1. package/package/assets/tokens/tokens.json +11 -1
  2. package/package/ata/apis.js +78 -5
  3. package/package/cancelable-promise-utils.js +4 -2
  4. package/package/components/AddUser.svelte +1 -1
  5. package/package/components/ApiConnectForm.svelte +6 -0
  6. package/package/components/AppConnectDrawer.svelte +1 -0
  7. package/package/components/AppConnectInner.svelte +1 -0
  8. package/package/components/AuthSettings.svelte +3 -1
  9. package/package/components/BedrockCredentialsCheck.svelte +241 -0
  10. package/package/components/BedrockCredentialsCheck.svelte.d.ts +3 -0
  11. package/package/components/CenteredModal.svelte +32 -24
  12. package/package/components/CenteredModal.svelte.d.ts +7 -27
  13. package/package/components/CenteredPage.svelte +6 -2
  14. package/package/components/CenteredPage.svelte.d.ts +3 -0
  15. package/package/components/CompareWorkspaces.svelte +74 -16
  16. package/package/components/ConcurrentJobsChart.svelte +3 -2
  17. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  18. package/package/components/CustomPopover.svelte +20 -23
  19. package/package/components/CustomPopover.svelte.d.ts +14 -39
  20. package/package/components/DBManager.svelte +134 -42
  21. package/package/components/DBManager.svelte.d.ts +13 -2
  22. package/package/components/DBManagerContent.svelte +25 -63
  23. package/package/components/DBManagerContent.svelte.d.ts +38 -4
  24. package/package/components/DBManagerDrawer.svelte +7 -9
  25. package/package/components/DBTable.svelte +1 -1
  26. package/package/components/DBTable.svelte.d.ts +3 -1
  27. package/package/components/DBTableEditor.svelte +234 -178
  28. package/package/components/DBTableEditor.svelte.d.ts +22 -3
  29. package/package/components/DateInput.svelte +29 -35
  30. package/package/components/DateInput.svelte.d.ts +10 -11
  31. package/package/components/DedicatedWorkersSelector.svelte +569 -0
  32. package/package/components/DedicatedWorkersSelector.svelte.d.ts +8 -0
  33. package/package/components/DeployWorkspace.svelte +106 -29
  34. package/package/components/Description.svelte +3 -2
  35. package/package/components/Dev.svelte +36 -2
  36. package/package/components/DiffDrawer.svelte +8 -29
  37. package/package/components/DiffEditor.svelte +32 -2
  38. package/package/components/DisplayResult.svelte +32 -24
  39. package/package/components/DropdownV2.svelte +2 -1
  40. package/package/components/DropdownV2.svelte.d.ts +1 -0
  41. package/package/components/Editor.svelte +71 -26
  42. package/package/components/Editor.svelte.d.ts +3 -0
  43. package/package/components/EditorBar.svelte +1 -1
  44. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  45. package/package/components/FlowBuilder.svelte +17 -11
  46. package/package/components/FlowDiffViewer.svelte +37 -0
  47. package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
  48. package/package/components/FlowGraphViewer.svelte +5 -2
  49. package/package/components/FlowGraphViewer.svelte.d.ts +2 -0
  50. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  51. package/package/components/FlowPreviewContent.svelte +3 -2
  52. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  53. package/package/components/FlowPreviewResult.svelte +0 -4
  54. package/package/components/FlowRestartButton.svelte +2 -3
  55. package/package/components/FlowRestartButton.svelte.d.ts +3 -0
  56. package/package/components/FlowStatusViewerInner.svelte +55 -35
  57. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  58. package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
  59. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
  60. package/package/components/FlowViewer.svelte +103 -2
  61. package/package/components/FlowViewer.svelte.d.ts +9 -3
  62. package/package/components/ForkWorkspaceBanner.svelte +32 -13
  63. package/package/components/GraphqlSchemaViewer.svelte +8 -1
  64. package/package/components/HistoricInputs.svelte +25 -27
  65. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  66. package/package/components/InfiniteList.svelte +27 -20
  67. package/package/components/InfiniteList.svelte.d.ts +2 -0
  68. package/package/components/InstanceSetting.svelte +38 -0
  69. package/package/components/InviteUser.svelte +16 -42
  70. package/package/components/InviteUser.svelte.d.ts +4 -18
  71. package/package/components/JobLoader.svelte.d.ts +1 -1
  72. package/package/components/JobOtelTraces.svelte +287 -0
  73. package/package/components/JobOtelTraces.svelte.d.ts +6 -0
  74. package/package/components/JsonInputs.svelte +6 -8
  75. package/package/components/JsonInputs.svelte.d.ts +7 -8
  76. package/package/components/LogViewer.svelte +91 -33
  77. package/package/components/Login.svelte +27 -0
  78. package/package/components/ManualPopover.svelte +5 -6
  79. package/package/components/ManualPopover.svelte.d.ts +9 -35
  80. package/package/components/MemoryFootprintViewer.svelte +2 -6
  81. package/package/components/ModulePreview.svelte +23 -21
  82. package/package/components/ModulePreview.svelte.d.ts +1 -0
  83. package/package/components/NextcloudSetting.svelte +1 -1
  84. package/package/components/OAuthSetting.svelte +1 -0
  85. package/package/components/Path.svelte +2 -2
  86. package/package/components/Path.svelte.d.ts +1 -1
  87. package/package/components/PocketIdSetting.svelte +82 -0
  88. package/package/components/PocketIdSetting.svelte.d.ts +6 -0
  89. package/package/components/ResourceEditor.svelte +4 -4
  90. package/package/components/ResourcePicker.svelte +4 -0
  91. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  92. package/package/components/RunButton.svelte +5 -15
  93. package/package/components/RunButton.svelte.d.ts +7 -19
  94. package/package/components/RunChart.svelte +8 -4
  95. package/package/components/RunChart.svelte.d.ts +2 -2
  96. package/package/components/RunForm.svelte +9 -17
  97. package/package/components/RunForm.svelte.d.ts +0 -1
  98. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  99. package/package/components/RunsPage.svelte +202 -537
  100. package/package/components/RunsPage.svelte.d.ts +5 -5
  101. package/package/components/S3FilePicker.svelte +7 -11
  102. package/package/components/S3FilePickerInner.svelte +2 -3
  103. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  104. package/package/components/SavedInputsPicker.svelte +1 -1
  105. package/package/components/SavedInputsV2.svelte +35 -36
  106. package/package/components/SchemaForm.svelte +26 -19
  107. package/package/components/SchemaFormWithArgPicker.svelte +4 -3
  108. package/package/components/ScriptBuilder.svelte +1 -1
  109. package/package/components/ScriptEditor.svelte +575 -101
  110. package/package/components/Section.svelte +4 -2
  111. package/package/components/ServiceLogsInner.svelte +4 -4
  112. package/package/components/ShareModal.svelte.d.ts +1 -1
  113. package/package/components/SimpleEditor.svelte +46 -2
  114. package/package/components/Star.svelte +8 -12
  115. package/package/components/Star.svelte.d.ts +6 -19
  116. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  117. package/package/components/SuperadminSettingsInner.svelte +1 -1
  118. package/package/components/TemplateEditor.svelte +54 -29
  119. package/package/components/TemplateEditor.svelte.d.ts +13 -102
  120. package/package/components/TimeAgo.svelte +49 -7
  121. package/package/components/TimeAgo.svelte.d.ts +1 -0
  122. package/package/components/Toast.svelte +5 -1
  123. package/package/components/UserSettings.svelte +1 -1
  124. package/package/components/WorkerGroup.svelte +35 -20
  125. package/package/components/WorkerGroup.svelte.d.ts +1 -0
  126. package/package/components/WorkerTagPicker.svelte +1 -1
  127. package/package/components/WorkerTagSelect.svelte +5 -2
  128. package/package/components/WorkspaceTutorials.svelte +5 -0
  129. package/package/components/apps/components/buttons/AppButton.svelte +21 -6
  130. package/package/components/apps/components/buttons/AppForm.svelte +2 -1
  131. package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
  132. package/package/components/apps/components/display/InsertRowDrawerButton.svelte +1 -1
  133. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +2 -5
  134. package/package/components/apps/components/display/dbtable/dbFeatures.d.ts +9 -0
  135. package/package/components/apps/components/display/dbtable/dbFeatures.js +32 -0
  136. package/package/components/apps/components/display/dbtable/metadata.d.ts +3 -3
  137. package/package/components/apps/components/display/dbtable/metadata.js +177 -148
  138. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
  139. package/package/components/apps/components/display/dbtable/queries/alterTable.js +322 -0
  140. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
  141. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
  142. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
  143. package/package/components/apps/components/display/dbtable/queries/createTable.js +13 -25
  144. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
  145. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
  146. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +45 -0
  147. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +401 -0
  148. package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
  149. package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
  150. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
  151. package/package/components/apps/components/display/dbtable/tableEditor.js +67 -0
  152. package/package/components/apps/components/display/dbtable/utils.d.ts +2 -0
  153. package/package/components/apps/components/display/dbtable/utils.js +61 -36
  154. package/package/components/apps/components/display/table/AppAggridTable.svelte +8 -0
  155. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -9
  156. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -1
  157. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  158. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  159. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  160. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
  161. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  162. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  163. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +2 -4
  164. package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
  165. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
  166. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  167. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  168. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  169. package/package/components/apps/editor/PublicApp.svelte +49 -30
  170. package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
  171. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
  172. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  173. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  174. package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
  175. package/package/components/apps/inputType.d.ts +6 -1
  176. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  177. package/package/components/assets/AssetsUsageDrawer.svelte +98 -27
  178. package/package/components/assets/AssetsUsageDrawer.svelte.d.ts +5 -6
  179. package/package/components/assets/lib.d.ts +3 -2
  180. package/package/components/assets/lib.js +3 -1
  181. package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
  182. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  183. package/package/components/common/CloseButton.svelte +2 -1
  184. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  185. package/package/components/common/badge/CountBadge.svelte +4 -3
  186. package/package/components/common/badge/CountBadge.svelte.d.ts +1 -0
  187. package/package/components/common/button/Button.svelte +1 -1
  188. package/package/components/common/button/model.js +1 -1
  189. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  190. package/package/components/common/confirmationModal/ConfirmationModal.svelte +2 -1
  191. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
  192. package/package/components/common/drawer/Drawer.svelte +4 -1
  193. package/package/components/common/drawer/DrawerContent.svelte +6 -3
  194. package/package/components/common/drawer/DrawerContent.svelte.d.ts +1 -0
  195. package/package/components/common/languageIcons/TypeScript.svelte +5 -3
  196. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
  197. package/package/components/common/modal/Modal.svelte +3 -3
  198. package/package/components/common/modal/Modal2.svelte +1 -0
  199. package/package/components/common/table/AppRow.svelte +4 -1
  200. package/package/components/common/table/FlowRow.svelte +4 -1
  201. package/package/components/common/table/RawAppRow.svelte +4 -1
  202. package/package/components/common/table/Row.svelte +11 -21
  203. package/package/components/common/table/Row.svelte.d.ts +4 -20
  204. package/package/components/common/table/RowIcon.svelte +6 -2
  205. package/package/components/common/table/RowIcon.svelte.d.ts +1 -1
  206. package/package/components/common/table/ScriptRow.svelte +4 -1
  207. package/package/components/copilot/autocomplete/Autocompletor.d.ts +1 -1
  208. package/package/components/copilot/autocomplete/Autocompletor.js +7 -6
  209. package/package/components/copilot/autocomplete/request.js +13 -9
  210. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  211. package/package/components/copilot/chat/AIButtonStyle.js +2 -1
  212. package/package/components/copilot/chat/AIChat.svelte +3 -1
  213. package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
  214. package/package/components/copilot/chat/AIChatInput.svelte +275 -0
  215. package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
  216. package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
  217. package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
  218. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
  219. package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
  220. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
  221. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  222. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
  223. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
  224. package/package/components/copilot/chat/app/core.d.ts +56 -15
  225. package/package/components/copilot/chat/app/core.js +141 -22
  226. package/package/components/copilot/chat/context.d.ts +59 -2
  227. package/package/components/copilot/chat/context.js +6 -2
  228. package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
  229. package/package/components/copilot/chat/flow/core.d.ts +3 -1
  230. package/package/components/copilot/chat/flow/core.js +29 -2
  231. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  232. package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
  233. package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
  234. package/package/components/copilot/chat/script/core.d.ts +4 -1
  235. package/package/components/copilot/chat/script/core.js +43 -6
  236. package/package/components/copilot/chat/shared.d.ts +10 -0
  237. package/package/components/copilot/chat/shared.js +24 -0
  238. package/package/components/copilot/lib.d.ts +1 -1
  239. package/package/components/copilot/lib.js +2 -9
  240. package/package/components/copilot/utils.d.ts +5 -0
  241. package/package/components/copilot/utils.js +8 -0
  242. package/package/components/custom_ui.d.ts +2 -0
  243. package/package/components/dbOps.d.ts +18 -4
  244. package/package/components/dbOps.js +25 -3
  245. package/package/components/debug/DebugConsole.svelte +277 -0
  246. package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
  247. package/package/components/debug/DebugPanel.svelte +97 -0
  248. package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
  249. package/package/components/debug/DebugToolbar.svelte +148 -0
  250. package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
  251. package/package/components/debug/DebugVariableViewer.svelte +115 -0
  252. package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
  253. package/package/components/debug/MonacoDebugger.svelte +384 -0
  254. package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
  255. package/package/components/debug/dapClient.d.ts +192 -0
  256. package/package/components/debug/dapClient.js +426 -0
  257. package/package/components/debug/debugUtils.d.ts +30 -0
  258. package/package/components/debug/debugUtils.js +131 -0
  259. package/package/components/debug/index.d.ts +75 -0
  260. package/package/components/debug/index.js +82 -0
  261. package/package/components/details/DetailPageHeader.svelte +21 -7
  262. package/package/components/details/DetailPageHeader.svelte.d.ts +2 -1
  263. package/package/components/details/DetailPageLayout.svelte +10 -1
  264. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  265. package/package/components/flows/CreateActionsApp.svelte +6 -4
  266. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  267. package/package/components/flows/FlowHistoryInner.svelte +15 -4
  268. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  269. package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
  270. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
  271. package/package/components/flows/content/FlowInput.svelte +211 -37
  272. package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
  273. package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
  274. package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
  275. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  276. package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
  277. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
  278. package/package/components/flows/content/McpToolEditor.svelte +50 -37
  279. package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
  280. package/package/components/flows/conversations/FlowChat.svelte +16 -2
  281. package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
  282. package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
  283. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
  284. package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
  285. package/package/components/flows/conversations/FlowConversationsSidebar.svelte +79 -77
  286. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  287. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
  288. package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
  289. package/package/components/flows/types.d.ts +2 -0
  290. package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
  291. package/package/components/graph/FlowGraphV2.svelte +7 -1
  292. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +41 -24
  293. package/package/components/home/ItemsList.svelte +7 -6
  294. package/package/components/home/TutorialBanner.svelte +34 -18
  295. package/package/components/home/treeViewUtils.js +1 -1
  296. package/package/components/icons/CssIcon.svelte +20 -0
  297. package/package/components/icons/CssIcon.svelte.d.ts +7 -25
  298. package/package/components/icons/HtmlIcon.svelte +20 -0
  299. package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
  300. package/package/components/icons/JavaScriptIcon.svelte +10 -2
  301. package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
  302. package/package/components/icons/JsonIcon.svelte +8 -2
  303. package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
  304. package/package/components/icons/LessIcon.svelte +16 -0
  305. package/package/components/icons/LessIcon.svelte.d.ts +8 -0
  306. package/package/components/icons/MarkdownIcon.svelte +20 -0
  307. package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
  308. package/package/components/icons/NextcloudIcon.svelte +3 -2
  309. package/package/components/icons/NextcloudIcon.svelte.d.ts +2 -0
  310. package/package/components/icons/PocketIdIcon.svelte +9 -0
  311. package/package/components/icons/PocketIdIcon.svelte.d.ts +9 -0
  312. package/package/components/icons/ReactIcon.svelte +10 -2
  313. package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
  314. package/package/components/icons/SassIcon.svelte +28 -0
  315. package/package/components/icons/SassIcon.svelte.d.ts +8 -0
  316. package/package/components/icons/SvelteIcon.svelte +10 -2
  317. package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
  318. package/package/components/icons/VueIcon.svelte +10 -2
  319. package/package/components/icons/VueIcon.svelte.d.ts +1 -0
  320. package/package/components/icons/YamlIcon.svelte +20 -0
  321. package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
  322. package/package/components/icons/index.js +3 -1
  323. package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
  324. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
  325. package/package/components/instanceSettings.d.ts +2 -1
  326. package/package/components/instanceSettings.js +33 -1
  327. package/package/components/jobs/JobPreview.svelte +46 -39
  328. package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
  329. package/package/components/monacoLanguagesOptions.js +16 -15
  330. package/package/components/propertyPicker/PropPicker.svelte +16 -2
  331. package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
  332. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
  333. package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
  334. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
  335. package/package/components/raw_apps/FileTreeNode.svelte +119 -83
  336. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
  337. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -3
  338. package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
  339. package/package/components/raw_apps/RawAppEditor.svelte +218 -68
  340. package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
  341. package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
  342. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
  343. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
  344. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
  345. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
  346. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
  347. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
  348. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
  349. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
  350. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
  351. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
  352. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
  353. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
  354. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  355. package/package/components/raw_apps/RawAppModules.svelte +13 -7
  356. package/package/components/raw_apps/RawAppPreview.svelte +48 -6
  357. package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
  358. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
  359. package/package/components/raw_apps/RunnableRow.svelte +41 -0
  360. package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
  361. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  362. package/package/components/raw_apps/utils.d.ts +1 -1
  363. package/package/components/raw_apps/utils.js +76 -18
  364. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  365. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  366. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
  367. package/package/components/runs/RunsFilter.svelte +75 -63
  368. package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
  369. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  370. package/package/components/runs/RunsTable.svelte +1 -1
  371. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  372. package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
  373. package/package/components/runs/useJobsLoader.svelte.js +507 -0
  374. package/package/components/schema/EditableSchemaWrapper.svelte +2 -2
  375. package/package/components/scriptEditor/LogPanel.svelte +17 -2
  376. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  377. package/package/components/select/MultiSelect.svelte +1 -1
  378. package/package/components/select/SelectDropdown.svelte +17 -5
  379. package/package/components/settings/AIPromptsModal.svelte +88 -0
  380. package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
  381. package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
  382. package/package/components/settings/ChangeWorkspaceId.svelte +16 -11
  383. package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
  384. package/package/components/settings/CreateToken.svelte +4 -4
  385. package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
  386. package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
  387. package/package/components/settings/WorkspaceUserSettings.svelte +537 -411
  388. package/package/components/sidebar/MenuButton.svelte +54 -24
  389. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  390. package/package/components/sidebar/MultiplayerMenu.svelte +4 -4
  391. package/package/components/sidebar/OperatorMenu.svelte +63 -88
  392. package/package/components/sidebar/SidebarContent.svelte +39 -6
  393. package/package/components/sidebar/UserMenu.svelte +3 -3
  394. package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
  395. package/package/components/sqlTypeService.js +4 -3
  396. package/package/components/table/DataTable.svelte +8 -3
  397. package/package/components/table/DataTable.svelte.d.ts +2 -0
  398. package/package/components/text_input/TextInput.svelte +3 -0
  399. package/package/components/text_input/TextInput.svelte.d.ts +2 -0
  400. package/package/components/triggers/AddTriggersButton.svelte +17 -4
  401. package/package/components/triggers/TriggersEditor.svelte +4 -0
  402. package/package/components/triggers/TriggersWrapper.svelte +14 -0
  403. package/package/components/triggers/native/NativeTriggerEditor.svelte +379 -0
  404. package/package/components/triggers/native/NativeTriggerEditor.svelte.d.ts +26 -0
  405. package/package/components/triggers/native/NativeTriggerTable.svelte +155 -0
  406. package/package/components/triggers/native/NativeTriggerTable.svelte.d.ts +16 -0
  407. package/package/components/triggers/native/NativeTriggersPanel.svelte +40 -0
  408. package/package/components/triggers/native/NativeTriggersPanel.svelte.d.ts +15 -0
  409. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte +104 -0
  410. package/package/components/triggers/native/services/nextcloud/NextcloudTriggerForm.svelte.d.ts +18 -0
  411. package/package/components/triggers/native/utils.d.ts +74 -0
  412. package/package/components/triggers/native/utils.js +152 -0
  413. package/package/components/triggers/triggers.svelte.d.ts +2 -1
  414. package/package/components/triggers/triggers.svelte.js +36 -8
  415. package/package/components/triggers/utils.js +18 -6
  416. package/package/components/triggers.d.ts +1 -1
  417. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
  418. package/package/components/tutorials/RunsTutorial.svelte +399 -0
  419. package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
  420. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
  421. package/package/components/tutorials/utils.d.ts +16 -0
  422. package/package/components/tutorials/utils.js +96 -0
  423. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
  424. package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
  425. package/package/components/vscode.js +6 -6
  426. package/package/components/workspace/WorkspaceCard.svelte +184 -0
  427. package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
  428. package/package/components/workspace/WorkspaceIcon.svelte +21 -0
  429. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
  430. package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
  431. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
  432. package/package/components/workspaceSettings/AISettings.svelte +147 -108
  433. package/package/components/workspaceSettings/CreateWorkspace.svelte +26 -12
  434. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +1 -0
  435. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +3 -1
  436. package/package/components/workspaceSettings/DataTableSettings.svelte +2 -1
  437. package/package/components/workspaceSettings/DucklakeSettings.svelte +54 -26
  438. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
  439. package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
  440. package/package/components/workspaceSettings/OAuthClientConfig.svelte +180 -0
  441. package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +14 -0
  442. package/package/components/workspaceSettings/StorageSettings.svelte +285 -241
  443. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  444. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +302 -0
  445. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte.d.ts +3 -0
  446. package/package/consts.js +4 -3
  447. package/package/gen/core/OpenAPI.js +1 -1
  448. package/package/gen/schemas.gen.d.ts +517 -4
  449. package/package/gen/schemas.gen.js +523 -4
  450. package/package/gen/services.gen.d.ts +359 -22
  451. package/package/gen/services.gen.js +702 -44
  452. package/package/gen/types.gen.d.ts +1501 -121
  453. package/package/hub.js +2 -2
  454. package/package/hubPaths.json +3 -2
  455. package/package/infer.js +2 -0
  456. package/package/logout.d.ts +0 -2
  457. package/package/logout.js +2 -23
  458. package/package/logoutKit.d.ts +2 -0
  459. package/package/logoutKit.js +26 -0
  460. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  461. package/package/navigation.d.ts +1 -1
  462. package/package/rawAppWmillTs.d.ts +11 -0
  463. package/package/rawAppWmillTs.js +38 -1
  464. package/package/refreshUser.d.ts +5 -1
  465. package/package/refreshUser.js +20 -30
  466. package/package/storeUtils.js +2 -0
  467. package/package/svelte5Utils.svelte.d.ts +68 -1
  468. package/package/svelte5Utils.svelte.js +193 -2
  469. package/package/svelte5UtilsKit.svelte.d.ts +3 -0
  470. package/package/svelte5UtilsKit.svelte.js +30 -0
  471. package/package/tutorialUtils.js +0 -4
  472. package/package/tutorials/config.js +31 -3
  473. package/package/tutorials/roleUtils.d.ts +1 -1
  474. package/package/tutorials/roleUtils.js +6 -2
  475. package/package/utils.js +162 -1
  476. package/package.json +1 -1
  477. package/package/components/SavedInputs.svelte +0 -416
  478. package/package/components/runs/JobsLoader.svelte +0 -468
  479. package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
  480. package/package/components/schema/SchemaPicker.svelte +0 -92
@@ -55,6 +55,10 @@ async function fetchSummary(kind, path, workspace) {
55
55
  const app = await AppService.getAppByPath({ workspace, path });
56
56
  return app.summary;
57
57
  }
58
+ else if (kind === 'folder') {
59
+ const folder = await FolderService.getFolder({ workspace, name: path.slice(2) });
60
+ return folder.summary;
61
+ }
58
62
  }
59
63
  catch (error) {
60
64
  console.error(`Failed to fetch summary for ${kind}:${path}`, error);
@@ -63,7 +67,7 @@ async function fetchSummary(kind, path, workspace) {
63
67
  }
64
68
  async function fetchSummaries(diffs) {
65
69
  // Only fetch summaries for scripts, flows, and apps
66
- const itemsToFetch = diffs.filter((diff) => ['script', 'flow', 'app'].includes(diff.kind));
70
+ const itemsToFetch = diffs.filter((diff) => ['script', 'flow', 'app', 'folder'].includes(diff.kind));
67
71
  for (const diff of itemsToFetch) {
68
72
  const key = getItemKey(diff);
69
73
  // Skip if already cached or loading
@@ -367,21 +371,70 @@ async function deploy(kind, path, workspaceToDeployTo, workspaceFrom) {
367
371
  path: path
368
372
  });
369
373
  if (alreadyExists) {
370
- await AppService.updateApp({
371
- workspace: workspaceToDeployTo,
372
- path: path,
373
- requestBody: {
374
- ...app
375
- }
376
- });
374
+ if (app.raw_app) {
375
+ const secret = await AppService.getPublicSecretOfLatestVersionOfApp({
376
+ workspace: workspaceFrom,
377
+ path: app.path
378
+ });
379
+ const js = await AppService.getRawAppData({
380
+ secretWithExtension: `${secret}.js`,
381
+ workspace: workspaceFrom
382
+ });
383
+ const css = await AppService.getRawAppData({
384
+ secretWithExtension: `${secret}.css`,
385
+ workspace: workspaceFrom
386
+ });
387
+ await AppService.updateAppRaw({
388
+ workspace: workspaceToDeployTo,
389
+ path: path,
390
+ formData: {
391
+ app,
392
+ css,
393
+ js
394
+ }
395
+ });
396
+ }
397
+ else {
398
+ await AppService.updateApp({
399
+ workspace: workspaceToDeployTo,
400
+ path: path,
401
+ requestBody: {
402
+ ...app
403
+ }
404
+ });
405
+ }
377
406
  }
378
407
  else {
379
- await AppService.createApp({
380
- workspace: workspaceToDeployTo,
381
- requestBody: {
382
- ...app
383
- }
384
- });
408
+ if (app.raw_app) {
409
+ const secret = await AppService.getPublicSecretOfLatestVersionOfApp({
410
+ workspace: workspaceFrom,
411
+ path: app.path
412
+ });
413
+ const js = await AppService.getRawAppData({
414
+ secretWithExtension: `${secret}.js`,
415
+ workspace: workspaceFrom
416
+ });
417
+ const css = await AppService.getRawAppData({
418
+ secretWithExtension: `${secret}.css`,
419
+ workspace: workspaceFrom
420
+ });
421
+ await AppService.createAppRaw({
422
+ workspace: workspaceToDeployTo,
423
+ formData: {
424
+ app,
425
+ css,
426
+ js
427
+ }
428
+ });
429
+ }
430
+ else {
431
+ await AppService.createApp({
432
+ workspace: workspaceToDeployTo,
433
+ requestBody: {
434
+ ...app
435
+ }
436
+ });
437
+ }
385
438
  }
386
439
  }
387
440
  else if (kind == 'variable') {
@@ -746,7 +799,8 @@ $effect(() => {
746
799
  This fork is ahead of its parent
747
800
  {/if}
748
801
  and some of the changes are not visible by you. Only a user with access to the whole context
749
- may deploy or update this fork. You can share the link to this page to someone with proper permissions to get it deployed.
802
+ may deploy or update this fork. You can share the link to this page to someone with proper permissions
803
+ to get it deployed.
750
804
  </Alert>
751
805
  {/if}
752
806
 
@@ -792,7 +846,11 @@ $effect(() => {
792
846
  disabled={!isSelectable}
793
847
  selected={isSelected && !(deploymentStatus[key]?.status == 'deployed')}
794
848
  onSelect={() => toggleItem(diff)}
795
- path={diff.kind != 'resource' && diff.kind != 'variable' ? diff.path : ''}
849
+ path={diff.kind != 'resource' &&
850
+ diff.kind != 'variable' &&
851
+ diff.kind != 'resource_type'
852
+ ? diff.path
853
+ : ''}
796
854
  marked={undefined}
797
855
  kind={diff.kind}
798
856
  canFavorite={false}
@@ -3,7 +3,7 @@ import zoomPlugin from 'chartjs-plugin-zoom';
3
3
  import { Chart as ChartJS, CategoryScale, Legend, LineElement, LinearScale, PointElement, TimeScale, Title, Tooltip } from 'chart.js';
4
4
  import { getDbClockNow } from '../forLater';
5
5
  import { Line } from './chartjs-wrappers/chartJs';
6
- let { extendedJobs = undefined, maxIsNow = false, minTimeSet = undefined, maxTimeSet = undefined, onZoom } = $props();
6
+ let { extendedJobs = undefined, maxIsNow = false, minTimeSet = null, maxTimeSet = null, onZoom } = $props();
7
7
  function calculateTimeSeries(extendedJobs) {
8
8
  const timeline = new Map();
9
9
  extendedJobs.jobs.forEach((j) => {
@@ -171,7 +171,8 @@ let options = $derived({
171
171
  display: false
172
172
  },
173
173
  min: minMaxTimes.min,
174
- max: minMaxTimes.max
174
+ max: minMaxTimes.max,
175
+ ticks: { maxRotation: 0, minRotation: 0 }
175
176
  },
176
177
  y: {
177
178
  grid: {
@@ -3,8 +3,8 @@ import type { ExtendedJobs } from '../gen';
3
3
  interface Props {
4
4
  extendedJobs?: ExtendedJobs | undefined;
5
5
  maxIsNow?: boolean;
6
- minTimeSet?: string | undefined;
7
- maxTimeSet?: string | undefined;
6
+ minTimeSet?: string | null;
7
+ maxTimeSet?: string | null;
8
8
  onZoom: (zoom: {
9
9
  min: Date;
10
10
  max: Date;
@@ -1,13 +1,8 @@
1
- <script lang="ts">import { createPopperActions } from 'svelte-popperjs';
1
+ <script lang="ts">import { run, createBubbler } from 'svelte/legacy';
2
+ const bubble = createBubbler();
3
+ import { createPopperActions } from 'svelte-popperjs';
2
4
  import Portal from './Portal.svelte';
3
- export let placement = 'bottom-end';
4
- export let notClickable = false;
5
- export let disablePopup = false;
6
- export let disappearTimeout = 100;
7
- export let appearTimeout = 300;
8
- export let style = undefined;
9
- export let noPadding = false;
10
- export let focusEl = undefined;
5
+ let { placement = 'bottom-end', notClickable = false, disablePopup = false, disappearTimeout = 100, appearTimeout = 300, style = undefined, noPadding = false, focusEl = undefined, class: clazz = '', children, overlay } = $props();
11
6
  const [popperRef, popperContent] = createPopperActions({ placement });
12
7
  const popperOptions = {
13
8
  placement,
@@ -22,7 +17,7 @@ const popperOptions = {
22
17
  }
23
18
  ]
24
19
  };
25
- let showTooltip = false;
20
+ let showTooltip = $state(false);
26
21
  let timeout = undefined;
27
22
  let inTimeout = undefined;
28
23
  function open() {
@@ -39,36 +34,38 @@ function close() {
39
34
  inTimeout = undefined;
40
35
  timeout = setTimeout(() => (showTooltip = false), disappearTimeout);
41
36
  }
42
- $: focusEl && focusEl?.focus();
37
+ run(() => {
38
+ focusEl && focusEl?.focus();
39
+ });
43
40
  </script>
44
41
 
45
42
  {#if notClickable}
46
- <!-- svelte-ignore a11y-no-static-element-interactions -->
47
- <span {style} use:popperRef on:mouseenter={open} on:mouseleave={close} class={$$props.class}>
48
- <slot />
43
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
44
+ <span {style} use:popperRef onmouseenter={open} onmouseleave={close} class={clazz}>
45
+ {@render children?.()}
49
46
  </span>
50
47
  {:else}
51
48
  <button
52
49
  {style}
53
50
  use:popperRef
54
- on:mouseenter={open}
55
- on:mouseleave={close}
56
- on:click
57
- class={$$props.class}
51
+ onmouseenter={open}
52
+ onmouseleave={close}
53
+ onclick={bubble('click')}
54
+ class={clazz}
58
55
  >
59
- <slot />
56
+ {@render children?.()}
60
57
  </button>
61
58
  {/if}
62
59
  {#if showTooltip && !disablePopup}
63
60
  <Portal name="custom-popover">
64
- <!-- svelte-ignore a11y-no-static-element-interactions -->
61
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
65
62
  <div
66
63
  use:popperContent={popperOptions}
67
- on:mouseenter={open}
68
- on:mouseleave={close}
64
+ onmouseenter={open}
65
+ onmouseleave={close}
69
66
  class="z-[5001] border rounded-lg shadow-lg {noPadding ? '' : 'p-4'} bg-surface"
70
67
  >
71
- <slot name="overlay" />
68
+ {@render overlay?.()}
72
69
  </div>
73
70
  </Portal>
74
71
  {/if}
@@ -1,42 +1,17 @@
1
1
  import type { PopoverPlacement } from './Popover.model';
2
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
- $$bindings?: Bindings;
5
- } & Exports;
6
- (internal: unknown, props: Props & {
7
- $$events?: Events;
8
- $$slots?: Slots;
9
- }): Exports & {
10
- $set?: any;
11
- $on?: any;
12
- };
13
- z_$$bindings?: Bindings;
14
- }
15
- type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
16
- default: any;
17
- } ? Props extends Record<string, never> ? any : {
18
- children?: any;
19
- } : {});
20
- declare const CustomPopover: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
21
- [x: string]: any;
22
- placement?: PopoverPlacement | undefined;
23
- notClickable?: boolean | undefined;
24
- disablePopup?: boolean | undefined;
25
- disappearTimeout?: number | undefined;
26
- appearTimeout?: number | undefined;
27
- style?: string | undefined | undefined;
28
- noPadding?: boolean | undefined;
2
+ interface Props {
3
+ placement?: PopoverPlacement;
4
+ notClickable?: boolean;
5
+ disablePopup?: boolean;
6
+ disappearTimeout?: number;
7
+ appearTimeout?: number;
8
+ style?: string | undefined;
9
+ noPadding?: boolean;
29
10
  focusEl?: HTMLElement | undefined;
30
- }, {
31
- default: {};
32
- overlay: {};
33
- }>, {
34
- click: PointerEvent;
35
- } & {
36
- [evt: string]: CustomEvent<any>;
37
- }, {
38
- default: {};
39
- overlay: {};
40
- }, {}, string>;
41
- type CustomPopover = InstanceType<typeof CustomPopover>;
11
+ class?: string;
12
+ children?: import('svelte').Snippet;
13
+ overlay?: import('svelte').Snippet;
14
+ }
15
+ declare const CustomPopover: import("svelte").Component<Props, {}, "">;
16
+ type CustomPopover = ReturnType<typeof CustomPopover>;
42
17
  export default CustomPopover;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">import {} from '../stores';
2
- import { ChevronDownIcon, MoreVertical, Plus, Table2, Trash2Icon } from 'lucide-svelte';
2
+ import { ChevronDownIcon, EditIcon, Loader2, Plus, Table2, Trash2Icon } from 'lucide-svelte';
3
3
  import { Pane, Splitpanes } from 'svelte-splitpanes';
4
4
  import { ClearableInput, Drawer, DrawerContent } from './common';
5
5
  import { sendUserToast } from '../toast';
@@ -12,7 +12,10 @@ import DbTableEditor from './DBTableEditor.svelte';
12
12
  import Portal from './Portal.svelte';
13
13
  import Select from './select/Select.svelte';
14
14
  import { safeSelectItems } from './select/utils.svelte';
15
- let { dbType, dbSchema, dbTableOpsFactory, dbSchemaOps, getColDefs, dbSupportsSchemas, refresh, initialSchemaKey, initialTableKey, selectedSchemaKey = $bindable(undefined), selectedTableKey = $bindable(undefined), dbSelector, multiSelectMode = false, selectedTables = $bindable([]), disabledTables = [] } = $props();
15
+ import { dbSupportsTransactionalDdl, diffTableEditorValues } from './apps/components/display/dbtable/queries/alterTable';
16
+ import { resource } from 'runed';
17
+ import { capitalize, onlyAlphaNumAndUnderscore, pluralize } from '../utils';
18
+ let { dbType, dbSchema, dbTableOpsFactory, dbSchemaOps, dbSupportsSchemas, colDefs, refresh, initialSchemaKey, initialTableKey, selectedSchemaKey = $bindable(undefined), selectedTableKey = $bindable(undefined), dbSelector, multiSelectMode = false, selectedTables = $bindable([]), disabledTables = [], features } = $props();
16
19
  // Helper to check if a table is selected in multi-select mode
17
20
  function isTableSelected(schema, table) {
18
21
  return selectedTables.some((t) => t.schema === schema && t.table === table);
@@ -119,15 +122,34 @@ let tableKey = $derived(dbSupportsSchemas && selected.schemaKey
119
122
  ? `${selected.schemaKey}.${selected.tableKey}`
120
123
  : selected.tableKey);
121
124
  let askingForConfirmation = $state();
122
- let dbTableEditorState = $state({ open: false });
125
+ let dbTableEditorState = $state({
126
+ open: false
127
+ });
128
+ let dbTableEditorAlterTableData = resource([() => dbTableEditorState.alterTableKey, () => colDefs], async ([table]) => {
129
+ if (!table)
130
+ return;
131
+ let tableKey2 = dbSupportsSchemas && selected.schemaKey ? `${selected.schemaKey}.${table}` : table;
132
+ if (!colDefs?.[tableKey2])
133
+ return;
134
+ return await dbSchemaOps.onFetchTableEditorDefinition({
135
+ table: table,
136
+ schema: selected.schemaKey,
137
+ colDefs: colDefs[tableKey2]
138
+ });
139
+ });
123
140
  let newSchemaDialogOpen = $state(false);
124
141
  let newSchemaName = $state('');
125
142
  // Check if the sanitized schema name already exists
126
- const sanitizedNewSchemaName = $derived(newSchemaName
127
- .trim()
128
- .toLowerCase()
129
- .replace(/[^a-zA-Z0-9_]/g, ''));
130
- const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys.includes(sanitizedNewSchemaName));
143
+ const sanitizedNewSchemaName = $derived.by(() => {
144
+ let s = newSchemaName.trim().replace(/[^a-zA-Z0-9_]/g, '');
145
+ if (dbType === 'snowflake')
146
+ s = s.toUpperCase();
147
+ return s;
148
+ });
149
+ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' &&
150
+ schemaKeys.map((s) => s.toLowerCase()).includes(sanitizedNewSchemaName.toLowerCase()));
151
+ let _dbTable = $state();
152
+ export const dbTable = () => _dbTable;
131
153
  </script>
132
154
 
133
155
  <Splitpanes>
@@ -140,20 +162,20 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
140
162
  <Select
141
163
  bind:value={selected.schemaKey}
142
164
  items={safeSelectItems(schemaKeys)}
165
+ id="db-schema-select"
143
166
  transformInputSelectedText={(s) => `Schema: ${s}`}
144
167
  RightIcon={ChevronDownIcon}
145
168
  placeholder="Search or create schema..."
146
169
  showPlaceholderOnOpen
147
170
  onCreateItem={(schema) => {
148
- schema = schema
149
- .trim()
150
- .toLowerCase()
151
- .replace(/[^a-zA-Z0-9_]/g, '')
171
+ schema = schema.trim().replace(/[^a-zA-Z0-9_]/g, '')
172
+ if (dbType === 'snowflake') schema = schema.toUpperCase()
152
173
  askingForConfirmation = {
153
174
  confirmationText: `Create ${schema}`,
154
175
  type: 'reload',
155
176
  title: `This will run 'CREATE SCHEMA ${schema}' on your database. Are you sure ?`,
156
177
  open: true,
178
+ id: 'db-create-schema-confirmation-modal',
157
179
  onConfirm: async () => {
158
180
  askingForConfirmation && (askingForConfirmation.loading = true)
159
181
  try {
@@ -224,7 +246,9 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
224
246
  <span class="truncate text-ellipsis grow text-left text-tertiary text-xs"
225
247
  >{schemaKey}</span
226
248
  >
227
- <span class="text-2xs text-tertiary mr-2 group-hover:hidden">{schemaTables.length}</span>
249
+ <span class="text-2xs text-tertiary mr-2 group-hover:hidden">
250
+ {schemaTables.length}
251
+ </span>
228
252
  <!-- Delete schema button (on hover) -->
229
253
  <button
230
254
  class="hidden group-hover:flex p-1 hover:bg-red-100 dark:hover:bg-red-900/30 rounded transition-colors mr-1"
@@ -258,7 +282,8 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
258
282
  {#each schemaTables as tableKey}
259
283
  {@const isDisabled = isTableDisabled(schemaKey, tableKey)}
260
284
  {@const isChecked = isTableSelected(schemaKey, tableKey) || isDisabled}
261
- {@const isCurrentPreview = selected.schemaKey === schemaKey && selected.tableKey === tableKey}
285
+ {@const isCurrentPreview =
286
+ selected.schemaKey === schemaKey && selected.tableKey === tableKey}
262
287
  <div
263
288
  class={'group w-full text-sm font-normal flex gap-2 items-center h-8 cursor-pointer pl-7 pr-1 ' +
264
289
  (isCurrentPreview ? 'bg-gray-500/25' : 'hover:bg-gray-500/10') +
@@ -341,7 +366,10 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
341
366
  onclick={() => (selected.tableKey = tableKey)}
342
367
  >
343
368
  <Table2 class="text-primary shrink-0" size={16} />
344
- <p class="truncate text-ellipsis grow text-left text-emphasis text-xs">{tableKey}</p>
369
+ <p
370
+ class="db-manager-table-key truncate text-ellipsis grow text-left text-emphasis text-xs"
371
+ >{tableKey}</p
372
+ >
345
373
  <DropdownV2
346
374
  items={() => [
347
375
  {
@@ -352,6 +380,7 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
352
380
  title: `Are you sure you want to delete ${tableKey} ? This action is irreversible`,
353
381
  confirmationText: 'Delete permanently',
354
382
  open: true,
383
+ id: 'db-manager-delete-table-confirmation-modal',
355
384
  onConfirm: async () => {
356
385
  askingForConfirmation && (askingForConfirmation.loading = true)
357
386
  try {
@@ -366,17 +395,21 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
366
395
  askingForConfirmation = undefined
367
396
  }
368
397
  })
398
+ },
399
+ {
400
+ displayName: 'Alter table',
401
+ icon: EditIcon,
402
+ action: () => {
403
+ dbTableEditorState = {
404
+ open: true,
405
+ alterTableKey: tableKey
406
+ }
407
+ }
369
408
  }
370
409
  ]}
371
410
  class="w-fit"
372
- >
373
- <svelte:fragment slot="buttonReplacement">
374
- <MoreVertical
375
- size={8}
376
- class="w-8 h-8 p-2 hover:bg-surface-hover cursor-pointer rounded-md"
377
- />
378
- </svelte:fragment>
379
- </DropdownV2>
411
+ btnId={'db-manager-table-actions-' + onlyAlphaNumAndUnderscore(tableKey)}
412
+ />
380
413
  </button>
381
414
  {/each}
382
415
  {/if}
@@ -393,13 +426,9 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
393
426
  {/if}
394
427
  </Pane>
395
428
  <Pane class="p-3 pt-1">
396
- {#if tableKey}
397
- {#await getColDefs(tableKey) then colDefs}
398
- {#if colDefs && colDefs?.length}
399
- {@const dbTableOps = dbTableOpsFactory({ colDefs, tableKey })}
400
- <DBTable {dbTableOps} />
401
- {/if}
402
- {/await}
429
+ {#if tableKey && colDefs?.[tableKey]?.length}
430
+ {@const dbTableOps = dbTableOpsFactory({ colDefs: colDefs[tableKey], tableKey })}
431
+ <DBTable {dbTableOps} bind:this={_dbTable} />
403
432
  {/if}
404
433
  </Pane>
405
434
  </Splitpanes>
@@ -417,18 +446,79 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
417
446
  open={dbTableEditorState.open}
418
447
  on:close={() => (dbTableEditorState = { open: false })}
419
448
  >
420
- <DrawerContent on:close={() => (dbTableEditorState = { open: false })} title="Create a new table">
421
- <DbTableEditor
422
- {dbSchema}
423
- currentSchema={selected.schemaKey}
424
- onConfirm={async (values) => {
425
- await dbSchemaOps.onCreate({ values, schema: selected.schemaKey })
426
- refresh?.()
427
- dbTableEditorState = { open: false }
428
- }}
429
- {dbType}
430
- previewSql={(values) => dbSchemaOps.previewCreateSql({ values, schema: selected.schemaKey })}
431
- />
449
+ <DrawerContent
450
+ id="db-table-editor-drawer"
451
+ on:close={() => (dbTableEditorState = { open: false })}
452
+ title={dbTableEditorState.alterTableKey
453
+ ? `Alter ${dbTableEditorState.alterTableKey}`
454
+ : 'Create a new table'}
455
+ >
456
+ {#key dbTableEditorState.alterTableKey}
457
+ {#if !dbTableEditorState.alterTableKey || dbTableEditorAlterTableData.current}
458
+ <DbTableEditor
459
+ {features}
460
+ {dbSchema}
461
+ currentSchema={selected.schemaKey}
462
+ initialValues={dbTableEditorAlterTableData.current}
463
+ onConfirm={async ({ values }) => {
464
+ if (dbTableEditorState.alterTableKey && dbTableEditorAlterTableData.current) {
465
+ let diff = diffTableEditorValues(dbTableEditorAlterTableData.current, values)
466
+ await dbSchemaOps.onAlter({ schema: selected.schemaKey, values: diff })
467
+ } else {
468
+ await dbSchemaOps.onCreate({ values, schema: selected.schemaKey })
469
+ }
470
+ refresh?.()
471
+ sendUserToast(
472
+ dbTableEditorState.alterTableKey
473
+ ? dbTableEditorState.alterTableKey + ' updated!'
474
+ : values.name + ' created!'
475
+ )
476
+ dbTableEditorState = { open: false }
477
+ }}
478
+ {dbType}
479
+ computePreview={({ values }) => {
480
+ if (dbTableEditorState.alterTableKey && dbTableEditorAlterTableData.current) {
481
+ let diff = diffTableEditorValues(dbTableEditorAlterTableData.current, values)
482
+ let queries = dbSchemaOps.previewAlterSql({
483
+ values: diff,
484
+ schema: selected.schemaKey
485
+ })
486
+ let alert = !dbSupportsTransactionalDdl(dbType)
487
+ ? {
488
+ title: capitalize(dbType) + ' does not support transactional DDL',
489
+ body: 'Any of these statements failing may leave your database in an intermediate state.'
490
+ }
491
+ : undefined
492
+ return { sql: queries.join('\n'), ...(alert ? { alert } : {}) }
493
+ } else {
494
+ return { sql: dbSchemaOps.previewCreateSql({ values, schema: selected.schemaKey }) }
495
+ }
496
+ }}
497
+ computeBtnProps={({ values }) => {
498
+ if (dbTableEditorState.alterTableKey && dbTableEditorAlterTableData.current) {
499
+ let diff = diffTableEditorValues(dbTableEditorAlterTableData.current, values)
500
+ let queries = dbSchemaOps.previewAlterSql({
501
+ values: diff,
502
+ schema: selected.schemaKey
503
+ })
504
+ if (!queries.length) {
505
+ return { text: 'No changes detected', disabled: true }
506
+ }
507
+ return {
508
+ text: `Alter table (${pluralize(queries.length, 'change')} detected)`
509
+ }
510
+ } else {
511
+ return { text: 'Create table' }
512
+ }
513
+ }}
514
+ />
515
+ {:else if dbTableEditorAlterTableData.loading || !colDefs}
516
+ <Loader2 class="animate-spin" size={32} />
517
+ {:else}
518
+ <p class="text-sm text-tertiary">Failed to load table definition.</p>
519
+ <p>{dbTableEditorAlterTableData.error}</p>
520
+ {/if}
521
+ {/key}
432
522
  </DrawerContent>
433
523
  </Drawer>
434
524
 
@@ -463,6 +553,7 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
463
553
  type: 'reload',
464
554
  title: `This will run 'CREATE SCHEMA ${sanitizedNewSchemaName}' on your database. Are you sure?`,
465
555
  open: true,
556
+ id: 'db-create-schema-confirmation-modal',
466
557
  onConfirm: async () => {
467
558
  askingForConfirmation && (askingForConfirmation.loading = true)
468
559
  try {
@@ -500,6 +591,7 @@ const schemaAlreadyExists = $derived(sanitizedNewSchemaName !== '' && schemaKeys
500
591
  type: 'reload',
501
592
  title: `This will run 'CREATE SCHEMA ${sanitizedNewSchemaName}' on your database. Are you sure?`,
502
593
  open: true,
594
+ id: 'db-create-schema-confirmation-modal',
503
595
  onConfirm: async () => {
504
596
  askingForConfirmation && (askingForConfirmation.loading = true)
505
597
  try {
@@ -3,6 +3,7 @@ import { type ColumnDef } from './apps/components/display/dbtable/utils';
3
3
  import type { IDbSchemaOps, IDbTableOps } from './dbOps';
4
4
  import type { DbType } from './dbTypes';
5
5
  import type { Snippet } from 'svelte';
6
+ import type { DbFeatures } from './apps/components/display/dbtable/dbFeatures';
6
7
  /** Represents a selected table with its schema */
7
8
  export interface SelectedTable {
8
9
  schema: string;
@@ -12,7 +13,7 @@ type Props = {
12
13
  dbType: DbType;
13
14
  dbSchema: DBSchema;
14
15
  dbSupportsSchemas: boolean;
15
- getColDefs: (tableKey: string) => Promise<ColumnDef[]>;
16
+ colDefs: Record<string, ColumnDef[]> | undefined;
16
17
  dbTableOpsFactory: (params: {
17
18
  colDefs: ColumnDef[];
18
19
  tableKey: string;
@@ -30,7 +31,17 @@ type Props = {
30
31
  selectedTables?: SelectedTable[];
31
32
  /** Tables that are already added and should show as disabled */
32
33
  disabledTables?: SelectedTable[];
34
+ features?: DbFeatures;
33
35
  };
34
- declare const DBManager: import("svelte").Component<Props, {}, "selectedSchemaKey" | "selectedTableKey" | "selectedTables">;
36
+ declare const DBManager: import("svelte").Component<Props, {
37
+ dbTable: () => ({
38
+ $on?(type: string, callback: (e: any) => void): () => void;
39
+ $set?(props: Partial<{
40
+ dbTableOps: IDbTableOps;
41
+ }>): void;
42
+ } & {
43
+ refresh: () => number;
44
+ }) | undefined;
45
+ }, "selectedSchemaKey" | "selectedTableKey" | "selectedTables">;
35
46
  type DBManager = ReturnType<typeof DBManager>;
36
47
  export default DBManager;