windmill-components 1.542.5 → 1.555.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/package/aiStore.d.ts +13 -0
  2. package/package/aiStore.js +70 -0
  3. package/package/common.d.ts +6 -2
  4. package/package/components/AIAgentLogViewer.svelte +1 -1
  5. package/package/components/AIProviderPicker.svelte +25 -8
  6. package/package/components/ArgEnum.svelte +17 -7
  7. package/package/components/ArgEnum.svelte.d.ts +1 -0
  8. package/package/components/ArgInput.svelte +257 -188
  9. package/package/components/ArgInput.svelte.d.ts +4 -1
  10. package/package/components/ArrayTypeNarrowing.svelte +38 -32
  11. package/package/components/AutoscalingEvents.svelte +21 -5
  12. package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
  13. package/package/components/ChannelSelector.svelte +92 -18
  14. package/package/components/ChannelSelector.svelte.d.ts +2 -0
  15. package/package/components/ConnectionSection.svelte +12 -1
  16. package/package/components/DateTimeInput.svelte +8 -6
  17. package/package/components/DeployButton.svelte +1 -1
  18. package/package/components/Dev.svelte +24 -9
  19. package/package/components/Dev.svelte.d.ts +23 -1
  20. package/package/components/DisplayResult.svelte +36 -23
  21. package/package/components/DropdownV2.svelte +8 -2
  22. package/package/components/DropdownV2.svelte.d.ts +1 -0
  23. package/package/components/DynamicInput.svelte +10 -10
  24. package/package/components/EditableSchemaForm.svelte +28 -13
  25. package/package/components/Editor.svelte +2 -1
  26. package/package/components/EditorSettings.svelte +5 -5
  27. package/package/components/EditorSettings.svelte.d.ts +4 -18
  28. package/package/components/ErrorOrRecoveryHandler.svelte +14 -20
  29. package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
  30. package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
  31. package/package/components/FieldHeader.svelte +5 -7
  32. package/package/components/FirstStepInputs.svelte +1 -1
  33. package/package/components/FlowHistoryJobPicker.svelte +3 -0
  34. package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
  35. package/package/components/FlowJobResult.svelte +5 -5
  36. package/package/components/FlowLogRow.svelte +2 -2
  37. package/package/components/FlowLogViewer.svelte +228 -57
  38. package/package/components/FlowLogViewer.svelte.d.ts +16 -5
  39. package/package/components/FlowLogViewerWrapper.svelte +56 -3
  40. package/package/components/FlowLogViewerWrapper.svelte.d.ts +4 -3
  41. package/package/components/FlowLoopIterationPreview.svelte +4 -4
  42. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  43. package/package/components/FlowMetadata.svelte +3 -4
  44. package/package/components/FlowMetadata.svelte.d.ts +4 -18
  45. package/package/components/FlowPlugConnect.svelte +8 -2
  46. package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
  47. package/package/components/FlowPreviewContent.svelte +121 -94
  48. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  49. package/package/components/FlowStatusViewer.svelte +63 -59
  50. package/package/components/FlowStatusViewer.svelte.d.ts +2 -2
  51. package/package/components/FlowStatusViewerInner.svelte +186 -94
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -3
  53. package/package/components/FlowTimeline.svelte +110 -131
  54. package/package/components/FlowTimeline.svelte.d.ts +13 -4
  55. package/package/components/FlowTimelineBar.svelte +227 -0
  56. package/package/components/FlowTimelineBar.svelte.d.ts +24 -0
  57. package/package/components/FolderEditor.svelte +6 -7
  58. package/package/components/GroupEditor.svelte +148 -141
  59. package/package/components/GroupEditor.svelte.d.ts +5 -4
  60. package/package/components/InputTransformForm.svelte +193 -71
  61. package/package/components/InputTransformForm.svelte.d.ts +3 -0
  62. package/package/components/InputTransformSchemaForm.svelte +10 -5
  63. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  64. package/package/components/InstanceSetting.svelte +34 -51
  65. package/package/components/InstanceSettings.svelte +12 -21
  66. package/package/components/JobArgs.svelte +15 -16
  67. package/package/components/JobArgs.svelte.d.ts +4 -18
  68. package/package/components/JobLoader.svelte +23 -42
  69. package/package/components/JobLoader.svelte.d.ts +2 -0
  70. package/package/components/JobStatus.svelte +1 -1
  71. package/package/components/JobStatus.svelte.d.ts +4 -18
  72. package/package/components/JsonEditor.svelte +18 -9
  73. package/package/components/JsonEditor.svelte.d.ts +1 -1
  74. package/package/components/JsonInputs.svelte +1 -1
  75. package/package/components/ModulePreviewForm.svelte +23 -19
  76. package/package/components/ModulePreviewResultViewer.svelte +1 -7
  77. package/package/components/NextcloudSetting.svelte +6 -1
  78. package/package/components/NumberTypeNarrowing.svelte +32 -16
  79. package/package/components/ObjectStoreConfigSettings.svelte +27 -19
  80. package/package/components/Password.svelte +7 -11
  81. package/package/components/Password.svelte.d.ts +5 -20
  82. package/package/components/PasswordArgInput.svelte +35 -15
  83. package/package/components/PasswordArgInput.svelte.d.ts +4 -18
  84. package/package/components/Path.svelte +2 -8
  85. package/package/components/Path.svelte.d.ts +1 -1
  86. package/package/components/QueuePosition.svelte +6 -2
  87. package/package/components/ResourceEditor.svelte +3 -10
  88. package/package/components/ResourcePicker.svelte +85 -72
  89. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  90. package/package/components/RunChart.svelte +1 -1
  91. package/package/components/RunForm.svelte +16 -21
  92. package/package/components/S3ArrayHelperButton.svelte +18 -0
  93. package/package/components/S3ArrayHelperButton.svelte.d.ts +9 -0
  94. package/package/components/S3FilePicker.svelte +1 -1
  95. package/package/components/SchemaForm.svelte +18 -10
  96. package/package/components/SchemaForm.svelte.d.ts +7 -1
  97. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  98. package/package/components/ScriptBuilder.svelte +2 -2
  99. package/package/components/ScriptEditor.svelte +9 -9
  100. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  101. package/package/components/ShareModal.svelte +4 -4
  102. package/package/components/SimpleEditor.svelte +6 -2
  103. package/package/components/SimpleEditor.svelte.d.ts +3 -0
  104. package/package/components/StringTypeNarrowing.svelte +44 -25
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/SuperadminSettingsInner.svelte +3 -3
  107. package/package/components/TeamSelector.svelte +83 -37
  108. package/package/components/TeamSelector.svelte.d.ts +0 -1
  109. package/package/components/TemplateEditor.svelte +18 -9
  110. package/package/components/Toast.svelte +2 -7
  111. package/package/components/Toast.svelte.d.ts +4 -18
  112. package/package/components/Toggle.svelte +17 -7
  113. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  114. package/package/components/WorkerGroup.svelte +2 -14
  115. package/package/components/apps/components/buttons/AppButton.svelte +66 -38
  116. package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
  117. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
  118. package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
  119. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +13 -4
  120. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +2 -2
  121. package/package/components/apps/components/display/table/utils.js +14 -4
  122. package/package/components/apps/components/helpers/RefreshButton.svelte +5 -1
  123. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -5
  124. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  125. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
  126. package/package/components/apps/components/layout/AppTabs.svelte +116 -71
  127. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  128. package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
  129. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
  130. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
  131. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
  132. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
  133. package/package/components/apps/editor/GridEditor.svelte +7 -2
  134. package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
  135. package/package/components/apps/editor/appDeploy.svelte.js +6 -0
  136. package/package/components/apps/editor/appUtils.d.ts +1 -0
  137. package/package/components/apps/editor/appUtils.js +30 -1
  138. package/package/components/apps/editor/component/ComponentInner.svelte +1 -0
  139. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
  140. package/package/components/apps/editor/component/components.d.ts +19 -4
  141. package/package/components/apps/editor/component/components.js +23 -3
  142. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  143. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
  144. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  145. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  146. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  147. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +2 -0
  148. package/package/components/apps/editor/settingsPanel/GridTab.svelte +19 -1
  149. package/package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +3 -1
  150. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte +52 -0
  151. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte.d.ts +9 -0
  152. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
  153. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -1
  154. package/package/components/auditLogs/AuditLogsTable.svelte +17 -7
  155. package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
  156. package/package/components/common/CloseButton.svelte +2 -2
  157. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  158. package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
  159. package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
  160. package/package/components/common/badge/CountBadge.svelte +29 -0
  161. package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
  162. package/package/components/common/button/Button.svelte +1 -0
  163. package/package/components/common/button/ConnectionButton.svelte +6 -1
  164. package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
  165. package/package/components/common/button/RefreshButton.svelte +8 -4
  166. package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
  167. package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
  168. package/package/components/common/fileInput/FileInput.svelte +7 -6
  169. package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
  170. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
  171. package/package/components/common/layout/List.svelte +3 -7
  172. package/package/components/common/layout/List.svelte.d.ts +7 -29
  173. package/package/components/common/popup/PopupV2.svelte +14 -25
  174. package/package/components/common/popup/PopupV2.svelte.d.ts +4 -2
  175. package/package/components/common/table/ScriptRow.svelte +22 -2
  176. package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
  177. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
  178. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  179. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
  180. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  181. package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
  182. package/package/components/copilot/CronGen.svelte +1 -1
  183. package/package/components/copilot/FlowCopilotInputsModal.svelte +26 -23
  184. package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
  185. package/package/components/copilot/IteratorGen.svelte +30 -25
  186. package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
  187. package/package/components/copilot/MetadataGen.svelte +4 -3
  188. package/package/components/copilot/PredicateGen.svelte +15 -12
  189. package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
  190. package/package/components/copilot/RegexGen.svelte +1 -1
  191. package/package/components/copilot/ScriptFix.svelte +1 -1
  192. package/package/components/copilot/ScriptGen.svelte +2 -1
  193. package/package/components/copilot/StepGenQuick.svelte +15 -16
  194. package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
  195. package/package/components/copilot/StepInputGen.svelte +50 -36
  196. package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
  197. package/package/components/copilot/StepInputsGen.svelte +18 -19
  198. package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
  199. package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
  200. package/package/components/copilot/autocomplete/request.js +1 -1
  201. package/package/components/copilot/chat/AIChat.svelte +2 -1
  202. package/package/components/copilot/chat/AIChatManager.svelte.js +5 -3
  203. package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
  204. package/package/components/copilot/chat/ProviderModelSelector.svelte +11 -10
  205. package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
  206. package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
  207. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -2
  208. package/package/components/copilot/chat/script/core.d.ts +4 -4
  209. package/package/components/copilot/chat/script/core.js +95 -35
  210. package/package/components/copilot/chat/shared.js +2 -1
  211. package/package/components/copilot/lib.d.ts +1 -0
  212. package/package/components/copilot/lib.js +7 -3
  213. package/package/components/custom_ui.d.ts +1 -0
  214. package/package/components/details/DetailPageLayout.svelte +3 -2
  215. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  216. package/package/components/flows/CreateActionsFlow.svelte +1 -1
  217. package/package/components/flows/FlowChatInterface.svelte +404 -0
  218. package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
  219. package/package/components/flows/FlowChatMessage.svelte +41 -0
  220. package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
  221. package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
  222. package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
  223. package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
  224. package/package/components/flows/FlowModuleIcon.svelte +10 -10
  225. package/package/components/flows/FlowProgressBar.svelte +16 -16
  226. package/package/components/flows/FlowProgressBar.svelte.d.ts +7 -22
  227. package/package/components/flows/common/FlowCard.svelte +10 -2
  228. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  229. package/package/components/flows/common/FlowCardHeader.svelte +2 -1
  230. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  231. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
  232. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
  233. package/package/components/flows/content/FlowInput.svelte +381 -259
  234. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  235. package/package/components/flows/content/FlowInputsQuick.svelte +56 -34
  236. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +3 -2
  237. package/package/components/flows/content/FlowModuleComponent.svelte +29 -11
  238. package/package/components/flows/flowInfers.d.ts +60 -0
  239. package/package/components/flows/flowInfers.js +72 -40
  240. package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +5 -1
  241. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
  242. package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
  243. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  244. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  245. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -1
  246. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  247. package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
  248. package/package/components/flows/map/FlowStickyNode.svelte +2 -2
  249. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  250. package/package/components/flows/map/InsertModuleButton.svelte +8 -15
  251. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -4
  252. package/package/components/flows/map/InsertModuleInner.svelte +19 -20
  253. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
  254. package/package/components/flows/map/MapItem.svelte +1 -1
  255. package/package/components/flows/map/VirtualItem.svelte +1 -2
  256. package/package/components/flows/pickers/PickHubScriptQuick.svelte +43 -52
  257. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +2 -1
  258. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +41 -26
  259. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -0
  260. package/package/components/flows/propPicker/OutputPicker.svelte +2 -0
  261. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
  262. package/package/components/git_sync/DetectionFlow.svelte +33 -44
  263. package/package/components/git_sync/DetectionFlow.svelte.d.ts +1 -0
  264. package/package/components/git_sync/GitSyncContext.svelte.d.ts +22 -0
  265. package/package/components/git_sync/GitSyncContext.svelte.js +145 -5
  266. package/package/components/git_sync/GitSyncModeDisplay.svelte +14 -0
  267. package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +9 -0
  268. package/package/components/git_sync/GitSyncRepositoryCard.svelte +365 -253
  269. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +10 -1
  270. package/package/components/git_sync/GitSyncSection.svelte +134 -14
  271. package/package/components/git_sync/PullWorkspaceModal.svelte +24 -32
  272. package/package/components/git_sync/PushWorkspaceModal.svelte +24 -32
  273. package/package/components/graph/FlowGraphV2.svelte +2 -1
  274. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  275. package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
  276. package/package/components/graph/graphBuilder.svelte.js +1 -0
  277. package/package/components/graph/model.d.ts +5 -5
  278. package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
  279. package/package/components/graph/renderers/edges/EmptyEdge.svelte +3 -10
  280. package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +4 -18
  281. package/package/components/graph/renderers/nodes/AIToolNode.svelte +2 -2
  282. package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
  283. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -10
  284. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
  285. package/package/components/home/ItemsList.svelte +1 -1
  286. package/package/components/instanceSettings.js +17 -0
  287. package/package/components/jobs/JobProgressBar.svelte +27 -21
  288. package/package/components/jobs/JobProgressBar.svelte.d.ts +9 -24
  289. package/package/components/meltComponents/MenuSingleItem.svelte +3 -8
  290. package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +0 -3
  291. package/package/components/meltComponents/Popover.svelte +3 -2
  292. package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
  293. package/package/components/meltComponents/Tooltip.svelte +1 -1
  294. package/package/components/progressBar/ProgressBar.svelte +39 -53
  295. package/package/components/progressBar/ProgressBar.svelte.d.ts +11 -26
  296. package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
  297. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
  298. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
  299. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
  300. package/package/components/raw_apps/RawAppEditor.svelte +6 -7
  301. package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
  302. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
  303. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
  304. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
  305. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
  306. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
  307. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  308. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
  309. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
  310. package/package/components/raw_apps/RawAppPreview.svelte +3 -7
  311. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
  312. package/package/components/raw_apps/utils.d.ts +1 -1
  313. package/package/components/raw_apps/utils.js +3 -3
  314. package/package/components/runs/JobsLoader.svelte +1 -1
  315. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  316. package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -1
  317. package/package/components/runs/RunOption.svelte +2 -2
  318. package/package/components/runs/RunsFilter.svelte +15 -12
  319. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  320. package/package/components/schema/AddPropertyV2.svelte +7 -4
  321. package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
  322. package/package/components/schema/FlowPropertyEditor.svelte +9 -2
  323. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  324. package/package/components/schema/PropertyEditor.svelte +22 -26
  325. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  326. package/package/components/schema/SchemaFormDND.svelte +3 -2
  327. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  328. package/package/components/select/DraggableTags.svelte +2 -2
  329. package/package/components/select/MultiSelect.svelte +15 -9
  330. package/package/components/select/MultiSelect.svelte.d.ts +1 -0
  331. package/package/components/select/Select.svelte +12 -5
  332. package/package/components/select/Select.svelte.d.ts +11 -0
  333. package/package/components/select/SelectDropdown.svelte +98 -46
  334. package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
  335. package/package/components/select/utils.svelte.js +2 -0
  336. package/package/components/settings/CreateToken.svelte +76 -49
  337. package/package/components/settings/WorkspaceUserSettings.svelte +111 -17
  338. package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
  339. package/package/components/sidebar/Linkify.svelte +14 -0
  340. package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
  341. package/package/components/sidebar/MenuLink.svelte +2 -1
  342. package/package/components/sidebar/MenuLink.svelte.d.ts +1 -0
  343. package/package/components/sidebar/SidebarContent.svelte +27 -27
  344. package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
  345. package/package/components/table/Cell.svelte +7 -14
  346. package/package/components/table/Cell.svelte.d.ts +13 -35
  347. package/package/components/table/tableUtils.js +1 -1
  348. package/package/components/text_input/TextInput.svelte +30 -0
  349. package/package/components/text_input/TextInput.svelte.d.ts +17 -0
  350. package/package/components/triggers/AddTriggersButton.svelte +1 -0
  351. package/package/components/triggers/TriggersEditor.svelte +11 -1
  352. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  353. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  354. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +28 -5
  355. package/package/components/triggers/gcp/utils.js +1 -0
  356. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +1 -0
  357. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  358. package/package/components/triggers/triggers.svelte.js +8 -4
  359. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +143 -63
  360. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -0
  361. package/package/components/triggers/websocket/utils.js +1 -0
  362. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
  363. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
  364. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
  365. package/package/components/tutorials/Tutorial.svelte +9 -0
  366. package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
  367. package/package/components/tutorials/app/AppTutorial.svelte +41 -57
  368. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
  369. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
  370. package/package/components/tutorials/utils.js +2 -154
  371. package/package/components/vscode.js +16 -8
  372. package/package/components/workspaceSettings/AISettings.svelte +12 -5
  373. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  374. package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
  375. package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
  376. package/package/components/workspaceSettings/ModelTokenLimits.svelte +165 -0
  377. package/package/components/workspaceSettings/ModelTokenLimits.svelte.d.ts +8 -0
  378. package/package/components/workspaceSettings/StorageSettings.svelte +147 -77
  379. package/package/editorUtils.d.ts +1 -1
  380. package/package/gen/core/OpenAPI.js +1 -1
  381. package/package/gen/schemas.gen.d.ts +223 -17
  382. package/package/gen/schemas.gen.js +226 -17
  383. package/package/gen/services.gen.d.ts +221 -27
  384. package/package/gen/services.gen.js +440 -48
  385. package/package/gen/types.gen.d.ts +1067 -218
  386. package/package/hubPaths.json +2 -1
  387. package/package/script_helpers.js +5 -5
  388. package/package/services/JobManager.js +14 -9
  389. package/package/stores.d.ts +4 -12
  390. package/package/stores.js +5 -65
  391. package/package/timelineCompute.svelte.d.ts +21 -0
  392. package/package/timelineCompute.svelte.js +113 -0
  393. package/package/toast.js +2 -1
  394. package/package/utils.d.ts +16 -8
  395. package/package/utils.js +65 -12
  396. package/package/workspace_settings.d.ts +13 -8
  397. package/package/workspace_settings.js +46 -11
  398. package/package.json +4 -4
  399. /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
