windmill-components 1.434.1 → 1.444.1
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 +14 -10
- 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 +5 -1
- package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -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
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
<script>import Label from '../Label.svelte';
|
|
2
|
+
import Tooltip from '../Tooltip.svelte';
|
|
3
|
+
import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
|
|
4
|
+
import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
|
|
5
|
+
import { DEFAULT_WEBHOOK_TYPE, SCRIPT_VIEW_SHOW_EXAMPLE_CURL, SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON } from '../../consts';
|
|
6
|
+
import bash from 'svelte-highlight/languages/bash';
|
|
7
|
+
import { Tabs, Tab, TabContent, Button } from '../common';
|
|
8
|
+
import { ArrowDownRight, ArrowUpRight, Clipboard } from 'lucide-svelte';
|
|
9
|
+
import { Highlight } from 'svelte-highlight';
|
|
10
|
+
import { typescript } from 'svelte-highlight/languages';
|
|
11
|
+
import ClipboardPanel from '../details/ClipboardPanel.svelte';
|
|
12
|
+
import { copyToClipboard } from '../../utils';
|
|
13
|
+
import { page } from '$app/stores';
|
|
14
|
+
import { base } from '../../base';
|
|
15
|
+
import TriggerTokens from './TriggerTokens.svelte';
|
|
16
|
+
import { workspaceStore, userStore } from '../../stores';
|
|
17
|
+
import UserSettings from '../UserSettings.svelte';
|
|
18
|
+
import { generateRandomString } from '../../utils';
|
|
19
|
+
import CopyableCodeBlock from '../details/CopyableCodeBlock.svelte';
|
|
20
|
+
import CaptureSection, {} from './CaptureSection.svelte';
|
|
21
|
+
import CaptureTable from './CaptureTable.svelte';
|
|
22
|
+
export let isFlow = false;
|
|
23
|
+
export let path = '';
|
|
24
|
+
export let hash = undefined;
|
|
25
|
+
export let token = '';
|
|
26
|
+
export let args;
|
|
27
|
+
export let triggerTokens = undefined;
|
|
28
|
+
export let scopes = [];
|
|
29
|
+
export let showCapture = false;
|
|
30
|
+
export let captureTable = undefined;
|
|
31
|
+
export let captureInfo = undefined;
|
|
32
|
+
let webhooks;
|
|
33
|
+
let selectedTab = 'rest';
|
|
34
|
+
let userSettings;
|
|
35
|
+
let url = '';
|
|
36
|
+
$: webhooks = isFlow ? computeFlowWebhooks(path) : computeScriptWebhooks(hash, path);
|
|
37
|
+
function computeScriptWebhooks(hash, path) {
|
|
38
|
+
let webhookBase = `${$page.url.origin}${base}/api/w/${$workspaceStore}/jobs`;
|
|
39
|
+
return {
|
|
40
|
+
async: {
|
|
41
|
+
hash: `${webhookBase}/run/h/${hash}`,
|
|
42
|
+
path: `${webhookBase}/run/p/${path}`
|
|
43
|
+
},
|
|
44
|
+
sync: {
|
|
45
|
+
hash: `${webhookBase}/run_wait_result/h/${hash}`,
|
|
46
|
+
path: `${webhookBase}/run_wait_result/p/${path}`,
|
|
47
|
+
get_path: `${webhookBase}/run_wait_result/p/${path}`
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function computeFlowWebhooks(path) {
|
|
52
|
+
let webhooksBase = `${$page.url.origin}${base}/api/w/${$workspaceStore}/jobs`;
|
|
53
|
+
let urlAsync = `${webhooksBase}/run/f/${path}`;
|
|
54
|
+
let urlSync = `${webhooksBase}/run_wait_result/f/${path}`;
|
|
55
|
+
return {
|
|
56
|
+
async: {
|
|
57
|
+
path: urlAsync
|
|
58
|
+
},
|
|
59
|
+
sync: {
|
|
60
|
+
path: urlSync,
|
|
61
|
+
get_path: urlSync
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
let webhookType = DEFAULT_WEBHOOK_TYPE;
|
|
66
|
+
let requestType = isFlow ? 'path' : 'path';
|
|
67
|
+
let tokenType = 'headers';
|
|
68
|
+
$: if (webhookType === 'async' && requestType === 'get_path') {
|
|
69
|
+
requestType = hash ? 'hash' : 'path';
|
|
70
|
+
}
|
|
71
|
+
function headers() {
|
|
72
|
+
const headers = {};
|
|
73
|
+
if (requestType != 'get_path') {
|
|
74
|
+
headers['Content-Type'] = 'application/json';
|
|
75
|
+
}
|
|
76
|
+
if (tokenType === 'headers') {
|
|
77
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
78
|
+
}
|
|
79
|
+
return headers;
|
|
80
|
+
}
|
|
81
|
+
function fetchCode() {
|
|
82
|
+
if (webhookType === 'sync') {
|
|
83
|
+
return `
|
|
84
|
+
export async function main() {
|
|
85
|
+
const jobTriggerResponse = await triggerJob();
|
|
86
|
+
const data = await jobTriggerResponse.json();
|
|
87
|
+
return data;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async function triggerJob() {
|
|
91
|
+
${requestType === 'get_path'
|
|
92
|
+
? '// Payload is a base64 encoded string of the arguments'
|
|
93
|
+
: `const body = JSON.stringify(${JSON.stringify(args, null, 2).replaceAll('\n', '\n\t')});`}
|
|
94
|
+
const endpoint = \`${url}\`;
|
|
95
|
+
|
|
96
|
+
return await fetch(endpoint, {
|
|
97
|
+
method: '${requestType === 'get_path' ? 'GET' : 'POST'}',
|
|
98
|
+
headers: ${JSON.stringify(headers(), null, 2).replaceAll('\n', '\n\t\t')}${requestType === 'get_path' ? '' : `,\n\t\tbody`}
|
|
99
|
+
});
|
|
100
|
+
}`;
|
|
101
|
+
}
|
|
102
|
+
// Main function
|
|
103
|
+
let mainFunction = `
|
|
104
|
+
export async function main() {
|
|
105
|
+
const jobTriggerResponse = await triggerJob();
|
|
106
|
+
const UUID = await jobTriggerResponse.text();
|
|
107
|
+
const jobCompletionData = await waitForJobCompletion(UUID);
|
|
108
|
+
return jobCompletionData;
|
|
109
|
+
}`;
|
|
110
|
+
// triggerJob function
|
|
111
|
+
let triggerJobFunction = `
|
|
112
|
+
async function triggerJob() {
|
|
113
|
+
const body = JSON.stringify(${JSON.stringify(args, null, 2).replaceAll('\n', '\n\t')});
|
|
114
|
+
const endpoint = \`${url}\`;
|
|
115
|
+
|
|
116
|
+
return await fetch(endpoint, {
|
|
117
|
+
method: '${requestType === 'get_path' ? 'GET' : 'POST'}',
|
|
118
|
+
headers: ${JSON.stringify(headers(), null, 2).replaceAll('\n', '\n\t\t')},
|
|
119
|
+
body
|
|
120
|
+
});
|
|
121
|
+
}`;
|
|
122
|
+
// waitForJobCompletion function
|
|
123
|
+
let waitForJobCompletionFunction = `
|
|
124
|
+
function waitForJobCompletion(UUID) {
|
|
125
|
+
return new Promise(async (resolve, reject) => {
|
|
126
|
+
try {
|
|
127
|
+
const endpoint = \`${$page.url.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/\${UUID}\`;
|
|
128
|
+
const checkResponse = await fetch(endpoint, {
|
|
129
|
+
method: 'GET',
|
|
130
|
+
headers: ${JSON.stringify(headers(), null, 2).replaceAll('\n', '\n\t\t\t\t')}
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
const checkData = await checkResponse.json();
|
|
134
|
+
|
|
135
|
+
if (checkData.completed) {
|
|
136
|
+
resolve(checkData);
|
|
137
|
+
} else {
|
|
138
|
+
// If not completed, wait for a second then try again
|
|
139
|
+
setTimeout(async () => {
|
|
140
|
+
const result = await waitForJobCompletion(UUID);
|
|
141
|
+
resolve(result);
|
|
142
|
+
}, 1000);
|
|
143
|
+
}
|
|
144
|
+
} catch (error) {
|
|
145
|
+
reject(error);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}`;
|
|
149
|
+
// Combine and return
|
|
150
|
+
return `${mainFunction}\n\n${triggerJobFunction}\n\n${waitForJobCompletionFunction}`;
|
|
151
|
+
}
|
|
152
|
+
let captureUrl = `${$page.url.origin}/api/w/${$workspaceStore}/capture_u/webhook/${isFlow ? 'flow' : 'script'}/${path}`;
|
|
153
|
+
function captureCurlCode() {
|
|
154
|
+
return `curl \\
|
|
155
|
+
-X POST ${captureUrl} \\
|
|
156
|
+
-H 'Content-Type: application/json' \\
|
|
157
|
+
-d '{"foo": 42}'`;
|
|
158
|
+
}
|
|
159
|
+
function curlCode() {
|
|
160
|
+
return `TOKEN='${token}'
|
|
161
|
+
${requestType !== 'get_path' ? `BODY='${JSON.stringify(args)}'` : ''}
|
|
162
|
+
URL='${url}'
|
|
163
|
+
${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)
|
|
164
|
+
|
|
165
|
+
${webhookType === 'sync'
|
|
166
|
+
? 'echo -E $RESULT | jq'
|
|
167
|
+
: `
|
|
168
|
+
URL="${$page.url.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/$UUID"
|
|
169
|
+
while true; do
|
|
170
|
+
curl -s -H "Authorization: Bearer $TOKEN" $URL -o res.json
|
|
171
|
+
COMPLETED=$(cat res.json | jq .completed)
|
|
172
|
+
if [ "$COMPLETED" = "true" ]; then
|
|
173
|
+
cat res.json | jq .result
|
|
174
|
+
break
|
|
175
|
+
else
|
|
176
|
+
sleep 1
|
|
177
|
+
fi
|
|
178
|
+
done`}`;
|
|
179
|
+
}
|
|
180
|
+
$: url =
|
|
181
|
+
webhooks[webhookType][requestType] +
|
|
182
|
+
(tokenType === 'query'
|
|
183
|
+
? `?token=${token}${requestType === 'get_path'
|
|
184
|
+
? `&payload=${encodeURIComponent(btoa(JSON.stringify(args)))}`
|
|
185
|
+
: ''}`
|
|
186
|
+
: `${requestType === 'get_path'
|
|
187
|
+
? `?payload=${encodeURIComponent(btoa(JSON.stringify(args)))}`
|
|
188
|
+
: ''}`);
|
|
189
|
+
</script>
|
|
190
|
+
|
|
191
|
+
<UserSettings
|
|
192
|
+
bind:this={userSettings}
|
|
193
|
+
on:tokenCreated={(e) => {
|
|
194
|
+
token = e.detail
|
|
195
|
+
triggerTokens?.listTokens()
|
|
196
|
+
}}
|
|
197
|
+
newTokenWorkspace={$workspaceStore}
|
|
198
|
+
newTokenLabel={`webhook-${$userStore?.username ?? 'superadmin'}-${generateRandomString(4)}`}
|
|
199
|
+
{scopes}
|
|
200
|
+
/>
|
|
201
|
+
|
|
202
|
+
<div>
|
|
203
|
+
{#if showCapture && captureInfo}
|
|
204
|
+
<CaptureSection
|
|
205
|
+
{captureInfo}
|
|
206
|
+
disabled={false}
|
|
207
|
+
on:captureToggle
|
|
208
|
+
captureType="webhook"
|
|
209
|
+
bind:captureTable
|
|
210
|
+
on:applyArgs
|
|
211
|
+
on:updateSchema
|
|
212
|
+
on:addPreprocessor
|
|
213
|
+
>
|
|
214
|
+
<Label label="URL">
|
|
215
|
+
<ClipboardPanel content={captureUrl} disabled={!captureInfo.active} />
|
|
216
|
+
</Label>
|
|
217
|
+
|
|
218
|
+
<Label label="Example cURL">
|
|
219
|
+
<CopyableCodeBlock
|
|
220
|
+
code={captureCurlCode()}
|
|
221
|
+
language={bash}
|
|
222
|
+
disabled={!captureInfo.active}
|
|
223
|
+
/>
|
|
224
|
+
</Label>
|
|
225
|
+
</CaptureSection>
|
|
226
|
+
{/if}
|
|
227
|
+
|
|
228
|
+
<div class="flex flex-col gap-8">
|
|
229
|
+
{#if SCRIPT_VIEW_SHOW_CREATE_TOKEN_BUTTON}
|
|
230
|
+
<Label label="Token">
|
|
231
|
+
<div class="flex flex-row justify-between gap-2">
|
|
232
|
+
<input
|
|
233
|
+
bind:value={token}
|
|
234
|
+
placeholder="paste your token here once created to alter examples below"
|
|
235
|
+
class="!text-xs !font-normal"
|
|
236
|
+
/>
|
|
237
|
+
<Button size="xs" color="light" variant="border" on:click={userSettings.openDrawer}>
|
|
238
|
+
Create a Webhook-specific Token
|
|
239
|
+
<Tooltip light>
|
|
240
|
+
The token will have a scope such that it can only be used to trigger this script. It
|
|
241
|
+
is safe to share as it cannot be used to impersonate you.
|
|
242
|
+
</Tooltip>
|
|
243
|
+
</Button>
|
|
244
|
+
</div>
|
|
245
|
+
</Label>
|
|
246
|
+
{/if}
|
|
247
|
+
|
|
248
|
+
<div class="flex flex-col gap-2">
|
|
249
|
+
<div class="flex flex-row justify-between">
|
|
250
|
+
<div class="text-sm font-normal text-secondary flex flex-row items-center">Request type</div
|
|
251
|
+
>
|
|
252
|
+
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={webhookType}>
|
|
253
|
+
<ToggleButton
|
|
254
|
+
label="Async"
|
|
255
|
+
value="async"
|
|
256
|
+
tooltip="The returning value is the uuid of the job assigned to execute the job."
|
|
257
|
+
/>
|
|
258
|
+
<ToggleButton
|
|
259
|
+
label="Sync"
|
|
260
|
+
value="sync"
|
|
261
|
+
tooltip="Triggers the execution, wait for the job to complete and return it as a response."
|
|
262
|
+
/>
|
|
263
|
+
</ToggleButtonGroup>
|
|
264
|
+
</div>
|
|
265
|
+
<div class="flex flex-row justify-between">
|
|
266
|
+
<div class="text-sm font-normal text-secondary flex flex-row items-center">Call method</div>
|
|
267
|
+
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={requestType}>
|
|
268
|
+
<ToggleButton
|
|
269
|
+
label="POST by path"
|
|
270
|
+
value="path"
|
|
271
|
+
icon={ArrowUpRight}
|
|
272
|
+
selectedColor="#fb923c"
|
|
273
|
+
/>
|
|
274
|
+
{#if !isFlow}
|
|
275
|
+
<ToggleButton
|
|
276
|
+
label="POST by hash"
|
|
277
|
+
value="hash"
|
|
278
|
+
icon={ArrowUpRight}
|
|
279
|
+
selectedColor="#fb923c"
|
|
280
|
+
disabled={!hash}
|
|
281
|
+
/>
|
|
282
|
+
{/if}
|
|
283
|
+
|
|
284
|
+
<ToggleButton
|
|
285
|
+
label="GET by path"
|
|
286
|
+
value="get_path"
|
|
287
|
+
icon={ArrowDownRight}
|
|
288
|
+
disabled={webhookType !== 'sync'}
|
|
289
|
+
selectedColor="#14b8a6"
|
|
290
|
+
/>
|
|
291
|
+
</ToggleButtonGroup>
|
|
292
|
+
</div>
|
|
293
|
+
<div class="flex flex-row justify-between">
|
|
294
|
+
<div class="text-sm font-normal text-secondary flex flex-row items-center"
|
|
295
|
+
>Token configuration</div
|
|
296
|
+
>
|
|
297
|
+
<ToggleButtonGroup class="h-[30px] w-auto" bind:selected={tokenType}>
|
|
298
|
+
<ToggleButton label="Token in Headers" value="headers" />
|
|
299
|
+
<ToggleButton label="Token in Query" value="query" />
|
|
300
|
+
</ToggleButtonGroup>
|
|
301
|
+
</div>
|
|
302
|
+
</div>
|
|
303
|
+
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
304
|
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
|
305
|
+
<div>
|
|
306
|
+
<Tabs bind:selected={selectedTab}>
|
|
307
|
+
<Tab value="rest" size="xs">REST</Tab>
|
|
308
|
+
{#if SCRIPT_VIEW_SHOW_EXAMPLE_CURL}
|
|
309
|
+
<Tab value="curl" size="xs">Curl</Tab>
|
|
310
|
+
{/if}
|
|
311
|
+
<Tab value="fetch" size="xs">Fetch</Tab>
|
|
312
|
+
|
|
313
|
+
<svelte:fragment slot="content">
|
|
314
|
+
{#key token}
|
|
315
|
+
<TabContent value="rest" class="flex flex-col flex-1 h-full ">
|
|
316
|
+
<div class="flex flex-col gap-2">
|
|
317
|
+
<Label label="Url">
|
|
318
|
+
<ClipboardPanel content={url} />
|
|
319
|
+
</Label>
|
|
320
|
+
|
|
321
|
+
{#if requestType !== 'get_path'}
|
|
322
|
+
<Label label="Body">
|
|
323
|
+
<ClipboardPanel content={JSON.stringify(args, null, 2)} />
|
|
324
|
+
</Label>
|
|
325
|
+
{/if}
|
|
326
|
+
{#key requestType}
|
|
327
|
+
{#key tokenType}
|
|
328
|
+
<Label label="Headers">
|
|
329
|
+
<ClipboardPanel content={JSON.stringify(headers(), null, 2)} />
|
|
330
|
+
</Label>
|
|
331
|
+
{/key}
|
|
332
|
+
{/key}
|
|
333
|
+
</div>
|
|
334
|
+
</TabContent>
|
|
335
|
+
<TabContent value="curl" class="flex flex-col flex-1 h-full">
|
|
336
|
+
<div class="relative">
|
|
337
|
+
{#key args}
|
|
338
|
+
{#key requestType}
|
|
339
|
+
{#key webhookType}
|
|
340
|
+
{#key tokenType}
|
|
341
|
+
<div
|
|
342
|
+
class="flex flex-row flex-1 h-full border p-2 rounded-md overflow-auto relative"
|
|
343
|
+
on:click={(e) => {
|
|
344
|
+
e.preventDefault()
|
|
345
|
+
copyToClipboard(curlCode())
|
|
346
|
+
}}
|
|
347
|
+
>
|
|
348
|
+
<Highlight language={bash} code={curlCode()} />
|
|
349
|
+
<Clipboard size={14} class="w-8 top-2 right-2 absolute" />
|
|
350
|
+
</div>
|
|
351
|
+
{/key}
|
|
352
|
+
{/key}
|
|
353
|
+
{/key}
|
|
354
|
+
{/key}
|
|
355
|
+
</div>
|
|
356
|
+
</TabContent>
|
|
357
|
+
<TabContent value="fetch">
|
|
358
|
+
{#key args}
|
|
359
|
+
{#key requestType}
|
|
360
|
+
{#key webhookType}
|
|
361
|
+
{#key tokenType}
|
|
362
|
+
{#key token}
|
|
363
|
+
<div
|
|
364
|
+
class="flex flex-row flex-1 h-full border p-2 rounded-md overflow-auto relative"
|
|
365
|
+
on:click={(e) => {
|
|
366
|
+
e.preventDefault()
|
|
367
|
+
copyToClipboard(fetchCode())
|
|
368
|
+
}}
|
|
369
|
+
>
|
|
370
|
+
<Highlight language={typescript} code={fetchCode()} />
|
|
371
|
+
<Clipboard size={14} class="w-8 top-2 right-2 absolute" />
|
|
372
|
+
</div>
|
|
373
|
+
{/key}{/key}{/key}{/key}
|
|
374
|
+
{/key}
|
|
375
|
+
</TabContent>
|
|
376
|
+
{/key}
|
|
377
|
+
</svelte:fragment>
|
|
378
|
+
</Tabs>
|
|
379
|
+
</div>
|
|
380
|
+
<TriggerTokens bind:this={triggerTokens} {isFlow} {path} labelPrefix="webhook" />
|
|
381
|
+
</div>
|
|
382
|
+
</div>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import TriggerTokens from './TriggerTokens.svelte';
|
|
3
|
+
import { type CaptureInfo } from './CaptureSection.svelte';
|
|
4
|
+
import CaptureTable from './CaptureTable.svelte';
|
|
5
|
+
declare const __propDef: {
|
|
6
|
+
props: {
|
|
7
|
+
isFlow?: boolean | undefined;
|
|
8
|
+
path?: string | undefined;
|
|
9
|
+
hash?: string | undefined;
|
|
10
|
+
token?: string | undefined;
|
|
11
|
+
args: any;
|
|
12
|
+
triggerTokens?: TriggerTokens | undefined;
|
|
13
|
+
scopes?: string[] | undefined;
|
|
14
|
+
showCapture?: boolean | undefined;
|
|
15
|
+
captureTable?: CaptureTable | undefined;
|
|
16
|
+
captureInfo?: CaptureInfo | undefined;
|
|
17
|
+
};
|
|
18
|
+
events: {
|
|
19
|
+
captureToggle: CustomEvent<undefined>;
|
|
20
|
+
applyArgs: CustomEvent<{
|
|
21
|
+
kind: "main" | "preprocessor";
|
|
22
|
+
args: Record<string, any> | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
updateSchema: CustomEvent<{
|
|
25
|
+
schema: any;
|
|
26
|
+
redirect: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
addPreprocessor: CustomEvent<null>;
|
|
29
|
+
} & {
|
|
30
|
+
[evt: string]: CustomEvent<any>;
|
|
31
|
+
};
|
|
32
|
+
slots: {};
|
|
33
|
+
};
|
|
34
|
+
export type WebhooksConfigSectionProps = typeof __propDef.props;
|
|
35
|
+
export type WebhooksConfigSectionEvents = typeof __propDef.events;
|
|
36
|
+
export type WebhooksConfigSectionSlots = typeof __propDef.slots;
|
|
37
|
+
export default class WebhooksConfigSection extends SvelteComponent<WebhooksConfigSectionProps, WebhooksConfigSectionEvents, WebhooksConfigSectionSlots> {
|
|
38
|
+
}
|
|
39
|
+
export {};
|