windmill-components 1.46.3 → 1.55.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 (611) hide show
  1. package/common.d.ts +6 -5
  2. package/components/ApiConnectForm.svelte +56 -0
  3. package/components/ApiConnectForm.svelte.d.ts +19 -0
  4. package/components/AppConnect.svelte +243 -180
  5. package/components/AppConnect.svelte.d.ts +4 -3
  6. package/components/ArgInfo.svelte +8 -4
  7. package/components/ArgInfo.svelte.d.ts +3 -3
  8. package/components/ArgInput.svelte +87 -27
  9. package/components/ArgInput.svelte.d.ts +11 -3
  10. package/components/Badge.svelte.d.ts +3 -3
  11. package/components/Button.svelte +1 -1
  12. package/components/Button.svelte.d.ts +3 -3
  13. package/components/CenteredModal.svelte +20 -13
  14. package/components/CenteredModal.svelte.d.ts +3 -3
  15. package/components/CenteredPage.svelte +1 -1
  16. package/components/CenteredPage.svelte.d.ts +6 -2
  17. package/components/ChevronButton.svelte.d.ts +3 -3
  18. package/components/CollapseLink.svelte.d.ts +3 -3
  19. package/components/CronInput.svelte +2 -2
  20. package/components/CronInput.svelte.d.ts +3 -3
  21. package/components/DisplayResult.svelte +39 -2
  22. package/components/DisplayResult.svelte.d.ts +3 -3
  23. package/components/Dropdown.svelte +73 -94
  24. package/components/Dropdown.svelte.d.ts +4 -6
  25. package/components/Editor.svelte +19 -7
  26. package/components/Editor.svelte.d.ts +4 -3
  27. package/components/EditorBar.svelte +92 -90
  28. package/components/EditorBar.svelte.d.ts +4 -3
  29. package/components/FieldHeader.svelte +4 -3
  30. package/components/FieldHeader.svelte.d.ts +3 -3
  31. package/components/FlowBuilder.svelte +86 -57
  32. package/components/FlowBuilder.svelte.d.ts +4 -3
  33. package/components/FlowGraphViewer.svelte +178 -0
  34. package/components/FlowGraphViewer.svelte.d.ts +24 -0
  35. package/components/FlowJobResult.svelte +6 -1
  36. package/components/FlowJobResult.svelte.d.ts +5 -3
  37. package/components/FlowMetadata.svelte +4 -2
  38. package/components/FlowMetadata.svelte.d.ts +3 -3
  39. package/components/FlowPreviewContent.svelte +58 -81
  40. package/components/FlowPreviewContent.svelte.d.ts +6 -3
  41. package/components/FlowStatusViewer.svelte +284 -109
  42. package/components/FlowStatusViewer.svelte.d.ts +6 -3
  43. package/components/FlowViewer.svelte +5 -80
  44. package/components/FlowViewer.svelte.d.ts +4 -3
  45. package/components/GroupModal.svelte.d.ts +3 -3
  46. package/components/HighlightCode.svelte +1 -1
  47. package/components/HighlightCode.svelte.d.ts +4 -3
  48. package/components/IconedPath.svelte +16 -6
  49. package/components/IconedPath.svelte.d.ts +5 -3
  50. package/components/IconedResourceType.svelte +6 -61
  51. package/components/IconedResourceType.svelte.d.ts +3 -3
  52. package/components/InputTransformForm.svelte +139 -89
  53. package/components/InputTransformForm.svelte.d.ts +10 -5
  54. package/components/InputTransformsViewer.svelte.d.ts +3 -3
  55. package/components/InviteGlobalUser.svelte +2 -2
  56. package/components/InviteGlobalUser.svelte.d.ts +4 -4
  57. package/components/InviteUser.svelte +20 -6
  58. package/components/InviteUser.svelte.d.ts +4 -4
  59. package/components/ItemPicker.svelte +103 -44
  60. package/components/ItemPicker.svelte.d.ts +8 -5
  61. package/components/JobArgs.svelte +5 -5
  62. package/components/JobArgs.svelte.d.ts +3 -3
  63. package/components/JobStatus.svelte +19 -13
  64. package/components/JobStatus.svelte.d.ts +3 -3
  65. package/components/LogViewer.svelte +28 -5
  66. package/components/LogViewer.svelte.d.ts +4 -3
  67. package/components/Modal.svelte.d.ts +3 -3
  68. package/components/ModulePreview.svelte +8 -0
  69. package/components/ModulePreview.svelte.d.ts +3 -3
  70. package/components/ModuleStatus.svelte +38 -0
  71. package/components/ModuleStatus.svelte.d.ts +18 -0
  72. package/components/ObjectResourceInput.svelte +19 -47
  73. package/components/ObjectResourceInput.svelte.d.ts +3 -3
  74. package/components/ObjectTypeNarrowing.svelte.d.ts +3 -3
  75. package/components/PageHeader.svelte +2 -2
  76. package/components/PageHeader.svelte.d.ts +3 -3
  77. package/components/Password.svelte +2 -2
  78. package/components/Password.svelte.d.ts +4 -4
  79. package/components/Path.svelte +6 -3
  80. package/components/Path.svelte.d.ts +5 -4
  81. package/components/Popover.svelte +7 -1
  82. package/components/Popover.svelte.d.ts +6 -4
  83. package/components/RadioButton.svelte.d.ts +3 -3
  84. package/components/Required.svelte.d.ts +3 -3
  85. package/components/ResourceEditor.svelte +107 -169
  86. package/components/ResourceEditor.svelte.d.ts +3 -5
  87. package/components/ResourcePicker.svelte +41 -28
  88. package/components/ResourcePicker.svelte.d.ts +3 -3
  89. package/components/ResourceTypePicker.svelte.d.ts +3 -3
  90. package/components/RunChart.svelte.d.ts +3 -3
  91. package/components/RunForm.svelte.d.ts +3 -3
  92. package/components/SchemaEditor.svelte +57 -24
  93. package/components/SchemaEditor.svelte.d.ts +3 -3
  94. package/components/SchemaEditorProperty.svelte.d.ts +3 -3
  95. package/components/SchemaForm.svelte +98 -33
  96. package/components/SchemaForm.svelte.d.ts +9 -4
  97. package/components/SchemaModal.svelte +11 -10
  98. package/components/SchemaModal.svelte.d.ts +4 -4
  99. package/components/SchemaViewer.svelte.d.ts +3 -3
  100. package/components/ScriptBuilder.svelte +202 -189
  101. package/components/ScriptBuilder.svelte.d.ts +4 -4
  102. package/components/ScriptEditor.svelte +71 -69
  103. package/components/ScriptEditor.svelte.d.ts +5 -3
  104. package/components/ScriptPicker.svelte +28 -38
  105. package/components/ScriptPicker.svelte.d.ts +5 -4
  106. package/components/ScriptSchema.svelte +12 -31
  107. package/components/ScriptSchema.svelte.d.ts +3 -4
  108. package/components/SearchItems.svelte +29 -0
  109. package/components/SearchItems.svelte.d.ts +23 -0
  110. package/components/ShareModal.svelte.d.ts +3 -3
  111. package/components/SharedBadge.svelte +4 -3
  112. package/components/SharedBadge.svelte.d.ts +3 -3
  113. package/components/SimpleEditor.svelte +36 -11
  114. package/components/SimpleEditor.svelte.d.ts +5 -4
  115. package/components/Star.svelte +42 -0
  116. package/components/Star.svelte.d.ts +19 -0
  117. package/components/StringTypeNarrowing.svelte.d.ts +3 -3
  118. package/components/SuperadminSettings.svelte +26 -52
  119. package/components/SuperadminSettings.svelte.d.ts +3 -3
  120. package/components/TableCustom.svelte +1 -1
  121. package/components/TableCustom.svelte.d.ts +3 -3
  122. package/components/TableSimple.svelte +1 -1
  123. package/components/TableSimple.svelte.d.ts +3 -3
  124. package/components/TestJobLoader.svelte +61 -32
  125. package/components/TestJobLoader.svelte.d.ts +9 -3
  126. package/components/Toggle.svelte.d.ts +3 -3
  127. package/components/ToggleHubWorkspace.svelte +16 -0
  128. package/components/ToggleHubWorkspace.svelte.d.ts +16 -0
  129. package/components/Tooltip.svelte.d.ts +4 -4
  130. package/components/UserSettings.svelte.d.ts +3 -3
  131. package/components/VariableEditor.svelte +89 -37
  132. package/components/VariableEditor.svelte.d.ts +5 -3
  133. package/components/apps/CreateApp.svelte +68 -0
  134. package/components/apps/CreateApp.svelte.d.ts +14 -0
  135. package/components/apps/components/DisplayComponent.svelte +16 -0
  136. package/components/apps/components/DisplayComponent.svelte.d.ts +20 -0
  137. package/components/apps/components/buttons/AppButton.svelte +49 -0
  138. package/components/apps/components/buttons/AppButton.svelte.d.ts +25 -0
  139. package/components/apps/components/dataDisplay/AppBarChart.svelte +42 -0
  140. package/components/apps/components/dataDisplay/AppBarChart.svelte.d.ts +21 -0
  141. package/components/apps/components/dataDisplay/AppPieChart.svelte +43 -0
  142. package/components/apps/components/dataDisplay/AppPieChart.svelte.d.ts +21 -0
  143. package/components/apps/components/dataDisplay/AppTable.svelte +132 -0
  144. package/components/apps/components/dataDisplay/AppTable.svelte.d.ts +23 -0
  145. package/components/apps/components/dataDisplay/AppText.svelte +22 -0
  146. package/components/apps/components/dataDisplay/AppText.svelte.d.ts +22 -0
  147. package/components/apps/components/dataDisplay/app.md +49 -0
  148. package/components/apps/components/form/AppForm.svelte +50 -0
  149. package/components/apps/components/form/AppForm.svelte.d.ts +25 -0
  150. package/components/apps/components/helpers/AlignWrapper.svelte +30 -0
  151. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +20 -0
  152. package/components/apps/components/helpers/DebouncedInput.svelte +24 -0
  153. package/components/apps/components/helpers/DebouncedInput.svelte.d.ts +20 -0
  154. package/components/apps/components/helpers/InputValue.svelte +46 -0
  155. package/components/apps/components/helpers/InputValue.svelte.d.ts +18 -0
  156. package/components/apps/components/helpers/NonRunnableComponent.svelte +20 -0
  157. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +21 -0
  158. package/components/apps/components/helpers/RunnableComponent.svelte +188 -0
  159. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +27 -0
  160. package/components/apps/components/helpers/RunnableWrapper.svelte +32 -0
  161. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +26 -0
  162. package/components/apps/components/numberInputs/AppNumberInput.svelte +36 -0
  163. package/components/apps/components/numberInputs/AppNumberInput.svelte.d.ts +20 -0
  164. package/components/apps/components/selectInputs/AppCheckbox.svelte +28 -0
  165. package/components/apps/components/selectInputs/AppCheckbox.svelte.d.ts +22 -0
  166. package/components/apps/components/textInputs/AppTextInput.svelte +21 -0
  167. package/components/apps/components/textInputs/AppTextInput.svelte.d.ts +20 -0
  168. package/components/apps/editor/AppEditor.svelte +116 -0
  169. package/components/apps/editor/AppEditor.svelte.d.ts +19 -0
  170. package/components/apps/editor/AppEditorHeader.svelte +75 -0
  171. package/components/apps/editor/AppEditorHeader.svelte.d.ts +19 -0
  172. package/components/apps/editor/AppPreview.svelte +42 -0
  173. package/components/apps/editor/AppPreview.svelte.d.ts +17 -0
  174. package/components/apps/editor/ComponentEditor.svelte +85 -0
  175. package/components/apps/editor/ComponentEditor.svelte.d.ts +20 -0
  176. package/components/apps/editor/ComponentHeader.svelte +28 -0
  177. package/components/apps/editor/ComponentHeader.svelte.d.ts +20 -0
  178. package/components/apps/editor/GridEditor.svelte +94 -0
  179. package/components/apps/editor/GridEditor.svelte.d.ts +14 -0
  180. package/components/apps/editor/RecomputeAllComponents.svelte +28 -0
  181. package/components/apps/editor/RecomputeAllComponents.svelte.d.ts +14 -0
  182. package/components/apps/editor/componentsPanel/ComponentList.svelte +160 -0
  183. package/components/apps/editor/componentsPanel/ComponentList.svelte.d.ts +14 -0
  184. package/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
  185. package/components/apps/editor/componentsPanel/componentDefaultProps.js +5 -0
  186. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +6 -0
  187. package/components/apps/editor/componentsPanel/componentStaticValues.js +8 -0
  188. package/components/apps/editor/componentsPanel/data.d.ts +3 -0
  189. package/components/apps/editor/componentsPanel/data.js +273 -0
  190. package/components/apps/editor/componentsPanel/store.d.ts +9 -0
  191. package/components/apps/editor/componentsPanel/store.js +16 -0
  192. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +22 -0
  193. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte.d.ts +19 -0
  194. package/components/apps/editor/contextPanel/ContextPanel.svelte +192 -0
  195. package/components/apps/editor/contextPanel/ContextPanel.svelte.d.ts +16 -0
  196. package/components/apps/editor/contextPanel/InlineScriptCreationPanel.svelte +29 -0
  197. package/components/apps/editor/contextPanel/InlineScriptCreationPanel.svelte.d.ts +16 -0
  198. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +67 -0
  199. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +55 -0
  200. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +221 -0
  201. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +18 -0
  202. package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte +70 -0
  203. package/components/apps/editor/settingsPanel/ConnectedInputEditor.svelte.d.ts +17 -0
  204. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +11 -0
  205. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +18 -0
  206. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +67 -0
  207. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +19 -0
  208. package/components/apps/editor/settingsPanel/PickFlow.svelte +38 -0
  209. package/components/apps/editor/settingsPanel/PickFlow.svelte.d.ts +16 -0
  210. package/components/apps/editor/settingsPanel/PickInlineScript.svelte +38 -0
  211. package/components/apps/editor/settingsPanel/PickInlineScript.svelte.d.ts +20 -0
  212. package/components/apps/editor/settingsPanel/Recompute.svelte +46 -0
  213. package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +17 -0
  214. package/components/apps/editor/settingsPanel/SectionPanel.svelte +70 -0
  215. package/components/apps/editor/settingsPanel/SectionPanel.svelte.d.ts +19 -0
  216. package/components/apps/editor/settingsPanel/StaticInputEditor.svelte +46 -0
  217. package/components/apps/editor/settingsPanel/StaticInputEditor.svelte.d.ts +18 -0
  218. package/components/apps/editor/settingsPanel/SubTypeEditor.svelte +17 -0
  219. package/components/apps/editor/settingsPanel/SubTypeEditor.svelte.d.ts +19 -0
  220. package/components/apps/editor/settingsPanel/TableActionLabel.svelte +10 -0
  221. package/components/apps/editor/settingsPanel/TableActionLabel.svelte.d.ts +17 -0
  222. package/components/apps/editor/settingsPanel/TableActions.svelte +111 -0
  223. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +19 -0
  224. package/components/apps/editor/settingsPanel/UserInputEditor.svelte +2 -0
  225. package/components/apps/editor/settingsPanel/UserInputEditor.svelte.d.ts +14 -0
  226. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +12 -0
  227. package/components/apps/editor/settingsPanel/common/PanelSection.svelte.d.ts +20 -0
  228. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +53 -0
  229. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +21 -0
  230. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +98 -0
  231. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +18 -0
  232. package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte +81 -0
  233. package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte.d.ts +20 -0
  234. package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte +81 -0
  235. package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte.d.ts +20 -0
  236. package/components/apps/gridUtils.d.ts +11 -0
  237. package/components/apps/gridUtils.js +24 -0
  238. package/components/apps/inputType.d.ts +62 -0
  239. package/components/apps/inputType.js +1 -0
  240. package/components/apps/rx.d.ts +27 -0
  241. package/components/apps/rx.js +99 -0
  242. package/components/apps/types.d.ts +86 -0
  243. package/components/apps/types.js +1 -0
  244. package/components/apps/utils.d.ts +13 -0
  245. package/components/apps/utils.js +132 -0
  246. package/components/common/actionRow/ActionRow.svelte.d.ts +3 -3
  247. package/components/common/alert/Alert.svelte +30 -7
  248. package/components/common/alert/Alert.svelte.d.ts +5 -3
  249. package/components/common/alert/model.d.ts +1 -1
  250. package/components/common/badge/Badge.svelte +3 -7
  251. package/components/common/badge/Badge.svelte.d.ts +6 -4
  252. package/components/common/badge/model.d.ts +2 -2
  253. package/components/common/breadcrumb/Breadcrumb.svelte.d.ts +3 -3
  254. package/components/common/button/Button.svelte +24 -6
  255. package/components/common/button/Button.svelte.d.ts +6 -4
  256. package/components/common/button/ButtonPopup.svelte +3 -1
  257. package/components/common/button/ButtonPopup.svelte.d.ts +5 -4
  258. package/components/common/button/ButtonPopupItem.svelte.d.ts +3 -3
  259. package/components/common/button/model.d.ts +2 -1
  260. package/components/common/button/model.js +2 -1
  261. package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +3 -3
  262. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +4 -4
  263. package/components/common/drawer/Drawer.svelte +5 -1
  264. package/components/common/drawer/Drawer.svelte.d.ts +3 -3
  265. package/components/common/drawer/DrawerContent.svelte +28 -19
  266. package/components/common/drawer/DrawerContent.svelte.d.ts +6 -6
  267. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  268. package/components/common/languageIcons/LanguageIcon.svelte +8 -4
  269. package/components/common/languageIcons/LanguageIcon.svelte.d.ts +4 -4
  270. package/components/common/menu/Menu.svelte +7 -6
  271. package/components/common/menu/Menu.svelte.d.ts +7 -6
  272. package/components/common/menu/MenuItem.svelte +1 -0
  273. package/components/common/menu/MenuItem.svelte.d.ts +6 -2
  274. package/components/common/popup/Popup.svelte +0 -11
  275. package/components/common/popup/Popup.svelte.d.ts +3 -3
  276. package/components/common/skeleton/Skeleton.svelte.d.ts +3 -3
  277. package/components/common/skeleton/SkeletonElement.svelte.d.ts +3 -3
  278. package/components/common/skeleton/model.d.ts +4 -4
  279. package/components/common/table/AppRow.svelte +77 -0
  280. package/components/common/table/AppRow.svelte.d.ts +23 -0
  281. package/components/common/table/FlowRow.svelte +141 -0
  282. package/components/common/table/FlowRow.svelte.d.ts +25 -0
  283. package/components/common/table/LanguageBadge.svelte +32 -0
  284. package/components/common/table/LanguageBadge.svelte.d.ts +24 -0
  285. package/components/common/table/Row.svelte +58 -0
  286. package/components/common/table/Row.svelte.d.ts +28 -0
  287. package/components/common/table/RowIcon.svelte +28 -0
  288. package/components/common/table/RowIcon.svelte.d.ts +16 -0
  289. package/components/common/table/ScriptRow.svelte +155 -0
  290. package/components/common/table/ScriptRow.svelte.d.ts +25 -0
  291. package/components/common/table/Table.svelte +9 -0
  292. package/components/common/table/Table.svelte.d.ts +27 -0
  293. package/components/common/tabs/Tab.svelte +15 -4
  294. package/components/common/tabs/Tab.svelte.d.ts +5 -3
  295. package/components/common/tabs/TabContent.svelte.d.ts +3 -3
  296. package/components/common/tabs/Tabs.svelte +5 -1
  297. package/components/common/tabs/Tabs.svelte.d.ts +4 -4
  298. package/components/common/toggleButton/ToggleButton.svelte +12 -9
  299. package/components/common/toggleButton/ToggleButton.svelte.d.ts +6 -4
  300. package/components/common/toggleButton/ToggleButtonGroup.svelte +12 -19
  301. package/components/common/toggleButton/ToggleButtonGroup.svelte.d.ts +10 -8
  302. package/components/flows/CreateActionsFlow.svelte +39 -0
  303. package/components/flows/CreateActionsFlow.svelte.d.ts +14 -0
  304. package/components/flows/FlowEditor.svelte +22 -5
  305. package/components/flows/FlowEditor.svelte.d.ts +4 -3
  306. package/components/flows/FlowProgressBar.svelte.d.ts +3 -3
  307. package/components/flows/common/FlowCard.svelte.d.ts +3 -3
  308. package/components/flows/common/FlowCardHeader.svelte +10 -9
  309. package/components/flows/common/FlowCardHeader.svelte.d.ts +3 -3
  310. package/components/flows/content/BranchPredicateEditor.svelte +30 -0
  311. package/components/flows/content/BranchPredicateEditor.svelte.d.ts +23 -0
  312. package/components/flows/content/CapturePayload.svelte +12 -8
  313. package/components/flows/content/CapturePayload.svelte.d.ts +3 -3
  314. package/components/flows/content/DynamicInputHelpBox.svelte +2 -32
  315. package/components/flows/content/DynamicInputHelpBox.svelte.d.ts +4 -6
  316. package/components/flows/content/FlowBranchAllWrapper.svelte +2 -2
  317. package/components/flows/content/FlowBranchAllWrapper.svelte.d.ts +3 -3
  318. package/components/flows/content/FlowBranchOneWrapper.svelte +4 -35
  319. package/components/flows/content/FlowBranchOneWrapper.svelte.d.ts +3 -3
  320. package/components/flows/content/FlowBranchesAllWrapper.svelte +91 -0
  321. package/components/flows/content/FlowBranchesAllWrapper.svelte.d.ts +18 -0
  322. package/components/flows/content/FlowBranchesOneWrapper.svelte +88 -0
  323. package/components/flows/content/FlowBranchesOneWrapper.svelte.d.ts +18 -0
  324. package/components/flows/content/FlowEditorPanel.svelte +2 -0
  325. package/components/flows/content/FlowEditorPanel.svelte.d.ts +3 -3
  326. package/components/flows/content/FlowFailureModule.svelte.d.ts +4 -4
  327. package/components/flows/content/FlowInput.svelte +10 -14
  328. package/components/flows/content/FlowInput.svelte.d.ts +4 -4
  329. package/components/flows/content/FlowInputs.svelte +121 -140
  330. package/components/flows/content/FlowInputs.svelte.d.ts +4 -7
  331. package/components/flows/content/FlowInputsFlow.svelte +101 -0
  332. package/components/flows/content/FlowInputsFlow.svelte.d.ts +20 -0
  333. package/components/flows/content/FlowLoop.svelte +13 -5
  334. package/components/flows/content/FlowLoop.svelte.d.ts +3 -3
  335. package/components/flows/content/FlowModuleComponent.svelte +82 -67
  336. package/components/flows/content/FlowModuleComponent.svelte.d.ts +3 -3
  337. package/components/flows/content/FlowModuleEarlyStop.svelte +7 -5
  338. package/components/flows/content/FlowModuleEarlyStop.svelte.d.ts +3 -3
  339. package/components/flows/content/FlowModuleHeader.svelte +23 -19
  340. package/components/flows/content/FlowModuleHeader.svelte.d.ts +4 -3
  341. package/components/flows/content/FlowModuleScript.svelte.d.ts +3 -3
  342. package/components/flows/content/FlowModuleSleep.svelte +69 -0
  343. package/components/flows/content/FlowModuleSleep.svelte.d.ts +18 -0
  344. package/components/flows/content/FlowModuleSuspend.svelte +5 -57
  345. package/components/flows/content/FlowModuleSuspend.svelte.d.ts +3 -4
  346. package/components/flows/content/FlowModuleWrapper.svelte +59 -57
  347. package/components/flows/content/FlowModuleWrapper.svelte.d.ts +3 -3
  348. package/components/flows/content/FlowPathViewer.svelte +20 -0
  349. package/components/flows/content/FlowPathViewer.svelte.d.ts +17 -0
  350. package/components/flows/content/FlowRetries.svelte.d.ts +3 -3
  351. package/components/flows/content/FlowSchedules.svelte.d.ts +4 -4
  352. package/components/flows/content/FlowSettings.svelte +85 -94
  353. package/components/flows/content/FlowSettings.svelte.d.ts +3 -3
  354. package/components/flows/content/RemoveStepConfirmationModal.svelte.d.ts +3 -3
  355. package/components/flows/flowState.d.ts +2 -2
  356. package/components/flows/flowState.js +2 -2
  357. package/components/flows/flowStateUtils.d.ts +8 -3
  358. package/components/flows/flowStateUtils.js +42 -10
  359. package/components/flows/flowStore.d.ts +1 -1
  360. package/components/flows/flowStore.js +1 -1
  361. package/components/flows/header/FlowImportExportMenu.svelte +9 -23
  362. package/components/flows/header/FlowImportExportMenu.svelte.d.ts +4 -4
  363. package/components/flows/header/FlowPreviewButtons.svelte +24 -16
  364. package/components/flows/header/FlowPreviewButtons.svelte.d.ts +4 -4
  365. package/components/flows/map/FlowBranchAllMap.svelte +47 -37
  366. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +3 -3
  367. package/components/flows/map/FlowBranchOneMap.svelte +50 -42
  368. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +3 -3
  369. package/components/flows/map/FlowErrorHandlerItem.svelte +9 -7
  370. package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +4 -4
  371. package/components/flows/map/FlowInputsItem.svelte +3 -2
  372. package/components/flows/map/FlowInputsItem.svelte.d.ts +4 -4
  373. package/components/flows/map/FlowModuleSchemaItem.svelte +54 -40
  374. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +5 -5
  375. package/components/flows/map/FlowModuleSchemaMap.svelte +59 -95
  376. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +4 -5
  377. package/components/flows/map/FlowSettingsItem.svelte +8 -7
  378. package/components/flows/map/FlowSettingsItem.svelte.d.ts +4 -4
  379. package/components/flows/map/InsertModuleButton.svelte +78 -8
  380. package/components/flows/map/InsertModuleButton.svelte.d.ts +5 -5
  381. package/components/flows/map/MapItem.svelte +36 -16
  382. package/components/flows/map/MapItem.svelte.d.ts +4 -6
  383. package/components/flows/pickers/FlowScriptPicker.svelte +11 -4
  384. package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +8 -6
  385. package/components/flows/pickers/PickHubFlow.svelte +72 -0
  386. package/components/flows/pickers/PickHubFlow.svelte.d.ts +20 -0
  387. package/components/flows/pickers/PickHubScript.svelte +83 -29
  388. package/components/flows/pickers/PickHubScript.svelte.d.ts +8 -7
  389. package/components/flows/pickers/PickScript.svelte +16 -9
  390. package/components/flows/pickers/PickScript.svelte.d.ts +3 -4
  391. package/components/flows/pickers/WorkspaceScriptPicker.svelte +113 -0
  392. package/components/flows/pickers/WorkspaceScriptPicker.svelte.d.ts +23 -0
  393. package/components/flows/pickers/model.d.ts +5 -3
  394. package/components/flows/previousResults.d.ts +3 -2
  395. package/components/flows/previousResults.js +7 -6
  396. package/components/flows/propPicker/PropPickerWrapper.svelte +11 -3
  397. package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +7 -7
  398. package/components/flows/scheduleUtils.d.ts +1 -1
  399. package/components/flows/scheduleUtils.js +1 -1
  400. package/components/flows/types.d.ts +1 -1
  401. package/components/flows/utils.d.ts +1 -2
  402. package/components/flows/utils.js +10 -15
  403. package/components/graph/FlowGraph.svelte +163 -58
  404. package/components/graph/FlowGraph.svelte.d.ts +7 -4
  405. package/components/graph/model.d.ts +18 -6
  406. package/components/home/ItemsList.svelte +265 -0
  407. package/components/home/ItemsList.svelte.d.ts +16 -0
  408. package/components/home/ListFilters.svelte +37 -0
  409. package/components/home/ListFilters.svelte.d.ts +18 -0
  410. package/components/home/NoItemFound.svelte +6 -0
  411. package/components/home/NoItemFound.svelte.d.ts +23 -0
  412. package/components/icons/AirtableIcon.svelte.d.ts +3 -3
  413. package/components/icons/DatadogIcon.svelte +48 -0
  414. package/components/icons/DatadogIcon.svelte.d.ts +17 -0
  415. package/components/icons/DbIcon.svelte.d.ts +3 -3
  416. package/components/icons/DiscordIcon.svelte.d.ts +3 -3
  417. package/components/icons/FunkwhaleIcon.svelte +90 -0
  418. package/components/icons/FunkwhaleIcon.svelte.d.ts +17 -0
  419. package/components/icons/GCloudIcon.svelte.d.ts +3 -3
  420. package/components/icons/GItlabIcon.svelte.d.ts +3 -3
  421. package/components/icons/GSheetsIcon.svelte.d.ts +3 -3
  422. package/components/icons/GcalIcon.svelte.d.ts +3 -3
  423. package/components/icons/GdocsIcon.svelte +9 -0
  424. package/components/icons/GdocsIcon.svelte.d.ts +17 -0
  425. package/components/icons/GdriveIcon.svelte.d.ts +3 -3
  426. package/components/icons/GithubIcon.svelte.d.ts +3 -3
  427. package/components/icons/GmailIcon.svelte.d.ts +3 -3
  428. package/components/icons/HatIcon.svelte.d.ts +3 -3
  429. package/components/icons/HttpIcon.svelte.d.ts +3 -3
  430. package/components/icons/HubspotIcon.svelte +9 -0
  431. package/components/icons/HubspotIcon.svelte.d.ts +17 -0
  432. package/components/icons/LinkedinIcon.svelte +9 -0
  433. package/components/icons/LinkedinIcon.svelte.d.ts +17 -0
  434. package/components/icons/Mail.svelte +9 -53
  435. package/components/icons/Mail.svelte.d.ts +3 -3
  436. package/components/icons/MailchimpIcon.svelte +18 -0
  437. package/components/icons/MailchimpIcon.svelte.d.ts +17 -0
  438. package/components/icons/MastodonIcon.svelte.d.ts +3 -3
  439. package/components/icons/MatrixIcon.svelte.d.ts +3 -3
  440. package/components/icons/Mysql.svelte +8 -8
  441. package/components/icons/Mysql.svelte.d.ts +3 -3
  442. package/components/icons/NextcloudIcon.svelte +9 -0
  443. package/components/icons/NextcloudIcon.svelte.d.ts +17 -0
  444. package/components/icons/PostgresIcon.svelte.d.ts +3 -3
  445. package/components/icons/QRCodeIcon.svelte +5 -0
  446. package/components/icons/QRCodeIcon.svelte.d.ts +16 -0
  447. package/components/icons/S3Icon.svelte.d.ts +3 -3
  448. package/components/icons/SendflakeIcon.svelte +15 -0
  449. package/components/icons/SendflakeIcon.svelte.d.ts +17 -0
  450. package/components/icons/SendgridIcon.svelte +66 -0
  451. package/components/icons/SendgridIcon.svelte.d.ts +17 -0
  452. package/components/icons/Slack.svelte.d.ts +3 -3
  453. package/components/icons/StripeIcon.svelte +9 -0
  454. package/components/icons/StripeIcon.svelte.d.ts +17 -0
  455. package/components/icons/TelegramIcon.svelte +9 -0
  456. package/components/icons/TelegramIcon.svelte.d.ts +17 -0
  457. package/components/icons/TogglIcon.svelte.d.ts +3 -3
  458. package/components/icons/WindmillIcon.svelte +3 -3
  459. package/components/icons/WindmillIcon.svelte.d.ts +3 -3
  460. package/components/icons/index.d.ts +70 -0
  461. package/components/icons/index.js +70 -0
  462. package/components/jobs/JobDetail.svelte +4 -4
  463. package/components/jobs/JobDetail.svelte.d.ts +3 -3
  464. package/components/preview/FlowPreviewStatus.svelte +12 -23
  465. package/components/preview/FlowPreviewStatus.svelte.d.ts +3 -3
  466. package/components/progressBar/ProgressBar.svelte.d.ts +3 -3
  467. package/components/progressBar/ProgressBarGeneralPart.svelte.d.ts +3 -3
  468. package/components/progressBar/ProgressBarLoopAccessor.svelte.d.ts +3 -3
  469. package/components/progressBar/ProgressBarLoopPart.svelte.d.ts +3 -3
  470. package/components/progressBar/model.d.ts +9 -9
  471. package/components/propertyPicker/ObjectViewer.svelte +34 -9
  472. package/components/propertyPicker/ObjectViewer.svelte.d.ts +4 -3
  473. package/components/propertyPicker/PropPicker.svelte +134 -110
  474. package/components/propertyPicker/PropPicker.svelte.d.ts +3 -3
  475. package/components/propertyPicker/PropPickerResult.svelte +2 -4
  476. package/components/propertyPicker/PropPickerResult.svelte.d.ts +3 -3
  477. package/components/propertyPicker/WarningMessage.svelte.d.ts +6 -2
  478. package/components/scriptEditor/LogPanel.svelte +15 -8
  479. package/components/scriptEditor/LogPanel.svelte.d.ts +3 -3
  480. package/components/scripts/CreateActionsScript.svelte +29 -0
  481. package/components/scripts/CreateActionsScript.svelte.d.ts +14 -0
  482. package/components/sidebar/FavoriteMenu.svelte +52 -0
  483. package/components/sidebar/FavoriteMenu.svelte.d.ts +21 -0
  484. package/components/sidebar/MenuLink.svelte +7 -4
  485. package/components/sidebar/MenuLink.svelte.d.ts +4 -3
  486. package/components/sidebar/SidebarContent.svelte +24 -26
  487. package/components/sidebar/SidebarContent.svelte.d.ts +3 -3
  488. package/components/sidebar/UserMenu.svelte +22 -5
  489. package/components/sidebar/UserMenu.svelte.d.ts +3 -3
  490. package/components/sidebar/WorkspaceMenu.svelte +9 -10
  491. package/components/sidebar/WorkspaceMenu.svelte.d.ts +3 -3
  492. package/components/splitPanes/SplitPanesWrapper.svelte.d.ts +3 -3
  493. package/editorUtils.d.ts +3 -1
  494. package/editorUtils.js +5 -3
  495. package/gen/core/ApiRequestOptions.d.ts +1 -1
  496. package/gen/core/ApiResult.d.ts +1 -1
  497. package/gen/core/OpenAPI.d.ts +3 -3
  498. package/gen/core/OpenAPI.js +1 -1
  499. package/gen/index.d.ts +3 -0
  500. package/gen/index.js +1 -0
  501. package/gen/models/AppWithLastVersion.d.ts +12 -12
  502. package/gen/models/AuditLog.d.ts +1 -1
  503. package/gen/models/BranchAll.d.ts +1 -1
  504. package/gen/models/BranchOne.d.ts +1 -1
  505. package/gen/models/CompletedJob.d.ts +2 -1
  506. package/gen/models/ContextualVariable.d.ts +1 -1
  507. package/gen/models/CreateResource.d.ts +1 -2
  508. package/gen/models/CreateVariable.d.ts +1 -1
  509. package/gen/models/CreateWorkspace.d.ts +1 -2
  510. package/gen/models/EditResource.d.ts +1 -1
  511. package/gen/models/EditResourceType.d.ts +1 -1
  512. package/gen/models/EditSchedule.d.ts +1 -1
  513. package/gen/models/EditVariable.d.ts +1 -1
  514. package/gen/models/EditWorkspaceUser.d.ts +3 -1
  515. package/gen/models/Flow.d.ts +1 -1
  516. package/gen/models/FlowMetadata.d.ts +2 -1
  517. package/gen/models/FlowModule.d.ts +1 -1
  518. package/gen/models/FlowModuleValue.d.ts +2 -1
  519. package/gen/models/FlowPreview.d.ts +1 -1
  520. package/gen/models/FlowStatus.d.ts +4 -2
  521. package/gen/models/FlowStatusModule.d.ts +2 -2
  522. package/gen/models/FlowStatusModule.js +1 -1
  523. package/gen/models/FlowValue.d.ts +1 -1
  524. package/gen/models/ForloopFlow.d.ts +1 -1
  525. package/gen/models/GlobalUserInfo.d.ts +1 -1
  526. package/gen/models/Group.d.ts +1 -1
  527. package/gen/models/Identity.d.ts +2 -1
  528. package/gen/models/InputTransform.d.ts +1 -1
  529. package/gen/models/JavascriptTransform.d.ts +1 -1
  530. package/gen/models/Job.d.ts +1 -1
  531. package/gen/models/ListableApp.d.ts +10 -8
  532. package/gen/models/ListableResource.d.ts +14 -0
  533. package/gen/models/ListableResource.js +4 -0
  534. package/gen/models/ListableVariable.d.ts +5 -1
  535. package/gen/models/Login.d.ts +1 -1
  536. package/gen/models/MainArgSignature.d.ts +1 -1
  537. package/gen/models/NewSchedule.d.ts +1 -1
  538. package/gen/models/NewToken.d.ts +1 -1
  539. package/gen/models/NewUser.d.ts +1 -1
  540. package/gen/models/OpenFlow.d.ts +1 -1
  541. package/gen/models/OpenFlowWPath.d.ts +1 -1
  542. package/gen/models/PathFlow.d.ts +6 -0
  543. package/gen/models/PathFlow.js +4 -0
  544. package/gen/models/PathScript.d.ts +2 -1
  545. package/gen/models/Policy.d.ts +1 -1
  546. package/gen/models/Preview.d.ts +1 -1
  547. package/gen/models/QueuedJob.d.ts +2 -1
  548. package/gen/models/RawScript.d.ts +2 -1
  549. package/gen/models/Resource.d.ts +1 -1
  550. package/gen/models/ResourceType.d.ts +1 -1
  551. package/gen/models/Retry.d.ts +1 -1
  552. package/gen/models/Schedule.d.ts +3 -1
  553. package/gen/models/Script.d.ts +2 -1
  554. package/gen/models/ScriptArgs.d.ts +1 -1
  555. package/gen/models/SlackToken.d.ts +1 -1
  556. package/gen/models/StaticTransform.d.ts +1 -1
  557. package/gen/models/TokenResponse.d.ts +1 -1
  558. package/gen/models/TruncatedToken.d.ts +1 -1
  559. package/gen/models/Usage.d.ts +2 -4
  560. package/gen/models/User.d.ts +1 -1
  561. package/gen/models/UserWorkspaceList.d.ts +1 -1
  562. package/gen/models/WorkerPing.d.ts +1 -1
  563. package/gen/models/Workspace.d.ts +1 -1
  564. package/gen/models/WorkspaceInvite.d.ts +2 -1
  565. package/gen/services/AppService.d.ts +107 -1
  566. package/gen/services/AppService.js +89 -1
  567. package/gen/services/FavoriteService.d.ts +27 -0
  568. package/gen/services/FavoriteService.js +36 -0
  569. package/gen/services/FlowService.d.ts +7 -91
  570. package/gen/services/FlowService.js +2 -73
  571. package/gen/services/JobService.d.ts +50 -5
  572. package/gen/services/JobService.js +33 -5
  573. package/gen/services/OauthService.d.ts +1 -1
  574. package/gen/services/ResourceService.d.ts +9 -4
  575. package/gen/services/ResourceService.js +3 -2
  576. package/gen/services/ScheduleService.d.ts +1 -1
  577. package/gen/services/ScheduleService.js +1 -1
  578. package/gen/services/ScriptService.d.ts +7 -1
  579. package/gen/services/ScriptService.js +2 -1
  580. package/gen/services/UserService.d.ts +6 -0
  581. package/gen/services/UserService.js +11 -0
  582. package/gen/services/WorkspaceService.d.ts +35 -0
  583. package/gen/services/WorkspaceService.js +41 -0
  584. package/package.json +461 -361
  585. package/script_helpers.d.ts +5 -2
  586. package/script_helpers.js +91 -26
  587. package/scripts.d.ts +1 -0
  588. package/scripts.js +8 -1
  589. package/stateMachine.d.ts +4 -4
  590. package/stores.d.ts +13 -2
  591. package/stores.js +25 -6
  592. package/utils.d.ts +7 -3
  593. package/utils.js +31 -7
  594. package/components/ButtonAndDropdown.svelte +0 -25
  595. package/components/ButtonAndDropdown.svelte.d.ts +0 -23
  596. package/components/FlowModulesViewer.svelte +0 -191
  597. package/components/FlowModulesViewer.svelte.d.ts +0 -18
  598. package/components/flows/content/FlowBranchesWrapper.svelte +0 -140
  599. package/components/flows/content/FlowBranchesWrapper.svelte.d.ts +0 -19
  600. package/components/landing/FlowGettingStarted.svelte +0 -50
  601. package/components/landing/FlowGettingStarted.svelte.d.ts +0 -19
  602. package/components/landing/FlowLandingBox.svelte +0 -39
  603. package/components/landing/FlowLandingBox.svelte.d.ts +0 -17
  604. package/components/landing/RessourceGettingStarted.svelte +0 -21
  605. package/components/landing/RessourceGettingStarted.svelte.d.ts +0 -19
  606. package/components/landing/ScriptBox.svelte +0 -52
  607. package/components/landing/ScriptBox.svelte.d.ts +0 -17
  608. package/components/landing/ScriptGettingStarted.svelte +0 -48
  609. package/components/landing/ScriptGettingStarted.svelte.d.ts +0 -19
  610. package/components/scripts/CreateActions.svelte +0 -114
  611. package/components/scripts/CreateActions.svelte.d.ts +0 -14