@@ -14,7 +14,8 @@
14
14
  "gitSync_12": "hub/19798/sync-script-to-git-repo-windmill",
15
15
  "gitSync_13": "hub/19801/sync-script-to-git-repo-windmill",
16
16
  "gitSync_14": "hub/19803/sync-script-to-git-repo-windmill",
17
- "gitSync": "hub/19816/sync-script-to-git-repo-windmill",
17
+ "gitSync_15": "hub/19816/sync-script-to-git-repo-windmill",
18
+ "gitSync": "hub/19818/sync-script-to-git-repo-windmill",
18
19
  "gitSyncTest_0": "hub/9073/git-repo-test-read-write-windmill",
19
20
  "gitSyncTest_1": "hub/11499/git-repo-test-read-write-windmill",
20
21
  "gitSyncTest_2": "hub/11667/git-repo-test-read-write-windmill",
@@ -488,7 +488,7 @@ const FETCH_INIT_CODE = `export async function main(
488
488
  return await fetch(url, requestOptions)
489
489
  .then((res) => res.json())
490
490
  .catch(() => {
491
- throw new Error('An error occured')
491
+ throw new Error('An error occurred')
492
492
  })
493
493
  }`;
494
494
  const BASH_INIT_CODE = `# shellcheck shell=bash
@@ -938,7 +938,7 @@ docker pull $IMAGE
938
938
  # if using the 'docker' mode, name it with $WM_JOB_ID for windmill to monitor it
939
939
  docker run --name $WM_JOB_ID -it -d $IMAGE $COMMAND
940
940
  `;
