windmill-components 1.394.8 → 1.405.5

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 (305) hide show
  1. package/package/assets/app.css +20 -0
  2. package/package/ata/edgeCases.d.ts +0 -1
  3. package/package/ata/edgeCases.js +2 -8
  4. package/package/ata/index.js +4 -3
  5. package/package/common.d.ts +1 -1
  6. package/package/common.js +2 -2
  7. package/package/components/ApiConnectForm.svelte +33 -7
  8. package/package/components/AppConnectLightweightResourcePicker.svelte +66 -0
  9. package/package/components/AppConnectLightweightResourcePicker.svelte.d.ts +21 -0
  10. package/package/components/ArgInput.svelte +10 -4
  11. package/package/components/ArgInput.svelte.d.ts +1 -0
  12. package/package/components/CenteredModal.svelte +4 -1
  13. package/package/components/CenteredModal.svelte.d.ts +1 -0
  14. package/package/components/CustomPopover.svelte +1 -1
  15. package/package/components/DateInput.svelte +2 -0
  16. package/package/components/DateInput.svelte.d.ts +1 -0
  17. package/package/components/DefaultScripts.svelte +8 -3
  18. package/package/components/DefaultScripts.svelte.d.ts +5 -1
  19. package/package/components/DefaultScriptsInner.svelte +16 -7
  20. package/package/components/DefaultScriptsInner.svelte.d.ts +3 -1
  21. package/package/components/Dev.svelte +68 -11
  22. package/package/components/DisplayResult.svelte +1 -1
  23. package/package/components/DropdownV2.svelte.d.ts +3 -3
  24. package/package/components/DropdownV2Inner.svelte.d.ts +3 -3
  25. package/package/components/EditableSchemaForm.svelte +1 -0
  26. package/package/components/Editor.svelte +3 -2
  27. package/package/components/Editor.svelte.d.ts +1 -1
  28. package/package/components/ExecutionDuration.svelte +44 -0
  29. package/package/components/ExecutionDuration.svelte.d.ts +24 -0
  30. package/package/components/FlowBuilder.svelte +22 -12
  31. package/package/components/FlowBuilder.svelte.d.ts +1 -0
  32. package/package/components/FlowGraphViewer.svelte +9 -2
  33. package/package/components/FlowGraphViewerStep.svelte +23 -10
  34. package/package/components/FlowInputViewer.svelte +25 -0
  35. package/package/components/FlowInputViewer.svelte.d.ts +19 -0
  36. package/package/components/FlowJobResult.svelte +8 -2
  37. package/package/components/FlowJobResult.svelte.d.ts +1 -0
  38. package/package/components/FlowMetadata.svelte +2 -2
  39. package/package/components/FlowStatusViewer.svelte +3 -1
  40. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  41. package/package/components/FlowStatusViewerInner.svelte +21 -5
  42. package/package/components/FlowTimeline.svelte +3 -3
  43. package/package/components/FlowViewer.svelte +2 -21
  44. package/package/components/HighlightCode.svelte +3 -0
  45. package/package/components/IconedResourceType.svelte +17 -10
  46. package/package/components/IconedResourceType.svelte.d.ts +2 -0
  47. package/package/components/IdEditorInput.svelte +0 -1
  48. package/package/components/InstanceSettings.svelte +247 -129
  49. package/package/components/InstanceSettings.svelte.d.ts +2 -0
  50. package/package/components/JobArgs.svelte +3 -1
  51. package/package/components/LightweightArgInput.svelte +35 -10
  52. package/package/components/LightweightArgInput.svelte.d.ts +1 -0
  53. package/package/components/LightweightObjectResourceInput.svelte +2 -0
  54. package/package/components/LightweightObjectResourceInput.svelte.d.ts +1 -0
  55. package/package/components/LightweightResourcePicker.svelte +34 -30
  56. package/package/components/LightweightSchemaForm.svelte +2 -0
  57. package/package/components/LightweightSchemaForm.svelte.d.ts +1 -0
  58. package/package/components/LogViewer.svelte +4 -3
  59. package/package/components/LogViewer.svelte.d.ts +1 -0
  60. package/package/components/Login.svelte +10 -5
  61. package/package/components/Login.svelte.d.ts +1 -0
  62. package/package/components/ManualPopover.svelte +1 -1
  63. package/package/components/ModulePreview.svelte +21 -2
  64. package/package/components/ModuleStatus.svelte +3 -0
  65. package/package/components/ModuleStatus.svelte.d.ts +1 -0
  66. package/package/components/OAuthSetting.svelte +40 -15
  67. package/package/components/ObjectResourceInput.svelte +5 -2
  68. package/package/components/ObjectResourceInput.svelte.d.ts +2 -0
  69. package/package/components/ObjectStoreConfigSettings.svelte +78 -76
  70. package/package/components/ParqetCsvTableRenderer.svelte +25 -3
  71. package/package/components/Password.svelte.d.ts +1 -1
  72. package/package/components/Path.svelte +74 -54
  73. package/package/components/Path.svelte.d.ts +2 -1
  74. package/package/components/Popover.svelte +1 -1
  75. package/package/components/Portal.svelte +7 -8
  76. package/package/components/Portal.svelte.d.ts +3 -7
  77. package/package/components/QueueMetricsDrawer.svelte +368 -3
  78. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -0
  79. package/package/components/ResourceEditor.svelte +38 -10
  80. package/package/components/ResourcePicker.svelte +14 -9
  81. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  82. package/package/components/ResultJobLoader.svelte +6 -3
  83. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  84. package/package/components/RunForm.svelte +1 -1
  85. package/package/components/SavedInputs.svelte +2 -2
  86. package/package/components/ScheduleEditorInner.svelte +2 -2
  87. package/package/components/SchemaForm.svelte +6 -1
  88. package/package/components/ScriptBuilder.svelte +12 -5
  89. package/package/components/ScriptEditor.svelte +33 -3
  90. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  91. package/package/components/ScriptVersionHistory.svelte +54 -59
  92. package/package/components/Scrollable.svelte +47 -0
  93. package/package/components/Scrollable.svelte.d.ts +21 -0
  94. package/package/components/ShareModal.svelte.d.ts +2 -2
  95. package/package/components/SuperadminSettings.svelte +5 -7
  96. package/package/components/TestConnection.svelte +1 -0
  97. package/package/components/TestJobLoader.svelte +46 -5
  98. package/package/components/TestJobLoader.svelte.d.ts +2 -1
  99. package/package/components/TimeAgo.svelte +5 -6
  100. package/package/components/TimeAgo.svelte.d.ts +1 -1
  101. package/package/components/ToggleHubWorkspaceQuick.svelte +14 -0
  102. package/package/components/ToggleHubWorkspaceQuick.svelte.d.ts +16 -0
  103. package/package/components/WorkspaceGroup.svelte +3 -2
  104. package/package/components/apps/components/buttons/AppButton.svelte +1 -1
  105. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +1 -1
  106. package/package/components/apps/components/helpers/DebouncedInput.svelte +9 -1
  107. package/package/components/apps/components/inputs/AppMultiSelect.svelte +1 -1
  108. package/package/components/apps/components/inputs/AppMultiSelectV2.svelte +1 -1
  109. package/package/components/apps/components/inputs/AppSelect.svelte +1 -1
  110. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  111. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  112. package/package/components/apps/editor/AppEditor.svelte +11 -3
  113. package/package/components/apps/editor/GridEditor.svelte +57 -4
  114. package/package/components/apps/editor/GridEditor.svelte.d.ts +8 -0
  115. package/package/components/apps/editor/GridEditorMenu.svelte +1 -1
  116. package/package/components/apps/editor/SubGridEditor.svelte +82 -3
  117. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +16 -0
  118. package/package/components/apps/editor/appUtils.d.ts +19 -2
  119. package/package/components/apps/editor/appUtils.js +103 -7
  120. package/package/components/apps/editor/component/Component.svelte +36 -8
  121. package/package/components/apps/editor/component/Component.svelte.d.ts +3 -1
  122. package/package/components/apps/editor/component/components.d.ts +79 -79
  123. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +1 -1
  124. package/package/components/apps/svelte-grid/Grid.svelte +235 -12
  125. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +7 -7
  126. package/package/components/apps/svelte-grid/MoveResize.svelte +104 -11
  127. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +7 -0
  128. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  129. package/package/components/apps/svelte-grid/utils/item.js +2 -3
  130. package/package/components/apps/svelte-select/lib/ConditionalPortal.svelte +1 -1
  131. package/package/components/apps/svelte-select/lib/ConditionalPortalGlobal.svelte +1 -1
  132. package/package/components/apps/svelte-select/lib/Select.svelte +1 -1
  133. package/package/components/common/button/ButtonDropdown.svelte +1 -1
  134. package/package/components/common/drawer/ConditionalPortal.svelte +1 -1
  135. package/package/components/common/fileUpload/FileUpload.svelte +1 -1
  136. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  137. package/package/components/common/menu/Menu.svelte +2 -1
  138. package/package/components/common/menu/MenuV2.svelte +4 -2
  139. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  140. package/package/components/common/modal/AlwaysMountedModal.svelte +1 -1
  141. package/package/components/common/popup/Popup.svelte +22 -12
  142. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  143. package/package/components/common/popup/PopupV2.svelte +58 -0
  144. package/package/components/common/popup/PopupV2.svelte.d.ts +27 -0
  145. package/package/components/copilot/CronGen.svelte +1 -1
  146. package/package/components/copilot/RegexGen.svelte +4 -4
  147. package/package/components/copilot/StepGen.svelte +6 -6
  148. package/package/components/copilot/StepGenQuick.svelte +58 -0
  149. package/package/components/copilot/StepGenQuick.svelte.d.ts +24 -0
  150. package/package/components/copilot/flow.d.ts +2 -0
  151. package/package/components/copilot/flow.js +55 -0
  152. package/package/components/details/DetailPageDetailPanel.svelte +9 -1
  153. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +2 -1
  154. package/package/components/details/DetailPageLayout.svelte +2 -0
  155. package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
  156. package/package/components/details/Menu.svelte +1 -1
  157. package/package/components/details/utils.d.ts +0 -1
  158. package/package/components/details/utils.js +1 -12
  159. package/package/components/flows/CreateActionsApp.svelte +1 -1
  160. package/package/components/flows/FlowEditor.svelte +4 -2
  161. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  162. package/package/components/flows/FlowHistory.svelte +10 -195
  163. package/package/components/flows/FlowHistory.svelte.d.ts +0 -1
  164. package/package/components/flows/FlowHistoryInner.svelte +200 -0
  165. package/package/components/flows/FlowHistoryInner.svelte.d.ts +19 -0
  166. package/package/components/flows/FlowProgressBar.svelte +16 -1
  167. package/package/components/flows/FlowProgressBar.svelte.d.ts +1 -0
  168. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +8 -0
  169. package/package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +1 -0
  170. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +8 -0
  171. package/package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +1 -0
  172. package/package/components/flows/content/FlowConstants.svelte +1 -1
  173. package/package/components/flows/content/FlowEditorPanel.svelte +5 -1
  174. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  175. package/package/components/flows/content/FlowInput.svelte +66 -58
  176. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  177. package/package/components/flows/content/FlowInputs.svelte +7 -6
  178. package/package/components/flows/content/FlowInputs.svelte.d.ts +1 -0
  179. package/package/components/flows/content/FlowInputsFlowQuick.svelte +65 -0
  180. package/package/components/flows/content/FlowInputsFlowQuick.svelte.d.ts +19 -0
  181. package/package/components/flows/content/FlowInputsQuick.svelte +419 -0
  182. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +33 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -1
  184. package/package/components/flows/content/FlowModuleComponent.svelte +12 -3
  185. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSkip.svelte +69 -0
  188. package/package/components/flows/content/FlowModuleSkip.svelte.d.ts +20 -0
  189. package/package/components/flows/content/FlowModuleWrapper.svelte +17 -4
  190. package/package/components/flows/content/FlowPreprocessorModule.svelte +16 -0
  191. package/package/components/flows/content/FlowPreprocessorModule.svelte.d.ts +16 -0
  192. package/package/components/flows/content/FlowWhileLoop.svelte +9 -0
  193. package/package/components/flows/content/FlowWhileLoop.svelte.d.ts +1 -0
  194. package/package/components/flows/content/GenAiQuick.svelte +30 -0
  195. package/package/components/flows/content/GenAiQuick.svelte.d.ts +20 -0
  196. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -2
  197. package/package/components/flows/flowInfers.js +1 -1
  198. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -0
  199. package/package/components/flows/idUtils.js +3 -1
  200. package/package/components/flows/map/FlowCopilotButton.svelte +55 -0
  201. package/package/components/flows/map/FlowCopilotButton.svelte.d.ts +16 -0
  202. package/package/components/flows/map/FlowErrorHandlerItem.svelte +77 -47
  203. package/package/components/flows/map/FlowJobsMenu.svelte +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItem.svelte +25 -12
  205. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
  206. package/package/components/flows/map/FlowModuleSchemaMap.svelte +64 -20
  207. package/package/components/flows/map/InsertModuleButton.svelte +161 -138
  208. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +7 -4
  209. package/package/components/flows/map/MapItem.svelte +11 -0
  210. package/package/components/flows/map/MapItem.svelte.d.ts +1 -0
  211. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte +48 -0
  212. package/package/components/flows/pickers/FlowScriptPickerQuick.svelte.d.ts +23 -0
  213. package/package/components/flows/pickers/FlowToplevelNode.svelte +19 -0
  214. package/package/components/flows/pickers/FlowToplevelNode.svelte.d.ts +19 -0
  215. package/package/components/flows/pickers/PickHubScriptQuick.svelte +138 -0
  216. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +33 -0
  217. package/package/components/flows/pickers/TopLevelNode.svelte +58 -0
  218. package/package/components/flows/pickers/TopLevelNode.svelte.d.ts +21 -0
  219. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +120 -0
  220. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +35 -0
  221. package/package/components/flows/types.d.ts +1 -0
  222. package/package/components/graph/FlowGraphV2.svelte +93 -58
  223. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -1
  224. package/package/components/graph/graphBuilder.d.ts +2 -1
  225. package/package/components/graph/graphBuilder.js +345 -280
  226. package/package/components/graph/model.d.ts +2 -0
  227. package/package/components/graph/renderers/edges/BaseEdge.svelte +36 -14
  228. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  229. package/package/components/graph/renderers/nodes/InputNode.svelte +31 -51
  230. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +6 -1
  231. package/package/components/graph/renderers/nodes/ModuleNode.svelte +2 -1
  232. package/package/components/graph/util.d.ts +1 -1
  233. package/package/components/graph/util.js +7 -2
  234. package/package/components/home/ListFiltersQuick.svelte +51 -0
  235. package/package/components/home/ListFiltersQuick.svelte.d.ts +23 -0
  236. package/package/components/icons/AnsibleIcon.svelte +42 -0
  237. package/package/components/icons/AnsibleIcon.svelte.d.ts +25 -0
  238. package/package/components/icons/WindmillIcon.svelte +119 -105
  239. package/package/components/icons/WindmillIcon2.svelte +141 -0
  240. package/package/components/icons/WindmillIcon2.svelte.d.ts +20 -0
  241. package/package/components/icons/index.d.ts +2 -1
  242. package/package/components/icons/index.js +2 -1
  243. package/package/components/icons/store.d.ts +4 -0
  244. package/package/components/icons/store.js +1 -0
  245. package/package/components/instanceSettings.d.ts +2 -2
  246. package/package/components/instanceSettings.js +25 -58
  247. package/package/components/jobs/JobProgressBar.svelte +52 -0
  248. package/package/components/jobs/JobProgressBar.svelte.d.ts +23 -0
  249. package/package/components/multiselect/MultiSelectWrapper.svelte +1 -1
  250. package/package/components/progressBar/ProgressBar.svelte +18 -1
  251. package/package/components/progressBar/ProgressBar.svelte.d.ts +3 -0
  252. package/package/components/propertyPicker/ObjectViewer.svelte +1 -1
  253. package/package/components/runs/JobPreview.svelte +1 -0
  254. package/package/components/runs/PreprocessedArgsDisplay.svelte +71 -0
  255. package/package/components/runs/PreprocessedArgsDisplay.svelte.d.ts +16 -0
  256. package/package/components/runs/RunRow.svelte +3 -7
  257. package/package/components/schema/AddProperty.svelte +1 -0
  258. package/package/components/schema/EditableSchemaWrapper.svelte +142 -19
  259. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -0
  260. package/package/components/schema/FlowPropertyEditor.svelte +13 -0
  261. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -0
  262. package/package/components/scriptEditor/LogPanel.svelte +1 -0
  263. package/package/components/scriptEditor/LogPanel.svelte.d.ts +3 -1
  264. package/package/components/search/GlobalSearchModal.svelte +3 -2
  265. package/package/components/sidebar/SidebarContent.svelte +69 -8
  266. package/package/components/sidebar/changelogs.js +10 -0
  267. package/package/components/triggers/RouteEditor.svelte +19 -0
  268. package/package/components/triggers/RouteEditor.svelte.d.ts +21 -0
  269. package/package/components/triggers/RouteEditorInner.svelte +327 -0
  270. package/package/components/triggers/RouteEditorInner.svelte.d.ts +21 -0
  271. package/package/components/triggers/RoutesPanel.svelte +74 -0
  272. package/package/components/triggers/RoutesPanel.svelte.d.ts +17 -0
  273. package/package/editorUtils.js +2 -0
  274. package/package/gen/core/OpenAPI.js +1 -1
  275. package/package/gen/schemas.gen.d.ts +159 -8
  276. package/package/gen/schemas.gen.js +161 -8
  277. package/package/gen/services.gen.d.ts +139 -1
  278. package/package/gen/services.gen.js +282 -1
  279. package/package/gen/types.gen.d.ts +455 -12
  280. package/package/hubPaths.json +6 -8
  281. package/package/infer.d.ts +4 -2
  282. package/package/infer.js +25 -23
  283. package/package/inferArgSig.js +8 -2
  284. package/package/monaco_workers/graphql.worker.bundle.js +45440 -174
  285. package/package/relative_imports.d.ts +3 -0
  286. package/package/relative_imports.js +25 -0
  287. package/package/script_helpers.d.ts +38 -34
  288. package/package/script_helpers.js +245 -35
  289. package/package/scripts.d.ts +1 -1
  290. package/package/scripts.js +5 -1
  291. package/package/stores.d.ts +1 -0
  292. package/package/stores.js +1 -0
  293. package/package/utils.d.ts +1 -0
  294. package/package/utils.js +4 -0
  295. package/package.json +38 -7
  296. package/package/components/flows/map/InsertTriggerButton.svelte +0 -48
  297. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +0 -24
  298. package/package/init_scripts/python_failure_module.d.ts +0 -2
  299. package/package/init_scripts/python_failure_module.js +0 -8
  300. package/package/init_scripts/python_init_code.d.ts +0 -2
  301. package/package/init_scripts/python_init_code.js +0 -40
  302. package/package/init_scripts/python_init_code_clear.d.ts +0 -2
  303. package/package/init_scripts/python_init_code_clear.js +0 -5
  304. package/package/init_scripts/python_init_code_trigger.d.ts +0 -2
  305. package/package/init_scripts/python_init_code_trigger.js +0 -14
