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
@@ -2,21 +2,15 @@ import { JobService, ResourceService } from '../../../../../gen';
2
2
  import { runScriptAndPollResult } from '../../../../jobs/utils';
3
3
  import { getLanguageByResourceType, resourceTypeToLang, legacyScripts, scriptsV2 } from './utils';
4
4
  import {} from '../../../../../gen';
5
- import { tryEvery } from '../../../../../utils';
6
5
  import { stringifySchema } from '../../../../copilot/lib';
7
6
  import { getDatabaseArg } from '../../../../dbOps';
8
7
  export async function loadTableMetaData(input, workspace, table) {
9
8
  if (!input || !table || !workspace)
10
9
  return undefined;
11
- let language = input.type == 'ducklake' ? 'duckdb' : getLanguageByResourceType(input.resourceType);
12
- let content = await makeLoadTableMetaDataQuery(input, workspace, table);
10
+ let { language, query } = await makeLoadTableMetaDataQuery(input, workspace, table);
13
11
  const job = await JobService.runScriptPreview({
14
12
  workspace: workspace,
15
- requestBody: {
16
- language,
17
- content,
18
- args: getDatabaseArg(input)
19
- }
13
+ requestBody: { language, content: query, args: getDatabaseArg(input) }
20
14
  });
21
15
  const maxRetries = 8;
22
16
  let attempts = 0;
@@ -29,12 +23,15 @@ export async function loadTableMetaData(input, workspace, table) {
29
23
  }));