941
- const POWERSHELL_INIT_CODE = `param($Msg, $Dflt = "default value", [int]$Nb = 3)
941
+ const POWERSHELL_INIT_CODE = `param($Msg, [string[]]$Names, [PSCustomObject]$Obj, $Dflt = "default value", [int]$Nb = 3)
942
942
 
943
943
  # Import-Module MyModule
944
944
 
@@ -1201,8 +1201,8 @@ export const INITIAL_CODE = {
1201
1201
  },
1202
1202
  ruby: {
1203
1203
  script: RUBY_INIT_CODE
1204
- },
1205
- // for related places search: ADD_NEW_LANG
1204
+ }
1205
+ // for related places search: ADD_NEW_LANG
1206
1206
  };
1207
1207
  export function isInitialCode(content) {
1208
1208
  for (const lang of Object.values(INITIAL_CODE)) {
@@ -1330,7 +1330,7 @@ export function initialCode(language, kind, subkind, templateScript) {
1330
1330
  }
1331
1331
  else if (language == 'ruby') {
1332
1332
  return INITIAL_CODE.ruby.script;
1333
- // for related places search: ADD_NEW_LANG
1333
+ // for related places search: ADD_NEW_LANG
1334
1334
  }
1335
1335
  else if (language == 'bun' || language == 'bunnative') {
1336
1336
  if (kind == 'trigger') {
@@ -41,15 +41,22 @@ export class JobManager {
41
41
  });
42
42
  try {
43
43
  onProgress?.({ status: 'running' });
44
- const result = await tryEvery({
44
+ let finalResult = undefined;
45
+ await tryEvery({
45
46
  tryCode: async () => {
46
47
  if (controller.signal.aborted) {
47
48
  throw new Error('Job was cancelled');
48
49
  }
49
- const jobResult = await JobService.getCompletedJob({
50
- workspace,
51
- id: jobId
52
- });
50
+ let jobResult;
51
+ try {
52
+ jobResult = await JobService.getCompletedJob({
53
+ workspace,
54
+ id: jobId
55
+ });
56
+ }
57
+ catch (error) {
58
+ throw error;
59
+ }
53
60
  const success = !!jobResult.success;
54
61
  const status = {
55
62
  status: success ? 'success' : 'failure',
@@ -57,9 +64,7 @@ export class JobManager {
57
64
  error: success ? undefined : jobResult.result?.error?.message || 'Job failed'
58
65
  };
59
66
  onProgress?.(status);
60
- if (!success) {
61
- throw new Error(status.error);
62
- }
67
+ finalResult = jobResult.result;
63
68
  return jobResult.result;
64
69
  },
65
70
  timeoutCode: async () => {
@@ -79,7 +84,7 @@ export class JobManager {
79
84
  interval,
80
85
  timeout
81
86
  });
82
- return result;
87
+ return finalResult;
83
88
  }
84
89
  finally {
85
90
  this.activeJobs.delete(jobId);
@@ -1,6 +1,7 @@
1
1
  import { type Readable } from 'svelte/store';
2
2
  import type { IntrospectionQuery } from 'graphql';
3
- import { type AIConfig, type AIProviderModel, type OperatorSettings, type TokenResponse, type UserWorkspaceList, type WorkspaceDefaultScripts } from './gen';
3
+ import { type OperatorSettings, type TokenResponse, type UserWorkspaceList, type WorkspaceDefaultScripts } from './gen';
4
+ import { type StateStore } from './utils';
4
5
  export interface UserExt {
5
6
  email: string;
6
7
  name?: string;
@@ -21,6 +22,7 @@ export interface UserWorkspace {
21
22
  color?: string;
22
23
  operator_settings?: OperatorSettings;
23
24
  parent_workspace_id?: string | null;
25
+ disabled: boolean;
24
26
  }
25
27
  export declare const tutorialsToDo: import("svelte/store").Writable<number[]>;
26
28
  export declare const globalEmailInvite: import("svelte/store").Writable<string>;
@@ -44,16 +46,6 @@ export declare const devopsRole: import("svelte/store").Writable<string | false
44
46
  export declare const lspTokenStore: import("svelte/store").Writable<string | undefined>;
45
47
  export declare const hubBaseUrlStore: import("svelte/store").Writable<string>;
46
48
  export declare const userWorkspaces: Readable<Array<UserWorkspace>>;
47
- export declare const copilotInfo: import("svelte/store").Writable<{
48
- enabled: boolean;
49
- codeCompletionModel?: AIProviderModel;
50
- defaultModel?: AIProviderModel;
51
- aiModels: AIProviderModel[];
52
- customPrompts?: Record<string, string>;
53
- }>;
54
- export declare function loadCopilot(workspace: string): Promise<void>;
55
- export declare function setCopilotInfo(aiConfig: AIConfig): void;
56
- export declare function getCurrentModel(): AIProviderModel;
57
49
  export declare const codeCompletionLoading: import("svelte/store").Writable<boolean>;
58
50
  export declare const metadataCompletionEnabled: import("svelte/store").Writable<boolean>;
59
51
  export declare const stepInputCompletionEnabled: import("svelte/store").Writable<boolean>;
@@ -67,7 +59,6 @@ export declare const formatOnSave: import("svelte/store").Writable<boolean>;
67
59
  export declare const vimMode: import("svelte/store").Writable<boolean>;
68
60
  export declare const relativeLineNumbers: import("svelte/store").Writable<boolean>;
69
61
  export declare const codeCompletionSessionEnabled: import("svelte/store").Writable<boolean>;
70
- export declare const copilotSessionModel: import("svelte/store").Writable<AIProviderModel | undefined>;
71
62
  export declare const usedTriggerKinds: import("svelte/store").Writable<string[]>;
72
63
  type SQLBaseSchema = {
73
64
  [schemaKey: string]: {
@@ -98,5 +89,6 @@ export declare const dbSchemas: import("svelte/store").Writable<Partial<Record<s
98
89
  export declare const instanceSettingsSelectedTab: import("svelte/store").Writable<string>;
99
90
  export declare const isCriticalAlertsUIOpen: import("svelte/store").Writable<boolean>;
100
91
  export declare const workspaceColor: Readable<string | null | undefined>;
92
+ export declare const isCurrentlyInTutorial: StateStore<boolean>;
101
93
  export declare function getFlatTableNamesFromSchema(dbSchema: DBSchema | undefined): string[];
102
94
  export {};
package/package/stores.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { BROWSER } from 'esm-env';
2
- import { derived, get, writable } from 'svelte/store';
2
+ import { derived, writable } from 'svelte/store';
3
3
  import { WorkspaceService } from './gen';
4
4
  import { getLocalSetting } from './utils';
5
- import { workspaceAIClients } from './components/copilot/lib';
5
+ import { createState } from './svelte5Utils.svelte';
6
6
  const persistedWorkspace = BROWSER && getWorkspace();
7
7
  function getWorkspace() {
8
8
  try {
@@ -49,7 +49,8 @@ export const userWorkspaces = derived([usersWorkspaceStore, superadmin], ([store
49
49
  name: 'Admins',
50
50
  username: 'superadmin',
51
51
  color: undefined,
52
- operator_settings: undefined
52
+ operator_settings: undefined,
53
+ disabled: false
53
54
  }
54
55
  ];
55
56
  }
@@ -57,60 +58,6 @@ export const userWorkspaces = derived([usersWorkspaceStore, superadmin], ([store
57
58
  return originalWorkspaces;
58
59
  }
59
60
  });
60
- export const copilotInfo = writable({
61
- enabled: false,
62
- codeCompletionModel: undefined,
63
- defaultModel: undefined,
64
- aiModels: [],
65
- customPrompts: {}
66
- });
67
- export async function loadCopilot(workspace) {
68
- workspaceAIClients.init(workspace);
69
- try {
70
- const info = await WorkspaceService.getCopilotInfo({ workspace });
71
- setCopilotInfo(info);
72
- }
73
- catch (err) {
74
- setCopilotInfo({});
75
- console.error('Could not get copilot info', err);
76
- }
77
- }
78
- export function setCopilotInfo(aiConfig) {
79
- if (Object.keys(aiConfig.providers ?? {}).length > 0) {
80
- const aiModels = Object.entries(aiConfig.providers ?? {}).flatMap(([provider, providerConfig]) => providerConfig.models.map((m) => ({ model: m, provider: provider })));
81
- copilotSessionModel.update((model) => {
82
- if (model &&
83
- !aiModels.some((m) => m.model === model.model && m.provider === model.provider)) {
84
- return undefined;
85
- }
86
- return model;
87
- });
88
- copilotInfo.set({
89
- enabled: true,
90
- codeCompletionModel: aiConfig.code_completion_model,
91
- defaultModel: aiConfig.default_model,
92
- aiModels: aiModels,
93
- customPrompts: aiConfig.custom_prompts ?? {}
94
- });
95
- }
96
- else {
97
- copilotSessionModel.set(undefined);
98
- copilotInfo.set({
99
- enabled: false,
100
- codeCompletionModel: undefined,
101
- defaultModel: undefined,
102
- aiModels: [],
103
- customPrompts: {}
104
- });
105
- }
106
- }
107
- export function getCurrentModel() {
108
- const model = get(copilotSessionModel) ?? get(copilotInfo).defaultModel ?? get(copilotInfo).aiModels[0];
109
- if (!model) {
110
- throw new Error('No model selected');
111
- }
112
- return model;
113
- }
114
61
  export const codeCompletionLoading = writable(false);
115
62
  export const metadataCompletionEnabled = writable(true);
116
63
  export const stepInputCompletionEnabled = writable(true);
@@ -124,14 +71,6 @@ export const formatOnSave = writable(getLocalSetting(FORMAT_ON_SAVE_SETTING_NAME
124
71
  export const vimMode = writable(getLocalSetting(VIM_MODE_SETTING_NAME) == 'true');
125
72
  export const relativeLineNumbers = writable(getLocalSetting(RELATIVE_LINE_NUMBERS_SETTING_NAME) == 'true');
126
73
  export const codeCompletionSessionEnabled = writable(getLocalSetting(CODE_COMPLETION_SETTING_NAME) != 'false');
127
- const sessionModel = getLocalSetting(COPILOT_SESSION_MODEL_SETTING_NAME);
128
- const sessionProvider = getLocalSetting(COPILOT_SESSION_PROVIDER_SETTING_NAME);
129
- export const copilotSessionModel = writable(sessionModel && sessionProvider
130
- ? {
131
- model: sessionModel,
132
- provider: sessionProvider
133
- }
134
- : undefined);
135
74
  export const usedTriggerKinds = writable([]);
136
75
  export const SQLSchemaLanguages = [
137
76
  'mysql',
@@ -165,6 +104,7 @@ export const workspaceColor = derived([workspaceStore, usersWorkspaceStore, supe
165
104
  set(superadminColor);
166
105
  });
167
106
  });
107
+ export const isCurrentlyInTutorial = createState({ val: false });
168
108
  export function getFlatTableNamesFromSchema(dbSchema) {
169
109
  const schema = dbSchema?.schema ?? {};
170
110
  const tableNames = [];
@@ -0,0 +1,21 @@
1
+ import type { DurationStatus } from './components/graph/model';
2
+ export type TimelineItems = Record<string, Array<{
3
+ created_at?: number;
4
+ started_at?: number;
5
+ duration_ms?: number;
6
+ id: string;
7
+ }>>;
8
+ export declare class TimelineCompute {
9
+ #private;
10
+ min: number | undefined;
11
+ max: number | undefined;
12
+ total: number | undefined;
13
+ items: TimelineItems | undefined;
14
+ now: number;
15
+ constructor(flowModules: string[], durationStatuses: Record<string, DurationStatus>, flowDone?: boolean);
16
+ reset(): void;
17
+ updateInputs(flowModules: string[], durationStatuses: Record<string, DurationStatus>, flowDone?: boolean): void;
18
+ setFlowDone(flowDone: boolean): void;
19
+ destroy(): void;
20
+ private computeItems;
21
+ }
@@ -0,0 +1,113 @@
1
+ import { debounce, readFieldsRecursively } from './utils';
2
+ import { untrack } from 'svelte';
3
+ import { getDbClockNow } from './forLater';
4
+ export class TimelineCompute {
5
+ #flowModules = $state([]);
6
+ #durationStatuses = $state({});
7
+ #flowDone = $state(false);
8
+ #interval = undefined;
9
+ #debounceInstance;
10
+ min = $state(undefined);
11
+ max = $state(undefined);
12
+ total = $state(undefined);
13
+ items = $state(undefined);
14
+ now = $state(getDbClockNow().getTime());
15
+ constructor(flowModules, durationStatuses, flowDone = false) {
16
+ this.#flowModules = flowModules;
17
+ this.#durationStatuses = durationStatuses;
18
+ this.#flowDone = flowDone;
19
+ this.#debounceInstance = debounce(() => this.computeItems(this.#durationStatuses), 30);
20
+ // Set up reactivity using $effect
21
+ $effect(() => {
22
+ readFieldsRecursively(this.#durationStatuses);
23
+ this.#flowDone != undefined &&
24
+ this.#durationStatuses &&
25
+ untrack(() => this.#debounceInstance.debounced());
26
+ });
27
+ // Set up interval for updating now and total for running jobs
28
+ this.#interval = setInterval(() => {
29
+ if (!this.max) {
30
+ this.now = getDbClockNow().getTime();
31
+ }
32
+ if (this.min && (!this.max || this.total == undefined)) {
33
+ this.total = this.max ? this.max - this.min : Math.max(this.now - this.min, 2000);
34
+ }
35
+ }, 30);
36
+ }
37
+ reset() {
38
+ this.min = undefined;
39
+ this.max = undefined;
40
+ this.#flowDone = false;
41
+ this.items = this.computeItems(this.#durationStatuses);
42
+ }
43
+ updateInputs(flowModules, durationStatuses, flowDone = false) {
44
+ this.#flowModules = flowModules;
45
+ this.#durationStatuses = durationStatuses;
46
+ this.#flowDone = flowDone;
47
+ }
48
+ setFlowDone(flowDone) {
49
+ this.#flowDone = flowDone;
50
+ }
51
+ destroy() {
52
+ if (this.#interval) {
53
+ clearInterval(this.#interval);
54
+ }
55
+ this.#debounceInstance.clearDebounce();
56
+ }
57
+ computeItems(durationStatuses) {
58
+ let nmin = undefined;
59
+ let nmax = undefined;
60
+ let isStillRunning = false;
61
+ let cnt = 0;
62
+ let nitems = {};
63
+ Object.entries(durationStatuses).forEach(([k, o]) => {
64
+ Object.values(o.byJob).forEach((v) => {
65
+ cnt++;
66
+ if (v.started_at) {
67
+ if (!nmin) {
68
+ nmin = v.started_at;
69
+ }
70
+ else {
71
+ nmin = Math.min(nmin, v.started_at);
72
+ }
73
+ }
74
+ if (!this.#flowDone && v.duration_ms == undefined) {
75
+ isStillRunning = true;
76
+ }
77
+ if (!isStillRunning) {
78
+ if (v.started_at && v.duration_ms != undefined) {
79
+ let lmax = v.started_at + v.duration_ms;
80
+ if (!nmax) {
81
+ nmax = lmax;
82
+ }
83
+ else {
84
+ nmax = Math.max(nmax, lmax);
85
+ }
86
+ }
87
+ }
88
+ });
89
+ let arr = Object.entries(o.byJob).map(([k, v]) => ({ ...v, id: k }));
90
+ arr.sort((x, y) => {
91
+ if (!x.started_at) {
92
+ return -1;
93
+ }
94
+ else if (!y.started_at) {
95
+ return 1;
96
+ }
97
+ else {
98
+ return x.started_at - y.started_at;
99
+ }
100
+ });
101
+ nitems[k] = arr;
102
+ });
103
+ this.items = nitems;
104
+ this.min = nmin;
105
+ this.max =
106
+ isStillRunning || (cnt < this.#flowModules.length && !this.#flowDone) ? undefined : nmax;
107
+ if (this.max && this.min) {
108
+ this.total = this.max - this.min;
109
+ this.total = Math.max(this.total, 2000);
110
+ }
111
+ return nitems;
112
+ }
113
+ }
package/package/toast.js CHANGED
@@ -30,7 +30,8 @@ export function sendUserToast(message, error = false, actions = [], errorMessage
30
30
  initial: 0,
31
31
  theme: {
32
32
  '--toastPadding': '0',
33
- '--toastMsgPadding': '0'
33
+ '--toastMsgPadding': '0',
34
+ '--toastBackground': 'var(--color-surface)'
34
35
  }
35
36
  });
36
37
  }
@@ -1,6 +1,6 @@
1
1
  import { type UserExt } from './stores';
2
2
  import { sendUserToast } from './toast';
3
- import type { Job, Script, ScriptLang } from './gen';
3
+ import type { Job, RunnableKind, Script, ScriptLang } from './gen';
4
4
  import type { EnumType, SchemaProperty } from './common';
5
5
  import type { Schema } from './common';
6
6
  export { sendUserToast };
@@ -45,6 +45,7 @@ export declare function displaySize(sizeInBytes: number | undefined): string | u
45
45
  export declare function msToSec(ms: number | undefined, maximumFractionDigits?: number): string;
46
46
  export declare function removeTriggerKindIfUnused(length: number, triggerKind: TriggerKind, usedTriggerKinds: string[]): string[];
47
47
  export declare function msToReadableTime(ms: number | undefined, maximumFractionDigits?: number): string;
48
+ export declare function msToReadableTimeShort(ms: number | undefined, maximumFractionDigits?: number): string;
48
49
  export declare function getToday(): Date;
49
50
  export declare function truncateHash(hash: string): string;
50
51
  export declare function sleep(ms: number): Promise<void>;
@@ -55,6 +56,7 @@ interface ClickOutsideOptions {
55
56
  exclude?: (() => Promise<HTMLElement[]>) | HTMLElement[] | undefined;
56
57
  stopPropagation?: boolean;
57
58
  customEventName?: string;
59
+ eventToListenName?: 'click' | 'pointerdown';
58
60
  onClickOutside?: (event: MouseEvent) => void;
59
61
  }
60
62
  export declare function clickOutside(node: Node, options?: ClickOutsideOptions | boolean): {
@@ -100,13 +102,13 @@ export declare function isString(value: any): value is string | String;
100
102
  export type InputCat = 'string' | 'email' | 'number' | 'boolean' | 'list' | 'resource-object' | 'enum' | 'date' | 'base64' | 'resource-string' | 'object' | 'sql' | 'yaml' | 'currency' | 'oneOf' | 'dynamic' | 'json-schema' | 'ai-provider';
101
103
  export declare namespace DynamicInput {
102
104
  type HelperScript = {
103
- type: 'inline';
104
- path?: string;
105
- lang: Script['language'];
106
- code: string;
105
+ source: 'deployed';
106
+ path: string;
107
+ runnable_kind: RunnableKind;
107
108
  } | {
108
- type: 'hash';
109
- hash: string;
109
+ source: 'inline';
110
+ code: string;
111
+ lang: ScriptLang;
110
112
  };
111
113
  const generatePythonFnTemplate: (functionName: string) => string;
112
114
  const generateJsFnTemplate: (functionName: string) => string;
@@ -153,7 +155,7 @@ export declare function tryEvery({ tryCode, timeoutCode, interval, timeout }: {
153
155
  interval: number;
154
156
  timeout: number;
155
157
  }): Promise<void>;
156
- export declare function roughSizeOfObject(object: object | string): number;
158
+ export declare function roughSizeOfObject(object: object | string | any): number;
157
159
  export type Value = {
158
160
  language?: Script['language'];
159
161
  content?: string;
@@ -230,3 +232,9 @@ export declare function isS3Uri(uri: string): uri is S3Uri;
230
232
  export declare function uniqueBy<T>(array: T[], key: (t: T) => any): T[];
231
233
  export declare function pruneNullishArray<T>(array: (T | null | undefined)[]): T[];
232
234
  export declare function assert(msg: string, condition: boolean, value?: any): void;
235
+ export declare function createCache<Keys extends Record<string, any>, T, InitialKeys extends Keys = Keys>(compute: (keys: Keys) => T, params?: {
236
+ maxSize?: number;
237
+ initial?: InitialKeys;
238
+ invalidateMs?: number;
239
+ }): (keys: Keys) => T;
240
+ export declare function wait(ms: number): Promise<unknown>;
package/package/utils.js CHANGED
@@ -220,6 +220,26 @@ export function msToReadableTime(ms, maximumFractionDigits) {
220
220
  return `${msToSec(ms, maximumFractionDigits)}s`;
221
221
  }
222
222
  }
223
+ export function msToReadableTimeShort(ms, maximumFractionDigits) {
224
+ if (ms === undefined)
225
+ return '?';
226
+ const seconds = Math.floor(ms / 1000);
227
+ const minutes = Math.floor(seconds / 60);
228
+ const hours = Math.floor(minutes / 60);
229
+ const days = Math.floor(hours / 24);
230
+ if (days > 0) {
231
+ return `${days}d`;
232
+ }
233
+ else if (hours > 0) {
234
+ return `${hours}h`;
235
+ }
236
+ else if (minutes > 0) {
237
+ return `${minutes}m`;
238
+ }
239
+ else {
240
+ return `${msToSec(ms, maximumFractionDigits)}s`;
241
+ }
242
+ }
223
243
  export function getToday() {
224
244
  var today = new Date();
225
245
  return today;
@@ -286,13 +306,14 @@ export function clickOutside(node, options) {
286
306
  }
287
307
  };
288
308
  const capture = typeof options === 'boolean' ? options : (options?.capture ?? true);
289
- document.addEventListener('click', handleClick, capture ?? true);
309
+ const eventToListenName = (typeof options === 'object' && options.eventToListenName) || 'click';
310
+ document.addEventListener(eventToListenName, handleClick, capture ?? true);
290
311
  return {
291
312
  update(newOptions) {
292
313
  options = newOptions;
293
314
  },
294
315
  destroy() {
295
- document.removeEventListener('click', handleClick, capture ?? true);
316
+ document.removeEventListener(eventToListenName, handleClick, capture ?? true);
296
317
  }
297
318
  };
298
319
  }
@@ -890,14 +911,14 @@ export async function tryEvery({ tryCode, timeoutCode, interval, timeout }) {
890
911
  }
891
912
  }
892
913
  export function roughSizeOfObject(object) {
893
- if (typeof object == 'string') {
914
+ if (typeof object === 'string') {
894
915
  return object.length * 2;
895
916
  }
896
- var objectList = [];
897
- var stack = [object];
898
- var bytes = 0;
917
+ const visited = new Set();
918
+ const stack = [object];
919
+ let bytes = 0;
899
920
  while (stack.length) {
900
- let value = stack.pop();
921
+ const value = stack.pop();
901
922
  if (typeof value === 'boolean') {
902
923
  bytes += 4;
903
924
  }
@@ -907,11 +928,11 @@ export function roughSizeOfObject(object) {
907
928
  else if (typeof value === 'number') {
908
929
  bytes += 8;
909
930
  }
910
- else if (typeof value === 'object' && objectList.indexOf(value) === -1) {
911
- objectList.push(value);
912
- for (var i in value) {
913
- bytes += 2 * i.length;
914
- stack.push(value[i]);
931
+ else if (typeof value === 'object' && value !== null && !visited.has(value)) {
932
+ visited.add(value);
933
+ for (const key in value) {
934
+ bytes += 2 * key.length;
935
+ stack.push(value[key]);
915
936
  }
916
937
  }
917
938
  }
@@ -1307,3 +1328,35 @@ export function assert(msg, condition, value) {
1307
1328
  console.error(m);
1308
1329
  }
1309
1330
  }
1331
+ export function createCache(compute, params) {
1332
+ let cache = new Map();
1333
+ const maxSize = params?.maxSize ?? 15;
1334
+ if (params?.initial) {
1335
+ let key = JSON.stringify(params.initial, Object.keys(params.initial).sort());
1336
+ let value = compute(params.initial);
1337
+ cache.set(key, { value, timestamp: Date.now() });
1338
+ }
1339
+ return (keys) => {
1340
+ if (typeof params?.invalidateMs === 'number') {
1341
+ for (const [key, entry] of cache.entries()) {
1342
+ if (Date.now() - entry.timestamp > params.invalidateMs) {
1343
+ cache.delete(key);
1344
+ }
1345
+ }
1346
+ }
1347
+ let key = JSON.stringify(keys, Object.keys(keys).sort());
1348
+ if (!cache.get(key)) {
1349
+ let value = compute(keys);
1350
+ cache.set(key, { value, timestamp: Date.now() });
1351
+ if (cache.size > maxSize) {
1352
+ // remove the oldest entry (first inserted)
1353
+ const oldestKey = cache.keys().next().value;
1354
+ cache.delete(oldestKey);
1355
+ }
1356
+ }
1357
+ return cache.get(key).value;
1358
+ };
1359
+ }
1360
+ export async function wait(ms) {
1361
+ return new Promise((resolve) => setTimeout(() => resolve(undefined), ms));
1362
+ }
@@ -1,15 +1,20 @@
1
1
  import type { GetSettingsResponse, LargeFileStorage } from './gen';
2
- type s3type = 's3' | 'azure_blob' | 's3_aws_oidc' | 'azure_workload_identity' | 'gcloud_storage';
3
- type s3ResourceSettingsItem = {
4
- resourceType: s3type;
2
+ type S3type = 's3' | 'azure_blob' | 's3_aws_oidc' | 'azure_workload_identity' | 'gcloud_storage';
3
+ export type S3ResourceSettingsItem = {
4
+ resourceType: S3type;
5
5
  resourcePath: string | undefined;
6
6
  publicResource: boolean | undefined;
7
+ advancedPermissions?: {
8
+ pattern: string;
9
+ allow: ('read' | 'write' | 'delete' | 'list')[];
10
+ }[];
7
11
  };
8
- export type S3ResourceSettings = s3ResourceSettingsItem & {
9
- secondaryStorage: [string, s3ResourceSettingsItem][] | undefined;
12
+ export type S3ResourceSettings = S3ResourceSettingsItem & {
13
+ secondaryStorage: [string, S3ResourceSettingsItem][] | undefined;
10
14
  };
11
- export declare function convertBackendSettingsToFrontendSettings(large_file_storage: GetSettingsResponse['large_file_storage']): S3ResourceSettings;
12
- export declare function convertBackendSettingsToFrontendSettingsItem(large_file_storage: GetSettingsResponse['large_file_storage']): s3ResourceSettingsItem;
15
+ export declare function convertBackendSettingsToFrontendSettings(large_file_storage: GetSettingsResponse['large_file_storage'], isEnterprise: boolean): S3ResourceSettings;
16
+ export declare function convertBackendSettingsToFrontendSettingsItem(large_file_storage: GetSettingsResponse['large_file_storage'], isEnterprise: boolean): S3ResourceSettingsItem;
13
17
  export declare function convertFrontendToBackendSetting(s3ResourceSettings: S3ResourceSettings): LargeFileStorage | undefined;
14
- export declare function convertFrontendToBackendettingsItem(s3ResourceSettings: s3ResourceSettingsItem): LargeFileStorage | undefined;
18
+ export declare function convertFrontendToBackendettingsItem(s3ResourceSettings: S3ResourceSettingsItem): LargeFileStorage | undefined;
19
+ export declare function defaultS3AdvancedPermissions(isEnterprise: boolean): S3ResourceSettingsItem['advancedPermissions'];
15
20
  export {};