@@ -0,0 +1,327 @@
1
+ <script>import { Alert, Badge, Button } from '../common';
2
+ import Drawer from '../common/drawer/Drawer.svelte';
3
+ import DrawerContent from '../common/drawer/DrawerContent.svelte';
4
+ import Path from '../Path.svelte';
5
+ import Required from '../Required.svelte';
6
+ import ScriptPicker from '../ScriptPicker.svelte';
7
+ import { HttpTriggerService } from '../../gen';
8
+ import { usedTriggerKinds, userStore, workspaceStore } from '../../stores';
9
+ import { canWrite, emptyString, sendUserToast } from '../../utils';
10
+ import { createEventDispatcher } from 'svelte';
11
+ import Section from '../Section.svelte';
12
+ import { Loader2, Save } from 'lucide-svelte';
13
+ import Label from '../Label.svelte';
14
+ import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
15
+ import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
16
+ import { page } from '$app/stores';
17
+ import { isCloudHosted } from '../../cloud';
18
+ import { base } from '../../base';
19
+ let is_flow = false;
20
+ let initialPath = '';
21
+ let edit = true;
22
+ let itemKind = 'script';
23
+ $: is_flow = itemKind === 'flow';
24
+ let script_path = '';
25
+ let initialScriptPath = '';
26
+ let fixedScriptPath = '';
27
+ let drawerLoading = true;
28
+ export async function openEdit(ePath, isFlow) {
29
+ drawerLoading = true;
30
+ try {
31
+ drawer?.openDrawer();
32
+ initialPath = ePath;
33
+ itemKind = isFlow ? 'flow' : 'script';
34
+ edit = true;
35
+ dirtyPath = false;
36
+ await loadTrigger();
37
+ }
38
+ catch (err) {
39
+ sendUserToast(`Could not load route: ${err}`, true);
40
+ }
41
+ finally {
42
+ drawerLoading = false;
43
+ }
44
+ }
45
+ export async function openNew(nis_flow, fixedScriptPath_) {
46
+ drawerLoading = true;
47
+ try {
48
+ drawer?.openDrawer();
49
+ is_flow = nis_flow;
50
+ edit = false;
51
+ itemKind = nis_flow ? 'flow' : 'script';
52
+ is_async = false;
53
+ requires_auth = false;
54
+ initialRoutePath = '';
55
+ route_path = '';
56
+ http_method = 'post';
57
+ initialScriptPath = '';
58
+ fixedScriptPath = fixedScriptPath_ ?? '';
59
+ script_path = fixedScriptPath;
60
+ path = '';
61
+ initialPath = '';
62
+ dirtyPath = false;
63
+ }
64
+ finally {
65
+ drawerLoading = false;
66
+ }
67
+ }
68
+ let path = '';
69
+ let pathError = '';
70
+ let routeError = '';
71
+ let is_async = false;
72
+ let requires_auth = false;
73
+ let initialRoutePath = '';
74
+ let route_path = '';
75
+ let http_method = 'post';
76
+ const dispatch = createEventDispatcher();
77
+ let can_write = true;
78
+ async function loadTrigger() {
79
+ const s = await HttpTriggerService.getHttpTrigger({
80
+ workspace: $workspaceStore,
81
+ path: initialPath
82
+ });
83
+ script_path = s.script_path;
84
+ initialScriptPath = s.script_path;
85
+ is_flow = s.is_flow;
86
+ path = s.path;
87
+ route_path = s.route_path;
88
+ initialRoutePath = s.route_path;
89
+ http_method = s.http_method ?? 'post';
90
+ is_async = s.is_async;
91
+ requires_auth = s.requires_auth;
92
+ can_write = canWrite(s.path, s.extra_perms, $userStore);
93
+ }
94
+ async function triggerScript() {
95
+ if (edit) {
96
+ await HttpTriggerService.updateHttpTrigger({
97
+ workspace: $workspaceStore,
98
+ path: initialPath,
99
+ requestBody: {
100
+ path,
101
+ script_path,
102
+ is_flow,
103
+ is_async,
104
+ requires_auth,
105
+ route_path: $userStore?.is_admin || $userStore?.is_super_admin ? route_path : undefined,
106
+ http_method
107
+ }
108
+ });
109
+ sendUserToast(`Route ${path} updated`);
110
+ }
111
+ else {
112
+ await HttpTriggerService.createHttpTrigger({
113
+ workspace: $workspaceStore,
114
+ requestBody: {
115
+ path,
116
+ script_path,
117
+ is_flow,
118
+ is_async,
119
+ requires_auth,
120
+ route_path,
121
+ http_method
122
+ }
123
+ });
124
+ sendUserToast(`Route ${path} created`);
125
+ }
126
+ if (!$usedTriggerKinds.includes('http')) {
127
+ $usedTriggerKinds = [...$usedTriggerKinds, 'http'];
128
+ }
129
+ dispatch('update');
130
+ drawer.closeDrawer();
131
+ }
132
+ let drawer;
133
+ let dirtyPath = false;
134
+ $: fullRoute = `${$page.url.origin}${base}/api/r/${isCloudHosted() ? $workspaceStore + '/' : ''}${route_path}`;
135
+ async function routeExists(route_path, method) {
136
+ return await HttpTriggerService.existsRoute({
137
+ workspace: $workspaceStore,
138
+ requestBody: {
139
+ route_path,
140
+ http_method
141
+ }
142
+ });
143
+ }
144
+ let validateTimeout = undefined;
145
+ async function validateRoute(path, method) {
146
+ routeError = '';
147
+ if (validateTimeout) {
148
+ clearTimeout(validateTimeout);
149
+ }
150
+ validateTimeout = setTimeout(async () => {
151
+ if (!/^[\w-:]+(\/[\w-:]+)*$/.test(path)) {
152
+ routeError = 'Endpoint not valid';
153
+ }
154
+ else if (initialRoutePath !== path && (await routeExists(path, method))) {
155
+ routeError = 'Endpoint already taken';
156
+ }
157
+ else {
158
+ routeError = '';
159
+ }
160
+ validateTimeout = undefined;
161
+ }, 500);
162
+ }
163
+ $: validateRoute(route_path, http_method);
164
+ </script>
165
+
166
+ <Drawer size="700px" bind:this={drawer}>
167
+ <DrawerContent
168
+ title={edit ? (can_write ? `Edit route ${initialPath}` : `Route ${initialPath}`) : 'New route'}
169
+ on:close={drawer.closeDrawer}
170
+ >
171
+ <svelte:fragment slot="actions">
172
+ {#if !drawerLoading && can_write}
173
+ <Button
174
+ startIcon={{ icon: Save }}
175
+ disabled={pathError != '' || routeError != '' || emptyString(script_path) || !can_write}
176
+ on:click={triggerScript}
177
+ >
178
+ Save
179
+ </Button>
180
+ {/if}
181
+ </svelte:fragment>
182
+ {#if drawerLoading}
183
+ <Loader2 class="animate-spin" />
184
+ {:else}
185
+ <div class="flex flex-col gap-12">
186
+ <div class="flex flex-col gap-4">
187
+ <Label label="Path">
188
+ <Path
189
+ bind:dirty={dirtyPath}
190
+ bind:error={pathError}
191
+ bind:path
192
+ {initialPath}
193
+ checkInitialPathExistence={!edit}
194
+ namePlaceholder="route"
195
+ kind="http_trigger"
196
+ hideUser
197
+ disabled={!can_write}
198
+ />
199
+ </Label>
200
+ </div>
201
+
202
+ <Section label="HTTP">
203
+ {#if !($userStore?.is_admin || $userStore?.is_super_admin)}
204
+ <Alert type="info" title="Admin only" collapsible>
205
+ Route endpoints can only be edited by workspace admins
206
+ </Alert>
207
+ <div class="my-2" />
208
+ {/if}
209
+ <div class="flex flex-col w-full gap-4">
210
+ <label class="block grow w-full">
211
+ <div class="text-secondary text-sm flex items-center gap-1 w-full justify-between">
212
+ <div>
213
+ Path
214
+ <Required required={true} />
215
+ </div>
216
+ <div class="text-2xs text-tertiary"> ':myparam' for path params </div>
217
+ </div>
218
+ <!-- svelte-ignore a11y-autofocus -->
219
+ <input
220
+ type="text"
221
+ autocomplete="off"
222
+ bind:value={route_path}
223
+ disabled={!($userStore?.is_admin || $userStore?.is_super_admin) || !can_write}
224
+ class={routeError === ''
225
+ ? ''
226
+ : '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'}
227
+ />
228
+ </label>
229
+
230
+ <ToggleButtonGroup
231
+ class="w-auto"
232
+ bind:selected={http_method}
233
+ disabled={!($userStore?.is_admin || $userStore?.is_super_admin) || !can_write}
234
+ >
235
+ <ToggleButton label="GET" value="get" />
236
+ <ToggleButton label="POST" value="post" />
237
+ <ToggleButton label="PUT" value="put" />
238
+ <ToggleButton label="PATCH" value="patch" />
239
+ <ToggleButton label="DELETE" value="delete" />
240
+ </ToggleButtonGroup>
241
+ <div class="flex flex-col w-full mt-2">
242
+ <div class="flex justify-start w-full">
243
+ <Badge
244
+ color="gray"
245
+ class="center-center !bg-surface-secondary !text-tertiary !w-[90px] !h-[24px] rounded-r-none border"
246
+ >
247
+ Full endpoint
248
+ </Badge>
249
+ <input
250
+ type="text"
251
+ readonly
252
+ value={fullRoute}
253
+ size={fullRoute.length || 50}
254
+ class="font-mono !text-xs max-w-[calc(100%-70px)] !w-auto !h-[24px] !py-0 !border-l-0 !rounded-l-none"
255
+ on:focus={({ currentTarget }) => {
256
+ currentTarget.select()
257
+ }}
258
+ />
259
+ </div>
260
+ <div class="text-red-600 dark:text-red-400 text-2xs">{routeError}</div>
261
+ </div>
262
+ </div>
263
+ </Section>
264
+
265
+ <Section label="Runnable">
266
+ <p class="text-xs mb-1 text-tertiary">
267
+ Pick a script or flow to be triggered<Required required={true} /><br />
268
+ To handle headers, query or path parameters, add a preprocessor to your runnable.
269
+ </p>
270
+ <div class="flex flex-row mb-2">
271
+ <ScriptPicker
272
+ disabled={fixedScriptPath != '' || !can_write}
273
+ initialPath={fixedScriptPath || initialScriptPath}
274
+ kinds={['script']}
275
+ allowFlow={true}
276
+ bind:itemKind
277
+ bind:scriptPath={script_path}
278
+ allowRefresh
279
+ />
280
+
281
+ {#if script_path === undefined}
282
+ <Button
283
+ btnClasses="ml-4 mt-2"
284
+ color="dark"
285
+ size="xs"
286
+ href={itemKind === 'flow'
287
+ ? '/flows/add?hub=55'
288
+ : '/scripts/add?hub=hub%2F9088%2Fwindmill%2FHTTP%20route%20script%20with%20preprocessor%20template'}
289
+ target="_blank">Create from template</Button
290
+ >
291
+ {/if}
292
+ </div>
293
+ </Section>
294
+ <Section label="Settings">
295
+ <div class="flex flex-col gap-4">
296
+ <div class="flex flex-row justify-between">
297
+ <div class="text-sm font-semibold flex flex-row items-center">Request type</div>
298
+ <ToggleButtonGroup class="w-auto" bind:selected={is_async} disabled={!can_write}>
299
+ <ToggleButton
300
+ label="Async"
301
+ value={true}
302
+ tooltip="The returning value is the uuid of the job assigned to execute the job."
303
+ />
304
+ <ToggleButton
305
+ label="Sync"
306
+ value={false}
307
+ tooltip="Triggers the execution, wait for the job to complete and return it as a response."
308
+ />
309
+ </ToggleButtonGroup>
310
+ </div>
311
+ <div class="flex flex-row justify-between">
312
+ <div class="text-sm font-semibold flex flex-row items-center">Authentication</div>
313
+ <ToggleButtonGroup class="w-auto" bind:selected={requires_auth} disabled={!can_write}>
314
+ <ToggleButton label="None" value={false} />
315
+ <ToggleButton
316
+ label="Required"
317
+ value={true}
318
+ tooltip="Requires authentication with read access on the route"
319
+ />
320
+ </ToggleButtonGroup>
321
+ </div>
322
+ </div>
323
+ </Section>
324
+ </div>
325
+ {/if}
326
+ </DrawerContent>
327
+ </Drawer>
@@ -0,0 +1,21 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ openEdit?: ((ePath: string, isFlow: boolean) => Promise<void>) | undefined;
5
+ openNew?: ((nis_flow: boolean, fixedScriptPath_?: string) => Promise<void>) | undefined;
6
+ };
7
+ events: {
8
+ update: CustomEvent<any>;
9
+ } & {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type RouteEditorInnerProps = typeof __propDef.props;
15
+ export type RouteEditorInnerEvents = typeof __propDef.events;
16
+ export type RouteEditorInnerSlots = typeof __propDef.slots;
17
+ export default class RouteEditorInner extends SvelteComponent<RouteEditorInnerProps, RouteEditorInnerEvents, RouteEditorInnerSlots> {
18
+ get openEdit(): (ePath: string, isFlow: boolean) => Promise<void>;
19
+ get openNew(): (nis_flow: boolean, fixedScriptPath_?: string | undefined) => Promise<void>;
20
+ }
21
+ export {};
@@ -0,0 +1,74 @@
1
+ <script>import { Button } from '../common';
2
+ import { userStore, workspaceStore } from '../../stores';
3
+ import { HttpTriggerService } from '../../gen';
4
+ import { RouteIcon } from 'lucide-svelte';
5
+ import Skeleton from '../common/skeleton/Skeleton.svelte';
6
+ import RouteEditor from './RouteEditor.svelte';
7
+ import { canWrite } from '../../utils';
8
+ export let isFlow;
9
+ export let path;
10
+ let routeEditor;
11
+ let triggers = undefined;
12
+ $: path && loadTriggers();
13
+ async function loadTriggers() {
14
+ try {
15
+ triggers = (await HttpTriggerService.listHttpTriggers({
16
+ workspace: $workspaceStore ?? '',
17
+ path,
18
+ isFlow
19
+ })).map((x) => {
20
+ return { canWrite: canWrite(x.path, x.extra_perms, $userStore), ...x };
21
+ });
22
+ }
23
+ catch (e) {
24
+ console.error('impossible to load http routes');
25
+ }
26
+ }
27
+ </script>
28
+
29
+ <RouteEditor
30
+ on:update={() => {
31
+ loadTriggers()
32
+ }}
33
+ bind:this={routeEditor}
34
+ />
35
+
36
+ <div class="p-2 flex flex-col">
37
+ {#if $userStore?.is_admin || $userStore?.is_super_admin}
38
+ <Button
39
+ on:click={() => routeEditor?.openNew(isFlow, path)}
40
+ variant="border"
41
+ color="light"
42
+ size="xs"
43
+ startIcon={{ icon: RouteIcon }}
44
+ >
45
+ New Route
46
+ </Button>
47
+ {/if}
48
+ </div>
49
+
50
+ {#if triggers}
51
+ {#if triggers.length == 0}
52
+ <div class="text-xs text-secondary px-2"> No http routes </div>
53
+ {:else}
54
+ <div class="flex flex-col divide-y px-2 pt-2">
55
+ {#each triggers as trigger (trigger.path)}
56
+ <div class="grid grid-cols-5 text-2xs items-center py-2">
57
+ <div class="col-span-2 truncate">{trigger.path}</div>
58
+ <div class="col-span-2 truncate">
59
+ {trigger.http_method.toUpperCase()} /{trigger.route_path}
60
+ </div>
61
+ <button on:click={() => routeEditor?.openEdit(trigger.path, isFlow)}>
62
+ {#if trigger.canWrite}
63
+ Edit
64
+ {:else}
65
+ View
66
+ {/if}
67
+ </button>
68
+ </div>
69
+ {/each}
70
+ </div>
71
+ {/if}
72
+ {:else}
73
+ <Skeleton layout={[[8]]} />
74
+ {/if}
@@ -0,0 +1,17 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ isFlow: boolean;
5
+ path: string;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type RoutesPanelProps = typeof __propDef.props;
13
+ export type RoutesPanelEvents = typeof __propDef.events;
14
+ export type RoutesPanelSlots = typeof __propDef.slots;
15
+ export default class RoutesPanel extends SvelteComponent<RoutesPanelProps, RoutesPanelEvents, RoutesPanelSlots> {
16
+ }
17
+ export {};
@@ -70,6 +70,8 @@ export function langToExt(lang) {
70
70
  return 'gql';
71
71
  case 'css':
72
72
  return 'css';
73
+ case 'ansible':
74
+ return 'yml';
73
75
  default:
74
76
  return 'unknown';
75
77
  }
@@ -21,7 +21,7 @@ export const OpenAPI = {
21
21
  PASSWORD: undefined,
22
22
  TOKEN: undefined,
23
23
  USERNAME: undefined,
24
- VERSION: '1.394.3',
24
+ VERSION: '1.404.1',
25
25
  WITH_CREDENTIALS: false,
26
26
  interceptors: {
27
27
  request: new Interceptors(),