@@ -76,7 +76,8 @@ export function getStepPropPicker(flowState, parentModule, previousModule, id, f
76
76
  const pickableProperties = {
77
77
  flow_input: flowInput,
78
78
  priorIds: priorIds,
79
- previousId: previousIds[0]
79
+ previousId: previousIds[0],
80
+ hasResume: previousModule?.suspend != undefined,
80
81
  };
81
82
  if (approvers && ((previousModule?.suspend?.required_events ?? 0) > 0)) {
82
83
  pickableProperties["approvers"] = "The list of approvers";
@@ -92,27 +93,27 @@ export function buildExtraLib(flowInput, results) {
92
93
  * get variable (including secret) at path
93
94
  * @param {string} path - path of the variable (e.g: g/all/pretty_secret)
94
95
  */
95
- export function variable(path: string): string;
96
+ declare function variable(path: string): string;
96
97
 
97
98
  /**
98
99
  * get resource at path
99
100
  * @param {string} path - path of the resource (e.g: g/all/my_resource)
100
101
  */
101
- export function resource(path: string): any;
102
+ declare function resource(path: string): any;
102
103
 
103
104
  /**
104
105
  * flow input as an object
105
106
  */
106
- export const flow_input = ${JSON.stringify(flowInput)};
107
+ declare const flow_input = ${JSON.stringify(flowInput)};
107
108
 
108
109
  /**
109
110
  * static params of this same step
110
111
  */
111
- export const params: any;
112
+ declare const params: any;
112
113
 
113
114
  /**
114
115
  * result by id
115
116
  */
116
- export const results = ${JSON.stringify(results)};
117
+ declare const results = ${JSON.stringify(results)};
117
118
  `;
118
119
  }
@@ -29,12 +29,20 @@ setContext('PropPickerWrapper', {
29
29
  </script>
30
30
 
31
31
  <Splitpanes>
32
- <Pane minSize={20} size={66} class="relative p-4 !transition-none">
32
+ <Pane minSize={20} size={60} class="relative p-4 !transition-none">
33
33
  <slot />
34
34
  </Pane>
35
- <Pane minSize={20} size={34} class="px-2 py-2 h-full !transition-none">
35
+ <Pane minSize={20} size={40} class="py-2 relative !transition-none">
36
36
  {#if result}
37
- <PropPickerResult {result} />
37
+ <PropPickerResult
38
+ {result}
39
+ on:select={({ detail }) => {
40
+ dispatch('select', detail)
41
+ if ($propPickerConfig?.onSelect(detail)) {
42
+ propPickerConfig.set(undefined)
43
+ }
44
+ }}
45
+ />
38
46
  {:else if pickableProperties}
39
47
  <PropPicker
40
48
  {displayContext}
@@ -1,12 +1,12 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- declare type InsertionMode = 'append' | 'connect' | 'insert';
3
- declare type SelectCallback = (path: string) => boolean;
4
- declare type PropPickerConfig = {
2
+ type InsertionMode = 'append' | 'connect' | 'insert';
3
+ type SelectCallback = (path: string) => boolean;
4
+ type PropPickerConfig = {
5
5
  insertionMode: InsertionMode;
6
6
  propName: string;
7
7
  onSelect: SelectCallback;
8
8
  };
9
- export declare type PropPickerWrapperContext = {
9
+ export type PropPickerWrapperContext = {
10
10
  propPickerConfig: Writable<PropPickerConfig | undefined>;
11
11
  focusProp: (propName: string, insertionMode: InsertionMode, onSelect: SelectCallback) => void;
12
12
  clearFocus: () => void;
@@ -30,9 +30,9 @@ declare const __propDef: {
30
30
  default: {};
31
31
  };
32
32
  };
33
- export declare type PropPickerWrapperProps = typeof __propDef.props;
34
- export declare type PropPickerWrapperEvents = typeof __propDef.events;
35
- export declare type PropPickerWrapperSlots = typeof __propDef.slots;
33
+ export type PropPickerWrapperProps = typeof __propDef.props;
34
+ export type PropPickerWrapperEvents = typeof __propDef.events;
35
+ export type PropPickerWrapperSlots = typeof __propDef.slots;
36
36
  export default class PropPickerWrapper extends SvelteComponentTyped<PropPickerWrapperProps, PropPickerWrapperEvents, PropPickerWrapperSlots> {
37
37
  }
38
38
  export {};
@@ -1,4 +1,4 @@
1
- export declare type Schedule = {
1
+ export type Schedule = {
2
2
  args: Record<string, any>;
3
3
  cron: string;
4
4
  enabled: boolean;
@@ -6,7 +6,7 @@ export async function loadFlowSchedule(path, workspace = '') {
6
6
  path
7
7
  });
8
8
  if (!existsSchedule) {
9
- throw new Error(`Flow at path: ${path} doesn't exit`);
9
+ throw new Error(`Flow at path: ${path} doesn't exist`);
10
10
  }
11
11
  const schedule = await ScheduleService.getSchedule({
12
12
  workspace,
@@ -1,6 +1,6 @@
1
1
  import type { Writable } from 'svelte/store';
2
2
  import type { Schedule } from './scheduleUtils';
3
- export declare type FlowEditorContext = {
3
+ export type FlowEditorContext = {
4
4
  selectedId: Writable<string>;
5
5
  select: (id: string) => void;
6
6
  schedule: Writable<Schedule>;
@@ -9,7 +9,7 @@ export declare function loadSchemaFromModule(module: FlowModule): Promise<{
9
9
  schema: Schema;
10
10
  }>;
11
11
  export declare function isCodeInjection(expr: string | undefined): boolean;
12
- export declare function getDefaultExpr(importPath?: string | undefined, key?: string, previousExpr?: string): string;
12
+ export declare function getDefaultExpr(key: string | undefined, previousModuleId: string | undefined, previousExpr?: string): string;
13
13
  export declare function jobsToResults(jobs: Job[]): any;
14
14
  export declare function runFlowPreview(args: Record<string, any>, flow: Flow): Promise<string>;
15
15
  export declare function codeToStaticTemplate(code?: string): string | undefined;
@@ -17,5 +17,4 @@ export declare const NEVER_TESTED_THIS_FAR = "never tested this far";
17
17
  export declare function emptyFlowModuleState(): FlowModuleState;
18
18
  export declare function numberToChars(n: number): any;
19
19
  export declare function charsToNumber(n: string): number;
20
- export declare function isEmptyFlowModule(flowModule: FlowModule): boolean;
21
20
  export declare function findNextAvailablePath(path: string): Promise<string>;
@@ -1,6 +1,6 @@
1
1
  import { JobService, ScriptService } from '../../gen';
2
2
  import { inferArgs } from '../../infer';
3
- import { loadSchema } from '../../scripts';
3
+ import { loadSchema, loadSchemaFlow } from '../../scripts';
4
4
  import { workspaceStore } from '../../stores';
5
5
  import { emptySchema } from '../../utils';
6
6
  import { get } from 'svelte/store';
@@ -46,15 +46,18 @@ export function getTypeAsString(arg) {
46
46
  }
47
47
  export async function loadSchemaFromModule(module) {
48
48
  const mod = module.value;
49
- if (mod.type == 'rawscript' || mod.type === 'script') {
49
+ if (mod.type == 'rawscript' || mod.type === 'script' || mod.type === 'flow') {
50
50
  let schema;
51
51
  if (mod.type === 'rawscript') {
52
52
  schema = emptySchema();
53
53
  await inferArgs(mod.language, mod.content ?? '', schema);
54
54
  }
55
- else if (mod.path && mod.path != '') {
55
+ else if (mod.type == 'script' && mod.path && mod.path != '') {
56
56
  schema = await loadSchema(mod.path);
57
57
  }
58
+ else if (mod.type == 'flow' && mod.path && mod.path != '') {
59
+ schema = await loadSchemaFlow(mod.path);
60
+ }
58
61
  else {
59
62
  return {
60
63
  input_transforms: {},
@@ -93,11 +96,8 @@ export function isCodeInjection(expr) {
93
96
  }
94
97
  return dynamicTemplateRegex.test(expr);
95
98
  }
96
- export function getDefaultExpr(importPath = undefined, key = 'myfield', previousExpr) {
97
- const expr = previousExpr ?? `results.${key}`;
98
- return `import { results, flow_input, variable, resource, params } from 'windmill${importPath ? `@${importPath}` : ''}'
99
-
100
- ${expr}`;
99
+ export function getDefaultExpr(key = 'myfield', previousModuleId, previousExpr) {
100
+ return previousExpr ?? (previousModuleId ? `results.${previousModuleId}.${key}` : `flow_input.${key}`);
101
101
  }
102
102
  export function jobsToResults(jobs) {
103
103
  return jobs.map((job) => {
@@ -121,12 +121,10 @@ export async function runFlowPreview(args, flow) {
121
121
  });
122
122
  }
123
123
  export function codeToStaticTemplate(code) {
124
- if (!code)
124
+ if (!code || typeof code != 'string')
125
125
  return undefined;
126
126
  const lines = code
127
- .split('\n')
128
- .slice(1)
129
- .filter((x) => x != '');
127
+ .split('\n');
130
128
  if (lines.length == 1) {
131
129
  const line = lines[0].trim();
132
130
  if (line[0] == '`' && line.charAt(line.length - 1) == '`') {
@@ -169,9 +167,6 @@ export function charsToNumber(n) {
169
167
  }
170
168
  return res - 1;
171
169
  }
172
- export function isEmptyFlowModule(flowModule) {
173
- return flowModule.value.type === 'identity';
174
- }
175
170
  export async function findNextAvailablePath(path) {
176
171
  try {
177
172
  await ScriptService.getScriptByPath({
@@ -1,38 +1,54 @@
1
1
  <script>import Svelvet, {} from 'svelvet';
2
- import { sugiyama, dagStratify, decrossOpt, coordGreedy, coordCenter } from 'd3-dag';
2
+ import { sugiyama, dagStratify, decrossOpt, coordCenter } from 'd3-dag';
3
+ import { FlowStatusModule, RawScript } from '../../gen';
3
4
  import { NODE, createIdGenerator, isNode, isLoop, isBranch } from '.';
4
- import { truncate, truncateRev } from '../../utils';
5
+ import { defaultIfEmptyString, truncateRev } from '../../utils';
5
6
  import { createEventDispatcher } from 'svelte';
6
- import { numberToChars } from '../flows/utils';
7
+ import { charsToNumber, numberToChars } from '../flows/utils';
7
8
  export let modules = [];
8
9
  export let failureModule = undefined;
9
10
  export let minHeight = 0;
10
- const idGenerator = createIdGenerator();
11
+ export let notSelectable = false;
12
+ export let flowModuleStates = undefined;
13
+ let selectedNode = undefined;
14
+ let idGenerator;
11
15
  let nestedNodes;
12
16
  let nodes = [];
13
17
  let edges = [];
14
18
  let width, height;
19
+ let errorHandlers = {};
15
20
  let dispatch = createEventDispatcher();
16
21
  $: {
17
- width && height && minHeight;
18
- if (modules?.length) {
19
- createGraph(modules, failureModule);
22
+ width && height && minHeight && selectedNode && flowModuleStates;
23
+ nodes = edges = [];
24
+ errorHandlers = {};
25
+ createGraph();
26
+ }
27
+ async function createGraph() {
28
+ if (modules) {
29
+ idGenerator = createIdGenerator();
20
30
  }
21
31
  else {
22
32
  nodes = edges = [];
33
+ return;
23
34
  }
24
- }
25
- function createGraph(modules, failureModule) {
26
35
  nestedNodes = nodes = [];
27
- nestedNodes.push(createVirtualNode(getParentIds(), 'Flow start'));
36
+ nestedNodes.push(createVirtualNode(getParentIds(), 'Input'));
28
37
  modules.forEach((m) => {
29
38
  const item = getConvertedFlowModule(m);
30
39
  item && nestedNodes.push(item);
31
40
  });
32
- const endParentIds = getParentIds();
33
- nestedNodes.push(createVirtualNode(getParentIds(), 'Flow end'));
34
- if (failureModule) {
35
- nestedNodes.push(createErrorHandler(endParentIds, failureModule));
41
+ nestedNodes.push(createVirtualNode(getParentIds(), 'Result'));
42
+ if (!flowModuleStates) {
43
+ if (failureModule)
44
+ nestedNodes.push(createErrorHandler(failureModule));
45
+ }
46
+ else {
47
+ Object.entries(flowModuleStates ?? [])
48
+ .filter(([k, v]) => k.startsWith('failure'))
49
+ .forEach(([k, v]) => {
50
+ nestedNodes.push(createErrorHandler({ id: k }, v.parent_module));
51
+ });
36
52
  }
37
53
  const flatNodes = flattenNestedNodes(nestedNodes);
38
54
  const layered = layoutNodes(flatNodes);
@@ -53,25 +69,31 @@ function getConvertedFlowModule(module, parent = undefined, edgeLabel = undefine
53
69
  return flowModuleToNode(parentIds, module.id, module.summary || module.value.path, isHub ? 'hub' : 'workspace', module, undefined, edgeLabel);
54
70
  }
55
71
  else if (type === 'forloopflow') {
56
- const expr = module.value.iterator['expr'];
57
- return flowModuleToLoop(module.value.modules, `For loop: ${truncate(expr, 10)}`, parent);
72
+ return flowModuleToLoop(module.value.modules, module, parent);
58
73
  }
59
74
  else if (type === 'branchone') {
60
75
  const branches = [module.value.default, ...module.value.branches.map((b) => b.modules)];
61
- return flowModuleToBranch(branches, ['Default', ...module.value.branches.map((x) => `If ${truncateRev(x.expr, 20)}`)], parent);
76
+ return flowModuleToBranch(module, branches, ['Default', ...module.value.branches.map((x) => `If ${truncateRev(x.expr, 20)}`)], parent);
62
77
  }
63
78
  else if (type === 'branchall') {
64
79
  const branches = module.value.branches.map((b) => b.modules);
65
- return flowModuleToBranch(branches, [], parent);
80
+ return flowModuleToBranch(module, branches, [], parent);
81
+ }
82
+ else if (type === 'flow') {
83
+ return flowModuleToNode(parentIds, module.id, module.summary || 'Flow ' + module.value.path, 'inline', module, undefined, edgeLabel);
66
84
  }
67
- return flowModuleToNode(parentIds, module.id, module.summary || 'Identity script', 'inline', module, undefined, edgeLabel);
85
+ return flowModuleToNode(parentIds, module.id, module.summary || 'Identity step', 'inline', module, undefined, edgeLabel);
68
86
  }
69
87
  function getParentIds(items = undefined) {
88
+ if (typeof items == 'string') {
89
+ return [items];
90
+ }
70
91
  const item = items?.at(-1) || nestedNodes.at(-1);
71
92
  if (!item)
72
93
  return [];
73
94
  if (isNode(item)) {
74
- return ['' + item.id];
95
+ const id = numberToChars(item.id);
96
+ return [id];
75
97
  }
76
98
  else if (isLoop(item)) {
77
99
  return getParentIds(item.items);
@@ -81,7 +103,23 @@ function getParentIds(items = undefined) {
81
103
  }
82
104
  return [];
83
105
  }
84
- function flowModuleToNode(parentIds, id, title, host, onClickDetail, lang, edgeLabel) {
106
+ function getStateColor(state) {
107
+ switch (state) {
108
+ case FlowStatusModule.type.SUCCESS:
109
+ return 'rgb(193, 255, 216)';
110
+ case FlowStatusModule.type.FAILURE:
111
+ return 'rgb(248 113 113)';
112
+ case FlowStatusModule.type.IN_PROGRESS:
113
+ return 'rgb(253, 240, 176)';
114
+ case FlowStatusModule.type.WAITING_FOR_EVENTS:
115
+ return 'rgb(229, 176, 253)';
116
+ case FlowStatusModule.type.WAITING_FOR_EXECUTOR:
117
+ return 'rgb(255, 208, 193)';
118
+ default:
119
+ return '#fff';
120
+ }
121
+ }
122
+ function flowModuleToNode(parentIds, id, title, host, onClickDetail, lang, edgeLabel, header) {
85
123
  const langImg = {
86
124
  deno: '/icons/ts-lang.svg',
87
125
  go: '/icons/go-lang.svg',
@@ -94,9 +132,9 @@ function flowModuleToNode(parentIds, id, title, host, onClickDetail, lang, edgeL
94
132
  inline: ''
95
133
  };
96
134
  const wrapperWidth = lang ? 'w-[calc(100%-70px)]' : 'w-[calc(100%-50px)]';
97
- const graphId = idGenerator.next().value;
135
+ let nodeId = id ?? numberToChars(idGenerator.next().value - 1);
98
136
  return {
99
- id: graphId,
137
+ id: charsToNumber(nodeId),
100
138
  position: { x: -1, y: -1 },
101
139
  data: {
102
140
  html: `
@@ -108,48 +146,69 @@ function flowModuleToNode(parentIds, id, title, host, onClickDetail, lang, edgeL
108
146
  ${lang ? `<img src="${langImg[lang]}" class="grayscale">` : ''}
109
147
  ${host != 'inline' ? `<img src="${hostImg[host]}" class="grayscale">` : ''}
110
148
  <span class="center-center font-semibold bg-indigo-100 text-indigo-800 rounded px-1 pb-[2px] ml-[2px]">
111
- ${id ?? numberToChars(graphId - 1)}
149
+ ${nodeId}
112
150
  </span>
113
151
  </div>
114
152
  </div>
153
+ <div class="text-2xs absolute -top-6 text-gray-600 truncate">${flowModuleStates?.[nodeId]?.scheduled_for ?? header ?? ''}<div>
115
154
  `
116
155
  },
117
156
  host,
118
157
  width: NODE.width,
119
158
  height: NODE.height,
120
- bgColor: 'white',
159
+ borderColor: selectedNode == nodeId ? 'black' : '#999',
160
+ bgColor: selectedNode == nodeId ? '#f5f5f5' : getStateColor(flowModuleStates?.[nodeId]?.type),
121
161
  parentIds,
122
162
  clickCallback: (node) => {
163
+ if (!notSelectable) {
164
+ selectedNode = nodeId;
165
+ }
166
+ if (onClickDetail.id == undefined) {
167
+ onClickDetail.id = nodeId;
168
+ }
123
169
  dispatch('click', onClickDetail);
124
170
  },
125
171
  edgeLabel
126
172
  };
127
173
  }
128
- function flowModuleToLoop(modules, startLabel, parent = undefined) {
174
+ function flowModuleToLoop(modules, module, parent = undefined) {
175
+ const value = module.value;
176
+ const expr = value.iterator.type == 'static' ? value.iterator.value : value.iterator.expr;
129
177
  const loop = {
130
178
  type: 'loop',
131
- items: [createVirtualNode(getParentIds(parent), startLabel)]
179
+ items: [
180
+ flowModuleToNode(getParentIds(parent), module.id, module.summary || `For Loop: ${defaultIfEmptyString(expr ?? '', 'TBD')}`, 'inline', module, undefined, undefined, flowModuleStates?.[module.id]?.iteration_total
181
+ ? 'Iteration ' + flowModuleStates?.[module.id]?.iteration_total
182
+ : '')
183
+ ]
132
184
  };
133
185
  modules.forEach((module) => {
134
186
  const item = getConvertedFlowModule(module, loop.items);
135
187
  item && loop.items.push(item);
136
188
  });
137
- loop.items.push(createVirtualNode(getParentIds(loop.items), "Collect iterations' results"));
189
+ loop.items.push(createVirtualNode(getParentIds(loop.items), `Collect iterations' results of For Loop ${module.id}`, undefined, 1000));
138
190
  return loop;
139
191
  }
140
- function flowModuleToBranch(branches, edgesLabel, parent = undefined) {
192
+ function flowModuleToBranch(module, branches, edgesLabel, parent = undefined) {
141
193
  const branch = {
142
194
  type: 'branch',
195
+ node: flowModuleToNode(getParentIds(parent), module.id, module.summary || module.value.type == 'branchall'
196
+ ? 'Run all branches'
197
+ : 'Run one branch given predicate', 'inline', module, undefined),
143
198
  items: []
144
199
  };
200
+ const branchParent = [numberToChars(branch.node.id)];
201
+ if (branches.length == 0) {
202
+ branch.items.push([createVirtualNode(branchParent, 'No branches')]);
203
+ }
145
204
  branches.forEach((modules, i) => {
146
205
  const items = [];
147
206
  if (!modules.length) {
148
- items.push(createVirtualNode(getParentIds(parent), 'Empty branch', edgesLabel[i]));
207
+ items.push(createVirtualNode(branchParent, 'Empty branch', edgesLabel[i]));
149
208
  }
150
209
  else {
151
210
  modules.forEach((module) => {
152
- const item = getConvertedFlowModule(module, items.length ? items : parent, edgesLabel[i]);
211
+ const item = getConvertedFlowModule(module, items.length ? items : numberToChars(branch.node.id), edgesLabel[i]);
153
212
  item && items.push(item);
154
213
  });
155
214
  }
@@ -167,6 +226,7 @@ function flattenNestedNodes(nestedNodes, nodes = []) {
167
226
  flattenNestedNodes(node.items, array);
168
227
  }
169
228
  else if (isBranch(node)) {
229
+ array.push(node.node);
170
230
  node.items.forEach((item) => {
171
231
  flattenNestedNodes(item, array);
172
232
  });
@@ -175,9 +235,7 @@ function flattenNestedNodes(nestedNodes, nodes = []) {
175
235
  return array;
176
236
  }
177
237
  function layoutNodes(nodes) {
178
- if (!nodes.length)
179
- return { nodes: [], height: 0 };
180
- const stratify = dagStratify().id(({ id }) => '' + id);
238
+ const stratify = dagStratify().id(({ id }) => numberToChars(id));
181
239
  const dag = stratify(nodes);
182
240
  const layout = sugiyama()
183
241
  .decross(decrossOpt())
@@ -187,7 +245,7 @@ function layoutNodes(nodes) {
187
245
  return {
188
246
  nodes: dag.descendants().map((des) => ({
189
247
  ...des.data,
190
- id: +des.data.id,
248
+ id: des.data.id,
191
249
  position: {
192
250
  x: des.x ? des.x + (width - boxSize.width - NODE.width) / 2 : 0,
193
251
  y: des.y || 0
@@ -200,24 +258,51 @@ function createEdges(nodes) {
200
258
  const edges = [];
201
259
  nodes.forEach((node) => {
202
260
  node.parentIds.forEach((pid, i) => {
203
- edges.push({
204
- id: `e-${pid}-${node.id}`,
205
- source: +pid,
206
- target: node.id,
207
- labelBgColor: 'white',
208
- arrow: true,
209
- animate: false,
210
- noHandle: false,
211
- label: node.edgeLabel
212
- // type: 'smoothstep'
213
- });
261
+ // skip virtual nodes such as collect result
262
+ if (errorHandlers[pid] && node.id < 900 && nodes.find((x) => x.id == errorHandlers[pid])) {
263
+ edges.push({
264
+ id: `e-${pid}-${node.id}`,
265
+ source: charsToNumber(pid),
266
+ target: errorHandlers[pid],
267
+ labelBgColor: 'white',
268
+ arrow: true,
269
+ animate: false,
270
+ noHandle: false,
271
+ label: node.edgeLabel
272
+ // type: 'smoothstep'
273
+ });
274
+ edges.push({
275
+ id: `e-${pid}-${node.id}`,
276
+ source: errorHandlers[pid],
277
+ target: node.id,
278
+ labelBgColor: 'white',
279
+ arrow: true,
280
+ animate: false,
281
+ noHandle: false,
282
+ label: node.edgeLabel
283
+ // type: 'smoothstep'
284
+ });
285
+ }
286
+ else {
287
+ edges.push({
288
+ id: `e-${pid}-${node.id}`,
289
+ source: charsToNumber(pid),
290
+ target: node.id,
291
+ labelBgColor: 'white',
292
+ arrow: true,
293
+ animate: false,
294
+ noHandle: false,
295
+ label: node.edgeLabel
296
+ // type: 'smoothstep'
297
+ });
298
+ }
214
299
  });
215
300
  });
216
301
  return edges;
217
302
  }
218
- function createVirtualNode(parentIds, label, edgesLabel) {
303
+ function createVirtualNode(parentIds, label, edgesLabel, offset) {
219
304
  return {
220
- id: idGenerator.next().value,
305
+ id: -idGenerator.next().value - 1 + (offset ?? 0),
221
306
  position: { x: -1, y: -1 },
222
307
  data: {
223
308
  html: `
@@ -228,33 +313,53 @@ function createVirtualNode(parentIds, label, edgesLabel) {
228
313
  },
229
314
  width: NODE.width,
230
315
  height: NODE.height,
231
- bgColor: '#d4e4ff',
232
- parentIds
316
+ borderColor: selectedNode == label ? 'black' : '#999',
317
+ bgColor: selectedNode == label ? '#f5f5f5' : '#d4e4ff',
318
+ parentIds,
319
+ clickCallback: (node) => {
320
+ if (!notSelectable) {
321
+ selectedNode = label;
322
+ }
323
+ dispatch('click', label);
324
+ }
233
325
  };
234
326
  }
235
- function createErrorHandler(parentIds, module) {
327
+ function createErrorHandler(mod, parent_module) {
328
+ const nId = -idGenerator.next().value - 1 + 1100;
329
+ parent_module && (errorHandlers[parent_module] = nId);
236
330
  return {
237
- id: -1,
331
+ id: nId,
238
332
  position: { x: -1, y: -1 },
239
333
  data: {
240
334
  html: `
241
- <div class="w-full max-h-full text-center ellipsize-multi-line text-2xs [-webkit-line-clamp:2] px-1">
242
- Error handler
335
+ <div class="w-full flex justify-between items-center px-1">
336
+ <div class="text-left ellipsize text-2xs truncate">
337
+ Error Handler
338
+ </div>
339
+ <div class="flex items-center">
340
+ <span class="center-center font-semibold bg-indigo-100 text-indigo-800 rounded px-1 pb-[2px] ml-[2px]">
341
+ ${mod.id}
342
+ </span>
343
+ </div>
243
344
  </div>
244
345
  `
245
346
  },
246
347
  width: NODE.width,
247
348
  height: NODE.height,
248
- bgColor: 'rgb(248 113 113)',
249
- parentIds,
349
+ bgColor: selectedNode == mod.id ? '#f5f5f5' : getStateColor(flowModuleStates?.[mod.id]?.type),
350
+ borderColor: selectedNode == mod.id ? 'black' : '#999',
351
+ parentIds: parent_module ? [parent_module] : [],
250
352
  clickCallback: (node) => {
251
- dispatch('click', module);
353
+ if (!notSelectable) {
354
+ selectedNode = mod.id;
355
+ }
356
+ dispatch('click', mod);
252
357
  }
253
358
  };
254
359
  }
255
360
  </script>
256
361
 
257
- <div bind:clientWidth={width} class="w-full h-full overflow-hidden">
362
+ <div bind:clientWidth={width} class="w-full h-full overflow-hidden relative">
258
363
  {#if width && height}
259
364
  <Svelvet {nodes} {width} {edges} {height} bgColor="rgb(249 250 251)" />
260
365
  {/if}
@@ -1,10 +1,13 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type { FlowModule } from '../../gen';
2
+ import { type FlowModule } from '../../gen';
3
+ import { type GraphModuleState } from '.';
3
4
  declare const __propDef: {
4
5
  props: {
5
6
  modules?: FlowModule[] | undefined;
6
7
  failureModule?: FlowModule | undefined;
7
8
  minHeight?: number | undefined;
9
+ notSelectable?: boolean | undefined;
10
+ flowModuleStates?: Record<string, GraphModuleState> | undefined;
8
11
  };
9
12
  events: {
10
13
  click: CustomEvent<any>;
@@ -13,9 +16,9 @@ declare const __propDef: {
13
16
  };
14
17
  slots: {};
15
18
  };
16
- export declare type FlowGraphProps = typeof __propDef.props;
17
- export declare type FlowGraphEvents = typeof __propDef.events;
18
- export declare type FlowGraphSlots = typeof __propDef.slots;
19
+ export type FlowGraphProps = typeof __propDef.props;
20
+ export type FlowGraphEvents = typeof __propDef.events;
21
+ export type FlowGraphSlots = typeof __propDef.slots;
19
22
  export default class FlowGraph extends SvelteComponentTyped<FlowGraphProps, FlowGraphEvents, FlowGraphSlots> {
20
23
  }
21
24
  export {};
@@ -1,20 +1,32 @@
1
+ import type { FlowStatusModule } from "../../gen";
1
2
  import type { Node as SvelvetNode } from "svelvet";
2
- export declare type ModuleHost = 'workspace' | 'inline' | 'hub';
3
- export declare type Node = SvelvetNode & {
3
+ export type ModuleHost = 'workspace' | 'inline' | 'hub';
4
+ export type Node = SvelvetNode & {
4
5
  parentIds: string[];
5
6
  edgeLabel?: string;
6
7
  host?: ModuleHost;
7
8
  };
8
- export declare type Loop = {
9
+ export type Loop = {
9
10
  type: 'loop';
10
11
  items: NestedNodes;
11
12
  };
12
- export declare type Branch = {
13
+ export type Branch = {
14
+ node: Node;
13
15
  type: 'branch';
14
16
  items: NestedNodes[];
15
17
  };
16
- export declare type GraphItem = Node | Loop | Branch;
17
- export declare type NestedNodes = GraphItem[];
18
+ export type GraphItem = Node | Loop | Branch;
19
+ export type GraphModuleState = {
20
+ type: FlowStatusModule.type;
21
+ logs?: string;
22
+ result?: any;
23
+ scheduled_for?: string;
24
+ job_id?: string;
25
+ parent_module?: string;
26
+ iteration_total?: number;
27
+ retries?: number;
28
+ };
29
+ export type NestedNodes = GraphItem[];
18
30
  export declare function isNode(item: GraphItem | NestedNodes | undefined): item is Node;
19
31
  export declare function isLoop(item: GraphItem | NestedNodes | undefined): item is Loop;
20
32
  export declare function isBranch(item: GraphItem | NestedNodes | undefined): item is Branch;