windmill-components 1.511.1 → 1.531.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.
- package/package/components/AIAgentLogViewer.svelte +123 -0
- package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
- package/package/components/AppConnectInner.svelte +10 -10
- package/package/components/AppConnectInner.svelte.d.ts +1 -1
- package/package/components/ArgInput.svelte +42 -14
- package/package/components/ArgInput.svelte.d.ts +2 -10
- package/package/components/AssignableTagsInner.svelte +5 -0
- package/package/components/AuthSettings.svelte +4 -2
- package/package/components/AuthSettings.svelte.d.ts +1 -0
- package/package/components/AutoscalingConfigEditor.svelte +76 -2
- package/package/components/DBManagerDrawer.svelte +154 -151
- package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
- package/package/components/DBTable.svelte +3 -3
- package/package/components/DBTable.svelte.d.ts +1 -0
- package/package/components/DBTableEditor.svelte +7 -7
- package/package/components/DBTableEditor.svelte.d.ts +1 -1
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/Dev.svelte +12 -28
- package/package/components/DiffEditor.svelte +6 -3
- package/package/components/DiffEditor.svelte.d.ts +1 -0
- package/package/components/DisplayResult.svelte +46 -14
- package/package/components/DisplayResult.svelte.d.ts +5 -1
- package/package/components/DynSelect.svelte +58 -34
- package/package/components/DynSelect.svelte.d.ts +3 -11
- package/package/components/EditableSchemaForm.svelte +131 -8
- package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
- package/package/components/Editor.svelte +27 -9
- package/package/components/Editor.svelte.d.ts +1 -1
- package/package/components/EditorBar.svelte +105 -7
- package/package/components/EditorSettings.svelte +6 -0
- package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
- package/package/components/ExploreAssetButton.svelte +14 -4
- package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
- package/package/components/FirstStepInputs.svelte +2 -2
- package/package/components/FlowBuilder.svelte +18 -36
- package/package/components/FlowGraphViewerStep.svelte +7 -0
- package/package/components/FlowJobResult.svelte +16 -64
- package/package/components/FlowJobResult.svelte.d.ts +11 -4
- package/package/components/FlowLogViewer.svelte +660 -0
- package/package/components/FlowLogViewer.svelte.d.ts +34 -0
- package/package/components/FlowLogViewerWrapper.svelte +52 -0
- package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
- package/package/components/FlowLoopIterationPreview.svelte +3 -3
- package/package/components/FlowPreviewContent.svelte +13 -6
- package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
- package/package/components/FlowPreviewResult.svelte +7 -5
- package/package/components/FlowPreviewResult.svelte.d.ts +4 -5
- package/package/components/FlowStatusViewer.svelte +28 -16
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
- package/package/components/FlowStatusViewerInner.svelte +500 -295
- package/package/components/FlowStatusViewerInner.svelte.d.ts +34 -34
- package/package/components/FlowTimeline.svelte +11 -13
- package/package/components/FlowTimeline.svelte.d.ts +6 -5
- package/package/components/FolderEditor.svelte +1 -1
- package/package/components/GitDiffPreview.svelte +14 -18
- package/package/components/GitDiffPreview.svelte.d.ts +2 -8
- package/package/components/GitHubAppIntegration.svelte +3 -1
- package/package/components/HighlightCode.svelte +4 -1
- package/package/components/IconedResourceType.svelte +9 -5
- package/package/components/IdEditorInput.svelte +25 -22
- package/package/components/IdEditorInput.svelte.d.ts +11 -23
- package/package/components/InstanceSetting.svelte +7 -2
- package/package/components/InstanceSettings.svelte +1 -0
- package/package/components/JobLoader.svelte +108 -12
- package/package/components/JobLoader.svelte.d.ts +16 -3
- package/package/components/LogViewer.svelte +8 -2
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/LogViewerHeader.svelte +32 -0
- package/package/components/LogViewerHeader.svelte.d.ts +8 -0
- package/package/components/Login.svelte +8 -2
- package/package/components/MemoryFootprintViewer.svelte +1 -1
- package/package/components/ModulePreviewForm.svelte +10 -6
- package/package/components/ModulePreviewResultViewer.svelte +18 -2
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
- package/package/components/ModuleTest.svelte +59 -16
- package/package/components/MoveDrawer.svelte.d.ts +2 -2
- package/package/components/NextcloudSetting.svelte +84 -0
- package/package/components/NextcloudSetting.svelte.d.ts +7 -0
- package/package/components/ObjectResourceInput.svelte +3 -2
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/ParqetCsvTableRenderer.svelte +1 -1
- package/package/components/RelativeLineNumbers.svelte +16 -0
- package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
- package/package/components/ResourceEditor.svelte +10 -5
- package/package/components/ResourcePicker.svelte +8 -1
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultStreamDisplay.svelte +5 -0
- package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
- package/package/components/RunForm.svelte +9 -1
- package/package/components/SchemaForm.svelte +2 -2
- package/package/components/SchemaForm.svelte.d.ts +2 -10
- package/package/components/ScriptBuilder.svelte +26 -19
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte +2 -2
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ScriptWrapper.svelte +1 -1
- package/package/components/ShareModal.svelte.d.ts +1 -1
- package/package/components/SimpleAgTable.svelte +2 -0
- package/package/components/SimpleAgTable.svelte.d.ts +2 -0
- package/package/components/SimpleEditor.svelte +10 -4
- package/package/components/SimpleEditor.svelte.d.ts +1 -0
- package/package/components/SqlRepl.svelte +21 -7
- package/package/components/SqlRepl.svelte.d.ts +2 -2
- package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
- package/package/components/TemplateEditor.svelte +1 -1
- package/package/components/UserSettings.svelte +4 -4
- package/package/components/WorkerTagSelect.svelte +70 -1
- package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
- package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
- package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
- package/package/components/apps/components/display/AppText.svelte +2 -2
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
- package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
- package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
- package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
- package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
- package/package/components/apps/components/display/dbtable/utils.js +52 -28
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -6
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/utils.js +7 -4
- package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -3
- package/package/components/apps/components/helpers/InputValue.svelte +6 -1
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +10 -8
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -2
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
- package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
- package/package/components/apps/components/layout/AppContainer.svelte +1 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -21
- package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
- package/package/components/apps/components/layout/AppList.svelte +9 -8
- package/package/components/apps/components/layout/AppModal.svelte +1 -1
- package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
- package/package/components/apps/components/layout/AppStepper.svelte +10 -6
- package/package/components/apps/components/layout/AppTabs.svelte +3 -3
- package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
- package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
- package/package/components/apps/editor/GridEditor.svelte +24 -19
- package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
- package/package/components/apps/editor/GridViewer.svelte +1 -0
- package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
- package/package/components/apps/editor/SubGridEditor.svelte +7 -11
- package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
- package/package/components/apps/editor/appUtils.js +17 -68
- package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
- package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +14 -55
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +31 -45
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/Grid.svelte +23 -25
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
- package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
- package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
- package/package/components/apps/utils.d.ts +2 -0
- package/package/components/apps/utils.js +22 -0
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/assets/JobAssetsViewer.svelte +2 -2
- package/package/components/assets/lib.js +4 -0
- package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/Button.svelte +4 -3
- package/package/components/common/button/Button.svelte.d.ts +1 -0
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
- package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
- package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
- package/package/components/common/fileDownload/FileDownload.svelte +1 -3
- package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/modal/Modal.svelte +2 -5
- package/package/components/common/tabs/TabsV2.svelte +2 -1
- package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
- package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
- package/package/components/copilot/MetadataGen.svelte +19 -1
- package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
- package/package/components/copilot/ScriptGen.svelte +23 -31
- package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
- package/package/components/copilot/chat/AIChatInput.svelte +29 -6
- package/package/components/copilot/chat/AIChatManager.svelte.js +171 -33
- package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
- package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
- package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
- package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.js +192 -0
- package/package/components/copilot/chat/api/core.d.ts +7 -0
- package/package/components/copilot/chat/api/core.js +61 -0
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
- package/package/components/copilot/chat/flow/core.js +213 -42
- package/package/components/copilot/chat/flow/utils.js +3 -0
- package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
- package/package/components/copilot/chat/monaco-adapter.js +10 -4
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +20 -22
- package/package/components/copilot/chat/script/core.d.ts +11 -3
- package/package/components/copilot/chat/script/core.js +120 -44
- package/package/components/copilot/chat/shared.d.ts +31 -4
- package/package/components/copilot/chat/shared.js +235 -10
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/copilot/lib.js +15 -6
- package/package/components/custom_ui.d.ts +4 -0
- package/package/components/dbOps.d.ts +20 -8
- package/package/components/dbOps.js +85 -40
- package/package/components/details/DetailPageHeader.svelte +0 -2
- package/package/components/details/DetailPageLayout.svelte +34 -33
- package/package/components/flow_builder.d.ts +1 -2
- package/package/components/flows/FlowEditor.svelte +3 -3
- package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
- package/package/components/flows/common/FlowCard.svelte +2 -2
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +13 -4
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
- package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
- package/package/components/flows/content/FlowConstants.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowInput.svelte +5 -0
- package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
- package/package/components/flows/content/FlowLoop.svelte +2 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
- package/package/components/flows/content/FlowModuleScript.svelte +0 -1
- package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
- package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowResult.svelte +2 -3
- package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
- package/package/components/flows/dfs.d.ts +3 -1
- package/package/components/flows/dfs.js +5 -1
- package/package/components/flows/flowInfers.js +78 -0
- package/package/components/flows/flowState.d.ts +2 -3
- package/package/components/flows/flowState.js +2 -2
- package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
- package/package/components/flows/flowStateUtils.svelte.js +14 -13
- package/package/components/flows/flowStore.d.ts +3 -4
- package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
- package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
- package/package/components/flows/idUtils.js +2 -1
- package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +15 -15
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +27 -15
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
- package/package/components/flows/map/InsertModuleButton.svelte +4 -1
- package/package/components/flows/map/InsertModuleInner.svelte +9 -1
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
- package/package/components/flows/map/MapItem.svelte +4 -2
- package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
- package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
- package/package/components/flows/propPicker/OutputBadge.svelte +16 -10
- package/package/components/flows/propPicker/OutputPickerInner.svelte +19 -6
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
- package/package/components/flows/propPicker/StepHistory.svelte +4 -1
- package/package/components/flows/testSteps.svelte.d.ts +3 -2
- package/package/components/flows/testSteps.svelte.js +26 -23
- package/package/components/flows/types.d.ts +1 -1
- package/package/components/flows/utils.d.ts +3 -5
- package/package/components/flows/utils.js +3 -4
- package/package/components/git_sync/DetectionFlow.svelte +202 -0
- package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
- package/package/components/git_sync/GitSyncContext.svelte.js +462 -0
- package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
- package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
- package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
- package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
- package/package/components/git_sync/GitSyncSection.svelte +89 -0
- package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
- package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
- package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
- package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
- package/package/components/graph/FlowGraphV2.svelte +49 -25
- package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
- package/package/components/graph/graphBuilder.svelte.js +31 -15
- package/package/components/graph/model.d.ts +9 -6
- package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +19 -14
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
- package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
- package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
- package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
- package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
- package/package/components/icons/AssetGenericIcon.svelte +3 -0
- package/package/components/icons/DucklakeIcon.svelte +18 -0
- package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
- package/package/components/icons/RubyIcon.svelte +656 -0
- package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
- package/package/components/instanceSettings.js +20 -3
- package/package/components/modulesTest.svelte.d.ts +6 -3
- package/package/components/modulesTest.svelte.js +32 -0
- package/package/components/preview/FlowPreviewStatus.svelte +3 -1
- package/package/components/raw_apps/RawAppEditor.svelte +27 -26
- package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
- package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +2 -5
- package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
- package/package/components/runs/RunRow.svelte +5 -1
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/schema/AddProperty.svelte +41 -36
- package/package/components/schema/AddProperty.svelte.d.ts +2 -2
- package/package/components/schema/AddPropertyV2.svelte +41 -37
- package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +11 -8
- package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/PropertyEditor.svelte +0 -2
- package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
- package/package/components/schema/SchemaFormDND.svelte +2 -1
- package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
- package/package/components/scriptEditor/LogPanel.svelte +5 -3
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
- package/package/components/search/RunsSearch.svelte +1 -1
- package/package/components/select/Select.svelte +7 -4
- package/package/components/select/Select.svelte.d.ts +5 -0
- package/package/components/select/SelectDropdown.svelte +2 -1
- package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
- package/package/components/settings/CreateToken.svelte +132 -12
- package/package/components/settings/CreateToken.svelte.d.ts +3 -20
- package/package/components/settings/TokenDisplay.svelte +18 -42
- package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
- package/package/components/settings/TokensTable.svelte +2 -4
- package/package/components/settings/TokensTable.svelte.d.ts +3 -19
- package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
- package/package/components/sidebar/MenuButton.svelte +12 -10
- package/package/components/sidebar/changelogs.js +5 -0
- package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
- package/package/components/stepHistoryLoader.svelte.js +7 -12
- package/package/components/table/AutoDataTable.svelte +6 -4
- package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
- package/package/components/table/DataTable.svelte +12 -10
- package/package/components/table/DataTable.svelte.d.ts +1 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
- package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
- package/package/components/triggers/gcp/utils.js +1 -0
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
- package/package/components/triggers/http/utils.js +1 -1
- package/package/components/triggers/kafka/utils.js +1 -1
- package/package/components/triggers/mqtt/utils.js +1 -1
- package/package/components/triggers/nats/utils.js +1 -1
- package/package/components/triggers/postgres/utils.js +1 -1
- package/package/components/triggers/sqs/utils.js +1 -1
- package/package/components/triggers/utils.js +2 -1
- package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
- package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
- package/package/components/triggers/websocket/utils.js +1 -1
- package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
- package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
- package/package/components/tutorials/utils.js +3 -0
- package/package/components/worker_group.d.ts +4 -1
- package/package/components/worker_group.js +3 -2
- package/package/components/workspaceSettings/AISettings.svelte +52 -36
- package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
- package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
- package/package/consts.js +2 -1
- package/package/editorLangUtils.d.ts +1 -1
- package/package/editorLangUtils.js +2 -0
- package/package/editorUtils.d.ts +2 -1
- package/package/editorUtils.js +2 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +303 -14
- package/package/gen/schemas.gen.js +371 -76
- package/package/gen/services.gen.d.ts +136 -16
- package/package/gen/services.gen.js +264 -19
- package/package/gen/types.gen.d.ts +736 -17
- package/package/git-sync.d.ts +36 -0
- package/package/git-sync.js +1 -0
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +9 -3
- package/package/infer.js +13 -3
- package/package/monaco_workers/graphql.worker.bundle.js +144 -110
- package/package/script_helpers.d.ts +5 -2
- package/package/script_helpers.js +87 -14
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +3 -2
- package/package/services/JobManager.d.ts +28 -0
- package/package/services/JobManager.js +114 -0
- package/package/stores.d.ts +3 -1
- package/package/stores.js +2 -0
- package/package/svelte5Utils.svelte.d.ts +16 -0
- package/package/svelte5Utils.svelte.js +26 -0
- package/package/utils.d.ts +19 -2
- package/package/utils.js +55 -2
- package/package.json +24 -22
- package/package/components/AllFlowLogs.svelte +0 -31
- package/package/components/AllFlowLogs.svelte.d.ts +0 -8
- package/package/components/InitGitRepoPopover.svelte +0 -410
- package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
- package/package/components/PullGitRepoPopover.svelte +0 -355
- package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
- package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
- package/package/components/copilot/chat/navigator/apiTools.js +0 -258
- package/package/inferArgSig.d.ts +0 -42
- package/package/inferArgSig.js +0 -198
|
@@ -2,10 +2,10 @@ import { type Script } from './gen';
|
|
|
2
2
|
import type { SupportedLanguage } from './common';
|
|
3
3
|
export declare const TS_PREPROCESSOR_SCRIPT_INTRO = "/**\n * Trigger preprocessor\n *\n * \u26A0\uFE0F This function runs BEFORE the main function.\n *\n * It processes raw trigger data from various sources (webhook, custom HTTP route, SQS, WebSocket, Kafka, NATS, MQTT, Postgres, or email)\n * before passing it to `main`. This separates the trigger logic from the main logic and keeps the auto-generated runnable UI clean.\n *\n * The returned object defines the parameter values passed to `main()`.\n * e.g., { b: 1, a: 2 } \u2192 Calls `main(2, 1)`, assuming `main` is defined as `main(a: number, b: number)`.\n * Ensure that the parameter names in `main` match the keys in the returned object.\n * \n * Learn more: https://www.windmill.dev/docs/core_concepts/preprocessors\n */\n";
|
|
4
4
|
export declare const TS_PREPROCESSOR_FLOW_INTRO = "/**\n * Trigger preprocessor\n *\n * It processes raw trigger data from various sources (webhook, custom HTTP route, SQS, WebSocket, Kafka, NATS, MQTT, Postgres, or email) \n * before passing it to the flow. This separates the trigger logic from the flow logic and keeps the auto-generated UI clean.\n * \n * The returned object determines the parameter values passed to the flow.\n * e.g., `{ b: 1, a: 2 }` \u2192 Calls the flow with `a = 2` and `b = 1`, assuming the flow has two inputs called `a` and `b`.\n * Ensure that the input names of the flow match the keys in the returned object.\n * \n * Learn more: https://www.windmill.dev/docs/core_concepts/preprocessors\n */\n";
|
|
5
|
-
export declare const TS_PREPROCESSOR_MODULE_CODE = "export async function preprocessor(\n event:\n | {\n kind: \"webhook\";\n body: any;\n raw_string: string | null;\n query: Record<string, string>;\n headers: Record<string, string>;\n }\n | {\n kind: \"http\";\n body: any;\n raw_string: string | null;\n route: string;\n path: string;\n method: string;\n params: Record<string, string>;\n query: Record<string, string>;\n headers: Record<string, string>;\n }\n | {\n kind: \"email\";\n parsed_email: any;\n raw_email: string;\n }\n | { kind: \"websocket\"; msg: string; url: string }\n | {\n kind: \"kafka\";\n payload: string;\n brokers: string[];\n topic: string;\n group_id: string;\n }\n | {\n kind: \"nats\";\n payload: string;\n servers: string[];\n subject: string;\n headers?: Record<string, string[]>;\n status?: number;\n description?: string;\n length: number;\n }\n | {\n kind: \"sqs\";\n msg: string;\n queue_url: string;\n message_id?: string;\n receipt_handle?: string;\n attributes: Record<string, string>;\n message_attributes?: Record<\n string,\n { string_value?: string; data_type: string }\n >;\n }\n | {\n kind: \"mqtt\";\n payload: string;\n topic: string;\n retain: boolean;\n pkid: number;\n qos: number;\n v5?: {\n payload_format_indicator?: number;\n topic_alias?: number;\n response_topic?: string;\n correlation_data?: Array<number>;\n user_properties?: Array<[string, string]>;\n subscription_identifiers?: Array<number>;\n content_type?: string;\n };\n }\n | {\n kind: \"gcp\";\n payload: string;\n message_id: string;\n subscription: string;\n ordering_key?: string;\n attributes?: Record<string, string>;\n delivery_type: \"push\" | \"pull\";\n headers?: Record<string, string>;\n publish_time?: string;\n }\n | {\n kind: \"postgres\";\n transaction_type: \"insert\" | \"update\" | \"delete\",\n schema_name: string,\n table_name: string,\n old_row?: Record<string, any>,\n row: Record<string, any>\n }\n) {\n return {\n // return the args to be passed to the runnable\n };\n}\n";
|
|
5
|
+
export declare const TS_PREPROCESSOR_MODULE_CODE = "export async function preprocessor(\n event:\n | {\n kind: \"webhook\";\n body: any;\n raw_string: string | null;\n query: Record<string, string>;\n headers: Record<string, string>;\n }\n | {\n kind: \"http\";\n body: any;\n raw_string: string | null;\n route: string;\n path: string;\n method: string;\n params: Record<string, string>;\n query: Record<string, string>;\n headers: Record<string, string>;\n }\n | {\n kind: \"email\";\n parsed_email: any;\n raw_email: string;\n }\n | { kind: \"websocket\"; msg: string; url: string }\n | {\n kind: \"kafka\";\n payload: string;\n brokers: string[];\n topic: string;\n group_id: string;\n }\n | {\n kind: \"nats\";\n payload: string;\n servers: string[];\n subject: string;\n headers?: Record<string, string[]>;\n status?: number;\n description?: string;\n length: number;\n }\n | {\n kind: \"sqs\";\n msg: string;\n queue_url: string;\n message_id?: string;\n receipt_handle?: string;\n attributes: Record<string, string>;\n message_attributes?: Record<\n string,\n { string_value?: string; data_type: string }\n >;\n }\n | {\n kind: \"mqtt\";\n payload: string;\n topic: string;\n retain: boolean;\n pkid: number;\n qos: number;\n v5?: {\n payload_format_indicator?: number;\n topic_alias?: number;\n response_topic?: string;\n correlation_data?: Array<number>;\n user_properties?: Array<[string, string]>;\n subscription_identifiers?: Array<number>;\n content_type?: string;\n };\n }\n | {\n kind: \"gcp\";\n payload: string;\n message_id: string;\n subscription: string;\n ordering_key?: string;\n attributes?: Record<string, string>;\n delivery_type: \"push\" | \"pull\";\n headers?: Record<string, string>;\n publish_time?: string;\n ack_id?: string;\n }\n | {\n kind: \"postgres\";\n transaction_type: \"insert\" | \"update\" | \"delete\",\n schema_name: string,\n table_name: string,\n old_row?: Record<string, any>,\n row: Record<string, any>\n }\n) {\n return {\n // return the args to be passed to the runnable\n };\n}\n";
|
|
6
6
|
export declare const PYTHON_PREPROCESSOR_SCRIPT_INTRO = "# Trigger preprocessor\n#\n# \u26A0\uFE0F This function runs BEFORE the main function.\n#\n# It processes raw trigger data from various sources (webhook, custom HTTP route, SQS, WebSocket, Kafka, NATS, MQTT, Postgres, or email) \n# before passing it to `main`. This separates the trigger logic from the main logic and keeps the auto-generated UI clean.\n#\n# The returned object defines the parameter values passed to `main()`.\n# e.g., { b: 1, a: 2 } \u2192 Calls `main(2, 1)`, assuming `main` is defined as `main(a: int, b: int)`.\n# Ensure that the parameter names in `main` match the keys in the returned object.\n#\n# Learn more: https://www.windmill.dev/docs/core_concepts/preprocessors\n\n";
|
|
7
7
|
export declare const PYTHON_PREPROCESSOR_FLOW_INTRO = "# Trigger preprocessor\n#\n# It processes raw trigger data from various sources (webhook, custom HTTP route, SQS, WebSocket, Kafka, NATS, MQTT, Postgres, or email) \n# before passing it to the flow. This separates the trigger logic from the flow logic and keeps the auto-generated UI clean.\n# \n# The returned object determines the parameter values passed to the flow.\n# e.g., `{ b: 1, a: 2 }` \u2192 Calls the flow with `a = 2` and `b = 1`, assuming the flow has two inputs called `a` and `b`.\n# Ensure that the input names of the flow match the keys in the returned object.\n#\n# Learn more: https://www.windmill.dev/docs/core_concepts/preprocessors\n\n";
|
|
8
|
-
export declare const PYTHON_PREPROCESSOR_MODULE_CODE = "from typing import TypedDict, Literal, Optional, Union\n\n\nclass WebhookEvent(TypedDict):\n kind: Literal[\"webhook\"]\n body: dict\n raw_string: Optional[str]\n query: dict[str, str]\n headers: dict[str, str]\n\n\nclass HttpEvent(TypedDict):\n kind: Literal[\"http\"]\n body: dict\n raw_string: Optional[str]\n route: str\n path: str\n method: str\n params: dict[str, str]\n query: dict[str, str]\n headers: dict[str, str]\n\n\nclass EmailEvent(TypedDict):\n kind: Literal[\"email\"]\n parsed_email: dict\n raw_email: str\n\n\nclass WebsocketEvent(TypedDict):\n kind: Literal[\"websocket\"]\n msg: str\n url: str\n\n\nclass KafkaEvent(TypedDict):\n kind: Literal[\"kafka\"]\n payload: str\n brokers: list[str]\n topic: str\n group_id: str\n\n\nclass NatsEvent(TypedDict):\n kind: Literal[\"nats\"]\n payload: str\n servers: list[str]\n subject: str\n headers: Optional[dict[str, list[str]]]\n status: Optional[int]\n description: Optional[str]\n length: int\n\n\nclass MessageAttribute(TypedDict):\n string_value: Optional[str]\n data_type: str\n\n\nclass SqsEvent(TypedDict):\n kind: Literal[\"sqs\"]\n msg: str\n queue_url: str\n message_id: Optional[str]\n receipt_handle: Optional[str]\n attributes: dict[str, str]\n message_attributes: Optional[dict[str, MessageAttribute]]\n\n\nclass MqttV5Properties(TypedDict, total=False):\n payload_format_indicator: Optional[int]\n topic_alias: Optional[int]\n response_topic: Optional[str]\n correlation_data: Optional[list[int]]\n user_properties: Optional[list[tuple[str, str]]]\n subscription_identifiers: Optional[list[int]]\n content_type: Optional[str]\n\n\nclass MqttEvent(TypedDict):\n kind: Literal[\"mqtt\"]\n payload: str\n topic: str\n retain: bool\n pkid: int\n qos: int\n v5: Optional[MqttV5Properties]\n\n\nclass GcpEvent(TypedDict):\n kind: Literal[\"gcp\"]\n payload: str\n message_id: str\n subscription: str\n ordering_key: Optional[str]\n attributes: Optional[dict[str, str]]\n delivery_type: Literal[\"push\", \"pull\"]\n headers: Optional[dict[str, str]]\n publish_time: Optional[str]\n\n\nclass PostgresEvent(TypedDict):\n kind: Literal[\"postgres\"]\n transaction_type: Literal[\"insert\", \"update\", \"delete\"]\n schema_name: str\n table_name: str\n old_row: Optional[dict[str, any]]\n row: dict[str, any]\n\n\nEvent = Union[\n WebhookEvent,\n HttpEvent,\n EmailEvent,\n WebsocketEvent,\n KafkaEvent,\n NatsEvent,\n SqsEvent,\n MqttEvent,\n GcpEvent,\n PostgresEvent,\n]\n\n\ndef preprocessor(event: Event):\n return {\n # return the args to be passed to the runnable\n }\n";
|
|
8
|
+
export declare const PYTHON_PREPROCESSOR_MODULE_CODE = "from typing import TypedDict, Literal, Optional, Union\n\n\nclass WebhookEvent(TypedDict):\n kind: Literal[\"webhook\"]\n body: dict\n raw_string: Optional[str]\n query: dict[str, str]\n headers: dict[str, str]\n\n\nclass HttpEvent(TypedDict):\n kind: Literal[\"http\"]\n body: dict\n raw_string: Optional[str]\n route: str\n path: str\n method: str\n params: dict[str, str]\n query: dict[str, str]\n headers: dict[str, str]\n\n\nclass EmailEvent(TypedDict):\n kind: Literal[\"email\"]\n parsed_email: dict\n raw_email: str\n\n\nclass WebsocketEvent(TypedDict):\n kind: Literal[\"websocket\"]\n msg: str\n url: str\n\n\nclass KafkaEvent(TypedDict):\n kind: Literal[\"kafka\"]\n payload: str\n brokers: list[str]\n topic: str\n group_id: str\n\n\nclass NatsEvent(TypedDict):\n kind: Literal[\"nats\"]\n payload: str\n servers: list[str]\n subject: str\n headers: Optional[dict[str, list[str]]]\n status: Optional[int]\n description: Optional[str]\n length: int\n\n\nclass MessageAttribute(TypedDict):\n string_value: Optional[str]\n data_type: str\n\n\nclass SqsEvent(TypedDict):\n kind: Literal[\"sqs\"]\n msg: str\n queue_url: str\n message_id: Optional[str]\n receipt_handle: Optional[str]\n attributes: dict[str, str]\n message_attributes: Optional[dict[str, MessageAttribute]]\n\n\nclass MqttV5Properties(TypedDict, total=False):\n payload_format_indicator: Optional[int]\n topic_alias: Optional[int]\n response_topic: Optional[str]\n correlation_data: Optional[list[int]]\n user_properties: Optional[list[tuple[str, str]]]\n subscription_identifiers: Optional[list[int]]\n content_type: Optional[str]\n\n\nclass MqttEvent(TypedDict):\n kind: Literal[\"mqtt\"]\n payload: str\n topic: str\n retain: bool\n pkid: int\n qos: int\n v5: Optional[MqttV5Properties]\n\n\nclass GcpEvent(TypedDict):\n kind: Literal[\"gcp\"]\n payload: str\n message_id: str\n subscription: str\n ordering_key: Optional[str]\n attributes: Optional[dict[str, str]]\n delivery_type: Literal[\"push\", \"pull\"]\n headers: Optional[dict[str, str]]\n publish_time: Optional[str]\n ack_id: Optional[str]\n\n\nclass PostgresEvent(TypedDict):\n kind: Literal[\"postgres\"]\n transaction_type: Literal[\"insert\", \"update\", \"delete\"]\n schema_name: str\n table_name: str\n old_row: Optional[dict[str, any]]\n row: dict[str, any]\n\n\nEvent = Union[\n WebhookEvent,\n HttpEvent,\n EmailEvent,\n WebsocketEvent,\n KafkaEvent,\n NatsEvent,\n SqsEvent,\n MqttEvent,\n GcpEvent,\n PostgresEvent,\n]\n\n\ndef preprocessor(event: Event):\n return {\n # return the args to be passed to the runnable\n }\n";
|
|
9
9
|
export declare const INITIAL_CODE: {
|
|
10
10
|
bun: {
|
|
11
11
|
scriptInitCodeBlock: string;
|
|
@@ -96,6 +96,9 @@ export declare const INITIAL_CODE: {
|
|
|
96
96
|
java: {
|
|
97
97
|
script: string;
|
|
98
98
|
};
|
|
99
|
+
ruby: {
|
|
100
|
+
script: string;
|
|
101
|
+
};
|
|
99
102
|
};
|
|
100
103
|
export declare function isInitialCode(content: string): boolean;
|
|
101
104
|
export declare function initialCode(language: SupportedLanguage | 'bunnative' | undefined, kind: Script['kind'] | undefined, subkind: 'pgsql' | 'mysql' | 'flow' | 'script' | 'fetch' | 'docker' | 'powershell' | 'bunnative' | undefined, templateScript?: boolean): string;
|
|
@@ -279,17 +279,33 @@ const MSSQL_INIT_CODE = `-- return_last_result
|
|
|
279
279
|
INSERT INTO demo VALUES (@P1, @P2);
|
|
280
280
|
UPDATE demo SET col2 = @P3 WHERE col2 = @P2;
|
|
281
281
|
`;
|
|
282
|
-
const DUCKDB_INIT_CODE = `-- $
|
|
283
|
-
-- $
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
282
|
+
const DUCKDB_INIT_CODE = `-- $name (text) = Ben
|
|
283
|
+
-- $age (text) = 20
|
|
284
|
+
-- -- $friends_csv (s3object)
|
|
285
|
+
|
|
286
|
+
-- Click the +Database button to connect to a database
|
|
287
|
+
-- https://www.windmill.dev/docs/getting_started/scripts_quickstart/sql#duckdb-1
|
|
288
|
+
--
|
|
289
|
+
-- ATTACH '$res:u/demo/amazed_postgresql' AS db (TYPE postgres);
|
|
290
|
+
-- SELECT * FROM db.public.friends;
|
|
291
|
+
|
|
292
|
+
-- Click the +Ducklake button to use a ducklake
|
|
293
|
+
-- https://www.windmill.dev/docs/core_concepts/ducklake
|
|
294
|
+
--
|
|
295
|
+
-- ATTACH 'ducklake' AS dl;
|
|
296
|
+
-- USE dl;
|
|
297
|
+
-- SELECT * FROM customers;
|
|
298
|
+
|
|
299
|
+
CREATE TABLE friends (
|
|
300
|
+
name text,
|
|
301
|
+
age int
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
INSERT INTO friends VALUES ($name, $age);
|
|
305
|
+
-- INSERT INTO friends
|
|
306
|
+
-- SELECT name, age FROM read_csv($friends_csv);
|
|
307
|
+
|
|
308
|
+
SELECT * FROM friends;
|
|
293
309
|
`;
|
|
294
310
|
const GRAPHQL_INIT_CODE = `query($name4: String, $name2: Int, $name3: [String]) {
|
|
295
311
|
demo(name1: $name1, name2: $name2, name3: $name3) {
|
|
@@ -709,6 +725,7 @@ export const TS_PREPROCESSOR_MODULE_CODE = `export async function preprocessor(
|
|
|
709
725
|
delivery_type: "push" | "pull";
|
|
710
726
|
headers?: Record<string, string>;
|
|
711
727
|
publish_time?: string;
|
|
728
|
+
ack_id?: string;
|
|
712
729
|
}
|
|
713
730
|
| {
|
|
714
731
|
kind: "postgres";
|
|
@@ -871,6 +888,7 @@ class GcpEvent(TypedDict):
|
|
|
871
888
|
delivery_type: Literal["push", "pull"]
|
|
872
889
|
headers: Optional[dict[str, str]]
|
|
873
890
|
publish_time: Optional[str]
|
|
891
|
+
ack_id: Optional[str]
|
|
874
892
|
|
|
875
893
|
|
|
876
894
|
class PostgresEvent(TypedDict):
|
|
@@ -1039,6 +1057,55 @@ public class Main {
|
|
|
1039
1057
|
}
|
|
1040
1058
|
}
|
|
1041
1059
|
`;
|
|
1060
|
+
const RUBY_INIT_CODE = `require 'windmill/inline'
|
|
1061
|
+
require 'windmill/mini'
|
|
1062
|
+
|
|
1063
|
+
# Dependency management: declare gems in gemfile block for automatic installation
|
|
1064
|
+
# Windmill uses bundler/inline compatible syntax with automatic requiring
|
|
1065
|
+
gemfile do
|
|
1066
|
+
source 'https://rubygems.org'
|
|
1067
|
+
gem 'amazing_print', '~> 1.6'
|
|
1068
|
+
end
|
|
1069
|
+
|
|
1070
|
+
def main(
|
|
1071
|
+
no_default,
|
|
1072
|
+
name = "Nicolas Bourbaki",
|
|
1073
|
+
age = 42,
|
|
1074
|
+
obj = { "even": "hashes" },
|
|
1075
|
+
list = ["or", "arrays!"]
|
|
1076
|
+
)
|
|
1077
|
+
puts "Hello World and a warm welcome especially to #{name}"
|
|
1078
|
+
puts "and its acolytes.. #{age} #{obj} #{list}"
|
|
1079
|
+
|
|
1080
|
+
# Retrieve variables using the Windmill mini client
|
|
1081
|
+
begin
|
|
1082
|
+
secret = get_variable("f/examples/secret")
|
|
1083
|
+
rescue => e
|
|
1084
|
+
secret = "No secret yet at f/examples/secret!"
|
|
1085
|
+
end
|
|
1086
|
+
puts "The variable at 'f/examples/secret': #{secret}"
|
|
1087
|
+
|
|
1088
|
+
# Get typed resources using the mini client
|
|
1089
|
+
# database = get_resource("u/user/my_postgresql")
|
|
1090
|
+
|
|
1091
|
+
# Access environment variables provided by Windmill
|
|
1092
|
+
user = ENV['WM_USERNAME']
|
|
1093
|
+
|
|
1094
|
+
# Pretty print results using amazing_print (automatically required from gemfile)
|
|
1095
|
+
result = {
|
|
1096
|
+
"splitted" => name.split,
|
|
1097
|
+
"user" => user,
|
|
1098
|
+
"age" => age,
|
|
1099
|
+
"obj" => obj,
|
|
1100
|
+
"list" => list
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
ap result
|
|
1104
|
+
|
|
1105
|
+
# Return value is automatically converted to JSON
|
|
1106
|
+
return result
|
|
1107
|
+
end
|
|
1108
|
+
`;
|
|
1042
1109
|
// for related places search: ADD_NEW_LANG
|
|
1043
1110
|
export const INITIAL_CODE = {
|
|
1044
1111
|
bun: {
|
|
@@ -1129,8 +1196,11 @@ export const INITIAL_CODE = {
|
|
|
1129
1196
|
},
|
|
1130
1197
|
java: {
|
|
1131
1198
|
script: JAVA_INIT_CODE
|
|
1132
|
-
}
|
|
1133
|
-
|
|
1199
|
+
},
|
|
1200
|
+
ruby: {
|
|
1201
|
+
script: RUBY_INIT_CODE
|
|
1202
|
+
},
|
|
1203
|
+
// for related places search: ADD_NEW_LANG
|
|
1134
1204
|
};
|
|
1135
1205
|
export function isInitialCode(content) {
|
|
1136
1206
|
for (const lang of Object.values(INITIAL_CODE)) {
|
|
@@ -1255,7 +1325,10 @@ export function initialCode(language, kind, subkind, templateScript) {
|
|
|
1255
1325
|
}
|
|
1256
1326
|
else if (language == 'java') {
|
|
1257
1327
|
return INITIAL_CODE.java.script;
|
|
1258
|
-
|
|
1328
|
+
}
|
|
1329
|
+
else if (language == 'ruby') {
|
|
1330
|
+
return INITIAL_CODE.ruby.script;
|
|
1331
|
+
// for related places search: ADD_NEW_LANG
|
|
1259
1332
|
}
|
|
1260
1333
|
else if (language == 'bun' || language == 'bunnative') {
|
|
1261
1334
|
if (kind == 'trigger') {
|
package/package/scripts.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Schema, SupportedLanguage } from './common';
|
|
2
2
|
import { type Script } from './gen';
|
|
3
|
-
export declare function scriptLangToEditorLang(lang: Script['language'] | 'bunnative' | 'javascript' | 'frontend' | 'jsx' | 'tsx' | 'text' | 'json' | undefined): "javascript" | "go" | "powershell" | "graphql" | "php" | "sql" | "rust" | "csharp" | "nu" | "java" | "yaml" | "json" | "text" | "typescript" | "python" | "shell";
|
|
3
|
+
export declare function scriptLangToEditorLang(lang: Script['language'] | 'bunnative' | 'javascript' | 'frontend' | 'jsx' | 'tsx' | 'text' | 'json' | undefined): "javascript" | "go" | "powershell" | "graphql" | "php" | "sql" | "rust" | "csharp" | "nu" | "java" | "ruby" | "yaml" | "json" | "text" | "typescript" | "python" | "shell";
|
|
4
4
|
export type ScriptSchedule = {
|
|
5
5
|
summary: string | undefined;
|
|
6
6
|
args: Record<string, any>;
|
package/package/scripts.js
CHANGED
|
@@ -136,7 +136,8 @@ const scriptLanguagesArray = [
|
|
|
136
136
|
['docker', 'Docker'],
|
|
137
137
|
['nu', 'Nu'],
|
|
138
138
|
['java', 'Java'],
|
|
139
|
-
['duckdb', 'DuckDB']
|
|
139
|
+
['duckdb', 'DuckDB'],
|
|
140
|
+
['ruby', 'Ruby']
|
|
140
141
|
// for related places search: ADD_NEW_LANG
|
|
141
142
|
];
|
|
142
143
|
export function processLangs(selected, langs) {
|
|
@@ -146,7 +147,7 @@ export function processLangs(selected, langs) {
|
|
|
146
147
|
else {
|
|
147
148
|
let ls = langs.filter((lang) => lang !== 'nativets');
|
|
148
149
|
//those languages are newer and may not be in the saved list
|
|
149
|
-
let nl = ['bunnative', 'rust', 'ansible', 'csharp', 'nu', 'java', 'duckdb'];
|
|
150
|
+
let nl = ['bunnative', 'rust', 'ansible', 'csharp', 'nu', 'java', 'duckdb', 'ruby'];
|
|
150
151
|
// for related places search: ADD_NEW_LANG
|
|
151
152
|
nl.forEach((lang) => {
|
|
152
153
|
if (!ls.includes(lang)) {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface JobStatus {
|
|
2
|
+
status: 'running' | 'success' | 'failure';
|
|
3
|
+
result?: any;
|
|
4
|
+
error?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface JobOptions {
|
|
7
|
+
onProgress?: (status: JobStatus) => void;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
workspace: string;
|
|
10
|
+
interval?: number;
|
|
11
|
+
timeoutMessage?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class JobManager {
|
|
14
|
+
private activeJobs;
|
|
15
|
+
private cleanupInterval;
|
|
16
|
+
private readonly STALE_TIMEOUT;
|
|
17
|
+
private readonly CLEANUP_INTERVAL;
|
|
18
|
+
constructor();
|
|
19
|
+
private startCleanupTimer;
|
|
20
|
+
private cleanup;
|
|
21
|
+
runWithProgress<T>(jobRunner: () => Promise<string>, options: JobOptions): Promise<T>;
|
|
22
|
+
cancel(jobId: string): void;
|
|
23
|
+
cancelAll(): void;
|
|
24
|
+
isActive(jobId: string): boolean;
|
|
25
|
+
get activeJobCount(): number;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
}
|
|
28
|
+
export declare const jobManager: JobManager;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { JobService } from '../gen';
|
|
2
|
+
import { tryEvery } from '../utils';
|
|
3
|
+
export class JobManager {
|
|
4
|
+
activeJobs = new Map();
|
|
5
|
+
cleanupInterval = null;
|
|
6
|
+
STALE_TIMEOUT = 300000; // 5 minutes
|
|
7
|
+
CLEANUP_INTERVAL = 60000; // 1 minute
|
|
8
|
+
constructor() {
|
|
9
|
+
this.startCleanupTimer();
|
|
10
|
+
}
|
|
11
|
+
startCleanupTimer() {
|
|
12
|
+
if (typeof window !== 'undefined') {
|
|
13
|
+
this.cleanupInterval = setInterval(() => {
|
|
14
|
+
this.cleanup();
|
|
15
|
+
}, this.CLEANUP_INTERVAL);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
cleanup() {
|
|
19
|
+
const now = Date.now();
|
|
20
|
+
const staleJobs = [];
|
|
21
|
+
for (const [jobId, entry] of this.activeJobs.entries()) {
|
|
22
|
+
if (now - entry.startTime > this.STALE_TIMEOUT) {
|
|
23
|
+
entry.controller.abort();
|
|
24
|
+
staleJobs.push(jobId);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
staleJobs.forEach(jobId => {
|
|
28
|
+
this.activeJobs.delete(jobId);
|
|
29
|
+
});
|
|
30
|
+
if (staleJobs.length > 0) {
|
|
31
|
+
console.warn(`Cleaned up ${staleJobs.length} stale job controllers`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async runWithProgress(jobRunner, options) {
|
|
35
|
+
const { onProgress, timeout = 60000, workspace, interval = 500, timeoutMessage = `Job timed out after ${timeout / 1000}s` } = options;
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
const jobId = await jobRunner();
|
|
38
|
+
this.activeJobs.set(jobId, {
|
|
39
|
+
controller,
|
|
40
|
+
startTime: Date.now()
|
|
41
|
+
});
|
|
42
|
+
try {
|
|
43
|
+
onProgress?.({ status: 'running' });
|
|
44
|
+
const result = await tryEvery({
|
|
45
|
+
tryCode: async () => {
|
|
46
|
+
if (controller.signal.aborted) {
|
|
47
|
+
throw new Error('Job was cancelled');
|
|
48
|
+
}
|
|
49
|
+
const jobResult = await JobService.getCompletedJob({
|
|
50
|
+
workspace,
|
|
51
|
+
id: jobId
|
|
52
|
+
});
|
|
53
|
+
const success = !!jobResult.success;
|
|
54
|
+
const status = {
|
|
55
|
+
status: success ? 'success' : 'failure',
|
|
56
|
+
result: jobResult.result,
|
|
57
|
+
error: success ? undefined : jobResult.result?.error?.message || 'Job failed'
|
|
58
|
+
};
|
|
59
|
+
onProgress?.(status);
|
|
60
|
+
if (!success) {
|
|
61
|
+
throw new Error(status.error);
|
|
62
|
+
}
|
|
63
|
+
return jobResult.result;
|
|
64
|
+
},
|
|
65
|
+
timeoutCode: async () => {
|
|
66
|
+
try {
|
|
67
|
+
await JobService.cancelQueuedJob({
|
|
68
|
+
workspace,
|
|
69
|
+
id: jobId,
|
|
70
|
+
requestBody: { reason: timeoutMessage }
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
console.error('Failed to cancel job:', err);
|
|
75
|
+
}
|
|
76
|
+
onProgress?.({ status: 'failure', error: timeoutMessage });
|
|
77
|
+
throw new Error(timeoutMessage);
|
|
78
|
+
},
|
|
79
|
+
interval,
|
|
80
|
+
timeout
|
|
81
|
+
});
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
this.activeJobs.delete(jobId);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
cancel(jobId) {
|
|
89
|
+
const entry = this.activeJobs.get(jobId);
|
|
90
|
+
if (entry) {
|
|
91
|
+
entry.controller.abort();
|
|
92
|
+
this.activeJobs.delete(jobId);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
cancelAll() {
|
|
96
|
+
this.activeJobs.forEach(entry => entry.controller.abort());
|
|
97
|
+
this.activeJobs.clear();
|
|
98
|
+
}
|
|
99
|
+
isActive(jobId) {
|
|
100
|
+
return this.activeJobs.has(jobId);
|
|
101
|
+
}
|
|
102
|
+
get activeJobCount() {
|
|
103
|
+
return this.activeJobs.size;
|
|
104
|
+
}
|
|
105
|
+
destroy() {
|
|
106
|
+
if (this.cleanupInterval) {
|
|
107
|
+
clearInterval(this.cleanupInterval);
|
|
108
|
+
this.cleanupInterval = null;
|
|
109
|
+
}
|
|
110
|
+
this.cancelAll();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Singleton instance for global usage
|
|
114
|
+
export const jobManager = new JobManager();
|
package/package/stores.d.ts
CHANGED
|
@@ -56,11 +56,13 @@ export declare const metadataCompletionEnabled: import("svelte/store").Writable<
|
|
|
56
56
|
export declare const stepInputCompletionEnabled: import("svelte/store").Writable<boolean>;
|
|
57
57
|
export declare const FORMAT_ON_SAVE_SETTING_NAME = "formatOnSave";
|
|
58
58
|
export declare const VIM_MODE_SETTING_NAME = "vimMode";
|
|
59
|
+
export declare const RELATIVE_LINE_NUMBERS_SETTING_NAME = "relativeLineNumbers";
|
|
59
60
|
export declare const CODE_COMPLETION_SETTING_NAME = "codeCompletionSessionEnabled";
|
|
60
61
|
export declare const COPILOT_SESSION_MODEL_SETTING_NAME = "copilotSessionModel";
|
|
61
62
|
export declare const COPILOT_SESSION_PROVIDER_SETTING_NAME = "copilotSessionProvider";
|
|
62
63
|
export declare const formatOnSave: import("svelte/store").Writable<boolean>;
|
|
63
64
|
export declare const vimMode: import("svelte/store").Writable<boolean>;
|
|
65
|
+
export declare const relativeLineNumbers: import("svelte/store").Writable<boolean>;
|
|
64
66
|
export declare const codeCompletionSessionEnabled: import("svelte/store").Writable<boolean>;
|
|
65
67
|
export declare const copilotSessionModel: import("svelte/store").Writable<AIProviderModel | undefined>;
|
|
66
68
|
export declare const usedTriggerKinds: import("svelte/store").Writable<string[]>;
|
|
@@ -77,7 +79,7 @@ type SQLBaseSchema = {
|
|
|
77
79
|
};
|
|
78
80
|
export declare const SQLSchemaLanguages: readonly ["mysql", "bigquery", "postgresql", "snowflake", "mssql", "oracledb"];
|
|
79
81
|
export interface SQLSchema {
|
|
80
|
-
lang: (typeof SQLSchemaLanguages)[number];
|
|
82
|
+
lang: (typeof SQLSchemaLanguages)[number] | 'ducklake';
|
|
81
83
|
schema: SQLBaseSchema;
|
|
82
84
|
publicOnly: boolean | undefined;
|
|
83
85
|
stringified: string;
|
package/package/stores.js
CHANGED
|
@@ -106,11 +106,13 @@ export const metadataCompletionEnabled = writable(true);
|
|
|
106
106
|
export const stepInputCompletionEnabled = writable(true);
|
|
107
107
|
export const FORMAT_ON_SAVE_SETTING_NAME = 'formatOnSave';
|
|
108
108
|
export const VIM_MODE_SETTING_NAME = 'vimMode';
|
|
109
|
+
export const RELATIVE_LINE_NUMBERS_SETTING_NAME = 'relativeLineNumbers';
|
|
109
110
|
export const CODE_COMPLETION_SETTING_NAME = 'codeCompletionSessionEnabled';
|
|
110
111
|
export const COPILOT_SESSION_MODEL_SETTING_NAME = 'copilotSessionModel';
|
|
111
112
|
export const COPILOT_SESSION_PROVIDER_SETTING_NAME = 'copilotSessionProvider';
|
|
112
113
|
export const formatOnSave = writable(getLocalSetting(FORMAT_ON_SAVE_SETTING_NAME) != 'false');
|
|
113
114
|
export const vimMode = writable(getLocalSetting(VIM_MODE_SETTING_NAME) == 'true');
|
|
115
|
+
export const relativeLineNumbers = writable(getLocalSetting(RELATIVE_LINE_NUMBERS_SETTING_NAME) == 'true');
|
|
114
116
|
export const codeCompletionSessionEnabled = writable(getLocalSetting(CODE_COMPLETION_SETTING_NAME) != 'false');
|
|
115
117
|
const sessionModel = getLocalSetting(COPILOT_SESSION_MODEL_SETTING_NAME);
|
|
116
118
|
const sessionProvider = getLocalSetting(COPILOT_SESSION_PROVIDER_SETTING_NAME);
|
|
@@ -26,3 +26,19 @@ export type UsePromiseOptions = {
|
|
|
26
26
|
clearValueOnRefresh?: boolean;
|
|
27
27
|
};
|
|
28
28
|
export declare function usePromise<T>(createPromise: () => Promise<T>, { loadInit, clearValueOnRefresh }?: UsePromiseOptions): UsePromiseResult<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Generic change tracker class that monitors changes in state using deep equality comparison
|
|
31
|
+
* and provides a counter to trigger Svelte 5 reactivity. Similar to the pattern used in
|
|
32
|
+
* FlowGraphV2.svelte's onModulesChange2 function.
|
|
33
|
+
*/
|
|
34
|
+
export declare class ChangeTracker<T> {
|
|
35
|
+
#private;
|
|
36
|
+
counter: number;
|
|
37
|
+
constructor(initialValue?: T);
|
|
38
|
+
/**
|
|
39
|
+
* Check if the value has changed and update the counter to trigger reactivity
|
|
40
|
+
* @param value - The current value to check for changes
|
|
41
|
+
* @returns true if the value changed, false otherwise
|
|
42
|
+
*/
|
|
43
|
+
track(value: T): boolean;
|
|
44
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// https://github.com/sveltejs/svelte/issues/14600
|
|
2
2
|
import { untrack } from 'svelte';
|
|
3
|
+
import { deepEqual } from 'fast-equals';
|
|
3
4
|
export function withProps(component, props) {
|
|
4
5
|
const ret = $state({
|
|
5
6
|
component,
|
|
@@ -49,3 +50,28 @@ export function usePromise(createPromise, { loadInit = true, clearValueOnRefresh
|
|
|
49
50
|
ret.refresh();
|
|
50
51
|
return ret;
|
|
51
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Generic change tracker class that monitors changes in state using deep equality comparison
|
|
55
|
+
* and provides a counter to trigger Svelte 5 reactivity. Similar to the pattern used in
|
|
56
|
+
* FlowGraphV2.svelte's onModulesChange2 function.
|
|
57
|
+
*/
|
|
58
|
+
export class ChangeTracker {
|
|
59
|
+
counter = $state(0);
|
|
60
|
+
#lastState;
|
|
61
|
+
constructor(initialValue) {
|
|
62
|
+
this.#lastState = initialValue ? initialValue : undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Check if the value has changed and update the counter to trigger reactivity
|
|
66
|
+
* @param value - The current value to check for changes
|
|
67
|
+
* @returns true if the value changed, false otherwise
|
|
68
|
+
*/
|
|
69
|
+
track(value) {
|
|
70
|
+
if (!deepEqual(value, this.#lastState)) {
|
|
71
|
+
this.#lastState = value;
|
|
72
|
+
this.counter++;
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
package/package/utils.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export declare function isJobCancelable(j: Job): boolean;
|
|
|
33
33
|
export declare function isJobReRunnable(j: Job): boolean;
|
|
34
34
|
export declare const WORKER_NAME_PREFIX = "wk";
|
|
35
35
|
export declare function isJobSelectable(selectionType: RunsSelectionMode): (j: Job) => boolean;
|
|
36
|
+
export declare function escapeHtml(unsafe: string): string;
|
|
36
37
|
export declare function validateUsername(username: string): string;
|
|
37
38
|
export declare function parseQueryParams(url: string | undefined): Record<string, string>;
|
|
38
39
|
export declare function displayDateOnly(dateString: string | Date | undefined): string;
|
|
@@ -97,6 +98,21 @@ export declare function truncate(s: string, n: number, suffix?: string): string;
|
|
|
97
98
|
export declare function truncateRev(s: string, n: number, prefix?: string): string;
|
|
98
99
|
export declare function isString(value: any): value is string | String;
|
|
99
100
|
export type InputCat = 'string' | 'email' | 'number' | 'boolean' | 'list' | 'resource-object' | 'enum' | 'date' | 'base64' | 'resource-string' | 'object' | 'sql' | 'yaml' | 'currency' | 'oneOf' | 'dynselect';
|
|
101
|
+
export declare namespace DynamicSelect {
|
|
102
|
+
type HelperScript = {
|
|
103
|
+
type: 'inline';
|
|
104
|
+
path?: string;
|
|
105
|
+
lang: Script['language'];
|
|
106
|
+
code: string;
|
|
107
|
+
} | {
|
|
108
|
+
type: 'hash';
|
|
109
|
+
hash: string;
|
|
110
|
+
};
|
|
111
|
+
const generatePythonFnTemplate: (functionName: string) => string;
|
|
112
|
+
const generateJsFnTemplate: (functionName: string) => string;
|
|
113
|
+
const generateDefaultTemplateFn: (functionName: string, lang: ScriptLang) => string;
|
|
114
|
+
const getGenerateTemplateFn: (lang: ScriptLang) => (functionName: string) => string;
|
|
115
|
+
}
|
|
100
116
|
export declare function setInputCat(type: string | undefined, format: string | undefined, itemsType: string | undefined, enum_: any, contentEncoding: string | undefined): InputCat;
|
|
101
117
|
export declare function formatCron(inp: string): string;
|
|
102
118
|
export declare function scriptLangArrayToCommaList(languages: ScriptLang[]): string;
|
|
@@ -160,7 +176,7 @@ export declare function getSchemaFromProperties(properties: {
|
|
|
160
176
|
}): Schema;
|
|
161
177
|
export declare function validateFileExtension(ext: string): boolean;
|
|
162
178
|
export declare function isFlowPreview(job_kind: Job['job_kind'] | undefined): job_kind is "flowpreview" | "flownode";
|
|
163
|
-
export declare function isNotFlow(job_kind: Job['job_kind'] | undefined): job_kind is "script" | "identity" | "preview" | "dependencies" | "flowdependencies" | "appdependencies" | "script_hub" | "deploymentcallback" | "flowscript" | "appscript" | undefined;
|
|
179
|
+
export declare function isNotFlow(job_kind: Job['job_kind'] | undefined): job_kind is "script" | "aiagent" | "identity" | "preview" | "dependencies" | "flowdependencies" | "appdependencies" | "script_hub" | "deploymentcallback" | "flowscript" | "appscript" | undefined;
|
|
164
180
|
export declare function isScriptPreview(job_kind: Job['job_kind'] | undefined): job_kind is "preview" | "flowscript" | "appscript";
|
|
165
181
|
export declare function conditionalMelt(node: HTMLElement, meltItem: AnyMeltElement | undefined): void | import("svelte/action").ActionReturn<undefined, Record<never, any>>;
|
|
166
182
|
export type Item = {
|
|
@@ -209,4 +225,5 @@ export declare function parseS3Object(s3Object: S3Object): {
|
|
|
209
225
|
export declare function formatS3Object(s3Object: S3Object): S3Uri;
|
|
210
226
|
export declare function isS3Uri(uri: string): uri is S3Uri;
|
|
211
227
|
export declare function uniqueBy<T>(array: T[], key: (t: T) => any): T[];
|
|
212
|
-
export declare function
|
|
228
|
+
export declare function pruneNullishArray<T>(array: (T | null | undefined)[]): T[];
|
|
229
|
+
export declare function assert(msg: string, condition: boolean, value?: any): void;
|
package/package/utils.js
CHANGED
|
@@ -82,6 +82,14 @@ export function isJobSelectable(selectionType) {
|
|
|
82
82
|
}[selectionType];
|
|
83
83
|
return f;
|
|
84
84
|
}
|
|
85
|
+
export function escapeHtml(unsafe) {
|
|
86
|
+
return unsafe
|
|
87
|
+
.replace(/&/g, '&')
|
|
88
|
+
.replace(/</g, '<')
|
|
89
|
+
.replace(/>/g, '>')
|
|
90
|
+
.replace(/"/g, '"')
|
|
91
|
+
.replace(/'/g, ''');
|
|
92
|
+
}
|
|
85
93
|
export function validateUsername(username) {
|
|
86
94
|
if (username != '' && !/^[a-zA-Z]\w+$/.test(username)) {
|
|
87
95
|
return 'username can only contain letters and numbers and must start with a letter';
|
|
@@ -474,6 +482,40 @@ export function truncateRev(s, n, prefix = '...') {
|
|
|
474
482
|
export function isString(value) {
|
|
475
483
|
return typeof value === 'string' || value instanceof String;
|
|
476
484
|
}
|
|
485
|
+
export var DynamicSelect;
|
|
486
|
+
(function (DynamicSelect) {
|
|
487
|
+
DynamicSelect.generatePythonFnTemplate = (functionName) => {
|
|
488
|
+
return `
|
|
489
|
+
def ${functionName}():
|
|
490
|
+
return [
|
|
491
|
+
{ "label": "Foo", "value": "foo" },
|
|
492
|
+
{ "label": "Bar", "value": "bar" }
|
|
493
|
+
]
|
|
494
|
+
|
|
495
|
+
`;
|
|
496
|
+
};
|
|
497
|
+
DynamicSelect.generateJsFnTemplate = (functionName) => {
|
|
498
|
+
return `
|
|
499
|
+
// you can use filterText to filter the results from the backend
|
|
500
|
+
// you can refer to other args directly as parameters (e.g. foobar: string)
|
|
501
|
+
export function ${functionName}(filterText: string) {
|
|
502
|
+
return [
|
|
503
|
+
{ label: 'Foo', value: 'foo' },
|
|
504
|
+
{ label: 'Bar', value: 'bar' }
|
|
505
|
+
];
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
`;
|
|
509
|
+
};
|
|
510
|
+
DynamicSelect.generateDefaultTemplateFn = (functionName, lang) => {
|
|
511
|
+
return lang === 'bun'
|
|
512
|
+
? DynamicSelect.generateJsFnTemplate(functionName)
|
|
513
|
+
: DynamicSelect.generatePythonFnTemplate(functionName);
|
|
514
|
+
};
|
|
515
|
+
DynamicSelect.getGenerateTemplateFn = (lang) => {
|
|
516
|
+
return lang === 'bun' ? DynamicSelect.generateJsFnTemplate : DynamicSelect.generatePythonFnTemplate;
|
|
517
|
+
};
|
|
518
|
+
})(DynamicSelect || (DynamicSelect = {}));
|
|
477
519
|
export function setInputCat(type, format, itemsType, enum_, contentEncoding) {
|
|
478
520
|
if (type === 'number' || type === 'integer') {
|
|
479
521
|
return 'number';
|
|
@@ -487,7 +529,8 @@ export function setInputCat(type, format, itemsType, enum_, contentEncoding) {
|
|
|
487
529
|
else if (type == 'object' && format?.startsWith('resource')) {
|
|
488
530
|
return 'resource-object';
|
|
489
531
|
}
|
|
490
|
-
else if (type == 'object' &&
|
|
532
|
+
else if (type == 'object' &&
|
|
533
|
+
(format?.startsWith('dynselect-') || format?.startsWith('dynselect_'))) {
|
|
491
534
|
return 'dynselect';
|
|
492
535
|
}
|
|
493
536
|
else if (!type || type == 'object' || type == 'array') {
|
|
@@ -1236,6 +1279,16 @@ export function uniqueBy(array, key) {
|
|
|
1236
1279
|
}
|
|
1237
1280
|
});
|
|
1238
1281
|
}
|
|
1239
|
-
export function
|
|
1282
|
+
export function pruneNullishArray(array) {
|
|
1240
1283
|
return array.filter((item) => item !== null && item !== undefined);
|
|
1241
1284
|
}
|
|
1285
|
+
export function assert(msg, condition, value) {
|
|
1286
|
+
if (!condition) {
|
|
1287
|
+
let m = 'Assertion failed: ' + msg;
|
|
1288
|
+
if (value)
|
|
1289
|
+
m += '\nValue: ' + JSON.stringify(value, null, 2);
|
|
1290
|
+
m += '\nPlease alert the Windmill team about this';
|
|
1291
|
+
sendUserToast(m, true);
|
|
1292
|
+
console.error(m);
|
|
1293
|
+
}
|
|
1294
|
+
}
|