windmill-components 1.504.6 → 1.511.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/ata/index.js +1 -1
- package/package/components/AppConnectInner.svelte +184 -29
- package/package/components/ArgInput.svelte +33 -103
- package/package/components/AuthSettings.svelte +45 -1
- package/package/components/Dev.svelte +31 -24
- package/package/components/DisplayResult.svelte +53 -26
- package/package/components/DisplayResult.svelte.d.ts +1 -1
- package/package/components/DynSelect.svelte +3 -3
- package/package/components/Editor.svelte +115 -88
- package/package/components/Editor.svelte.d.ts +30 -55
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/ErrorOrRecoveryHandler.svelte +73 -67
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +8 -24
- package/package/components/FlowBuilder.svelte +11 -2
- package/package/components/FlowJobResult.svelte +12 -17
- package/package/components/FlowJobResult.svelte.d.ts +5 -18
- package/package/components/FlowPreviewContent.svelte +13 -10
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/package/components/FlowPreviewResult.svelte +14 -6
- package/package/components/FlowStatusViewer.svelte +11 -24
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -18
- package/package/components/FlowStatusViewerInner.svelte +110 -131
- package/package/components/FlowStatusViewerInner.svelte.d.ts +20 -18
- package/package/components/GitDiffPreview.svelte +55 -0
- package/package/components/GitDiffPreview.svelte.d.ts +13 -0
- package/package/components/HistoricInputs.svelte +2 -2
- package/package/components/HttpAgentWorkerDrawer.svelte +1 -1
- package/package/components/InitGitRepoPopover.svelte +410 -0
- package/package/components/InitGitRepoPopover.svelte.d.ts +13 -0
- package/package/components/InstanceSetting.svelte +21 -9
- package/package/components/InstanceSettings.svelte +16 -3
- package/package/components/JobLoader.svelte +567 -0
- package/package/components/JobLoader.svelte.d.ts +53 -0
- package/package/components/JobLogs.svelte +6 -4
- package/package/components/JobLogs.svelte.d.ts +5 -18
- package/package/components/JsonEditor.svelte +11 -11
- package/package/components/JsonEditor.svelte.d.ts +14 -56
- package/package/components/Label.svelte +6 -11
- package/package/components/Label.svelte.d.ts +14 -39
- package/package/components/LightweightResourcePicker.svelte +18 -39
- package/package/components/LightweightResourcePicker.svelte.d.ts +6 -22
- package/package/components/LogViewer.svelte +35 -41
- package/package/components/LogViewer.svelte.d.ts +6 -20
- package/package/components/ModulePreviewResultViewer.svelte +3 -1
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -0
- package/package/components/ModuleTest.svelte +16 -11
- package/package/components/NumberTypeNarrowing.svelte +13 -16
- package/package/components/NumberTypeNarrowing.svelte.d.ts +4 -18
- package/package/components/PullGitRepoPopover.svelte +355 -0
- package/package/components/PullGitRepoPopover.svelte.d.ts +18 -0
- package/package/components/ResourceTypePicker.svelte +20 -17
- package/package/components/ResourceTypePicker.svelte.d.ts +7 -6
- package/package/components/S3FilePicker.svelte +5 -3
- package/package/components/SavedInputs.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +4 -3
- package/package/components/ScriptEditor.svelte +34 -31
- package/package/components/ScriptEditor.svelte.d.ts +3 -3
- package/package/components/Section.svelte +7 -20
- package/package/components/Section.svelte.d.ts +20 -47
- package/package/components/ServiceLogsInner.svelte +2 -1
- package/package/components/ServiceLogsInner.svelte.d.ts +1 -0
- package/package/components/SimpleEditor.svelte +4 -4
- package/package/components/SimpleEditor.svelte.d.ts +1 -0
- package/package/components/SqlRepl.svelte +0 -1
- package/package/components/Subsection.svelte +10 -12
- package/package/components/Subsection.svelte.d.ts +15 -39
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerGroup.svelte +260 -165
- package/package/components/WorkerGroup.svelte.d.ts +2 -0
- package/package/components/WorkerTagPicker.svelte +3 -3
- package/package/components/WorkerTagSelect.svelte +33 -4
- package/package/components/apps/components/buttons/AppButton.svelte +7 -1
- package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
- package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +16 -11
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +13 -10
- package/package/components/apps/components/display/AppMenu.svelte +5 -0
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +3 -3
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +3 -3
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +3 -3
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +3 -3
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +3 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte +65 -54
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -5
- package/package/components/apps/components/inputs/AppUserResource.svelte +26 -8
- package/package/components/apps/editor/AppEditorHeader.svelte +11 -5
- package/package/components/apps/editor/AppJobsDrawer.svelte +5 -5
- package/package/components/apps/editor/RunnableJobPanel.svelte +4 -4
- package/package/components/apps/editor/component/components.d.ts +12 -0
- package/package/components/apps/editor/component/components.js +19 -7
- package/package/components/assets/AssetButtons.svelte +38 -0
- package/package/components/assets/AssetButtons.svelte.d.ts +15 -0
- package/package/components/assets/AssetsDropdownButton.svelte +60 -72
- package/package/components/assets/AssetsDropdownButton.svelte.d.ts +3 -4
- package/package/components/assets/AssetsUsageDrawer.svelte +10 -10
- package/package/components/assets/JobAssetsViewer.svelte +79 -0
- package/package/components/assets/JobAssetsViewer.svelte.d.ts +7 -0
- package/package/components/assets/README_DEV.md +0 -0
- package/package/components/assets/lib.d.ts +9 -1
- package/package/components/assets/lib.js +48 -7
- package/package/components/common/fileUpload/FileUpload.svelte +126 -84
- package/package/components/common/fileUpload/FileUpload.svelte.d.ts +13 -3
- package/package/components/common/fileUpload/S3ArgInput.svelte +111 -0
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +21 -0
- package/package/components/common/table/ScriptRow.svelte +3 -1
- package/package/components/copilot/AIFormSettings.svelte +3 -4
- package/package/components/copilot/AIFormSettings.svelte.d.ts +5 -19
- package/package/components/copilot/autocomplete/Autocompletor.d.ts +3 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +269 -35
- package/package/components/copilot/autocomplete/request.d.ts +3 -0
- package/package/components/copilot/autocomplete/request.js +15 -7
- package/package/components/copilot/chat/AIChatDisplay.svelte +8 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +13 -8
- package/package/components/copilot/chat/flow/ModuleAcceptReject.svelte +5 -5
- package/package/components/copilot/chat/flow/core.d.ts +1 -1
- package/package/components/copilot/chat/flow/core.js +2 -38
- package/package/components/copilot/chat/navigator/apiTools.d.ts +8 -0
- package/package/components/copilot/chat/navigator/apiTools.js +95 -15
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +2 -1
- package/package/components/copilot/chat/script/core.d.ts +11 -2
- package/package/components/copilot/chat/script/core.js +165 -23
- package/package/components/copilot/chat/shared.d.ts +10 -0
- package/package/components/copilot/chat/shared.js +56 -0
- package/package/components/copilot/lib.d.ts +1 -0
- package/package/components/copilot/lib.js +30 -9
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/flows/FlowAssetsHandler.svelte +133 -0
- package/package/components/flows/FlowAssetsHandler.svelte.d.ts +14 -0
- package/package/components/flows/content/FlowModuleCache.svelte +4 -4
- package/package/components/flows/content/FlowModuleCache.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleComponent.svelte +16 -19
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +3 -4
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleSleep.svelte +6 -7
- package/package/components/flows/content/FlowModuleSleep.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleSuspend.svelte +19 -17
- package/package/components/flows/content/FlowModuleSuspend.svelte.d.ts +4 -18
- package/package/components/flows/content/FlowModuleTimeout.svelte +4 -4
- package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +4 -18
- package/package/components/flows/flowStore.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +9 -4
- package/package/components/flows/scheduleUtils.js +1 -1
- package/package/components/flows/types.d.ts +2 -1
- package/package/components/graph/FlowGraphV2.svelte +8 -104
- package/package/components/graph/FlowGraphV2.svelte.d.ts +0 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +6 -3
- package/package/components/graph/graphBuilder.svelte.js +35 -9
- package/package/components/graph/renderers/edges/BaseEdge.svelte +2 -5
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +23 -20
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +5 -10
- package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
- package/package/components/graph/util.js +1 -1
- package/package/components/home/ItemsList.svelte +2 -0
- package/package/components/icons/AssetGenericIcon.svelte +0 -3
- package/package/components/jobs/JobPreview.svelte +10 -6
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +13 -12
- package/package/components/runs/BatchReRunOptionsPane.svelte +5 -1
- package/package/components/runs/JobPreview.svelte +26 -16
- package/package/components/runs/{JobLoader.svelte.d.ts → JobsLoader.svelte.d.ts} +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +2 -2
- package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -0
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/scriptEditor/LogPanel.svelte +3 -2
- package/package/components/script_builder.d.ts +2 -2
- package/package/components/settings/CreateToken.svelte +76 -41
- package/package/components/settings/CreateToken.svelte.d.ts +1 -1
- package/package/components/settings/ScopeSelector.svelte +613 -0
- package/package/components/settings/ScopeSelector.svelte.d.ts +8 -0
- package/package/components/settings/TokenDisplay.svelte +103 -0
- package/package/components/settings/TokenDisplay.svelte.d.ts +10 -0
- package/package/components/settings/TokensTable.svelte +70 -349
- package/package/components/sidebar/CriticalAlertModal.svelte +3 -0
- package/package/components/triggers/DeleteTriggerButton.svelte +1 -1
- package/package/components/triggers/TriggerEditorToolbar.svelte +3 -3
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte +55 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +13 -0
- package/package/components/triggers/TriggersEditor.svelte +45 -3
- package/package/components/triggers/TriggersWrapper.svelte +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/gcp/utils.js +9 -1
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +3 -2
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +26 -23
- package/package/components/triggers/http/RouteEditorConfigSection.svelte.d.ts +5 -19
- package/package/components/triggers/http/RouteEditorInner.svelte +219 -175
- package/package/components/triggers/http/RouteEditorInner.svelte.d.ts +6 -2
- package/package/components/triggers/http/utils.js +9 -3
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/kafka/utils.js +9 -1
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte +4 -132
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +2 -5
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +182 -13
- package/package/components/triggers/mqtt/utils.js +9 -1
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/nats/utils.js +9 -1
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +41 -2
- package/package/components/triggers/postgres/utils.js +9 -1
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +38 -92
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/sqs/utils.js +9 -1
- package/package/components/triggers/utils.js +12 -0
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +47 -6
- package/package/components/triggers/websocket/utils.js +11 -1
- package/package/components/workspaceSettings/AISettings.svelte +0 -2
- package/package/components/workspaceSettings/FilterList.svelte +56 -0
- package/package/components/workspaceSettings/FilterList.svelte.d.ts +8 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +785 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +18 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +305 -23
- package/package/gen/schemas.gen.js +305 -23
- package/package/gen/services.gen.d.ts +33 -1
- package/package/gen/services.gen.js +66 -2
- package/package/gen/types.gen.d.ts +216 -11
- package/package/history.svelte.js +0 -2
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +5 -2
- package/package/infer.js +16 -10
- package/package/svelte5Utils.svelte.d.ts +1 -0
- package/package/svelte5Utils.svelte.js +25 -18
- package/package/toast.js +10 -0
- package/package/utils.d.ts +3 -2
- package/package/utils.js +20 -5
- package/package.json +11 -11
- package/package/components/ResultJobLoader.svelte +0 -219
- package/package/components/ResultJobLoader.svelte.d.ts +0 -52
- package/package/components/TestJobLoader.svelte +0 -274
- package/package/components/TestJobLoader.svelte.d.ts +0 -43
- package/package/components/icons/AssetVarIcon.svelte +0 -31
- package/package/components/icons/AssetVarIcon.svelte.d.ts +0 -9
- /package/package/components/runs/{JobLoader.svelte → JobsLoader.svelte} +0 -0
|
@@ -66,6 +66,23 @@ function getModelMaxTokens(model) {
|
|
|
66
66
|
}
|
|
67
67
|
return 8192;
|
|
68
68
|
}
|
|
69
|
+
export function getModelContextWindow(model) {
|
|
70
|
+
if (model.startsWith('gpt-4.1') || model.startsWith('gemini')) {
|
|
71
|
+
return 1000000;
|
|
72
|
+
}
|
|
73
|
+
else if (model.startsWith('gpt-4o') || model.startsWith('llama-3.3')) {
|
|
74
|
+
return 128000;
|
|
75
|
+
}
|
|
76
|
+
else if (model.startsWith('claude') || model.startsWith('o4-mini') || model.startsWith('o3')) {
|
|
77
|
+
return 200000;
|
|
78
|
+
}
|
|
79
|
+
else if (model.startsWith('codestral')) {
|
|
80
|
+
return 32000;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
return 128000;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
69
86
|
function getModelSpecificConfig(modelProvider, tools) {
|
|
70
87
|
if ((modelProvider.provider === 'openai' || modelProvider.provider === 'azure_openai') &&
|
|
71
88
|
modelProvider.model.startsWith('o')) {
|
|
@@ -373,6 +390,7 @@ const mistralFimResponseSchema = z.object({
|
|
|
373
390
|
}))
|
|
374
391
|
});
|
|
375
392
|
export const FIM_MAX_TOKENS = 256;
|
|
393
|
+
const FIM_MAX_LINES = 8;
|
|
376
394
|
export async function getFimCompletion(prompt, suffix, providerModel, abortController) {
|
|
377
395
|
const fetchOptions = {
|
|
378
396
|
signal: abortController.signal,
|
|
@@ -396,16 +414,19 @@ export async function getFimCompletion(prompt, suffix, providerModel, abortContr
|
|
|
396
414
|
const body = await response.json();
|
|
397
415
|
const parsedBody = mistralFimResponseSchema.parse(body);
|
|
398
416
|
const choice = parsedBody.choices[0];
|
|
399
|
-
if (choice) {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
417
|
+
if (choice && choice.message.content !== undefined) {
|
|
418
|
+
let lines = choice.message.content.split('\n');
|
|
419
|
+
// If finish_reason is 'length', remove the last line
|
|
420
|
+
if (choice.finish_reason === 'length') {
|
|
421
|
+
if (lines.length > 1) {
|
|
422
|
+
lines = lines.slice(0, -1);
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
lines = [];
|
|
426
|
+
}
|
|
408
427
|
}
|
|
428
|
+
lines = lines.slice(0, FIM_MAX_LINES);
|
|
429
|
+
return lines.join('\n');
|
|
409
430
|
}
|
|
410
431
|
else {
|
|
411
432
|
return undefined;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
<script lang="ts" module>export function initFlowGraphAssetsCtx({ getModules }) {
|
|
2
|
+
let s = $state({
|
|
3
|
+
val: {
|
|
4
|
+
selectedAsset: undefined,
|
|
5
|
+
dbManagerDrawer: undefined,
|
|
6
|
+
s3FilePicker: undefined,
|
|
7
|
+
resourceEditorDrawer: undefined,
|
|
8
|
+
resourceMetadataCache: {},
|
|
9
|
+
additionalAssetsMap: {},
|
|
10
|
+
computeAssetsCount: (asset) => {
|
|
11
|
+
return getAllModules(getModules())
|
|
12
|
+
.flatMap((m) => getFlowModuleAssets(m, s.val.additionalAssetsMap) ?? [])
|
|
13
|
+
.filter((a) => assetEq(asset, a)).length;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return s;
|
|
18
|
+
}
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<script lang="ts">import { inferAssets } from '../../infer';
|
|
22
|
+
import { assetEq, getFlowModuleAssets } from '../assets/lib';
|
|
23
|
+
import OnChange from '../common/OnChange.svelte';
|
|
24
|
+
import { getAllModules } from './flowExplorer';
|
|
25
|
+
import { getContext, untrack } from 'svelte';
|
|
26
|
+
import { AssetService, ResourceService } from '../../gen';
|
|
27
|
+
import { deepEqual } from 'fast-equals';
|
|
28
|
+
import { workspaceStore } from '../../stores';
|
|
29
|
+
import S3FilePicker from '../S3FilePicker.svelte';
|
|
30
|
+
import DbManagerDrawer from '../DBManagerDrawer.svelte';
|
|
31
|
+
import ResourceEditorDrawer from '../ResourceEditorDrawer.svelte';
|
|
32
|
+
let { modules, enableParser = false, enableDbExplore = false, enablePathScriptAndFlowAssets = false } = $props();
|
|
33
|
+
const flowGraphAssetsCtx = getContext('FlowGraphAssetContext');
|
|
34
|
+
let allModules = $derived(getAllModules(modules));
|
|
35
|
+
// Fetch resource metadata for the ExploreAssetButton
|
|
36
|
+
const resMetadataCache = $derived(flowGraphAssetsCtx?.val.resourceMetadataCache);
|
|
37
|
+
$effect(() => {
|
|
38
|
+
if (!resMetadataCache || !enableDbExplore)
|
|
39
|
+
return;
|
|
40
|
+
const assets = allModules.flatMap((m) => getFlowModuleAssets(m, flowGraphAssetsCtx?.val.additionalAssetsMap) ?? []) ?? [];
|
|
41
|
+
for (const asset of assets) {
|
|
42
|
+
if (asset.kind !== 'resource' || asset.path in resMetadataCache)
|
|
43
|
+
continue;
|
|
44
|
+
resMetadataCache[asset.path] = undefined; // avoid fetching multiple times because of async
|
|
45
|
+
ResourceService.getResource({ path: asset.path, workspace: $workspaceStore })
|
|
46
|
+
.then((r) => (resMetadataCache[asset.path] = { resource_type: r.resource_type }))
|
|
47
|
+
.catch((err) => {
|
|
48
|
+
console.error("Couldn't fetch resource", asset.path, err);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
// Fetch transitive assets (path scripts and flows)
|
|
53
|
+
$effect(() => {
|
|
54
|
+
if (!$workspaceStore || !flowGraphAssetsCtx || !enablePathScriptAndFlowAssets)
|
|
55
|
+
return;
|
|
56
|
+
let usages = [];
|
|
57
|
+
let modIds = [];
|
|
58
|
+
for (const mod of allModules) {
|
|
59
|
+
if (mod.id in flowGraphAssetsCtx.val.additionalAssetsMap)
|
|
60
|
+
continue;
|
|
61
|
+
flowGraphAssetsCtx.val.additionalAssetsMap[mod.id] = []; // avoid fetching multiple times because of async
|
|
62
|
+
if (mod.value.type === 'flow' || mod.value.type === 'script') {
|
|
63
|
+
usages.push({ path: mod.value.path, kind: mod.value.type });
|
|
64
|
+
modIds.push(mod.id);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (usages.length) {
|
|
68
|
+
AssetService.listAssetsByUsage({
|
|
69
|
+
workspace: $workspaceStore,
|
|
70
|
+
requestBody: { usages }
|
|
71
|
+
}).then((result) => {
|
|
72
|
+
result.forEach((assets, idx) => {
|
|
73
|
+
flowGraphAssetsCtx.val.additionalAssetsMap[modIds[idx]] = assets;
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
// Prune all additionalAssetsMap entries from deleted modules
|
|
79
|
+
$effect(() => {
|
|
80
|
+
if (!flowGraphAssetsCtx)
|
|
81
|
+
return;
|
|
82
|
+
const modulesSet = new Set(allModules.map((m) => m.id));
|
|
83
|
+
for (const key of Object.keys(flowGraphAssetsCtx.val.additionalAssetsMap)) {
|
|
84
|
+
if (!modulesSet.has(key)) {
|
|
85
|
+
delete flowGraphAssetsCtx.val.additionalAssetsMap[key];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
async function parseAndUpdateRawScriptModule(v) {
|
|
90
|
+
try {
|
|
91
|
+
let parsedAssets = await inferAssets(v.language, v.content);
|
|
92
|
+
for (const asset of parsedAssets) {
|
|
93
|
+
const old = v.assets?.find((a) => assetEq(a, asset));
|
|
94
|
+
if (old?.alt_access_type)
|
|
95
|
+
asset.alt_access_type = old.alt_access_type;
|
|
96
|
+
}
|
|
97
|
+
if (!deepEqual(v.assets, parsedAssets))
|
|
98
|
+
v.assets = parsedAssets;
|
|
99
|
+
}
|
|
100
|
+
catch (e) { }
|
|
101
|
+
}
|
|
102
|
+
// Check for raw script modules whose assets were not parsed. Useful for flows created
|
|
103
|
+
// before the assets feature was introduced.
|
|
104
|
+
$effect(() => {
|
|
105
|
+
if (!enableParser)
|
|
106
|
+
return;
|
|
107
|
+
untrack(() => {
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
for (const mod of allModules) {
|
|
110
|
+
if (mod.value.type === 'rawscript' && mod.value.assets === undefined) {
|
|
111
|
+
console.log('RawScript module', mod.id, 'without assets field, parsing');
|
|
112
|
+
parseAndUpdateRawScriptModule(mod.value);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}, 500); // ensure modules are loaded
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
</script>
|
|
119
|
+
|
|
120
|
+
{#if enableParser}
|
|
121
|
+
{#each allModules as mod (mod.id)}
|
|
122
|
+
{#if mod.value.type === 'rawscript'}
|
|
123
|
+
{@const v = mod.value}
|
|
124
|
+
<OnChange key={v.content} onChange={() => parseAndUpdateRawScriptModule(v)} />
|
|
125
|
+
{/if}
|
|
126
|
+
{/each}
|
|
127
|
+
{/if}
|
|
128
|
+
|
|
129
|
+
{#if flowGraphAssetsCtx}
|
|
130
|
+
<S3FilePicker bind:this={flowGraphAssetsCtx.val.s3FilePicker} readOnlyMode />
|
|
131
|
+
<DbManagerDrawer bind:this={flowGraphAssetsCtx.val.dbManagerDrawer} />
|
|
132
|
+
<ResourceEditorDrawer bind:this={flowGraphAssetsCtx.val.resourceEditorDrawer} />
|
|
133
|
+
{/if}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function initFlowGraphAssetsCtx({ getModules }: {
|
|
2
|
+
getModules: () => FlowModule[];
|
|
3
|
+
}): FlowGraphAssetContext;
|
|
4
|
+
import type { FlowGraphAssetContext } from './types';
|
|
5
|
+
import { type FlowModule } from '../../gen';
|
|
6
|
+
type $$ComponentProps = {
|
|
7
|
+
modules: FlowModule[];
|
|
8
|
+
enableParser?: boolean;
|
|
9
|
+
enableDbExplore?: boolean;
|
|
10
|
+
enablePathScriptAndFlowAssets?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare const FlowAssetsHandler: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
13
|
+
type FlowAssetsHandler = ReturnType<typeof FlowAssetsHandler>;
|
|
14
|
+
export default FlowAssetsHandler;
|
|
@@ -3,18 +3,18 @@ import Section from '../../Section.svelte';
|
|
|
3
3
|
import Toggle from '../../Toggle.svelte';
|
|
4
4
|
import Tooltip from '../../Tooltip.svelte';
|
|
5
5
|
import { SecondsInput } from '../../common';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
let { flowModule = $bindable() } = $props();
|
|
7
|
+
let isCacheEnabled = $derived(Boolean(flowModule.cache_ttl));
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
10
|
<Section label="Cache" class="flex flex-col gap-4">
|
|
11
|
-
|
|
11
|
+
{#snippet header()}
|
|
12
12
|
<Tooltip documentationLink="https://www.windmill.dev/docs/flows/cache">
|
|
13
13
|
If defined, the result of the step will be cached for the number of seconds defined such that
|
|
14
14
|
if this step were to be re-triggered with the same input it would retrieve and return its
|
|
15
15
|
cached value instead of recomputing it.
|
|
16
16
|
</Tooltip>
|
|
17
|
-
|
|
17
|
+
{/snippet}
|
|
18
18
|
|
|
19
19
|
{#if flowModule.value.type != 'rawscript'}
|
|
20
20
|
<p
|
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
import type { FlowModule } from '../../../gen';
|
|
2
|
-
interface
|
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const FlowModuleCache: $$__sveltets_2_IsomorphicComponent<{
|
|
2
|
+
interface Props {
|
|
16
3
|
flowModule: FlowModule;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
type FlowModuleCache = InstanceType<typeof FlowModuleCache>;
|
|
4
|
+
}
|
|
5
|
+
declare const FlowModuleCache: import("svelte").Component<Props, {}, "flowModule">;
|
|
6
|
+
type FlowModuleCache = ReturnType<typeof FlowModuleCache>;
|
|
21
7
|
export default FlowModuleCache;
|
|
@@ -45,10 +45,9 @@ import { JobService } from '../../../gen';
|
|
|
45
45
|
import { workspaceStore } from '../../../stores';
|
|
46
46
|
import { checkIfParentLoop } from '../utils';
|
|
47
47
|
import ModulePreviewResultViewer from '../../ModulePreviewResultViewer.svelte';
|
|
48
|
-
import { refreshStateStore
|
|
48
|
+
import { refreshStateStore } from '../../../svelte5Utils.svelte';
|
|
49
49
|
import { getStepHistoryLoaderContext } from '../../stepHistoryLoader.svelte';
|
|
50
50
|
import AssetsDropdownButton from '../../assets/AssetsDropdownButton.svelte';
|
|
51
|
-
import { inferAssets } from '../../../infer';
|
|
52
51
|
const { selectedId, currentEditor, previewArgs, flowStateStore, flowStore, pathStore, saveDraft, customUi, executionCount } = getContext('FlowEditorContext');
|
|
53
52
|
let { flowModule = $bindable(), failureModule = false, preprocessorModule = false, parentModule = $bindable(), previousModule, scriptKind = 'script', scriptTemplate = 'script', noEditor, enableAi, savedModule = undefined, forceTestTab = false, highlightArg = undefined } = $props();
|
|
54
53
|
let workspaceScriptTag = $state(undefined);
|
|
@@ -74,6 +73,7 @@ let lastJob = $state(undefined);
|
|
|
74
73
|
let testJob = $state(undefined);
|
|
75
74
|
let testIsLoading = $state(false);
|
|
76
75
|
let scriptProgress = $state(undefined);
|
|
76
|
+
let assets = $derived((flowModule.value.type === 'rawscript' && flowModule.value.assets) || []);
|
|
77
77
|
function onModulesChange(savedModule, flowModule) {
|
|
78
78
|
// console.log('onModulesChange', savedModule, flowModule)
|
|
79
79
|
return savedModule?.value?.type === 'rawscript' &&
|
|
@@ -136,10 +136,12 @@ let forceReload = $state(0);
|
|
|
136
136
|
let editorPanelSize = $state(noEditor ? 0 : flowModule.value.type == 'script' ? 30 : 50);
|
|
137
137
|
let editorSettingsPanelSize = $state(100 - untrack(() => editorPanelSize));
|
|
138
138
|
let stepHistoryLoader = getStepHistoryLoaderContext();
|
|
139
|
+
let lastJobId = undefined;
|
|
139
140
|
function onSelectedIdChange() {
|
|
140
141
|
if (!$flowStateStore?.[$selectedId]?.schema && flowModule) {
|
|
141
142
|
reload(flowModule);
|
|
142
143
|
}
|
|
144
|
+
lastJobId = undefined;
|
|
143
145
|
}
|
|
144
146
|
async function getLastJob() {
|
|
145
147
|
if (!$flowStateStore ||
|
|
@@ -149,11 +151,19 @@ async function getLastJob() {
|
|
|
149
151
|
!$flowStateStore[flowModule.id]?.previewWorkspaceId) {
|
|
150
152
|
return;
|
|
151
153
|
}
|
|
154
|
+
if (lastJobId == $flowStateStore[flowModule.id]?.previewJobId ||
|
|
155
|
+
lastJob?.id == $flowStateStore[flowModule.id]?.previewJobId ||
|
|
156
|
+
$flowStateStore[flowModule.id]?.previewSuccess == undefined) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
lastJobId = $flowStateStore[flowModule.id]?.previewJobId;
|
|
152
160
|
const job = await JobService.getJob({
|
|
153
161
|
workspace: $flowStateStore[flowModule.id]?.previewWorkspaceId ?? '',
|
|
154
|
-
id: $flowStateStore[flowModule.id]?.previewJobId ?? ''
|
|
162
|
+
id: $flowStateStore[flowModule.id]?.previewJobId ?? '',
|
|
163
|
+
noCode: true
|
|
155
164
|
});
|
|
156
|
-
if (job) {
|
|
165
|
+
if (job && job.type === 'CompletedJob') {
|
|
166
|
+
lastJobId = $flowStateStore[flowModule.id]?.previewJobId;
|
|
157
167
|
lastJob = job;
|
|
158
168
|
}
|
|
159
169
|
}
|
|
@@ -222,15 +232,6 @@ $effect(() => {
|
|
|
222
232
|
}, 100);
|
|
223
233
|
}
|
|
224
234
|
});
|
|
225
|
-
let assets = usePromise(async () => flowModule.value.type === 'rawscript'
|
|
226
|
-
? await inferAssets(flowModule.value.language, flowModule.value.content)
|
|
227
|
-
: undefined, { clearValueOnRefresh: false, loadInit: false });
|
|
228
|
-
$effect(() => {
|
|
229
|
-
if (flowModule.value.type !== 'rawscript')
|
|
230
|
-
return;
|
|
231
|
-
[flowModule.value.content, flowModule.value.language];
|
|
232
|
-
untrack(() => assets.refresh());
|
|
233
|
-
});
|
|
234
235
|
let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.value.language : undefined);
|
|
235
236
|
</script>
|
|
236
237
|
|
|
@@ -339,11 +340,8 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
339
340
|
{#if !noEditor}
|
|
340
341
|
{#key flowModule.id}
|
|
341
342
|
<div class="absolute top-2 right-4 z-10 flex flex-row gap-2">
|
|
342
|
-
{#if assets
|
|
343
|
-
<AssetsDropdownButton
|
|
344
|
-
assets={assets.value}
|
|
345
|
-
bind:fallbackAccessTypes={flowModule.value.asset_fallback_access_types}
|
|
346
|
-
/>
|
|
343
|
+
{#if assets?.length}
|
|
344
|
+
<AssetsDropdownButton {assets} />
|
|
347
345
|
{/if}
|
|
348
346
|
</div>
|
|
349
347
|
<Editor
|
|
@@ -354,7 +352,6 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
354
352
|
bind:this={editor}
|
|
355
353
|
class="h-full relative"
|
|
356
354
|
code={flowModule.value.content}
|
|
357
|
-
lang={scriptLangToEditorLang(flowModule?.value?.language)}
|
|
358
355
|
scriptLang={flowModule?.value?.language}
|
|
359
356
|
automaticLayout={true}
|
|
360
357
|
cmdEnterAction={async () => {
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
<script lang="ts">import Toggle from '../../Toggle.svelte';
|
|
2
2
|
import Tooltip from '../../Tooltip.svelte';
|
|
3
3
|
import Section from '../../Section.svelte';
|
|
4
|
-
|
|
5
|
-
export let disabled = false;
|
|
4
|
+
let { flowModule = $bindable(), disabled = false } = $props();
|
|
6
5
|
</script>
|
|
7
6
|
|
|
8
7
|
<Section label="Delete after use">
|
|
9
|
-
|
|
8
|
+
{#snippet header()}
|
|
10
9
|
<Tooltip>
|
|
11
10
|
The logs, arguments and results of this flow step will be completely deleted from Windmill
|
|
12
11
|
once the flow is complete. They might be temporarily visible in UI while the flow is running.
|
|
@@ -21,7 +20,7 @@ export let disabled = false;
|
|
|
21
20
|
This option is only available on Windmill Enterprise Edition.
|
|
22
21
|
{/if}
|
|
23
22
|
</Tooltip>
|
|
24
|
-
|
|
23
|
+
{/snippet}
|
|
25
24
|
|
|
26
25
|
<Toggle
|
|
27
26
|
{disabled}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
1
|
import type { FlowModule } from '../../../gen';
|
|
2
|
-
interface
|
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const FlowModuleDeleteAfterUse: $$__sveltets_2_IsomorphicComponent<{
|
|
2
|
+
interface Props {
|
|
16
3
|
flowModule: FlowModule;
|
|
17
4
|
disabled?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type FlowModuleDeleteAfterUse = InstanceType<typeof FlowModuleDeleteAfterUse>;
|
|
5
|
+
}
|
|
6
|
+
declare const FlowModuleDeleteAfterUse: import("svelte").Component<Props, {}, "flowModule">;
|
|
7
|
+
type FlowModuleDeleteAfterUse = ReturnType<typeof FlowModuleDeleteAfterUse>;
|
|
22
8
|
export default FlowModuleDeleteAfterUse;
|
|
@@ -7,25 +7,24 @@ import PropPickerWrapper from '../propPicker/PropPickerWrapper.svelte';
|
|
|
7
7
|
import { SecondsInput } from '../../common';
|
|
8
8
|
import Section from '../../Section.svelte';
|
|
9
9
|
import Label from '../../Label.svelte';
|
|
10
|
-
|
|
11
|
-
export let previousModuleId;
|
|
10
|
+
let { flowModule = $bindable(), previousModuleId } = $props();
|
|
12
11
|
const { selectedId, flowStateStore } = getContext('FlowEditorContext');
|
|
13
|
-
let schema = emptySchema();
|
|
12
|
+
let schema = $state(emptySchema());
|
|
14
13
|
schema.properties['sleep'] = {
|
|
15
14
|
type: 'number'
|
|
16
15
|
};
|
|
17
|
-
let editor = undefined;
|
|
16
|
+
let editor = $state(undefined);
|
|
18
17
|
const result = $flowStateStore[$selectedId]?.previewResult ?? {};
|
|
19
|
-
|
|
18
|
+
let isSleepEnabled = $derived(Boolean(flowModule.sleep));
|
|
20
19
|
</script>
|
|
21
20
|
|
|
22
21
|
<Section label="Sleep" class="w-full">
|
|
23
|
-
|
|
22
|
+
{#snippet header()}
|
|
24
23
|
<Tooltip documentationLink="https://www.windmill.dev/docs/flows/sleep">
|
|
25
24
|
If defined, at the end of the step, the flow will sleep for a number of seconds before
|
|
26
25
|
scheduling the next job (if any, no effect if the step is the last one).
|
|
27
26
|
</Tooltip>
|
|
28
|
-
|
|
27
|
+
{/snippet}
|
|
29
28
|
|
|
30
29
|
<Toggle
|
|
31
30
|
checked={isSleepEnabled}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
1
|
import type { FlowModule } from '../../../gen';
|
|
2
|
-
interface
|
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const FlowModuleSleep: $$__sveltets_2_IsomorphicComponent<{
|
|
2
|
+
interface Props {
|
|
16
3
|
flowModule: FlowModule;
|
|
17
4
|
previousModuleId: string | undefined;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type FlowModuleSleep = InstanceType<typeof FlowModuleSleep>;
|
|
5
|
+
}
|
|
6
|
+
declare const FlowModuleSleep: import("svelte").Component<Props, {}, "flowModule">;
|
|
7
|
+
type FlowModuleSleep = ReturnType<typeof FlowModuleSleep>;
|
|
22
8
|
export default FlowModuleSleep;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<script lang="ts">import
|
|
1
|
+
<script lang="ts">import { run } from 'svelte/legacy';
|
|
2
|
+
import Toggle from '../../Toggle.svelte';
|
|
2
3
|
import Tooltip from '../../Tooltip.svelte';
|
|
3
4
|
import InputTransformForm from '../../InputTransformForm.svelte';
|
|
4
|
-
import { getContext, tick } from 'svelte';
|
|
5
|
+
import { getContext, tick, untrack } from 'svelte';
|
|
5
6
|
import { Alert, Tab, Tabs } from '../../common';
|
|
6
7
|
import { GroupService } from '../../../gen';
|
|
7
8
|
import { emptySchema, emptyString } from '../../../utils';
|
|
@@ -15,13 +16,12 @@ import EditableSchemaDrawer from '../../schema/EditableSchemaDrawer.svelte';
|
|
|
15
16
|
import AddProperty from '../../schema/AddProperty.svelte';
|
|
16
17
|
const { selectedId, flowStateStore } = getContext('FlowEditorContext');
|
|
17
18
|
const result = $flowStateStore[$selectedId]?.previewResult ?? {};
|
|
18
|
-
let editor = undefined;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
let
|
|
22
|
-
let
|
|
23
|
-
let
|
|
24
|
-
$: isSuspendEnabled = Boolean(flowModule.suspend);
|
|
19
|
+
let editor = $state(undefined);
|
|
20
|
+
let { flowModule = $bindable(), previousModuleId } = $props();
|
|
21
|
+
let schema = $state(emptySchema());
|
|
22
|
+
let allUserGroups = $state([]);
|
|
23
|
+
let suspendTabSelected = $state('core');
|
|
24
|
+
let isSuspendEnabled = $derived(Boolean(flowModule.suspend));
|
|
25
25
|
async function loadGroups() {
|
|
26
26
|
allUserGroups = await GroupService.listGroupNames({ workspace: $workspaceStore });
|
|
27
27
|
schema.properties['groups'] = {
|
|
@@ -32,19 +32,21 @@ async function loadGroups() {
|
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
run(() => {
|
|
36
36
|
if ($workspaceStore && allUserGroups.length === 0) {
|
|
37
|
-
|
|
37
|
+
untrack(() => {
|
|
38
|
+
loadGroups();
|
|
39
|
+
});
|
|
38
40
|
}
|
|
39
|
-
}
|
|
40
|
-
let jsonView = false;
|
|
41
|
+
});
|
|
42
|
+
let jsonView = $state(false);
|
|
41
43
|
</script>
|
|
42
44
|
|
|
43
45
|
<Section label="Suspend/Approval/Prompt" class="w-full">
|
|
44
|
-
|
|
46
|
+
{#snippet action()}
|
|
45
47
|
<SuspendDrawer text="Approval/Prompt helpers" />
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
{/snippet}
|
|
49
|
+
{#snippet header()}
|
|
48
50
|
<div class="flex flex-row items-center gap-2">
|
|
49
51
|
<Tooltip documentationLink="https://www.windmill.dev/docs/flows/flow_approval">
|
|
50
52
|
If defined, at the end of the step, the flow will be suspended until it receives external
|
|
@@ -69,7 +71,7 @@ let jsonView = false;
|
|
|
69
71
|
}}
|
|
70
72
|
/>
|
|
71
73
|
</div>
|
|
72
|
-
|
|
74
|
+
{/snippet}
|
|
73
75
|
|
|
74
76
|
<div class="overflow-x-auto scrollbar-hidden">
|
|
75
77
|
<Tabs bind:selected={suspendTabSelected}>
|
|
@@ -1,22 +1,8 @@
|
|
|
1
1
|
import { type FlowModule } from '../../../gen';
|
|
2
|
-
interface
|
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const FlowModuleSuspend: $$__sveltets_2_IsomorphicComponent<{
|
|
2
|
+
interface Props {
|
|
16
3
|
flowModule: FlowModule;
|
|
17
4
|
previousModuleId: string | undefined;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type FlowModuleSuspend = InstanceType<typeof FlowModuleSuspend>;
|
|
5
|
+
}
|
|
6
|
+
declare const FlowModuleSuspend: import("svelte").Component<Props, {}, "flowModule">;
|
|
7
|
+
type FlowModuleSuspend = ReturnType<typeof FlowModuleSuspend>;
|
|
22
8
|
export default FlowModuleSuspend;
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import Toggle from '../../Toggle.svelte';
|
|
3
3
|
import Tooltip from '../../Tooltip.svelte';
|
|
4
4
|
import { Alert, SecondsInput } from '../../common';
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
let { flowModule = $bindable() } = $props();
|
|
6
|
+
let istimeoutEnabled = $derived(Boolean(flowModule.timeout));
|
|
7
7
|
</script>
|
|
8
8
|
|
|
9
9
|
<Section label="Timeout">
|
|
10
|
-
|
|
10
|
+
{#snippet header()}
|
|
11
11
|
<Tooltip>
|
|
12
12
|
If defined, the custom timeout will be used instead of the instance timeout for the step. The
|
|
13
13
|
step's timeout cannot be greater than the instance timeout.
|
|
14
14
|
</Tooltip>
|
|
15
|
-
|
|
15
|
+
{/snippet}
|
|
16
16
|
|
|
17
17
|
<Toggle
|
|
18
18
|
checked={istimeoutEnabled}
|
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
import type { FlowModule } from '../../../gen';
|
|
2
|
-
interface
|
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const FlowModuleTimeout: $$__sveltets_2_IsomorphicComponent<{
|
|
2
|
+
interface Props {
|
|
16
3
|
flowModule: FlowModule;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
type FlowModuleTimeout = InstanceType<typeof FlowModuleTimeout>;
|
|
4
|
+
}
|
|
5
|
+
declare const FlowModuleTimeout: import("svelte").Component<Props, {}, "flowModule">;
|
|
6
|
+
type FlowModuleTimeout = ReturnType<typeof FlowModuleTimeout>;
|
|
21
7
|
export default FlowModuleTimeout;
|
|
@@ -14,7 +14,7 @@ export declare function getFirstStepSchema(flowState: FlowState, flow: OpenFlow)
|
|
|
14
14
|
value: {
|
|
15
15
|
language?: "deno" | "bun" | "python3" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "oracledb" | "graphql" | "nativets" | "php" | undefined;
|
|
16
16
|
path?: string | undefined;
|
|
17
|
-
type: "rawscript" | "script" | "flow" | "forloopflow" | "
|
|
17
|
+
type: "rawscript" | "script" | "flow" | "forloopflow" | "whileloopflow" | "branchone" | "branchall" | "identity";
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
connectFirstNode: () => void;
|
|
@@ -358,6 +358,7 @@ outline-[1px] outline dark:outline-gray-500 outline-gray-300 bg-surface duration
|
|
|
358
358
|
onclick={stopPropagation(
|
|
359
359
|
preventDefault((event) => dispatch('delete', { id, type: modType }))
|
|
360
360
|
)}
|
|
361
|
+
onpointerdown={stopPropagation(preventDefault(() => {}))}
|
|
361
362
|
>
|
|
362
363
|
<X class="mx-[3px]" size={12} strokeWidth={2} />
|
|
363
364
|
</button>
|