30
24
  if (testResult.success) {
31
25
  attempts = maxRetries;
32
- if (input.type === 'database' && input.resourceType === 'ms_sql_server') {
33
- return testResult.result[0].map(lowercaseKeys);
34
- }
35
- else {
36
- return testResult.result.map(lowercaseKeys);
26
+ const result = testResult.result.map(lowercaseKeys);
27
+ // For Snowflake, fetch primary keys separately
28
+ if (input.type === 'database' &&
29
+ (input.resourceType === 'snowflake' || input.resourceType === 'snowflake_oauth')) {
30
+ const map = { [table]: result };
31
+ await fetchAndAddSnowflakePrimaryKeysInMap(map, input, workspace, table);
32
+ return map[table];
37
33
  }
34
+ return result;
38
35
  }
39
36
  else {
40
37
  attempts++;
@@ -50,28 +47,20 @@ export async function loadTableMetaData(input, workspace, table) {
50
47
  export async function loadAllTablesMetaData(workspace, input) {
51
48
  if (!input || !workspace)
52
49
  return undefined;
53
- let language = input.type == 'ducklake' ? 'duckdb' : getLanguageByResourceType(input.resourceType);
54
50
  try {
51
+ let { language, query } = await makeLoadTableMetaDataQuery(input, workspace, undefined);
55
52
  let result = (await runScriptAndPollResult({
56
53
  workspace: workspace,
57
- requestBody: {
58
- language,
59
- content: await makeLoadTableMetaDataQuery(input, workspace, undefined),
60
- args: getDatabaseArg(input)
61
- }
54
+ requestBody: { language, content: query, args: getDatabaseArg(input) }
62
55
  }));
63
- if (input.type === 'database' && input.resourceType === 'ms_sql_server') {
64
- result = result[0];
65
- }
66
56
  const map = {};
67
57
  for (const _col of result) {
68
58
  const col = lowercaseKeys(_col);
69
59
  const tableKey = col.schema_name ? `${col.schema_name}.${col.table_name}` : col.table_name;
70
- if (!(tableKey in map)) {
71
- map[tableKey] = [];
72
- }
60
+ map[tableKey] ??= [];
73
61
  map[tableKey].push(col);
74
62
  }
63
+ await fetchAndAddSnowflakePrimaryKeysInMap(map, input, workspace);
75
64
  return map;
76
65
  }
77
66
  catch (e) {
@@ -80,7 +69,7 @@ export async function loadAllTablesMetaData(workspace, input) {
80
69
  }
81
70
  async function makeLoadTableMetaDataQuery(input, workspace, table) {
82
71
  if (input.type === 'ducklake') {
83
- return `ATTACH 'ducklake://${input.ducklake}' AS __ducklake__;
72
+ const query = `ATTACH 'ducklake://${input.ducklake}' AS __ducklake__;
84
73
  SELECT
85
74
  COLUMN_NAME as field,
86
75
  DATA_TYPE as DataType,
@@ -92,18 +81,19 @@ async function makeLoadTableMetaDataQuery(input, workspace, table) {
92
81
  TABLE_NAME as table_name
93
82
  FROM information_schema.columns c
94
83
  WHERE table_catalog = '__ducklake__' AND table_schema = current_schema()`;
84
+ return { query, language: 'duckdb' };
95
85
  }
96
86
  else if (input.resourceType === 'mysql') {
97
87
  const resourceObj = (await ResourceService.getResourceValue({
98
88
  workspace,
99
89
  path: input.resourcePath
100
90
  }));
101
- return `
91
+ const query = `
102
92
  SELECT
103
93
  COLUMN_NAME as field,
104
94
  COLUMN_TYPE as DataType,
105
95
  COLUMN_DEFAULT as DefaultValue,
106
- CASE WHEN COLUMN_KEY = 'PRI' THEN 'YES' ELSE 'NO' END as IsPrimaryKey,
96
+ CASE WHEN COLUMN_KEY = 'PRI' THEN 1 ELSE 0 END as IsPrimaryKey,
107
97
  CASE WHEN EXTRA like '%auto_increment%' THEN 'YES' ELSE 'NO' END as IsIdentity,
108
98
  CASE WHEN IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END as IsNullable,
109
99
  CASE WHEN DATA_TYPE = 'enum' THEN true ELSE false END as IsEnum${table
@@ -122,9 +112,10 @@ async function makeLoadTableMetaDataQuery(input, workspace, table) {
122
112
  TABLE_NAME,
123
113
  ORDINAL_POSITION;
124
114
  `;
115
+ return { query, language: 'mysql' };
125
116
  }
126
117
  else if (input.resourceType === 'postgresql') {
127
- return `
118
+ const query = `
128
119
  SELECT
129
120
  a.attname as field,
130
121
  pg_catalog.format_type(a.atttypid, a.atttypmod) as DataType,
@@ -164,38 +155,59 @@ async function makeLoadTableMetaDataQuery(input, workspace, table) {
164
155
  ORDER BY ${table ? 'a.attnum' : 'ns.nspname, c.relname, a.attnum'};
165
156
 
166
157
  `;
158
+ return { query, language: 'postgresql' };
167
159
  }
168
160
  else if (input.resourceType === 'ms_sql_server') {
169
- return `
170
- SELECT
171
- COLUMN_NAME as field,
172
- DATA_TYPE as DataType,
173
- COLUMN_DEFAULT as DefaultValue,
174
- CASE WHEN COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1 THEN 'By Default' ELSE 'No' END as IsIdentity,
175
- CASE WHEN COLUMNPROPERTY(OBJECT_ID(TABLE_NAME), COLUMN_NAME, 'IsIdentity') = 1 THEN 1 ELSE 0 END as IsPrimaryKey, -- This line still needs correction for primary key identification
176
- CASE WHEN IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END as IsNullable,
177
- CASE WHEN DATA_TYPE = 'enum' THEN 1 ELSE 0 END as IsEnum${table
161
+ const query = `
162
+ SELECT
163
+ c.COLUMN_NAME as field,
164
+ c.DATA_TYPE as DataType,
165
+ c.COLUMN_DEFAULT as DefaultValue,
166
+ CASE WHEN COLUMNPROPERTY(OBJECT_ID(c.TABLE_SCHEMA + '.' + c.TABLE_NAME), c.COLUMN_NAME, 'IsIdentity') = 1 THEN 'By Default' ELSE 'No' END as IsIdentity,
167
+ CASE WHEN pk.COLUMN_NAME IS NOT NULL THEN 1 ELSE 0 END as IsPrimaryKey,
168
+ CASE WHEN c.IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END as IsNullable,
169
+ CASE WHEN c.DATA_TYPE = 'enum' THEN 1 ELSE 0 END as IsEnum,
170
+ dc.name as default_constraint_name${table
178
171
  ? ''
179
172
  : `,
180
- TABLE_NAME as table_name`}
181
- FROM
182
- INFORMATION_SCHEMA.COLUMNS${table
173
+ c.TABLE_NAME as table_name`}
174
+ FROM
175
+ INFORMATION_SCHEMA.COLUMNS c
176
+ LEFT JOIN (
177
+ SELECT
178
+ ku.TABLE_SCHEMA,
179
+ ku.TABLE_NAME,
180
+ ku.COLUMN_NAME
181
+ FROM
182
+ INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
183
+ INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE ku
184
+ ON tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
185
+ AND tc.CONSTRAINT_NAME = ku.CONSTRAINT_NAME
186
+ AND tc.TABLE_SCHEMA = ku.TABLE_SCHEMA
187
+ AND tc.TABLE_NAME = ku.TABLE_NAME
188
+ ) pk ON c.TABLE_SCHEMA = pk.TABLE_SCHEMA
189
+ AND c.TABLE_NAME = pk.TABLE_NAME
190
+ AND c.COLUMN_NAME = pk.COLUMN_NAME
191
+ LEFT JOIN sys.default_constraints dc
192
+ ON dc.parent_object_id = OBJECT_ID(c.TABLE_SCHEMA + '.' + c.TABLE_NAME)
193
+ AND dc.parent_column_id = COLUMNPROPERTY(OBJECT_ID(c.TABLE_SCHEMA + '.' + c.TABLE_NAME), c.COLUMN_NAME, 'ColumnId')${table
183
194
  ? `
184
- WHERE
185
- TABLE_NAME = '${table}'`
195
+ WHERE
196
+ c.TABLE_NAME = '${table}'`
186
197
  : ''}
187
198
  ORDER BY
188
- ORDINAL_POSITION;
199
+ c.ORDINAL_POSITION;
189
200
  `;
201
+ return { query, language: 'mssql' };
190
202
  }
191
203
  else if (input.resourceType === 'snowflake' ||
192
204
  input.resourceType === 'snowflake_oauth') {
193
- return `
205
+ const query = `
194
206
  select COLUMN_NAME as field,
195
207
  DATA_TYPE as DataType,
196
208
  COLUMN_DEFAULT as DefaultValue,
197
209
  CASE WHEN COLUMN_DEFAULT like 'AUTOINCREMENT%' THEN 'By Default' ELSE 'No' END as IsIdentity,
198
- CASE WHEN COLUMN_DEFAULT like 'AUTOINCREMENT%' THEN 1 ELSE 0 END as IsPrimaryKey,
210
+ 0 as IsPrimaryKey, -- a one-query solution is not trivial, we will use SHOW PRIMARY KEYS separately
199
211
  CASE WHEN IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END as IsNullable,
200
212
  CASE WHEN DATA_TYPE = 'enum' THEN 1 ELSE 0 END as IsEnum${table
201
213
  ? ''
@@ -208,12 +220,11 @@ ORDER BY
208
220
  : "\nwhere table_schema <> 'INFORMATION_SCHEMA'\n"}
209
221
  order by ORDINAL_POSITION;
210
222
  `;
223
+ return { query, language: 'snowflake' };
211
224
  }
212
225
  else if (input.resourceType === 'bigquery') {
213
- // TODO: find a solution for this (query uses hardcoded dataset name)
214
- if (!table)
215
- throw new Error('Table name is required for BigQuery');
216
- return `SELECT
226
+ if (table) {
227
+ const query = `SELECT
217
228
  c.COLUMN_NAME as field,
218
229
  DATA_TYPE as DataType,
219
230
  CASE WHEN COLUMN_DEFAULT = 'NULL' THEN '' ELSE COLUMN_DEFAULT END as DefaultValue,
@@ -229,11 +240,77 @@ FROM
229
240
  WHERE
230
241
  c.TABLE_NAME = '${table.split('.')[1]}'
231
242
  order by c.ORDINAL_POSITION;`;
243
+ return { query, language: 'bigquery' };
244
+ }
245
+ else {
246
+ const query = `import { BigQuery } from '@google-cloud/bigquery@7.5.0';
247
+ export async function main(database: bigquery) {
248
+ const bq = new BigQuery({
249
+ credentials: database
250
+ })
251
+ const [datasets] = await bq.getDatasets();
252
+ if (!datasets) return {}
253
+ const schema = {} as any
254
+ let queries = datasets.map(dataset => \`
255
+ (SELECT
256
+ c.COLUMN_NAME as field,
257
+ '\${dataset.id}' as schema_name,
258
+ c.TABLE_NAME as table_name,
259
+ DATA_TYPE as DataType,
260
+ CASE WHEN COLUMN_DEFAULT = 'NULL' THEN '' ELSE COLUMN_DEFAULT END as DefaultValue,
261
+ CASE WHEN constraint_name is not null THEN true ELSE false END as IsPrimaryKey,
262
+ 'No' as IsIdentity,
263
+ IS_NULLABLE as IsNullable,
264
+ false as IsEnum
265
+ FROM
266
+ \\\`\${dataset.id}\\\`.INFORMATION_SCHEMA.COLUMNS c
267
+ LEFT JOIN
268
+ \\\`\${dataset.id}\\\`.INFORMATION_SCHEMA.KEY_COLUMN_USAGE p
269
+ on c.table_name = p.table_name AND c.column_name = p.COLUMN_NAME
270
+ ORDER BY c.ORDINAL_POSITION)\`
271
+ )
272
+ let query = queries.join('\\nUNION ALL \\n')
273
+ const [rows] = await bq.query(query)
274
+ return rows
275
+ }`;
276
+ return { query, language: 'bun' };
277
+ }
232
278
  }
233
279
  else {
234
280
  throw new Error('Unsupported database type:' + input.resourceType);
235
281
  }
236
282
  }
283
+ // We can't get primary keys in a single query for Snowflake, so we fetch them separately
284
+ async function fetchAndAddSnowflakePrimaryKeysInMap(map, input, workspace, tableKey) {
285
+ if (input.type == 'database' &&
286
+ (input.resourceType === 'snowflake' || input.resourceType === 'snowflake_oauth')) {
287
+ let pkResult = await fetchSnowflakePrimaryKeys(workspace, getDatabaseArg(input), tableKey);
288
+ for (const pk of pkResult) {
289
+ const pkTableKey = `${pk.schema_name}.${pk.table_name}`.toUpperCase();
290
+ // Also check the original casing and the provided tableKey
291
+ const keysToCheck = [pkTableKey, `${pk.schema_name}.${pk.table_name}`, tableKey].filter(Boolean);
292
+ for (const key of keysToCheck) {
293
+ if (key in map) {
294
+ for (const col of map[key]) {
295
+ if (col.field.toLowerCase() === pk.column_name.toLowerCase()) {
296
+ col.isprimarykey = true;
297
+ }
298
+ }
299
+ }
300
+ }
301
+ }
302
+ }
303
+ }
304
+ async function fetchSnowflakePrimaryKeys(workspace, dbArg, tableKey) {
305
+ return (await JobService.runScriptPreviewAndWaitResult({
306
+ workspace,
307
+ requestBody: {
308
+ language: 'snowflake',
309
+ args: dbArg,
310
+ content: tableKey ? `SHOW PRIMARY KEYS IN TABLE ${tableKey}` : 'SHOW PRIMARY KEYS IN ACCOUNT'
311
+ }
312
+ }));
313
+ }
237
314
  function lowercaseKeys(obj) {
238
315
  const newObj = {};
239
316
  Object.keys(obj).forEach((key) => {
@@ -241,113 +318,65 @@ function lowercaseKeys(obj) {
241
318
  });
242
319
  return newObj;
243
320
  }
244
- export async function getDbSchemas(resourceType, resourcePath, workspace, dbSchemas, errorCallback, options = {}) {
321
+ export async function getDbSchemas(resourceType, resourcePath, workspace, errorCallback, options = {}) {
245
322
  let scripts = options.useLegacyScripts ? legacyScripts : scriptsV2;
246
- if (!scripts[resourceType])
323
+ let sqlScript = scripts[getLanguageByResourceType(resourceType)];
324
+ if (!resourceType || !resourcePath || !workspace || !sqlScript)
247
325
  return;
248
- return new Promise(async (resolve, reject) => {
249
- if (!resourceType || !resourcePath || !workspace) {
250
- resolve();
251
- return;
252
- }
253
- const job = await JobService.runScriptPreview({
254
- workspace: workspace,
326
+ let result;
327
+ try {
328
+ result = await JobService.runScriptPreviewAndWaitResult({
329
+ workspace,
255
330
  requestBody: {
256
- language: scripts[resourceType].lang,
257
- content: scripts[resourceType].code,
331
+ language: sqlScript.lang,
332
+ content: sqlScript.code,
258
333
  args: {
259
- [scripts[resourceType].argName]: resourcePath.startsWith('datatable://')
334
+ [sqlScript.argName]: resourcePath.startsWith('datatable://')
260
335
  ? resourcePath
261
336
  : '$res:' + resourcePath
262
337
  }
263
338
  }
264
339
  });
265
- tryEvery({
266
- tryCode: async () => {
267
- if (resourcePath) {
268
- const testResult = await JobService.getCompletedJob({
269
- workspace,
270
- id: job
271
- });
272
- if (!testResult.success) {
273
- console.error(testResult.result?.['error']?.['message']);
274
- }
275
- else {
276
- if (testResult.result === 'WINDMILL_TOO_BIG') {
277
- console.info('Result is too big, fetching result separately');
278
- const data = await JobService.getCompletedJobResult({
279
- workspace,
280
- id: job
281
- });
282
- testResult.result = data;
283
- }
284
- if (resourceType !== undefined) {
285
- if (resourceType !== 'graphql') {
286
- const { processingFn } = scripts[resourceType];
287
- let schema;
288
- try {
289
- schema =
290
- processingFn !== undefined ? processingFn(testResult.result) : testResult.result;
291
- }
292
- catch (e) {
293
- console.error(e);
294
- errorCallback('Error processing schema');
295
- resolve();
296
- return;
297
- }
298
- const dbSchema = {
299
- lang: resourceTypeToLang(resourceType),
300
- schema,
301
- publicOnly: !!schema.public || !!schema.PUBLIC || !!schema.dbo
302
- };
303
- dbSchemas[resourcePath] = {
304
- ...dbSchema,
305
- stringified: stringifySchema(dbSchema)
306
- };
307
- }
308
- else {
309
- if (typeof testResult.result !== 'object' ||
310
- !('__schema' in (testResult?.result ?? {}))) {
311
- console.error('Invalid GraphQL schema');
312
- errorCallback('Invalid GraphQL schema');
313
- }
314
- else {
315
- const dbSchema = {
316
- lang: 'graphql',
317
- schema: testResult.result
318
- };
319
- dbSchemas[resourcePath] = {
320
- ...dbSchema,
321
- stringified: stringifySchema(dbSchema)
322
- };
323
- }
324
- }
325
- }
326
- }
327
- resolve();
328
- }
329
- },
330
- timeoutCode: async () => {
331
- console.error('Could not query schema within 5s');
332
- errorCallback('Could not query schema within 5s');
333
- try {
334
- await JobService.cancelQueuedJob({
335
- workspace,
336
- id: job,
337
- requestBody: {
338
- reason: 'Could not query schema within 5s'
339
- }
340
- });
341
- }
342
- catch (err) {
343
- console.error(err);
344
- }
345
- reject();
346
- },
347
- interval: 500,
348
- timeout: 5000
349
- });
350
- });
340
+ }
341
+ catch (e) {
342
+ console.error(e);
343
+ errorCallback('Error fetching schema: ' + (e?.message || e));
344
+ return;
345
+ }
346
+ if (resourceType !== undefined) {
347
+ if (resourceType !== 'graphql') {
348
+ const { processingFn } = sqlScript;
349
+ let schema;
350
+ try {
351
+ schema = processingFn !== undefined ? processingFn(result) : result;
352
+ }
353
+ catch (e) {
354
+ console.error(e);
355
+ errorCallback('Error processing schema');
356
+ return;
357
+ }
358
+ const dbSchema = {
359
+ lang: resourceTypeToLang(resourceType),
360
+ schema,
361
+ publicOnly: !!schema.public || !!schema.PUBLIC || !!schema.dbo
362
+ };
363
+ return { ...dbSchema, stringified: stringifySchema(dbSchema) };
364
+ }
365
+ else {
366
+ if (typeof result !== 'object' || !('__schema' in (result ?? {}))) {
367
+ console.error('Invalid GraphQL schema');
368
+ errorCallback('Invalid GraphQL schema');
369
+ return;
370
+ }
371
+ else {
372
+ const dbSchema = {
373
+ lang: 'graphql',
374
+ schema: result
375
+ };
376
+ return { ...dbSchema, stringified: stringifySchema(dbSchema) };
377
+ }
378
+ }
379
+ }
351
380
  }
352
381
  export async function getTablesByResource(schema, dbType, dbPath, workspace) {
353
382
  const s = Object.values(schema)?.[0];
@@ -0,0 +1,46 @@
1
+ import type { DbType } from '../../../../../dbTypes';
2
+ import { type TableEditorForeignKey, type TableEditorValues, type TableEditorValuesColumn } from '../tableEditor';
3
+ export type AlterTableValues = {
4
+ name: string;
5
+ operations: AlterTableOperation[];
6
+ };
7
+ type AddColumnOperation = {
8
+ kind: 'addColumn';
9
+ column: TableEditorValuesColumn;
10
+ };
11
+ type DropColumnOperation = {
12
+ kind: 'dropColumn';
13
+ name: string;
14
+ };
15
+ export type AlterColumnOperation = {
16
+ kind: 'alterColumn';
17
+ original: TableEditorValuesColumn;
18
+ defaultConstraintName?: string;
19
+ changes: Partial<Omit<TableEditorValuesColumn, 'initialName'>>;
20
+ };
21
+ type AddForeignKeyOperation = {
22
+ kind: 'addForeignKey';
23
+ foreignKey: TableEditorForeignKey;
24
+ };
25
+ type DropForeignKeyOperation = {
26
+ kind: 'dropForeignKey';
27
+ fk_constraint_name: string;
28
+ };
29
+ type RenameTableOperation = {
30
+ kind: 'renameTable';
31
+ to: string;
32
+ };
33
+ type AddPrimaryKeyOperation = {
34
+ kind: 'addPrimaryKey';
35
+ columns: string[];
36
+ };
37
+ type DropPrimaryKeyOperation = {
38
+ kind: 'dropPrimaryKey';
39
+ pk_constraint_name?: string;
40
+ };
41
+ export type AlterTableOperation = AddColumnOperation | DropColumnOperation | AlterColumnOperation | AddForeignKeyOperation | DropForeignKeyOperation | RenameTableOperation | AddPrimaryKeyOperation | DropPrimaryKeyOperation;
42
+ export declare function makeAlterTableQuery(values: AlterTableValues, dbType: DbType, schema?: string): string;
43
+ export declare function makeAlterTableQueries(values: AlterTableValues, dbType: DbType, schema?: string): string[];
44
+ export declare function diffTableEditorValues(original: TableEditorValues, updated: TableEditorValues): AlterTableValues;
45
+ export declare function dbSupportsTransactionalDdl(dbType: DbType): boolean;
46
+ export {};