windmill-components 1.433.0 → 1.444.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/ArgInput.svelte +12 -16
- package/package/components/ArgInput.svelte.d.ts +1 -0
- package/package/components/AssignableTags.svelte +3 -1
- package/package/components/AssignableTags.svelte.d.ts +1 -0
- package/package/components/AuthSettings.svelte +248 -0
- package/package/components/AuthSettings.svelte.d.ts +19 -0
- package/package/components/AutoscalingConfigEditor.svelte +2 -2
- package/package/components/CronInput.svelte +2 -2
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/Description.svelte +9 -0
- package/package/components/Description.svelte.d.ts +18 -0
- package/package/components/Dev.svelte +18 -3
- package/package/components/DisplayResult.svelte +7 -4
- package/package/components/DisplayResult.svelte.d.ts +1 -0
- package/package/components/DropdownV2.svelte +2 -1
- package/package/components/DropdownV2.svelte.d.ts +1 -0
- package/package/components/EditableSchemaForm.svelte +2 -2
- package/package/components/Editor.svelte +9 -6
- package/package/components/Editor.svelte.d.ts +4 -2
- package/package/components/EditorBar.svelte +51 -6
- package/package/components/ErrorOrRecoveryHandler.svelte +4 -3
- package/package/components/ExecutionDuration.svelte +2 -1
- package/package/components/FieldHeader.svelte +9 -1
- package/package/components/FieldHeader.svelte.d.ts +1 -0
- package/package/components/FlowBuilder.svelte +16 -3
- package/package/components/FlowGraphViewer.svelte +2 -0
- package/package/components/FlowPreviewContent.svelte +6 -15
- package/package/components/FlowStatusViewerInner.svelte +80 -55
- package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
- package/package/components/HighlightCode.svelte +3 -0
- package/package/components/InputTransformSchemaForm.svelte +1 -1
- package/package/components/InstanceSetting.svelte +774 -0
- package/package/components/InstanceSetting.svelte.d.ts +27 -0
- package/package/components/InstanceSettings.svelte +68 -1005
- package/package/components/InstanceSettings.svelte.d.ts +0 -4
- package/package/components/Label.svelte +16 -6
- package/package/components/Label.svelte.d.ts +3 -0
- package/package/components/Login.svelte +17 -9
- package/package/components/OAuthSetting.svelte +4 -3
- package/package/components/OauthExtraParams.svelte +1 -1
- package/package/components/OauthScopes.svelte +2 -2
- package/package/components/ObjectStoreConfigSettings.svelte +141 -128
- package/package/components/QueueMetricsDrawer.svelte +5 -5
- package/package/components/ResourceEditor.svelte +4 -0
- package/package/components/ResourceEditor.svelte.d.ts +1 -0
- package/package/components/ResourceEditorDrawer.svelte +15 -3
- package/package/components/ResourceEditorDrawer.svelte.d.ts +2 -2
- package/package/components/ResourcePicker.svelte +16 -5
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultJobLoader.svelte.d.ts +1 -1
- package/package/components/RunPageSchedules.svelte +15 -10
- package/package/components/SavedInputs.svelte +1 -1
- package/package/components/ScheduleEditorInner.svelte +58 -27
- package/package/components/SchemaForm.svelte +7 -5
- package/package/components/SchemaForm.svelte.d.ts +1 -0
- package/package/components/ScriptBuilder.svelte +58 -5
- package/package/components/ScriptEditor.svelte +78 -40
- package/package/components/ScriptEditor.svelte.d.ts +17 -2
- package/package/components/ScriptPicker.svelte +41 -34
- package/package/components/ScriptPicker.svelte.d.ts +1 -0
- package/package/components/ScriptVersionHistory.svelte +1 -1
- package/package/components/Section.svelte +38 -35
- package/package/components/Section.svelte.d.ts +2 -0
- package/package/components/ServiceLogsInner.svelte +1 -1
- package/package/components/SimpleEditor.svelte +2 -0
- package/package/components/Subsection.svelte +52 -0
- package/package/components/Subsection.svelte.d.ts +27 -0
- package/package/components/SuperadminSettings.svelte +23 -13
- package/package/components/TemplateEditor.svelte +4 -3
- package/package/components/TestConnection.svelte +5 -0
- package/package/components/TestJobLoader.svelte +2 -1
- package/package/components/TestJobLoader.svelte.d.ts +1 -1
- package/package/components/Toggle.svelte +2 -4
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerGroup.svelte +4 -4
- package/package/components/WorkerTagPicker.svelte +4 -2
- package/package/components/WorkerTagPicker.svelte.d.ts +1 -0
- package/package/components/WorkerTagSelect.svelte +2 -0
- package/package/components/WorkerTagSelect.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
- package/package/components/apps/components/display/dbtable/utils.js +26 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +8 -2
- package/package/components/apps/components/inputs/AppDateInput.svelte +7 -1
- package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -1
- package/package/components/apps/editor/AppEditor.svelte +5 -34
- package/package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/AppEditorBottomPanel.svelte +4 -7
- package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +1 -3
- package/package/components/apps/editor/AppEditorHeader.svelte +148 -58
- package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
- package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
- package/package/components/apps/editor/RunnableJobPanel.svelte +6 -2
- package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +1 -0
- package/package/components/apps/editor/appUtils.d.ts +1 -0
- package/package/components/apps/editor/appUtils.js +17 -0
- package/package/components/apps/editor/component/components.d.ts +82 -81
- package/package/components/apps/editor/component/components.js +4 -3
- package/package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
- package/package/components/apps/editor/componentsPanel/GroupList.svelte +12 -2
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -56
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +3 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +16 -9
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/apps/types.d.ts +2 -0
- package/package/components/common/alert/ConnectionIndicator.svelte +30 -0
- package/package/components/common/alert/ConnectionIndicator.svelte.d.ts +20 -0
- package/package/components/common/alert/Notification.svelte +15 -0
- package/package/components/common/alert/Notification.svelte.d.ts +17 -0
- package/package/components/common/button/AnimatedButton.svelte +1 -1
- package/package/components/common/button/RefreshButton.svelte +30 -0
- package/package/components/common/button/RefreshButton.svelte.d.ts +18 -0
- package/package/components/common/fileDownload/FileDownload.svelte +4 -3
- package/package/components/common/fileDownload/FileDownload.svelte.d.ts +1 -0
- package/package/components/common/fileUpload/FileUpload.svelte +3 -3
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/common/layout/List.svelte +35 -0
- package/package/components/common/layout/List.svelte.d.ts +21 -0
- package/package/components/common/layout/ListElement.svelte +3 -0
- package/package/components/common/layout/ListElement.svelte.d.ts +27 -0
- package/package/components/common/menu/MenuV2.svelte +3 -2
- package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
- package/package/components/common/modal/Modal.svelte +6 -4
- package/package/components/common/modal/Modal.svelte.d.ts +1 -0
- package/package/components/common/modal/Modal2.svelte +101 -0
- package/package/components/common/modal/Modal2.svelte.d.ts +28 -0
- package/package/components/common/popup/Popup.svelte +5 -1
- package/package/components/common/popup/Popup.svelte.d.ts +2 -0
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +1 -1
- package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
- package/package/components/details/ClipboardPanel.svelte +12 -2
- package/package/components/details/ClipboardPanel.svelte.d.ts +2 -0
- package/package/components/details/CopyableCodeBlock.svelte +24 -0
- package/package/components/details/CopyableCodeBlock.svelte.d.ts +19 -0
- package/package/components/details/DetailPageLayout.svelte +3 -1
- package/package/components/details/EmailTriggerConfigSection.svelte +119 -0
- package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +38 -0
- package/package/components/details/EmailTriggerPanel.svelte +27 -74
- package/package/components/details/EmailTriggerPanel.svelte.d.ts +7 -1
- package/package/components/flows/FlowEditor.svelte +1 -1
- package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
- package/package/components/flows/FlowHistoryInner.svelte +1 -1
- package/package/components/flows/content/BranchPredicateEditor.svelte +1 -1
- package/package/components/flows/content/FlowEditorPanel.svelte +30 -1
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowInput.svelte +2 -15
- package/package/components/flows/content/FlowInputs.svelte +1 -1
- package/package/components/flows/content/FlowInputsQuick.svelte +2 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +9 -5
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
- package/package/components/flows/content/FlowModuleHeader.svelte +4 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/FlowPathViewer.svelte +3 -1
- package/package/components/flows/content/FlowRetries.svelte +32 -5
- package/package/components/flows/content/FlowSettings.svelte +56 -48
- package/package/components/flows/flowStateUtils.d.ts +10 -1
- package/package/components/flows/flowStateUtils.js +23 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +9 -19
- package/package/components/flows/map/InsertModuleButton.svelte +3 -3
- package/package/components/flows/map/VirtualItem.svelte +29 -1
- package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -0
- package/package/components/flows/pickers/TopLevelNode.svelte +2 -2
- package/package/components/flows/previousResults.js +8 -2
- package/package/components/flows/types.d.ts +1 -0
- package/package/components/graph/FlowGraphV2.svelte +16 -2
- package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
- package/package/components/graph/graphBuilder.js +1 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
- package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
- package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
- package/package/components/icons/CSharpIcon.svelte +14 -0
- package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
- package/package/components/icons/GitIcon.svelte +5 -2
- package/package/components/icons/XeroIcon.svelte +24 -0
- package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
- package/package/components/icons/index.d.ts +3 -1
- package/package/components/icons/index.js +4 -2
- package/package/components/instanceSettings.d.ts +3 -1
- package/package/components/instanceSettings.js +77 -69
- package/package/components/meltComponents/Popover.svelte +82 -0
- package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
- package/package/components/propertyPicker/PropPicker.svelte +5 -3
- package/package/components/runs/JobLoader.svelte +5 -2
- package/package/components/runs/JobPreview.svelte +5 -5
- package/package/components/runs/RunRow.svelte +3 -4
- package/package/components/runs/RunsFilter.svelte +4 -4
- package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
- package/package/components/schema/PropertyEditor.svelte +1 -1
- package/package/components/schema/SchemaFormDND.svelte +2 -0
- package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
- package/package/components/scriptEditor/LogPanel.svelte +176 -164
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
- package/package/components/search/GlobalSearchModal.svelte +3 -3
- package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
- package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
- package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
- package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
- package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
- package/package/components/sidebar/OperatorMenu.svelte +30 -8
- package/package/components/sidebar/SideBarNotification.svelte +3 -6
- package/package/components/sidebar/SidebarContent.svelte +5 -5
- package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
- package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
- package/package/components/sidebar/changelogs.js +82 -17
- package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
- package/package/components/table/AutoDataTable.svelte +1 -1
- package/package/components/table/Cell.svelte +5 -3
- package/package/components/table/Cell.svelte.d.ts +1 -0
- package/package/components/table/DataTable.svelte +65 -58
- package/package/components/table/DataTable.svelte.d.ts +2 -0
- package/package/components/table/Head.svelte +1 -1
- package/package/components/table/Row.svelte +3 -1
- package/package/components/table/Row.svelte.d.ts +1 -0
- package/package/components/toast.js +3 -1
- package/package/components/triggers/CaptureButton.svelte +77 -0
- package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
- package/package/components/triggers/CaptureIcon.svelte +17 -0
- package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
- package/package/components/triggers/CaptureSection.svelte +76 -0
- package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
- package/package/components/triggers/CaptureTable.svelte +224 -0
- package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
- package/package/components/triggers/CaptureWrapper.svelte +237 -0
- package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
- package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
- package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
- package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
- package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
- package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
- package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
- package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
- package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
- package/package/components/triggers/RouteEditor.svelte +2 -2
- package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
- package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
- package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
- package/package/components/triggers/RouteEditorInner.svelte +98 -163
- package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
- package/package/components/triggers/RoutesPanel.svelte +69 -54
- package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
- package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
- package/package/components/triggers/TriggersEditor.svelte +119 -89
- package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
- package/package/components/triggers/TriggersEditorSection.svelte +109 -0
- package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
- package/package/components/triggers/TriggersWrapper.svelte +60 -0
- package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
- package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
- package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
- package/package/components/triggers/WebhooksPanel.svelte +32 -331
- package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
- package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
- package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
- package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
- package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
- package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
- package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
- package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
- package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
- package/package/components/triggers.d.ts +6 -2
- package/package/components/triggers.js +16 -0
- package/package/components/wizards/AgGridWizard.svelte +4 -4
- package/package/editorUtils.d.ts +2 -0
- package/package/editorUtils.js +6 -3
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +17 -8
- package/package/gen/schemas.gen.js +17 -8
- package/package/gen/services.gen.d.ts +55 -5
- package/package/gen/services.gen.js +108 -5
- package/package/gen/types.gen.d.ts +180 -13
- package/package/hubPaths.json +6 -3
- package/package/infer.js +9 -0
- package/package/script_helpers.d.ts +5 -0
- package/package/script_helpers.js +68 -8
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +5 -1
- package/package/stores.d.ts +1 -0
- package/package/utils.d.ts +3 -1
- package/package/utils.js +20 -4
- package/package.json +11 -8
- package/package/components/flows/content/CapturePayload.svelte +0 -114
- package/package/components/flows/content/CapturePayload.svelte.d.ts +0 -17
|
@@ -1,351 +1,52 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import
|
|
3
|
-
import bash from 'svelte-highlight/languages/bash';
|
|
4
|
-
import { Tabs, Tab, TabContent, Button, Alert } from '../common';
|
|
5
|
-
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
6
|
-
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
7
|
-
import { DEFAULT_WEBHOOK_TYPE, SCRIPT_VIEW_SHOW_EXAMPLE_CURL, SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON } from '../../consts';
|
|
8
|
-
import { ArrowDownRight, ArrowUpRight, Clipboard } from 'lucide-svelte';
|
|
9
|
-
import UserSettings from '../UserSettings.svelte';
|
|
10
|
-
import { Highlight } from 'svelte-highlight';
|
|
11
|
-
import { typescript } from 'svelte-highlight/languages';
|
|
12
|
-
import ClipboardPanel from '../details/ClipboardPanel.svelte';
|
|
13
|
-
import { copyToClipboard, generateRandomString } from '../../utils';
|
|
1
|
+
<script>import { Alert } from '../common';
|
|
2
|
+
import Description from '../Description.svelte';
|
|
14
3
|
import HighlightTheme from '../HighlightTheme.svelte';
|
|
15
|
-
import
|
|
16
|
-
import Label from '../Label.svelte';
|
|
17
|
-
import TriggerTokens from './TriggerTokens.svelte';
|
|
18
|
-
let userSettings;
|
|
4
|
+
import TriggersEditorSection from './TriggersEditorSection.svelte';
|
|
19
5
|
export let token;
|
|
20
6
|
export let args;
|
|
21
7
|
export let scopes = [];
|
|
22
8
|
export let isFlow = false;
|
|
23
9
|
export let hash = undefined;
|
|
24
10
|
export let path;
|
|
25
|
-
export let url = '';
|
|
26
11
|
export let newItem = false;
|
|
27
|
-
let
|
|
28
|
-
let
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
sync: {
|
|
38
|
-
hash: `${webhookBase}/run_wait_result/h/${hash}`,
|
|
39
|
-
path: `${webhookBase}/run_wait_result/p/${path}`,
|
|
40
|
-
get_path: `${webhookBase}/run_wait_result/p/${path}`
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
function computeFlowWebhooks(path) {
|
|
45
|
-
let webhooksBase = `${window.location.origin}${base}/api/w/${$workspaceStore}/jobs`;
|
|
46
|
-
let urlAsync = `${webhooksBase}/run/f/${path}`;
|
|
47
|
-
let urlSync = `${webhooksBase}/run_wait_result/f/${path}`;
|
|
48
|
-
return {
|
|
49
|
-
async: {
|
|
50
|
-
path: urlAsync
|
|
51
|
-
},
|
|
52
|
-
sync: {
|
|
53
|
-
path: urlSync,
|
|
54
|
-
get_path: urlSync
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
let webhookType = DEFAULT_WEBHOOK_TYPE;
|
|
59
|
-
let requestType = isFlow ? 'path' : 'path';
|
|
60
|
-
let tokenType = 'headers';
|
|
61
|
-
$: if (webhookType === 'async' && requestType === 'get_path') {
|
|
62
|
-
// Request type is not supported for async webhooks
|
|
63
|
-
requestType = 'hash';
|
|
64
|
-
}
|
|
65
|
-
$: url =
|
|
66
|
-
webhooks[webhookType][requestType] +
|
|
67
|
-
(tokenType === 'query'
|
|
68
|
-
? `?token=${token}${requestType === 'get_path'
|
|
69
|
-
? `&payload=${encodeURIComponent(btoa(JSON.stringify(args)))}`
|
|
70
|
-
: ''}`
|
|
71
|
-
: `${requestType === 'get_path'
|
|
72
|
-
? `?payload=${encodeURIComponent(btoa(JSON.stringify(args)))}`
|
|
73
|
-
: ''}`);
|
|
74
|
-
function headers() {
|
|
75
|
-
const headers = {};
|
|
76
|
-
if (requestType != 'get_path') {
|
|
77
|
-
headers['Content-Type'] = 'application/json';
|
|
78
|
-
}
|
|
79
|
-
if (tokenType === 'headers') {
|
|
80
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
81
|
-
}
|
|
82
|
-
return headers;
|
|
83
|
-
}
|
|
84
|
-
function fetchCode() {
|
|
85
|
-
if (webhookType === 'sync') {
|
|
86
|
-
return `
|
|
87
|
-
export async function main() {
|
|
88
|
-
const jobTriggerResponse = await triggerJob();
|
|
89
|
-
const data = await jobTriggerResponse.json();
|
|
90
|
-
return data;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async function triggerJob() {
|
|
94
|
-
${requestType === 'get_path'
|
|
95
|
-
? '// Payload is a base64 encoded string of the arguments'
|
|
96
|
-
: `const body = JSON.stringify(${JSON.stringify(args, null, 2).replaceAll('\n', '\n\t')});`}
|
|
97
|
-
const endpoint = \`${url}\`;
|
|
98
|
-
|
|
99
|
-
return await fetch(endpoint, {
|
|
100
|
-
method: '${requestType === 'get_path' ? 'GET' : 'POST'}',
|
|
101
|
-
headers: ${JSON.stringify(headers(), null, 2).replaceAll('\n', '\n\t\t')}${requestType === 'get_path' ? '' : `,\n\t\tbody`}
|
|
102
|
-
});
|
|
103
|
-
}`;
|
|
104
|
-
}
|
|
105
|
-
// Main function
|
|
106
|
-
let mainFunction = `
|
|
107
|
-
export async function main() {
|
|
108
|
-
const jobTriggerResponse = await triggerJob();
|
|
109
|
-
const UUID = await jobTriggerResponse.text();
|
|
110
|
-
const jobCompletionData = await waitForJobCompletion(UUID);
|
|
111
|
-
return jobCompletionData;
|
|
112
|
-
}`;
|
|
113
|
-
// triggerJob function
|
|
114
|
-
let triggerJobFunction = `
|
|
115
|
-
async function triggerJob() {
|
|
116
|
-
const body = JSON.stringify(${JSON.stringify(args, null, 2).replaceAll('\n', '\n\t')});
|
|
117
|
-
const endpoint = \`${url}\`;
|
|
118
|
-
|
|
119
|
-
return await fetch(endpoint, {
|
|
120
|
-
method: '${requestType === 'get_path' ? 'GET' : 'POST'}',
|
|
121
|
-
headers: ${JSON.stringify(headers(), null, 2).replaceAll('\n', '\n\t\t')},
|
|
122
|
-
body
|
|
123
|
-
});
|
|
124
|
-
}`;
|
|
125
|
-
// waitForJobCompletion function
|
|
126
|
-
let waitForJobCompletionFunction = `
|
|
127
|
-
function waitForJobCompletion(UUID) {
|
|
128
|
-
return new Promise(async (resolve, reject) => {
|
|
129
|
-
try {
|
|
130
|
-
const endpoint = \`${window.location.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/\${UUID}\`;
|
|
131
|
-
const checkResponse = await fetch(endpoint, {
|
|
132
|
-
method: 'GET',
|
|
133
|
-
headers: ${JSON.stringify(headers(), null, 2).replaceAll('\n', '\n\t\t\t\t')}
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
const checkData = await checkResponse.json();
|
|
137
|
-
|
|
138
|
-
if (checkData.completed) {
|
|
139
|
-
resolve(checkData);
|
|
140
|
-
} else {
|
|
141
|
-
// If not completed, wait for a second then try again
|
|
142
|
-
setTimeout(async () => {
|
|
143
|
-
const result = await waitForJobCompletion(UUID);
|
|
144
|
-
resolve(result);
|
|
145
|
-
}, 1000);
|
|
146
|
-
}
|
|
147
|
-
} catch (error) {
|
|
148
|
-
reject(error);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}`;
|
|
152
|
-
// Combine and return
|
|
153
|
-
return `${mainFunction}\n\n${triggerJobFunction}\n\n${waitForJobCompletionFunction}`;
|
|
154
|
-
}
|
|
155
|
-
function curlCode() {
|
|
156
|
-
return `TOKEN='${token}'
|
|
157
|
-
${requestType !== 'get_path' ? `BODY='${JSON.stringify(args)}'` : ''}
|
|
158
|
-
URL='${url}'
|
|
159
|
-
${webhookType === 'sync' ? 'RESULT' : 'UUID'}=$(curl -s ${requestType != 'get_path' ? "-H 'Content-Type: application/json'" : ''} ${tokenType === 'headers' ? `-H "Authorization: Bearer $TOKEN"` : ''} -X ${requestType === 'get_path' ? 'GET' : 'POST'} ${requestType !== 'get_path' ? `-d "$BODY" ` : ''}$URL)
|
|
160
|
-
|
|
161
|
-
${webhookType === 'sync'
|
|
162
|
-
? 'echo -E $RESULT | jq'
|
|
163
|
-
: `
|
|
164
|
-
URL="${window.location.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/$UUID"
|
|
165
|
-
while true; do
|
|
166
|
-
curl -s -H "Authorization: Bearer $TOKEN" $URL -o res.json
|
|
167
|
-
COMPLETED=$(cat res.json | jq .completed)
|
|
168
|
-
if [ "$COMPLETED" = "true" ]; then
|
|
169
|
-
cat res.json | jq .result
|
|
170
|
-
break
|
|
171
|
-
else
|
|
172
|
-
sleep 1
|
|
173
|
-
fi
|
|
174
|
-
done`}`;
|
|
175
|
-
}
|
|
176
|
-
let triggerTokens = undefined;
|
|
12
|
+
export let isEditor = false;
|
|
13
|
+
export let canHavePreprocessor = false;
|
|
14
|
+
export let hasPreprocessor = false;
|
|
15
|
+
let data = {
|
|
16
|
+
hash,
|
|
17
|
+
token,
|
|
18
|
+
scopes,
|
|
19
|
+
args
|
|
20
|
+
};
|
|
177
21
|
</script>
|
|
178
22
|
|
|
179
23
|
<HighlightTheme />
|
|
180
24
|
|
|
181
|
-
<UserSettings
|
|
182
|
-
bind:this={userSettings}
|
|
183
|
-
on:tokenCreated={(e) => {
|
|
184
|
-
token = e.detail
|
|
185
|
-
triggerTokens?.listTokens()
|
|
186
|
-
}}
|
|
187
|
-
newTokenWorkspace={$workspaceStore}
|
|
188
|
-
newTokenLabel={`webhook-${$userStore?.username ?? 'superadmin'}-${generateRandomString(4)}`}
|
|
189
|
-
{scopes}
|
|
190
|
-
/>
|
|
191
|
-
|
|
192
25
|
<div class="flex flex-col w-full gap-4">
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
bind:value={token}
|
|
198
|
-
placeholder="paste your token here once created to alter examples below"
|
|
199
|
-
class="!text-xs !font-normal"
|
|
200
|
-
/>
|
|
201
|
-
<Button size="xs" color="light" variant="border" on:click={userSettings.openDrawer}>
|
|
202
|
-
Create a Webhook-specific Token
|
|
203
|
-
<Tooltip light>
|
|
204
|
-
The token will have a scope such that it can only be used to trigger this script. It is
|
|
205
|
-
safe to share as it cannot be used to impersonate you.
|
|
206
|
-
</Tooltip>
|
|
207
|
-
</Button>
|
|
208
|
-
</div>
|
|
209
|
-
</Label>
|
|
210
|
-
{/if}
|
|
211
|
-
|
|
212
|
-
<div class="flex flex-col gap-2">
|
|
213
|
-
<div class="flex flex-row justify-between">
|
|
214
|
-
<div class="text-sm font-normal text-secondary flex flex-row items-center">Request type</div>
|
|
215
|
-
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={webhookType}>
|
|
216
|
-
<ToggleButton
|
|
217
|
-
label="Async"
|
|
218
|
-
value="async"
|
|
219
|
-
tooltip="The returning value is the uuid of the job assigned to execute the job."
|
|
220
|
-
/>
|
|
221
|
-
<ToggleButton
|
|
222
|
-
label="Sync"
|
|
223
|
-
value="sync"
|
|
224
|
-
tooltip="Triggers the execution, wait for the job to complete and return it as a response."
|
|
225
|
-
/>
|
|
226
|
-
</ToggleButtonGroup>
|
|
227
|
-
</div>
|
|
228
|
-
<div class="flex flex-row justify-between">
|
|
229
|
-
<div class="text-sm font-normal text-secondary flex flex-row items-center">Call method</div>
|
|
230
|
-
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={requestType}>
|
|
231
|
-
<ToggleButton
|
|
232
|
-
label="POST by path"
|
|
233
|
-
value="path"
|
|
234
|
-
icon={ArrowUpRight}
|
|
235
|
-
selectedColor="#fb923c"
|
|
236
|
-
/>
|
|
237
|
-
{#if !isFlow}
|
|
238
|
-
<ToggleButton
|
|
239
|
-
label="POST by hash"
|
|
240
|
-
value="hash"
|
|
241
|
-
icon={ArrowUpRight}
|
|
242
|
-
selectedColor="#fb923c"
|
|
243
|
-
/>
|
|
244
|
-
{/if}
|
|
245
|
-
|
|
246
|
-
<ToggleButton
|
|
247
|
-
label="GET by path"
|
|
248
|
-
value="get_path"
|
|
249
|
-
icon={ArrowDownRight}
|
|
250
|
-
disabled={webhookType !== 'sync'}
|
|
251
|
-
selectedColor="#14b8a6"
|
|
252
|
-
/>
|
|
253
|
-
</ToggleButtonGroup>
|
|
254
|
-
</div>
|
|
255
|
-
<div class="flex flex-row justify-between">
|
|
256
|
-
<div class="text-sm font-normal text-secondary flex flex-row items-center"
|
|
257
|
-
>Token configuration</div
|
|
258
|
-
>
|
|
259
|
-
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={tokenType}>
|
|
260
|
-
<ToggleButton label="Token in Headers" value="headers" />
|
|
261
|
-
<ToggleButton label="Token in Query" value="query" />
|
|
262
|
-
</ToggleButtonGroup>
|
|
263
|
-
</div>
|
|
264
|
-
</div>
|
|
265
|
-
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
266
|
-
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
267
|
-
<Tabs bind:selected={selectedTab}>
|
|
268
|
-
<Tab value="rest" size="xs">REST</Tab>
|
|
269
|
-
{#if SCRIPT_VIEW_SHOW_EXAMPLE_CURL}
|
|
270
|
-
<Tab value="curl" size="xs">Curl</Tab>
|
|
271
|
-
{/if}
|
|
272
|
-
<Tab value="fetch" size="xs">Fetch</Tab>
|
|
273
|
-
|
|
274
|
-
<svelte:fragment slot="content">
|
|
275
|
-
{#key token}
|
|
276
|
-
<TabContent value="rest" class="flex flex-col flex-1 h-full ">
|
|
277
|
-
<div class="flex flex-col gap-2">
|
|
278
|
-
<Label label="Url">
|
|
279
|
-
<ClipboardPanel content={url} />
|
|
280
|
-
</Label>
|
|
281
|
-
|
|
282
|
-
{#if requestType !== 'get_path'}
|
|
283
|
-
<Label label="Body">
|
|
284
|
-
<ClipboardPanel content={JSON.stringify(args, null, 2)} />
|
|
285
|
-
</Label>
|
|
286
|
-
{/if}
|
|
287
|
-
{#key requestType}
|
|
288
|
-
{#key tokenType}
|
|
289
|
-
<Label label="Headers">
|
|
290
|
-
<ClipboardPanel content={JSON.stringify(headers(), null, 2)} />
|
|
291
|
-
</Label>
|
|
292
|
-
{/key}
|
|
293
|
-
{/key}
|
|
294
|
-
</div>
|
|
295
|
-
</TabContent>
|
|
296
|
-
<TabContent value="curl" class="flex flex-col flex-1 h-full">
|
|
297
|
-
<div class="relative">
|
|
298
|
-
{#key args}
|
|
299
|
-
{#key requestType}
|
|
300
|
-
{#key webhookType}
|
|
301
|
-
{#key tokenType}
|
|
302
|
-
<div
|
|
303
|
-
class="flex flex-row flex-1 h-full border p-2 rounded-md overflow-auto relative"
|
|
304
|
-
on:click={(e) => {
|
|
305
|
-
e.preventDefault()
|
|
306
|
-
copyToClipboard(curlCode())
|
|
307
|
-
}}
|
|
308
|
-
>
|
|
309
|
-
<Highlight language={bash} code={curlCode()} />
|
|
310
|
-
<Clipboard size={14} class="w-8 top-2 right-2 absolute" />
|
|
311
|
-
</div>
|
|
312
|
-
{/key}
|
|
313
|
-
{/key}
|
|
314
|
-
{/key}
|
|
315
|
-
{/key}
|
|
316
|
-
</div>
|
|
317
|
-
</TabContent>
|
|
318
|
-
<TabContent value="fetch">
|
|
319
|
-
{#key args}
|
|
320
|
-
{#key requestType}
|
|
321
|
-
{#key webhookType}
|
|
322
|
-
{#key tokenType}
|
|
323
|
-
{#key token}
|
|
324
|
-
<div
|
|
325
|
-
class="flex flex-row flex-1 h-full border p-2 rounded-md overflow-auto relative"
|
|
326
|
-
on:click={(e) => {
|
|
327
|
-
e.preventDefault()
|
|
328
|
-
copyToClipboard(fetchCode())
|
|
329
|
-
}}
|
|
330
|
-
>
|
|
331
|
-
<Highlight language={typescript} code={fetchCode()} />
|
|
332
|
-
<Clipboard size={14} class="w-8 top-2 right-2 absolute" />
|
|
333
|
-
</div>
|
|
334
|
-
{/key}{/key}{/key}{/key}
|
|
335
|
-
{/key}
|
|
336
|
-
</TabContent>
|
|
337
|
-
{/key}
|
|
338
|
-
</svelte:fragment>
|
|
339
|
-
</Tabs>
|
|
340
|
-
|
|
341
|
-
<div class="mt-10" />
|
|
342
|
-
<TriggerTokens bind:this={triggerTokens} {isFlow} {path} labelPrefix="webhook" />
|
|
343
|
-
|
|
26
|
+
<Description link="https://www.windmill.dev/docs/core_concepts/webhooks">
|
|
27
|
+
Webhooks trigger scripts or flows via HTTP requests. Each webhook can be configured to run
|
|
28
|
+
synchronously or asynchronously. You can secure webhooks using tokens with specific permissions.
|
|
29
|
+
</Description>
|
|
344
30
|
{#if newItem}
|
|
345
|
-
<div class="mt-10" />
|
|
346
31
|
<Alert type="warning" title="Attached to a deployed path">
|
|
347
32
|
The webhooks are only valid for a given path and will only trigger the deployed version of the
|
|
348
33
|
{isFlow ? 'flow' : 'script'}.
|
|
349
34
|
</Alert>
|
|
350
35
|
{/if}
|
|
36
|
+
|
|
37
|
+
<TriggersEditorSection
|
|
38
|
+
on:applyArgs
|
|
39
|
+
on:addPreprocessor
|
|
40
|
+
on:refreshCaptures
|
|
41
|
+
cloudDisabled={false}
|
|
42
|
+
triggerType="webhook"
|
|
43
|
+
{isFlow}
|
|
44
|
+
{data}
|
|
45
|
+
noSave
|
|
46
|
+
{path}
|
|
47
|
+
{isEditor}
|
|
48
|
+
{canHavePreprocessor}
|
|
49
|
+
{hasPreprocessor}
|
|
50
|
+
{newItem}
|
|
51
|
+
/>
|
|
351
52
|
</div>
|
|
@@ -7,10 +7,16 @@ declare const __propDef: {
|
|
|
7
7
|
isFlow?: boolean | undefined;
|
|
8
8
|
hash?: string | undefined;
|
|
9
9
|
path: string;
|
|
10
|
-
url?: string | undefined;
|
|
11
10
|
newItem?: boolean | undefined;
|
|
11
|
+
isEditor?: boolean | undefined;
|
|
12
|
+
canHavePreprocessor?: boolean | undefined;
|
|
13
|
+
hasPreprocessor?: boolean | undefined;
|
|
12
14
|
};
|
|
13
15
|
events: {
|
|
16
|
+
applyArgs: any;
|
|
17
|
+
addPreprocessor: any;
|
|
18
|
+
refreshCaptures: CustomEvent<any>;
|
|
19
|
+
} & {
|
|
14
20
|
[evt: string]: CustomEvent<any>;
|
|
15
21
|
};
|
|
16
22
|
slots: {};
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
<script>import Section from '../Section.svelte';
|
|
2
|
+
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
3
|
+
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
4
|
+
import ScriptPicker from '../ScriptPicker.svelte';
|
|
5
|
+
import Required from '../Required.svelte';
|
|
6
|
+
import { Loader2 } from 'lucide-svelte';
|
|
7
|
+
import CaptureSection, {} from './CaptureSection.svelte';
|
|
8
|
+
import CaptureTable from './CaptureTable.svelte';
|
|
9
|
+
import { sendUserToast } from '../../utils';
|
|
10
|
+
import { FlowService, ScriptService } from '../../gen';
|
|
11
|
+
import { workspaceStore } from '../../stores';
|
|
12
|
+
export let url;
|
|
13
|
+
export let url_runnable_args;
|
|
14
|
+
export let dirtyUrl = false;
|
|
15
|
+
export let can_write = false;
|
|
16
|
+
export let headless = false;
|
|
17
|
+
export let showCapture = false;
|
|
18
|
+
export let captureTable = undefined;
|
|
19
|
+
export let captureInfo = undefined;
|
|
20
|
+
export let isValid = false;
|
|
21
|
+
let areRunnableArgsValid = true;
|
|
22
|
+
let urlRunnableSchema = undefined;
|
|
23
|
+
async function loadUrlRunnableSchema(url) {
|
|
24
|
+
if (url?.startsWith('$')) {
|
|
25
|
+
const path = url.split(':')[1];
|
|
26
|
+
if (path && path.length > 0) {
|
|
27
|
+
try {
|
|
28
|
+
let scriptOrFlow = url.startsWith('$flow:')
|
|
29
|
+
? await FlowService.getFlowByPath({
|
|
30
|
+
workspace: $workspaceStore,
|
|
31
|
+
path: url.split(':')[1]
|
|
32
|
+
})
|
|
33
|
+
: await ScriptService.getScriptByPath({
|
|
34
|
+
workspace: $workspaceStore,
|
|
35
|
+
path: url.split(':')[1]
|
|
36
|
+
});
|
|
37
|
+
urlRunnableSchema = scriptOrFlow.schema;
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
sendUserToast(`Could not query runnable schema for ${url.startsWith('$flow:') ? 'flow' : 'script'} ${url.split(':')[1]}: ${err}`, true);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
$: loadUrlRunnableSchema(url);
|
|
46
|
+
let urlError = '';
|
|
47
|
+
let validateTimeout = undefined;
|
|
48
|
+
function validateUrl(url) {
|
|
49
|
+
if (validateTimeout) {
|
|
50
|
+
clearTimeout(validateTimeout);
|
|
51
|
+
}
|
|
52
|
+
validateTimeout = setTimeout(() => {
|
|
53
|
+
if (url?.startsWith('$')) {
|
|
54
|
+
if (/^(\$script|\$flow):[^\s]+$/.test(url) === false) {
|
|
55
|
+
urlError = 'Invalid runnable path';
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
urlError = '';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (!url || /^(ws:|wss:)\/\/[^\s]+$/.test(url) === false) {
|
|
62
|
+
urlError = 'Invalid websocket URL';
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
urlError = '';
|
|
66
|
+
}
|
|
67
|
+
validateTimeout = undefined;
|
|
68
|
+
}, 500);
|
|
69
|
+
}
|
|
70
|
+
$: validateUrl(url);
|
|
71
|
+
$: isValid = urlError === '' && (!url?.startsWith('$') || areRunnableArgsValid);
|
|
72
|
+
</script>
|
|
73
|
+
|
|
74
|
+
<div>
|
|
75
|
+
{#if showCapture && captureInfo}
|
|
76
|
+
<CaptureSection
|
|
77
|
+
disabled={!isValid}
|
|
78
|
+
on:captureToggle
|
|
79
|
+
captureType="websocket"
|
|
80
|
+
{captureInfo}
|
|
81
|
+
on:applyArgs
|
|
82
|
+
on:updateSchema
|
|
83
|
+
on:addPreprocessor
|
|
84
|
+
bind:captureTable
|
|
85
|
+
/>
|
|
86
|
+
{/if}
|
|
87
|
+
<Section label="Websocket" {headless}>
|
|
88
|
+
<div class="mb-2">
|
|
89
|
+
<ToggleButtonGroup
|
|
90
|
+
selected={url?.startsWith('$') ? 'runnable' : 'static'}
|
|
91
|
+
on:selected={(ev) => {
|
|
92
|
+
url = ev.detail === 'runnable' ? '$script:' : ''
|
|
93
|
+
url_runnable_args = {}
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
<ToggleButton value="static" label="Static URL" />
|
|
97
|
+
<ToggleButton value="runnable" label="Runnable result as URL" />
|
|
98
|
+
</ToggleButtonGroup>
|
|
99
|
+
</div>
|
|
100
|
+
{#if url?.startsWith('$')}
|
|
101
|
+
<div class="flex flex-col w-full gap-4">
|
|
102
|
+
<div class="block grow w-full">
|
|
103
|
+
<div class="text-secondary text-sm flex items-center gap-1 w-full justify-between">
|
|
104
|
+
<div>
|
|
105
|
+
Runnable
|
|
106
|
+
<Required required={true} />
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
<ScriptPicker
|
|
110
|
+
allowFlow={true}
|
|
111
|
+
itemKind={url.startsWith('$flow:') ? 'flow' : 'script'}
|
|
112
|
+
initialPath={url.split(':')[1] ?? ''}
|
|
113
|
+
on:select={(ev) => {
|
|
114
|
+
dirtyUrl = true
|
|
115
|
+
const { path, itemKind } = ev.detail
|
|
116
|
+
url = `$${itemKind}:${path ?? ''}`
|
|
117
|
+
}}
|
|
118
|
+
/>
|
|
119
|
+
<div class="text-red-600 dark:text-red-400 text-2xs mt-1.5">
|
|
120
|
+
{dirtyUrl ? urlError : ''}
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
{#if url.split(':')[1]?.length > 0}
|
|
126
|
+
{#if urlRunnableSchema}
|
|
127
|
+
<p class="font-semibold text-sm mt-4 mb-2">Arguments</p>
|
|
128
|
+
{#await import('../SchemaForm.svelte')}
|
|
129
|
+
<Loader2 class="animate-spin mt-2" />
|
|
130
|
+
{:then Module}
|
|
131
|
+
{#key urlRunnableSchema}
|
|
132
|
+
<Module.default
|
|
133
|
+
schema={urlRunnableSchema}
|
|
134
|
+
bind:args={url_runnable_args}
|
|
135
|
+
bind:isValid={areRunnableArgsValid}
|
|
136
|
+
shouldHideNoInputs
|
|
137
|
+
class="text-xs"
|
|
138
|
+
/>
|
|
139
|
+
{/key}
|
|
140
|
+
{/await}
|
|
141
|
+
{#if urlRunnableSchema.properties && Object.keys(urlRunnableSchema.properties).length === 0}
|
|
142
|
+
<div class="text-xs texg-gray-700">This runnable takes no arguments</div>
|
|
143
|
+
{/if}
|
|
144
|
+
{:else}
|
|
145
|
+
<Loader2 class="animate-spin mt-2" />
|
|
146
|
+
{/if}
|
|
147
|
+
{/if}
|
|
148
|
+
{:else}
|
|
149
|
+
<div class="flex flex-col w-full gap-4">
|
|
150
|
+
<label class="block grow w-full">
|
|
151
|
+
<div class="text-secondary text-sm flex items-center gap-1 w-full justify-between">
|
|
152
|
+
<div>
|
|
153
|
+
URL
|
|
154
|
+
<Required required={true} />
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
<input
|
|
158
|
+
type="text"
|
|
159
|
+
autocomplete="off"
|
|
160
|
+
bind:value={url}
|
|
161
|
+
disabled={!can_write}
|
|
162
|
+
on:input={() => {
|
|
163
|
+
dirtyUrl = true
|
|
164
|
+
}}
|
|
165
|
+
class={urlError === ''
|
|
166
|
+
? ''
|
|
167
|
+
: 'border border-red-700 bg-red-100 border-opacity-30 focus:border-red-700 focus:border-opacity-30 focus-visible:ring-red-700 focus-visible:ring-opacity-25 focus-visible:border-red-700'}
|
|
168
|
+
/>
|
|
169
|
+
<div class="text-red-600 dark:text-red-400 text-2xs mt-1.5">
|
|
170
|
+
{dirtyUrl ? urlError : ''}
|
|
171
|
+
</div>
|
|
172
|
+
</label>
|
|
173
|
+
</div>
|
|
174
|
+
{/if}
|
|
175
|
+
</Section>
|
|
176
|
+
</div>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import { type CaptureInfo } from './CaptureSection.svelte';
|
|
3
|
+
import CaptureTable from './CaptureTable.svelte';
|
|
4
|
+
declare const __propDef: {
|
|
5
|
+
props: {
|
|
6
|
+
url: string | undefined;
|
|
7
|
+
url_runnable_args: Record<string, unknown> | undefined;
|
|
8
|
+
dirtyUrl?: boolean | undefined;
|
|
9
|
+
can_write?: boolean | undefined;
|
|
10
|
+
headless?: boolean | undefined;
|
|
11
|
+
showCapture?: boolean | undefined;
|
|
12
|
+
captureTable?: CaptureTable | undefined;
|
|
13
|
+
captureInfo?: CaptureInfo | undefined;
|
|
14
|
+
isValid?: boolean | undefined;
|
|
15
|
+
};
|
|
16
|
+
events: {
|
|
17
|
+
captureToggle: CustomEvent<undefined>;
|
|
18
|
+
applyArgs: CustomEvent<{
|
|
19
|
+
kind: "main" | "preprocessor";
|
|
20
|
+
args: Record<string, any> | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
updateSchema: CustomEvent<{
|
|
23
|
+
schema: any;
|
|
24
|
+
redirect: boolean;
|
|
25
|
+
}>;
|
|
26
|
+
addPreprocessor: CustomEvent<null>;
|
|
27
|
+
} & {
|
|
28
|
+
[evt: string]: CustomEvent<any>;
|
|
29
|
+
};
|
|
30
|
+
slots: {};
|
|
31
|
+
};
|
|
32
|
+
export type WebsocketEditorConfigSectionProps = typeof __propDef.props;
|
|
33
|
+
export type WebsocketEditorConfigSectionEvents = typeof __propDef.events;
|
|
34
|
+
export type WebsocketEditorConfigSectionSlots = typeof __propDef.slots;
|
|
35
|
+
export default class WebsocketEditorConfigSection extends SvelteComponent<WebsocketEditorConfigSectionProps, WebsocketEditorConfigSectionEvents, WebsocketEditorConfigSectionSlots> {
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -6,10 +6,10 @@ export async function openEdit(ePath, isFlow) {
|
|
|
6
6
|
await tick();
|
|
7
7
|
drawer?.openEdit(ePath, isFlow);
|
|
8
8
|
}
|
|
9
|
-
export async function openNew(is_flow, initial_script_path) {
|
|
9
|
+
export async function openNew(is_flow, initial_script_path, defaultValues) {
|
|
10
10
|
open = true;
|
|
11
11
|
await tick();
|
|
12
|
-
drawer?.openNew(is_flow, initial_script_path);
|
|
12
|
+
drawer?.openNew(is_flow, initial_script_path, defaultValues);
|
|
13
13
|
}
|
|
14
14
|
let drawer;
|
|
15
15
|
</script>
|
|
@@ -2,7 +2,7 @@ import { SvelteComponent } from "svelte";
|
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
4
|
openEdit?: ((ePath: string, isFlow: boolean) => Promise<void>) | undefined;
|
|
5
|
-
openNew?: ((is_flow: boolean, initial_script_path?: string) => Promise<void>) | undefined;
|
|
5
|
+
openNew?: ((is_flow: boolean, initial_script_path?: string, defaultValues?: Record<string, any>) => Promise<void>) | undefined;
|
|
6
6
|
};
|
|
7
7
|
events: {
|
|
8
8
|
update: CustomEvent<any>;
|
|
@@ -16,6 +16,6 @@ export type WebsocketTriggerEditorEvents = typeof __propDef.events;
|
|
|
16
16
|
export type WebsocketTriggerEditorSlots = typeof __propDef.slots;
|
|
17
17
|
export default class WebsocketTriggerEditor extends SvelteComponent<WebsocketTriggerEditorProps, WebsocketTriggerEditorEvents, WebsocketTriggerEditorSlots> {
|
|
18
18
|
get openEdit(): (ePath: string, isFlow: boolean) => Promise<void>;
|
|
19
|
-
get openNew(): (is_flow: boolean, initial_script_path?: string | undefined) => Promise<void>;
|
|
19
|
+
get openNew(): (is_flow: boolean, initial_script_path?: string | undefined, defaultValues?: Record<string, any> | undefined) => Promise<void>;
|
|
20
20
|
}
|
|
21
21
|
export {};
|