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.
Files changed (286) hide show
  1. package/package/components/ArgInput.svelte +12 -16
  2. package/package/components/ArgInput.svelte.d.ts +1 -0
  3. package/package/components/AssignableTags.svelte +3 -1
  4. package/package/components/AssignableTags.svelte.d.ts +1 -0
  5. package/package/components/AuthSettings.svelte +248 -0
  6. package/package/components/AuthSettings.svelte.d.ts +19 -0
  7. package/package/components/AutoscalingConfigEditor.svelte +2 -2
  8. package/package/components/CronInput.svelte +2 -2
  9. package/package/components/DeployWorkspace.svelte +1 -1
  10. package/package/components/Description.svelte +9 -0
  11. package/package/components/Description.svelte.d.ts +18 -0
  12. package/package/components/Dev.svelte +18 -3
  13. package/package/components/DisplayResult.svelte +7 -4
  14. package/package/components/DisplayResult.svelte.d.ts +1 -0
  15. package/package/components/DropdownV2.svelte +2 -1
  16. package/package/components/DropdownV2.svelte.d.ts +1 -0
  17. package/package/components/EditableSchemaForm.svelte +2 -2
  18. package/package/components/Editor.svelte +9 -6
  19. package/package/components/Editor.svelte.d.ts +4 -2
  20. package/package/components/EditorBar.svelte +51 -6
  21. package/package/components/ErrorOrRecoveryHandler.svelte +4 -3
  22. package/package/components/ExecutionDuration.svelte +2 -1
  23. package/package/components/FieldHeader.svelte +9 -1
  24. package/package/components/FieldHeader.svelte.d.ts +1 -0
  25. package/package/components/FlowBuilder.svelte +16 -3
  26. package/package/components/FlowGraphViewer.svelte +2 -0
  27. package/package/components/FlowPreviewContent.svelte +6 -15
  28. package/package/components/FlowStatusViewerInner.svelte +80 -55
  29. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InputTransformSchemaForm.svelte +1 -1
  32. package/package/components/InstanceSetting.svelte +774 -0
  33. package/package/components/InstanceSetting.svelte.d.ts +27 -0
  34. package/package/components/InstanceSettings.svelte +68 -1005
  35. package/package/components/InstanceSettings.svelte.d.ts +0 -4
  36. package/package/components/Label.svelte +16 -6
  37. package/package/components/Label.svelte.d.ts +3 -0
  38. package/package/components/Login.svelte +17 -9
  39. package/package/components/OAuthSetting.svelte +4 -3
  40. package/package/components/OauthExtraParams.svelte +1 -1
  41. package/package/components/OauthScopes.svelte +2 -2
  42. package/package/components/ObjectStoreConfigSettings.svelte +141 -128
  43. package/package/components/QueueMetricsDrawer.svelte +5 -5
  44. package/package/components/ResourceEditor.svelte +4 -0
  45. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  46. package/package/components/ResourceEditorDrawer.svelte +15 -3
  47. package/package/components/ResourceEditorDrawer.svelte.d.ts +2 -2
  48. package/package/components/ResourcePicker.svelte +16 -5
  49. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  50. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  51. package/package/components/RunPageSchedules.svelte +15 -10
  52. package/package/components/SavedInputs.svelte +1 -1
  53. package/package/components/ScheduleEditorInner.svelte +58 -27
  54. package/package/components/SchemaForm.svelte +7 -5
  55. package/package/components/SchemaForm.svelte.d.ts +1 -0
  56. package/package/components/ScriptBuilder.svelte +58 -5
  57. package/package/components/ScriptEditor.svelte +78 -40
  58. package/package/components/ScriptEditor.svelte.d.ts +17 -2
  59. package/package/components/ScriptPicker.svelte +41 -34
  60. package/package/components/ScriptPicker.svelte.d.ts +1 -0
  61. package/package/components/ScriptVersionHistory.svelte +1 -1
  62. package/package/components/Section.svelte +38 -35
  63. package/package/components/Section.svelte.d.ts +2 -0
  64. package/package/components/ServiceLogsInner.svelte +1 -1
  65. package/package/components/SimpleEditor.svelte +2 -0
  66. package/package/components/Subsection.svelte +52 -0
  67. package/package/components/Subsection.svelte.d.ts +27 -0
  68. package/package/components/SuperadminSettings.svelte +23 -13
  69. package/package/components/TemplateEditor.svelte +4 -3
  70. package/package/components/TestConnection.svelte +5 -0
  71. package/package/components/TestJobLoader.svelte +2 -1
  72. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  73. package/package/components/Toggle.svelte +2 -4
  74. package/package/components/UserSettings.svelte +1 -1
  75. package/package/components/WorkerGroup.svelte +4 -4
  76. package/package/components/WorkerTagPicker.svelte +4 -2
  77. package/package/components/WorkerTagPicker.svelte.d.ts +1 -0
  78. package/package/components/WorkerTagSelect.svelte +2 -0
  79. package/package/components/WorkerTagSelect.svelte.d.ts +1 -0
  80. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
  81. package/package/components/apps/components/display/dbtable/utils.js +26 -1
  82. package/package/components/apps/components/helpers/RunnableComponent.svelte +8 -2
  83. package/package/components/apps/components/inputs/AppDateInput.svelte +7 -1
  84. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -1
  85. package/package/components/apps/editor/AppEditor.svelte +5 -34
  86. package/package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  87. package/package/components/apps/editor/AppEditorBottomPanel.svelte +4 -7
  88. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +1 -3
  89. package/package/components/apps/editor/AppEditorHeader.svelte +148 -58
  90. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
  92. package/package/components/apps/editor/RunnableJobPanel.svelte +6 -2
  93. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +1 -0
  94. package/package/components/apps/editor/appUtils.d.ts +1 -0
  95. package/package/components/apps/editor/appUtils.js +17 -0
  96. package/package/components/apps/editor/component/components.d.ts +82 -81
  97. package/package/components/apps/editor/component/components.js +4 -3
  98. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
  99. package/package/components/apps/editor/componentsPanel/GroupList.svelte +12 -2
  100. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -56
  103. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
  104. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +3 -2
  105. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
  106. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +16 -9
  107. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
  108. package/package/components/apps/inputType.d.ts +2 -2
  109. package/package/components/apps/types.d.ts +2 -0
  110. package/package/components/common/alert/ConnectionIndicator.svelte +30 -0
  111. package/package/components/common/alert/ConnectionIndicator.svelte.d.ts +20 -0
  112. package/package/components/common/alert/Notification.svelte +15 -0
  113. package/package/components/common/alert/Notification.svelte.d.ts +17 -0
  114. package/package/components/common/button/AnimatedButton.svelte +1 -1
  115. package/package/components/common/button/RefreshButton.svelte +30 -0
  116. package/package/components/common/button/RefreshButton.svelte.d.ts +18 -0
  117. package/package/components/common/fileDownload/FileDownload.svelte +4 -3
  118. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +1 -0
  119. package/package/components/common/fileUpload/FileUpload.svelte +3 -3
  120. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  121. package/package/components/common/layout/List.svelte +35 -0
  122. package/package/components/common/layout/List.svelte.d.ts +21 -0
  123. package/package/components/common/layout/ListElement.svelte +3 -0
  124. package/package/components/common/layout/ListElement.svelte.d.ts +27 -0
  125. package/package/components/common/menu/MenuV2.svelte +3 -2
  126. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  127. package/package/components/common/modal/Modal.svelte +6 -4
  128. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  129. package/package/components/common/modal/Modal2.svelte +101 -0
  130. package/package/components/common/modal/Modal2.svelte.d.ts +28 -0
  131. package/package/components/common/popup/Popup.svelte +5 -1
  132. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  133. package/package/components/common/toggleButton-v2/ToggleButton.svelte +1 -1
  134. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  135. package/package/components/details/ClipboardPanel.svelte +12 -2
  136. package/package/components/details/ClipboardPanel.svelte.d.ts +2 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +24 -0
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +19 -0
  139. package/package/components/details/DetailPageLayout.svelte +3 -1
  140. package/package/components/details/EmailTriggerConfigSection.svelte +119 -0
  141. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +38 -0
  142. package/package/components/details/EmailTriggerPanel.svelte +27 -74
  143. package/package/components/details/EmailTriggerPanel.svelte.d.ts +7 -1
  144. package/package/components/flows/FlowEditor.svelte +1 -1
  145. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  146. package/package/components/flows/FlowHistoryInner.svelte +1 -1
  147. package/package/components/flows/content/BranchPredicateEditor.svelte +1 -1
  148. package/package/components/flows/content/FlowEditorPanel.svelte +30 -1
  149. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -0
  150. package/package/components/flows/content/FlowInput.svelte +2 -15
  151. package/package/components/flows/content/FlowInputs.svelte +1 -1
  152. package/package/components/flows/content/FlowInputsQuick.svelte +2 -2
  153. package/package/components/flows/content/FlowModuleComponent.svelte +9 -5
  154. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  155. package/package/components/flows/content/FlowModuleHeader.svelte +4 -1
  156. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  157. package/package/components/flows/content/FlowPathViewer.svelte +3 -1
  158. package/package/components/flows/content/FlowRetries.svelte +32 -5
  159. package/package/components/flows/content/FlowSettings.svelte +56 -48
  160. package/package/components/flows/flowStateUtils.d.ts +10 -1
  161. package/package/components/flows/flowStateUtils.js +23 -0
  162. package/package/components/flows/map/FlowModuleSchemaMap.svelte +9 -19
  163. package/package/components/flows/map/InsertModuleButton.svelte +3 -3
  164. package/package/components/flows/map/VirtualItem.svelte +29 -1
  165. package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -0
  166. package/package/components/flows/pickers/TopLevelNode.svelte +2 -2
  167. package/package/components/flows/previousResults.js +8 -2
  168. package/package/components/flows/types.d.ts +1 -0
  169. package/package/components/graph/FlowGraphV2.svelte +16 -2
  170. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  171. package/package/components/graph/graphBuilder.js +1 -0
  172. package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
  173. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
  174. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  175. package/package/components/icons/CSharpIcon.svelte +14 -0
  176. package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
  177. package/package/components/icons/GitIcon.svelte +5 -2
  178. package/package/components/icons/XeroIcon.svelte +24 -0
  179. package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
  180. package/package/components/icons/index.d.ts +3 -1
  181. package/package/components/icons/index.js +4 -2
  182. package/package/components/instanceSettings.d.ts +3 -1
  183. package/package/components/instanceSettings.js +77 -69
  184. package/package/components/meltComponents/Popover.svelte +82 -0
  185. package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
  186. package/package/components/propertyPicker/PropPicker.svelte +5 -3
  187. package/package/components/runs/JobLoader.svelte +5 -2
  188. package/package/components/runs/JobPreview.svelte +5 -5
  189. package/package/components/runs/RunRow.svelte +3 -4
  190. package/package/components/runs/RunsFilter.svelte +4 -4
  191. package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
  192. package/package/components/schema/PropertyEditor.svelte +1 -1
  193. package/package/components/schema/SchemaFormDND.svelte +2 -0
  194. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  195. package/package/components/scriptEditor/LogPanel.svelte +176 -164
  196. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  197. package/package/components/search/GlobalSearchModal.svelte +3 -3
  198. package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
  199. package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
  200. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
  201. package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
  202. package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
  203. package/package/components/sidebar/OperatorMenu.svelte +30 -8
  204. package/package/components/sidebar/SideBarNotification.svelte +3 -6
  205. package/package/components/sidebar/SidebarContent.svelte +5 -5
  206. package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
  207. package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
  208. package/package/components/sidebar/changelogs.js +82 -17
  209. package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
  210. package/package/components/table/AutoDataTable.svelte +1 -1
  211. package/package/components/table/Cell.svelte +5 -3
  212. package/package/components/table/Cell.svelte.d.ts +1 -0
  213. package/package/components/table/DataTable.svelte +65 -58
  214. package/package/components/table/DataTable.svelte.d.ts +2 -0
  215. package/package/components/table/Head.svelte +1 -1
  216. package/package/components/table/Row.svelte +3 -1
  217. package/package/components/table/Row.svelte.d.ts +1 -0
  218. package/package/components/toast.js +3 -1
  219. package/package/components/triggers/CaptureButton.svelte +77 -0
  220. package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
  221. package/package/components/triggers/CaptureIcon.svelte +17 -0
  222. package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
  223. package/package/components/triggers/CaptureSection.svelte +76 -0
  224. package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
  225. package/package/components/triggers/CaptureTable.svelte +224 -0
  226. package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
  227. package/package/components/triggers/CaptureWrapper.svelte +237 -0
  228. package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
  229. package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
  230. package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
  231. package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
  232. package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
  233. package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
  234. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
  235. package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
  236. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
  237. package/package/components/triggers/RouteEditor.svelte +2 -2
  238. package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
  239. package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
  240. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
  241. package/package/components/triggers/RouteEditorInner.svelte +98 -163
  242. package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
  243. package/package/components/triggers/RoutesPanel.svelte +69 -54
  244. package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
  245. package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
  246. package/package/components/triggers/TriggersEditor.svelte +119 -89
  247. package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
  248. package/package/components/triggers/TriggersEditorSection.svelte +109 -0
  249. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
  250. package/package/components/triggers/TriggersWrapper.svelte +60 -0
  251. package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
  252. package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
  253. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
  254. package/package/components/triggers/WebhooksPanel.svelte +32 -331
  255. package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
  256. package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
  257. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
  258. package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
  259. package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
  260. package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
  261. package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
  262. package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
  263. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
  264. package/package/components/triggers.d.ts +6 -2
  265. package/package/components/triggers.js +16 -0
  266. package/package/components/wizards/AgGridWizard.svelte +4 -4
  267. package/package/editorUtils.d.ts +2 -0
  268. package/package/editorUtils.js +6 -3
  269. package/package/gen/core/OpenAPI.js +1 -1
  270. package/package/gen/schemas.gen.d.ts +17 -8
  271. package/package/gen/schemas.gen.js +17 -8
  272. package/package/gen/services.gen.d.ts +55 -5
  273. package/package/gen/services.gen.js +108 -5
  274. package/package/gen/types.gen.d.ts +180 -13
  275. package/package/hubPaths.json +6 -3
  276. package/package/infer.js +9 -0
  277. package/package/script_helpers.d.ts +5 -0
  278. package/package/script_helpers.js +68 -8
  279. package/package/scripts.d.ts +1 -1
  280. package/package/scripts.js +5 -1
  281. package/package/stores.d.ts +1 -0
  282. package/package/utils.d.ts +3 -1
  283. package/package/utils.js +20 -4
  284. package/package.json +11 -8
  285. package/package/components/flows/content/CapturePayload.svelte +0 -114
  286. 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 {};