windmill-components 1.60.4 → 1.75.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 (549) hide show
  1. package/assets/app.css +15 -1
  2. package/common.d.ts +5 -1
  3. package/components/ApiConnectForm.svelte +66 -5
  4. package/components/AppConnect.svelte +26 -10
  5. package/components/ArgInput.svelte +1 -1
  6. package/components/CliHelpBox.svelte +49 -0
  7. package/components/CliHelpBox.svelte.d.ts +14 -0
  8. package/components/DisplayResult.svelte +78 -10
  9. package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/components/Editor.svelte +17 -7
  11. package/components/EditorBar.svelte +129 -111
  12. package/components/FieldHeader.svelte +12 -8
  13. package/components/FlowBuilder.svelte +107 -39
  14. package/components/FlowBuilder.svelte.d.ts +5 -0
  15. package/components/FlowGraphViewer.svelte +5 -4
  16. package/components/FlowJobResult.svelte +13 -5
  17. package/components/FlowJobResult.svelte.d.ts +1 -0
  18. package/components/FlowMetadata.svelte +24 -8
  19. package/components/FlowPreviewContent.svelte +5 -11
  20. package/components/FlowStatusViewer.svelte +62 -17
  21. package/components/FolderEditor.svelte +3 -2
  22. package/components/GroupEditor.svelte +8 -0
  23. package/components/HighlightCode.svelte +7 -1
  24. package/components/InlineCodeCopy.svelte +11 -0
  25. package/components/InlineCodeCopy.svelte.d.ts +16 -0
  26. package/components/InputTransformForm.svelte +22 -25
  27. package/components/InputTransformSchemaForm.svelte +103 -0
  28. package/components/InputTransformSchemaForm.svelte.d.ts +24 -0
  29. package/components/LogViewer.svelte +7 -1
  30. package/components/LogViewer.svelte.d.ts +1 -0
  31. package/components/ModulePreview.svelte +13 -3
  32. package/components/MoveDrawer.svelte +1 -1
  33. package/components/Multiselect.svelte +1 -1
  34. package/components/Multiselect.svelte.d.ts +2 -2
  35. package/components/ObjectResourceInput.svelte +6 -1
  36. package/components/Path.svelte +29 -16
  37. package/components/Popover.svelte +10 -15
  38. package/components/Popover.svelte.d.ts +1 -0
  39. package/components/Range.svelte.d.ts +2 -2
  40. package/components/ResourceEditor.svelte +39 -16
  41. package/components/ResourcePicker.svelte +33 -15
  42. package/components/RunChart.svelte +24 -5
  43. package/components/RunForm.svelte +26 -3
  44. package/components/RunForm.svelte.d.ts +2 -0
  45. package/components/ScheduleEditor.svelte +1 -1
  46. package/components/SchemaEditor.svelte +2 -2
  47. package/components/SchemaForm.svelte +72 -60
  48. package/components/SchemaForm.svelte.d.ts +1 -5
  49. package/components/ScriptBuilder.svelte +69 -30
  50. package/components/ScriptBuilder.svelte.d.ts +1 -0
  51. package/components/ScriptEditor.svelte +1 -0
  52. package/components/ScriptPicker.svelte +3 -0
  53. package/components/SharedBadge.svelte +5 -5
  54. package/components/SimpleEditor.svelte +4 -1
  55. package/components/SimpleEditor.svelte.d.ts +2 -0
  56. package/components/Slider.svelte +19 -0
  57. package/components/Slider.svelte.d.ts +20 -0
  58. package/components/StringTypeNarrowing.svelte +0 -1
  59. package/components/SuperadminSettings.svelte +11 -3
  60. package/components/SuperadminSettings.svelte.d.ts +2 -0
  61. package/components/TemplateEditor.svelte +1 -1
  62. package/components/TemplateEditor.svelte.d.ts +204 -0
  63. package/components/TestJobLoader.svelte +5 -5
  64. package/components/Toggle.svelte +18 -6
  65. package/components/Toggle.svelte.d.ts +2 -0
  66. package/components/Tooltip.svelte +1 -1
  67. package/components/UserSettings.svelte +13 -3
  68. package/components/UserSettings.svelte.d.ts +2 -0
  69. package/components/VariableEditor.svelte +1 -1
  70. package/components/WhitelistIp.svelte +23 -0
  71. package/components/WhitelistIp.svelte.d.ts +14 -0
  72. package/components/apps/components/buttons/AppButton.svelte +79 -17
  73. package/components/apps/components/buttons/AppButton.svelte.d.ts +4 -0
  74. package/components/apps/components/{form → buttons}/AppForm.svelte +19 -7
  75. package/components/apps/components/{form → buttons}/AppForm.svelte.d.ts +3 -0
  76. package/components/apps/components/buttons/AppFormButton.svelte +145 -0
  77. package/components/apps/components/buttons/AppFormButton.svelte.d.ts +28 -0
  78. package/components/apps/components/buttons/index.d.ts +3 -0
  79. package/components/apps/components/buttons/index.js +3 -0
  80. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte +27 -8
  81. package/components/apps/components/{dataDisplay → display}/AppBarChart.svelte.d.ts +4 -0
  82. package/components/apps/components/display/AppDisplayComponent.svelte +36 -0
  83. package/components/apps/components/display/AppDisplayComponent.svelte.d.ts +24 -0
  84. package/components/apps/components/display/AppHtml.svelte +46 -0
  85. package/components/apps/components/{dataDisplay → display}/AppHtml.svelte.d.ts +4 -1
  86. package/components/apps/components/display/AppIcon.svelte +47 -0
  87. package/components/apps/components/display/AppIcon.svelte.d.ts +25 -0
  88. package/components/apps/components/display/AppImage.svelte +34 -0
  89. package/components/apps/components/display/AppImage.svelte.d.ts +25 -0
  90. package/components/apps/components/display/AppMap.svelte +214 -0
  91. package/components/apps/components/display/AppMap.svelte.d.ts +23 -0
  92. package/components/apps/components/display/AppPdf.svelte +304 -0
  93. package/components/apps/components/display/AppPdf.svelte.d.ts +24 -0
  94. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte +16 -7
  95. package/components/apps/components/{dataDisplay → display}/AppPieChart.svelte.d.ts +4 -0
  96. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte +13 -4
  97. package/components/apps/components/{dataDisplay → display}/AppScatterChart.svelte.d.ts +4 -0
  98. package/components/apps/components/{dataDisplay → display}/AppText.svelte +42 -34
  99. package/components/apps/components/{dataDisplay → display}/AppText.svelte.d.ts +4 -0
  100. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte +14 -5
  101. package/components/apps/components/{dataDisplay → display}/AppTimeseries.svelte.d.ts +4 -0
  102. package/components/apps/components/display/PlotlyHtml.svelte +32 -0
  103. package/components/apps/components/display/PlotlyHtml.svelte.d.ts +24 -0
  104. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte +4 -10
  105. package/components/apps/components/{dataDisplay → display}/VegaLiteHtml.svelte.d.ts +2 -0
  106. package/components/apps/components/display/index.d.ts +15 -0
  107. package/components/apps/components/display/index.js +15 -0
  108. package/components/apps/components/display/table/AppAggridTable.svelte +92 -0
  109. package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +25 -0
  110. package/components/apps/components/{table → display/table}/AppTable.svelte +85 -29
  111. package/components/apps/components/{table → display/table}/AppTable.svelte.d.ts +6 -2
  112. package/components/apps/components/{table → display/table}/AppTableFooter.svelte +9 -2
  113. package/components/apps/components/{table → display/table}/AppTableFooter.svelte.d.ts +2 -0
  114. package/components/apps/components/helpers/AlignWrapper.svelte +29 -23
  115. package/components/apps/components/helpers/AlignWrapper.svelte.d.ts +6 -2
  116. package/components/apps/components/helpers/HiddenComponent.svelte +23 -0
  117. package/components/apps/components/helpers/HiddenComponent.svelte.d.ts +25 -0
  118. package/components/apps/components/helpers/InputDefaultValue.svelte +17 -0
  119. package/components/apps/components/helpers/InputDefaultValue.svelte.d.ts +17 -0
  120. package/components/apps/components/helpers/InputValue.svelte +39 -18
  121. package/components/apps/components/helpers/InputValue.svelte.d.ts +0 -1
  122. package/components/apps/components/helpers/NonRunnableComponent.svelte +18 -3
  123. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -0
  124. package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  125. package/components/apps/components/helpers/ResizeWrapper.svelte +24 -0
  126. package/components/apps/components/helpers/ResizeWrapper.svelte.d.ts +19 -0
  127. package/components/apps/components/helpers/RunnableComponent.svelte +99 -102
  128. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -2
  129. package/components/apps/components/helpers/RunnableWrapper.svelte +16 -7
  130. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +5 -2
  131. package/components/apps/components/helpers/index.d.ts +10 -0
  132. package/components/apps/components/helpers/index.js +10 -0
  133. package/components/apps/components/icon.d.ts +1 -0
  134. package/components/apps/components/icon.js +18 -0
  135. package/components/apps/components/index.d.ts +5 -0
  136. package/components/apps/components/index.js +5 -0
  137. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte +12 -4
  138. package/components/apps/components/{selectInputs → inputs}/AppCheckbox.svelte.d.ts +3 -0
  139. package/components/apps/components/inputs/AppDateInput.svelte +47 -0
  140. package/components/apps/components/{dateInputs → inputs}/AppDateInput.svelte.d.ts +6 -1
  141. package/components/apps/components/inputs/AppFileInput.svelte +42 -0
  142. package/components/apps/components/inputs/AppFileInput.svelte.d.ts +23 -0
  143. package/components/apps/components/inputs/AppMultiSelect.svelte +82 -0
  144. package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +27 -0
  145. package/components/apps/components/inputs/AppNumberInput.svelte +52 -0
  146. package/components/apps/components/{numberInputs → inputs}/AppNumberInput.svelte.d.ts +5 -0
  147. package/components/apps/components/inputs/AppRangeInput.svelte +85 -0
  148. package/components/apps/components/inputs/AppRangeInput.svelte.d.ts +26 -0
  149. package/components/apps/components/inputs/AppSelect.svelte +127 -0
  150. package/components/apps/components/{selectInputs → inputs}/AppSelect.svelte.d.ts +5 -0
  151. package/components/apps/components/inputs/AppSliderInputs.svelte +73 -0
  152. package/components/apps/components/{numberInputs → inputs}/AppSliderInputs.svelte.d.ts +3 -0
  153. package/components/apps/components/inputs/AppTextInput.svelte +71 -0
  154. package/components/apps/components/{textInputs → inputs}/AppTextInput.svelte.d.ts +6 -0
  155. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte +59 -0
  156. package/components/apps/components/inputs/currency/AppCurrencyInput.svelte.d.ts +24 -0
  157. package/components/apps/components/inputs/currency/CurrencyInput.svelte +183 -0
  158. package/components/apps/components/inputs/currency/CurrencyInput.svelte.d.ts +33 -0
  159. package/components/apps/components/inputs/index.d.ts +9 -0
  160. package/components/apps/components/inputs/index.js +9 -0
  161. package/components/apps/components/layout/AppContainer.svelte +40 -0
  162. package/components/apps/components/layout/AppContainer.svelte.d.ts +24 -0
  163. package/components/apps/components/layout/AppDivider.svelte +40 -0
  164. package/components/apps/components/layout/AppDivider.svelte.d.ts +24 -0
  165. package/components/apps/components/layout/AppDrawer.svelte +89 -0
  166. package/components/apps/components/layout/AppDrawer.svelte.d.ts +24 -0
  167. package/components/apps/components/layout/AppSplitpanes.svelte +88 -0
  168. package/components/apps/components/layout/AppSplitpanes.svelte.d.ts +26 -0
  169. package/components/apps/components/layout/AppTabs.svelte +99 -0
  170. package/components/apps/components/layout/AppTabs.svelte.d.ts +27 -0
  171. package/components/apps/components/layout/index.d.ts +5 -0
  172. package/components/apps/components/layout/index.js +5 -0
  173. package/components/apps/editor/AppComponentInput.svelte +33 -0
  174. package/components/apps/editor/AppComponentInput.svelte.d.ts +18 -0
  175. package/components/apps/editor/AppComponentInputs.svelte +13 -0
  176. package/components/apps/editor/AppComponentInputs.svelte.d.ts +20 -0
  177. package/components/apps/editor/AppEditor.svelte +134 -35
  178. package/components/apps/editor/AppEditor.svelte.d.ts +4 -1
  179. package/components/apps/editor/AppEditorHeader.svelte +178 -47
  180. package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  181. package/components/apps/editor/AppInputs.svelte +60 -0
  182. package/components/apps/editor/AppInputs.svelte.d.ts +14 -0
  183. package/components/apps/editor/AppPreview.svelte +30 -12
  184. package/components/apps/editor/ComponentHeader.svelte +52 -3
  185. package/components/apps/editor/ComponentHeader.svelte.d.ts +2 -1
  186. package/components/apps/editor/GridEditor.svelte +134 -77
  187. package/components/apps/editor/GridEditor.svelte.d.ts +2 -0
  188. package/components/apps/editor/GridPanel.svelte +29 -0
  189. package/components/apps/editor/GridPanel.svelte.d.ts +18 -0
  190. package/components/apps/editor/RecomputeAllComponents.svelte +8 -6
  191. package/components/apps/editor/SettingsPanel.svelte +26 -8
  192. package/components/apps/editor/SubGridEditor.svelte +139 -0
  193. package/components/apps/editor/SubGridEditor.svelte.d.ts +29 -0
  194. package/components/apps/editor/appUtils.d.ts +19 -0
  195. package/components/apps/editor/appUtils.js +241 -0
  196. package/components/apps/editor/component/Component.svelte +434 -0
  197. package/components/apps/editor/{ComponentEditor.svelte.d.ts → component/Component.svelte.d.ts} +7 -5
  198. package/components/apps/editor/component/ComponentNavigation.svelte +125 -0
  199. package/components/apps/editor/component/ComponentNavigation.svelte.d.ts +14 -0
  200. package/components/apps/editor/component/README.md +15 -0
  201. package/components/apps/editor/component/components.d.ts +77 -0
  202. package/components/apps/editor/component/components.js +1476 -0
  203. package/components/apps/editor/component/default-codes.d.ts +3 -0
  204. package/components/apps/editor/component/default-codes.js +322 -0
  205. package/components/apps/editor/component/index.d.ts +4 -0
  206. package/components/apps/editor/component/index.js +4 -0
  207. package/components/apps/editor/component/sets.d.ts +2 -0
  208. package/components/apps/editor/component/sets.js +55 -0
  209. package/components/apps/editor/componentsPanel/ComponentList.svelte +75 -108
  210. package/components/apps/editor/componentsPanel/CssProperty.svelte +67 -0
  211. package/components/apps/editor/componentsPanel/CssProperty.svelte.d.ts +21 -0
  212. package/components/apps/editor/componentsPanel/CssSettings.svelte +188 -0
  213. package/components/apps/editor/componentsPanel/CssSettings.svelte.d.ts +14 -0
  214. package/components/apps/editor/componentsPanel/ListItem.svelte +39 -0
  215. package/components/apps/editor/componentsPanel/ListItem.svelte.d.ts +20 -0
  216. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +5 -1
  217. package/components/apps/editor/componentsPanel/componentStaticValues.js +16 -1
  218. package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  219. package/components/apps/editor/contextPanel/ContextPanel.svelte +115 -67
  220. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +109 -10
  221. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  222. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +88 -41
  223. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +5 -0
  224. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +32 -6
  225. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  226. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +75 -8
  227. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +128 -72
  228. package/components/apps/editor/inlineScriptsPanel/utils.d.ts +5 -5
  229. package/components/apps/editor/inlineScriptsPanel/utils.js +48 -7
  230. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
  231. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte.d.ts +1 -1
  232. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +14 -10
  233. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +68 -1
  234. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +1 -1
  235. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +130 -61
  236. package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +6 -3
  237. package/components/apps/editor/settingsPanel/GridPane.svelte +75 -0
  238. package/components/apps/editor/settingsPanel/GridPane.svelte.d.ts +20 -0
  239. package/components/apps/editor/settingsPanel/GridTab.svelte +73 -0
  240. package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +20 -0
  241. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +5 -1
  242. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +2 -2
  243. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +93 -78
  244. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +1 -0
  245. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte +92 -0
  246. package/components/apps/editor/settingsPanel/MoveToOtherGrid.svelte.d.ts +18 -0
  247. package/components/apps/editor/settingsPanel/Recompute.svelte +5 -2
  248. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +1 -1
  249. package/components/apps/editor/settingsPanel/TableActions.svelte +45 -7
  250. package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  251. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +6 -4
  252. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +48 -0
  253. package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte.d.ts +19 -0
  254. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +1 -1
  255. package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +1 -1
  256. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +107 -0
  257. package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte.d.ts +21 -0
  258. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -2
  259. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +2 -1
  260. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +59 -6
  261. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte.d.ts +3 -0
  262. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte +21 -0
  263. package/components/apps/editor/settingsPanel/inputEditor/UploadInputEditor.svelte.d.ts +17 -0
  264. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +1 -0
  265. package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte.d.ts +1 -0
  266. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +4 -21
  267. package/components/apps/gridUtils.d.ts +3 -1
  268. package/components/apps/gridUtils.js +5 -3
  269. package/components/apps/inputType.d.ts +34 -6
  270. package/components/apps/rx.js +2 -1
  271. package/components/apps/store.d.ts +6 -1
  272. package/components/apps/types.d.ts +47 -42
  273. package/components/apps/types.js +1 -1
  274. package/components/apps/utils.d.ts +6 -5
  275. package/components/apps/utils.js +63 -95
  276. package/components/common/button/Button.svelte +12 -5
  277. package/components/common/button/Button.svelte.d.ts +3 -1
  278. package/components/common/button/ButtonPopup.svelte +2 -0
  279. package/components/common/button/ButtonPopup.svelte.d.ts +2 -1
  280. package/components/common/button/UndoRedo.svelte +32 -0
  281. package/components/common/button/UndoRedo.svelte.d.ts +20 -0
  282. package/components/common/button/model.d.ts +2 -2
  283. package/components/common/button/model.js +21 -6
  284. package/components/common/confirmationModal/ConfirmationModal.svelte +8 -1
  285. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -4
  286. package/components/common/drawer/Drawer.svelte +13 -5
  287. package/components/common/drawer/Drawer.svelte.d.ts +3 -1
  288. package/components/common/drawer/DrawerContent.svelte +0 -1
  289. package/components/common/fileInput/FileInput.svelte +138 -0
  290. package/components/common/fileInput/FileInput.svelte.d.ts +29 -0
  291. package/components/common/fileInput/model.d.ts +1 -0
  292. package/components/common/fileInput/model.js +1 -0
  293. package/components/common/index.d.ts +2 -0
  294. package/components/common/index.js +2 -0
  295. package/components/common/kbd/Kbd.svelte.d.ts +2 -2
  296. package/components/common/menu/Menu.svelte +3 -2
  297. package/components/common/menu/Menu.svelte.d.ts +2 -1
  298. package/components/common/modal/Modal.svelte +79 -0
  299. package/components/common/modal/Modal.svelte.d.ts +24 -0
  300. package/components/common/popup/Popup.svelte +34 -17
  301. package/components/common/popup/Popup.svelte.d.ts +11 -4
  302. package/components/common/table/AppRow.svelte +13 -4
  303. package/components/common/table/AppRow.svelte.d.ts +1 -0
  304. package/components/common/table/FlowRow.svelte +40 -8
  305. package/components/common/table/FlowRow.svelte.d.ts +1 -0
  306. package/components/common/table/LanguageBadge.svelte +10 -4
  307. package/components/common/table/Row.svelte +1 -1
  308. package/components/common/table/ScriptRow.svelte +44 -12
  309. package/components/common/table/ScriptRow.svelte.d.ts +1 -0
  310. package/components/common/tabs/Tab.svelte +12 -5
  311. package/components/common/tabs/Tab.svelte.d.ts +4 -1
  312. package/components/common/tabs/Tabs.svelte +12 -8
  313. package/components/common/tabs/Tabs.svelte.d.ts +6 -2
  314. package/components/flows/CreateActionsFlow.svelte +2 -3
  315. package/components/flows/FlowEditor.svelte +6 -4
  316. package/components/flows/common/FlowCardHeader.svelte +4 -1
  317. package/components/flows/content/BranchPredicateEditor.svelte +13 -12
  318. package/components/flows/content/CapturePayload.svelte +1 -2
  319. package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
  320. package/components/flows/content/FlowConstants.svelte +7 -13
  321. package/components/flows/content/FlowEditorPanel.svelte +4 -3
  322. package/components/flows/content/FlowFailureModule.svelte +2 -1
  323. package/components/flows/content/FlowInput.svelte +4 -2
  324. package/components/flows/content/FlowInputs.svelte +109 -99
  325. package/components/flows/content/FlowLoop.svelte +4 -5
  326. package/components/flows/content/FlowModuleComponent.svelte +26 -13
  327. package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
  328. package/components/flows/content/FlowModuleHeader.svelte +26 -3
  329. package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
  330. package/components/flows/content/FlowModuleSleep.svelte +2 -2
  331. package/components/flows/content/FlowModuleWrapper.svelte +2 -8
  332. package/components/flows/content/FlowRetries.svelte +8 -6
  333. package/components/flows/content/FlowSchedules.svelte +1 -2
  334. package/components/flows/content/FlowSettings.svelte +77 -51
  335. package/components/flows/content/ScriptEditorDrawer.svelte +98 -0
  336. package/components/flows/content/ScriptEditorDrawer.svelte.d.ts +19 -0
  337. package/components/flows/flowState.d.ts +2 -2
  338. package/components/flows/flowState.js +1 -3
  339. package/components/flows/flowStateUtils.d.ts +7 -6
  340. package/components/flows/flowStateUtils.js +9 -11
  341. package/components/flows/flowStore.d.ts +5 -3
  342. package/components/flows/flowStore.js +6 -17
  343. package/components/flows/header/FlowImportExportMenu.svelte +2 -1
  344. package/components/flows/map/FlowConstantsItem.svelte +2 -2
  345. package/components/flows/map/FlowErrorHandlerItem.svelte +12 -13
  346. package/components/flows/map/FlowInputsItem.svelte +2 -3
  347. package/components/flows/map/FlowModuleSchemaItem.svelte +88 -91
  348. package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +3 -3
  349. package/components/flows/map/FlowModuleSchemaMap.svelte +163 -130
  350. package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -1
  351. package/components/flows/map/FlowSettingsItem.svelte +5 -4
  352. package/components/flows/map/InsertModuleButton.svelte +34 -18
  353. package/components/flows/map/InsertModuleButton.svelte.d.ts +2 -0
  354. package/components/flows/map/MapItem.svelte +176 -101
  355. package/components/flows/map/MapItem.svelte.d.ts +20 -2
  356. package/components/flows/map/VirtualItem.svelte +129 -0
  357. package/components/flows/map/VirtualItem.svelte.d.ts +44 -0
  358. package/components/flows/pickers/WorkspaceScriptPicker.svelte +1 -1
  359. package/components/flows/previousResults.d.ts +1 -1
  360. package/components/flows/previousResults.js +32 -17
  361. package/components/flows/types.d.ts +13 -1
  362. package/components/flows/utils.js +17 -11
  363. package/components/graph/FlowGraph.svelte +247 -164
  364. package/components/graph/FlowGraph.svelte.d.ts +15 -1
  365. package/components/graph/model.d.ts +6 -36
  366. package/components/graph/model.js +1 -1
  367. package/components/graph/svelvet/LICENSE +21 -0
  368. package/components/graph/svelvet/collapsible/controllers/util.d.ts +15 -0
  369. package/components/graph/svelvet/collapsible/controllers/util.js +144 -0
  370. package/components/graph/svelvet/collapsible/models/Collapsible.d.ts +17 -0
  371. package/components/graph/svelvet/collapsible/models/Collapsible.js +25 -0
  372. package/components/graph/svelvet/collapsible/types/types.d.ts +8 -0
  373. package/components/graph/svelvet/collapsible/types/types.js +1 -0
  374. package/components/graph/svelvet/container/README.md +7 -0
  375. package/components/graph/svelvet/container/controllers/middleware.d.ts +18 -0
  376. package/components/graph/svelvet/container/controllers/middleware.js +101 -0
  377. package/components/graph/svelvet/container/views/GraphView.svelte +252 -0
  378. package/components/graph/svelvet/container/views/GraphView.svelte.d.ts +25 -0
  379. package/components/graph/svelvet/container/views/Svelvet.svelte +131 -0
  380. package/components/graph/svelvet/container/views/Svelvet.svelte.d.ts +41 -0
  381. package/components/graph/svelvet/customCss/controllers/getCss.d.ts +2 -0
  382. package/components/graph/svelvet/customCss/controllers/getCss.js +57 -0
  383. package/components/graph/svelvet/d3/controllers/README.md +3 -0
  384. package/components/graph/svelvet/d3/controllers/d3.d.ts +5 -0
  385. package/components/graph/svelvet/d3/controllers/d3.js +59 -0
  386. package/components/graph/svelvet/d3/controllers/d3Old.d.ts +1 -0
  387. package/components/graph/svelvet/d3/controllers/d3Old.js +43 -0
  388. package/components/graph/svelvet/docs/CHANGELOG.md +145 -0
  389. package/components/graph/svelvet/docs/DESIGN_PATTERNS.md +44 -0
  390. package/components/graph/svelvet/docs/DOCUMENTATION.md +5 -0
  391. package/components/graph/svelvet/docs/README.md +34 -0
  392. package/components/graph/svelvet/docs/TODO.md +14 -0
  393. package/components/graph/svelvet/docs/Tutorials.md +25 -0
  394. package/components/graph/svelvet/docs/images/css-background-after.png +0 -0
  395. package/components/graph/svelvet/docs/images/css-background-before.png +0 -0
  396. package/components/graph/svelvet/docs/images/custom-edges-after.png +0 -0
  397. package/components/graph/svelvet/docs/images/custom-edges-before.png +0 -0
  398. package/components/graph/svelvet/docs/images/custom-nodes-after.png +0 -0
  399. package/components/graph/svelvet/docs/images/custom-nodes-before.png +0 -0
  400. package/components/graph/svelvet/docs/images/custom-svelte-components-after.png +0 -0
  401. package/components/graph/svelvet/docs/images/custom-svelte-components-before.png +0 -0
  402. package/components/graph/svelvet/docs/images/html-docs-after.png +0 -0
  403. package/components/graph/svelvet/docs/images/html-docs-before.png +0 -0
  404. package/components/graph/svelvet/docs/images/minimap-after.png +0 -0
  405. package/components/graph/svelvet/docs/images/minimap-before.png +0 -0
  406. package/components/graph/svelvet/docs/images/node-classes-after.png +0 -0
  407. package/components/graph/svelvet/docs/images/node-classes-before.png +0 -0
  408. package/components/graph/svelvet/docs/images/node-create-after.png +0 -0
  409. package/components/graph/svelvet/docs/images/node-create-before.png +0 -0
  410. package/components/graph/svelvet/edges/controllers/anchorCbDev.d.ts +4 -0
  411. package/components/graph/svelvet/edges/controllers/anchorCbDev.js +92 -0
  412. package/components/graph/svelvet/edges/controllers/anchorCbUser.d.ts +57 -0
  413. package/components/graph/svelvet/edges/controllers/anchorCbUser.js +73 -0
  414. package/components/graph/svelvet/edges/controllers/util.d.ts +37 -0
  415. package/components/graph/svelvet/edges/controllers/util.js +72 -0
  416. package/components/graph/svelvet/edges/models/Anchor.d.ts +48 -0
  417. package/components/graph/svelvet/edges/models/Anchor.js +122 -0
  418. package/components/graph/svelvet/edges/models/Edge.d.ts +47 -0
  419. package/components/graph/svelvet/edges/models/Edge.js +107 -0
  420. package/components/graph/svelvet/edges/types/types.d.ts +18 -0
  421. package/components/graph/svelvet/edges/types/types.js +1 -0
  422. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte +105 -0
  423. package/components/graph/svelvet/edges/views/Edges/BaseEdge.svelte.d.ts +18 -0
  424. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte +12 -0
  425. package/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte.d.ts +17 -0
  426. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte +43 -0
  427. package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +17 -0
  428. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte +137 -0
  429. package/components/graph/svelvet/edges/views/Edges/SimpleBezierEdge.svelte.d.ts +17 -0
  430. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte +176 -0
  431. package/components/graph/svelvet/edges/views/Edges/SmoothStepEdge.svelte.d.ts +60 -0
  432. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte +8 -0
  433. package/components/graph/svelvet/edges/views/Edges/StepEdge.svelte.d.ts +25 -0
  434. package/components/graph/svelvet/edges/views/Edges/types.d.ts +52 -0
  435. package/components/graph/svelvet/edges/views/Edges/types.js +1 -0
  436. package/components/graph/svelvet/edges/views/Edges/utils.d.ts +33 -0
  437. package/components/graph/svelvet/edges/views/Edges/utils.js +31 -0
  438. package/components/graph/svelvet/editEdges/views/EditEdge.svelte +151 -0
  439. package/components/graph/svelvet/editEdges/views/EditEdge.svelte.d.ts +20 -0
  440. package/components/graph/svelvet/nodes/controllers/util.d.ts +9 -0
  441. package/components/graph/svelvet/nodes/controllers/util.js +13 -0
  442. package/components/graph/svelvet/nodes/models/Node.d.ts +78 -0
  443. package/components/graph/svelvet/nodes/models/Node.js +195 -0
  444. package/components/graph/svelvet/nodes/views/EditNode.svelte +147 -0
  445. package/components/graph/svelvet/nodes/views/EditNode.svelte.d.ts +33 -0
  446. package/components/graph/svelvet/nodes/views/Node.svelte +85 -0
  447. package/components/graph/svelvet/nodes/views/Node.svelte.d.ts +22 -0
  448. package/components/graph/svelvet/resizableNodes/controllers/util.d.ts +11 -0
  449. package/components/graph/svelvet/resizableNodes/controllers/util.js +24 -0
  450. package/components/graph/svelvet/resizableNodes/models/ResizeNode.d.ts +33 -0
  451. package/components/graph/svelvet/resizableNodes/models/ResizeNode.js +71 -0
  452. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte +81 -0
  453. package/components/graph/svelvet/resizableNodes/views/ResizeNode.svelte.d.ts +20 -0
  454. package/components/graph/svelvet/store/controllers/storeApi.d.ts +32 -0
  455. package/components/graph/svelvet/store/controllers/storeApi.js +111 -0
  456. package/components/graph/svelvet/store/controllers/userApi.d.ts +3 -0
  457. package/components/graph/svelvet/store/controllers/userApi.js +18 -0
  458. package/components/graph/svelvet/store/controllers/util.d.ts +31 -0
  459. package/components/graph/svelvet/store/controllers/util.js +180 -0
  460. package/components/graph/svelvet/store/models/store.d.ts +12 -0
  461. package/components/graph/svelvet/store/models/store.js +9 -0
  462. package/components/graph/svelvet/store/types/types.d.ts +134 -0
  463. package/components/graph/svelvet/store/types/types.js +1 -0
  464. package/components/graph/svelvet/types/README.md +3 -0
  465. package/components/graph/svelvet/types/index.d.ts +2 -0
  466. package/components/graph/svelvet/types/index.js +1 -0
  467. package/components/graph/svelvet/types/types.d.ts +49 -0
  468. package/components/graph/svelvet/types/types.js +18 -0
  469. package/components/graph/util.js +2 -2
  470. package/components/home/ItemsList.svelte +53 -5
  471. package/components/home/ItemsList.svelte.d.ts +1 -0
  472. package/components/home/ListFilters.svelte +7 -2
  473. package/components/icons/SquareIcon.svelte +9 -0
  474. package/components/icons/SquareIcon.svelte.d.ts +17 -0
  475. package/components/icons/index.d.ts +2 -0
  476. package/components/icons/index.js +2 -0
  477. package/components/jobs/JobDetail.svelte +40 -5
  478. package/components/propertyPicker/ObjectViewer.svelte +14 -9
  479. package/components/propertyPicker/ObjectViewer.svelte.d.ts +1 -0
  480. package/components/propertyPicker/PropPicker.svelte +8 -1
  481. package/components/propertyPicker/PropPickerResult.svelte +1 -1
  482. package/components/random_positive_adjetive.d.ts +1 -0
  483. package/components/random_positive_adjetive.js +961 -0
  484. package/components/scriptEditor/LogPanel.svelte +2 -1
  485. package/components/sidebar/SidebarContent.svelte +1 -1
  486. package/components/sidebar/UserMenu.svelte +46 -16
  487. package/components/sidebar/UserMenu.svelte.d.ts +0 -3
  488. package/components/sidebar/WorkspaceMenu.svelte +3 -1
  489. package/components/sidebar/settings.d.ts +2 -0
  490. package/components/sidebar/settings.js +2 -0
  491. package/consts.d.ts +1 -0
  492. package/consts.js +1 -0
  493. package/defaults.d.ts +4 -0
  494. package/defaults.js +4 -0
  495. package/gen/core/OpenAPI.js +1 -1
  496. package/gen/models/CompletedJob.d.ts +1 -0
  497. package/gen/models/FlowModule.d.ts +0 -1
  498. package/gen/models/QueuedJob.d.ts +1 -0
  499. package/gen/models/WorkerPing.d.ts +1 -1
  500. package/gen/services/FlowService.d.ts +9 -0
  501. package/gen/services/FlowService.js +15 -0
  502. package/gen/services/JobService.d.ts +97 -15
  503. package/gen/services/JobService.js +74 -15
  504. package/gen/services/ScriptService.d.ts +10 -1
  505. package/gen/services/ScriptService.js +16 -1
  506. package/gen/services/VariableService.d.ts +4 -2
  507. package/gen/services/VariableService.js +8 -2
  508. package/gen/services/WorkspaceService.d.ts +17 -0
  509. package/gen/services/WorkspaceService.js +16 -0
  510. package/history.d.ts +9 -0
  511. package/history.js +56 -0
  512. package/infer.js +3 -0
  513. package/init_scripts/python_failure_module.py +10 -0
  514. package/init_scripts/python_init_code.py +37 -0
  515. package/init_scripts/python_init_code_clear.py +5 -0
  516. package/init_scripts/python_init_code_trigger.py +14 -0
  517. package/logout.js +2 -1
  518. package/package.json +661 -522
  519. package/script_helpers.d.ts +6 -5
  520. package/script_helpers.js +8 -73
  521. package/scripts.d.ts +1 -1
  522. package/scripts.js +8 -1
  523. package/stores.d.ts +5 -1
  524. package/stores.js +8 -1
  525. package/user.d.ts +1 -1
  526. package/user.js +14 -8
  527. package/utils.d.ts +10 -5
  528. package/utils.js +51 -14
  529. package/components/apps/components/DisplayComponent.svelte +0 -16
  530. package/components/apps/components/DisplayComponent.svelte.d.ts +0 -20
  531. package/components/apps/components/dataDisplay/AppHtml.svelte +0 -31
  532. package/components/apps/components/dateInputs/AppDateInput.svelte +0 -34
  533. package/components/apps/components/numberInputs/AppNumberInput.svelte +0 -33
  534. package/components/apps/components/numberInputs/AppSliderInputs.svelte +0 -37
  535. package/components/apps/components/selectInputs/AppSelect.svelte +0 -47
  536. package/components/apps/components/textInputs/AppTextInput.svelte +0 -31
  537. package/components/apps/editor/ComponentEditor.svelte +0 -145
  538. package/components/apps/editor/TablePanel.svelte +0 -17
  539. package/components/apps/editor/TablePanel.svelte.d.ts +0 -17
  540. package/components/apps/editor/componentsPanel/data.d.ts +0 -3
  541. package/components/apps/editor/componentsPanel/data.js +0 -499
  542. package/components/apps/editorUtils.d.ts +0 -1
  543. package/components/apps/editorUtils.js +0 -292
  544. package/components/flows/map/FlowBranchAllMap.svelte +0 -100
  545. package/components/flows/map/FlowBranchAllMap.svelte.d.ts +0 -17
  546. package/components/flows/map/FlowBranchOneMap.svelte +0 -124
  547. package/components/flows/map/FlowBranchOneMap.svelte.d.ts +0 -17
  548. /package/components/apps/components/{table → display/table}/tableOptions.d.ts +0 -0
  549. /package/components/apps/components/{table → display/table}/tableOptions.js +0 -0
package/assets/app.css CHANGED
@@ -23,6 +23,9 @@
23
23
  display: none !important;
24
24
  }
25
25
 
26
+ .svelte-select-list {
27
+ z-index: 1000 !important;
28
+ }
26
29
  .nowrap pre code.hljs {
27
30
  whitespace: normal !important;
28
31
  }
@@ -47,12 +50,23 @@
47
50
  .Template-editor span.mtk20 {
48
51
  color: black !important;
49
52
  }
53
+
54
+ ::-webkit-scrollbar {
55
+ width: 9px;
56
+ height: 9px;
57
+ }
58
+ ::-webkit-scrollbar-track {
59
+ background: transparent;
60
+ }
61
+ ::-webkit-scrollbar-thumb {
62
+ background-color: rgba(155, 155, 155, 0.5);
63
+ border: transparent;
64
+ }
50
65
  }
51
66
 
52
67
  @layer components {
53
68
  /* Flow graph viewer -> Svelvet library internal class overwrite */
54
69
  .Node {
55
70
  display: flex !important;
56
- cursor: pointer !important;
57
71
  }
58
72
  }
package/common.d.ts CHANGED
@@ -19,7 +19,7 @@ export interface SchemaProperty {
19
19
  };
20
20
  }
21
21
  export type Schema = {
22
- $schema: string;
22
+ $schema: string | undefined;
23
23
  type: string;
24
24
  properties: {
25
25
  [name: string]: SchemaProperty;
@@ -31,4 +31,8 @@ export type Meta = {
31
31
  owner: string;
32
32
  name: string;
33
33
  };
34
+ type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N ? Acc[number] : Enumerate<N, [...Acc, Acc['length']]>;
35
+ /** An inclusive range of integer numbers */
36
+ export type IntRange<F extends number, T extends number> = F | Exclude<Enumerate<T>, Enumerate<F>> | T;
34
37
  export declare function pathToMeta(path: string): Meta;
38
+ export {};
@@ -1,8 +1,11 @@
1
- <script>import { ResourceService } from '../gen';
1
+ <script>import { JobService, Preview, ResourceService } from '../gen';
2
2
  import { workspaceStore } from '../stores';
3
- import { emptySchema, emptyString } from '../utils';
3
+ import { emptySchema, emptyString, sendUserToast } from '../utils';
4
+ import { Loader2 } from 'lucide-svelte';
5
+ import Button from './common/button/Button.svelte';
4
6
  import SchemaForm from './SchemaForm.svelte';
5
7
  import SimpleEditor from './SimpleEditor.svelte';
8
+ import Toggle from './Toggle.svelte';
6
9
  export let resource_type;
7
10
  export let args = {};
8
11
  export let password;
@@ -10,6 +13,8 @@ export let isValid = true;
10
13
  let schema = emptySchema();
11
14
  let notFound = false;
12
15
  async function loadSchema() {
16
+ rawCode = '{}';
17
+ viewJsonSchema = false;
13
18
  try {
14
19
  const rt = await ResourceService.getResourceType({
15
20
  workspace: $workspaceStore,
@@ -19,7 +24,6 @@ async function loadSchema() {
19
24
  notFound = false;
20
25
  }
21
26
  catch (e) {
22
- rawCode = '{}';
23
27
  notFound = true;
24
28
  }
25
29
  }
@@ -40,17 +44,74 @@ function parseJson() {
40
44
  }
41
45
  let error = '';
42
46
  let rawCode = '';
47
+ let viewJsonSchema = false;
48
+ $: rawCode && parseJson();
49
+ function switchTab(asJson) {
50
+ viewJsonSchema = asJson;
51
+ if (asJson) {
52
+ rawCode = JSON.stringify(args, null, 2);
53
+ }
54
+ else {
55
+ parseJson();
56
+ }
57
+ }
58
+ let loading = false;
59
+ async function testConnection() {
60
+ loading = true;
61
+ const job = await JobService.runScriptPreview({
62
+ workspace: $workspaceStore,
63
+ requestBody: {
64
+ language: 'deno',
65
+ content: `
66
+ import { Client } from 'https://deno.land/x/postgres/mod.ts'
67
+ export async function main(args: any) {
68
+ const client = new Client("postgres://" + args.user + ":" + args.password + "@" + args.host + ":" + args.port + "/" + args.dbname + "?sslmode=" + args.sslmode)
69
+ await client.connect()
70
+ return 'Connection successful'
71
+ }
72
+ `,
73
+ args: {
74
+ args
75
+ }
76
+ }
77
+ });
78
+ await new Promise((r) => setTimeout(r, 3000));
79
+ loading = false;
80
+ const testResult = await JobService.getCompletedJob({
81
+ workspace: $workspaceStore,
82
+ id: job
83
+ });
84
+ if (testResult) {
85
+ sendUserToast(testResult.success ? testResult.result : testResult.result?.['error']?.['message'], !testResult.success);
86
+ }
87
+ }
43
88
  </script>
44
89
 
45
- {#if notFound}
90
+ {#if !notFound}
91
+ <div class="w-full flex gap-4 flex-row-reverse">
92
+ <Toggle
93
+ on:change={(e) => switchTab(e.detail)}
94
+ options={{
95
+ right: 'As JSON'
96
+ }}
97
+ />
98
+ {#if resource_type == 'postgresql'}
99
+ <Button size="sm" on:click={testConnection}
100
+ >{#if loading}<Loader2 class="animate-spin mr-2" />{/if} Test connection</Button
101
+ >
102
+ {/if}
103
+ </div>
104
+ {:else}
46
105
  <p class="italic text-gray-500 text-xs mb-4"
47
106
  >No corresponding resource type found in your workspace for {resource_type}. Define the value in
48
107
  JSON directly</p
49
108
  >
109
+ {/if}
110
+ {#if notFound || viewJsonSchema}
50
111
  {#if !emptyString(error)}<span class="text-red-400 text-xs mb-1 flex flex-row-reverse"
51
112
  >{error}</span
52
113
  >{:else}<div class="py-2" />{/if}
53
114
  <SimpleEditor autoHeight lang="json" bind:code={rawCode} fixedOverflowWidgets={false} />
54
115
  {:else}
55
- <SchemaForm {password} isValid {schema} bind:args />
116
+ <SchemaForm noDelete {password} isValid {schema} bind:args />
56
117
  {/if}
@@ -34,6 +34,14 @@ const apiTokenApps = {
34
34
  supabase: {
35
35
  img: '/supabase_connect.png',
36
36
  instructions: ['Go to the API Settings of your app to find the project URL and key']
37
+ },
38
+ square: {
39
+ img: '/square_connect.gif',
40
+ instructions: [
41
+ 'Go to <a href="https://developer.squareup.com/apps" target="_blank" rel=”noopener noreferrer”>https://developer.squareup.com/apps</a>',
42
+ 'In the left pane, choose Credentials',
43
+ 'At the top of the page, choose Production mode for a production access token or Sandbox mode for a Sandbox access token.'
44
+ ]
37
45
  }
38
46
  };
39
47
  </script>
@@ -52,6 +60,7 @@ import DrawerContent from './common/drawer/DrawerContent.svelte';
52
60
  import ApiConnectForm from './ApiConnectForm.svelte';
53
61
  import SearchItems from './SearchItems.svelte';
54
62
  import autosize from 'svelte-autosize';
63
+ import WhitelistIp from './WhitelistIp.svelte';
55
64
  export let newPageOAuth = false;
56
65
  let filter = '';
57
66
  let manual = false;
@@ -63,7 +72,7 @@ let args = {};
63
72
  $: key =
64
73
  apiTokenApps[resource_type]?.key ??
65
74
  (args != undefined
66
- ? Object.keys(args).filter((x) => ['token', 'password', 'api_key'].includes(x))[0]
75
+ ? Object.keys(args).filter((x) => ['token', 'password', 'api_key', 'key'].includes(x))[0]
67
76
  : undefined);
68
77
  let scopes = [];
69
78
  let extra_params = [];
@@ -126,6 +135,7 @@ async function loadResources() {
126
135
  async function next() {
127
136
  if (step == 1 && manual) {
128
137
  step += 1;
138
+ args = {};
129
139
  }
130
140
  else if (step == 1 && !manual) {
131
141
  const url = new URL(`/api/oauth/connect/${resource_type}`, $page.url.origin);
@@ -220,6 +230,7 @@ $: disabled =
220
230
  args['token'] == '' &&
221
231
  args['password'] == '' &&
222
232
  args['api_key'] == '' &&
233
+ args['key'] == '' &&
223
234
  key != undefined) ||
224
235
  (step == 3 && pathError != '') ||
225
236
  !isValid;
@@ -355,12 +366,9 @@ let filteredConnectsManual = [];
355
366
  bind:error={pathError}
356
367
  bind:path
357
368
  initialPath=""
358
- namePlaceholder="my_{resource_type}"
369
+ namePlaceholder={resource_type}
359
370
  kind="resource"
360
371
  />
361
- <h2 class="mt-4 mb-2">Description</h2>
362
-
363
- <textarea type="text" autocomplete="off" use:autosize bind:value={description} />
364
372
 
365
373
  {#if apiTokenApps[resource_type]}
366
374
  <h2 class="mt-4 mb-2">Instructions</h2>
@@ -374,20 +382,28 @@ let filteredConnectsManual = [];
374
382
  </ol>
375
383
  </div>
376
384
  {#if apiTokenApps[resource_type].img}
377
- <div class="mt-4 w-full">
378
- <img class="max-h-96 m-auto" alt="connect" src={apiTokenApps[resource_type].img} />
385
+ <div class="mt-4 w-full overflow-hidden">
386
+ <img class="m-auto max-h-60" alt="connect" src={apiTokenApps[resource_type].img} />
379
387
  </div>
380
388
  {/if}
381
389
  {/if}
390
+ {#if resource_type == 'postgresql' || resource_type == 'mysql' || resource_type == 'mongodb'}
391
+ <WhitelistIp />
392
+ {/if}
382
393
 
383
- <h2 class="mt-8">Value</h2>
394
+ <h2 class="mt-4">Value</h2>
384
395
  <div class="mt-4">
385
- <ApiConnectForm password={key ?? ''} {resource_type} bind:args bind:isValid />
396
+ {#key resource_type}
397
+ <ApiConnectForm password={key ?? ''} {resource_type} bind:args bind:isValid />
398
+ {/key}
386
399
  </div>
400
+
401
+ <h2 class="mt-4 mb-2">Description</h2>
402
+ <textarea type="text" autocomplete="off" use:autosize bind:value={description} />
387
403
  {:else}
388
404
  <Path
389
405
  initialPath=""
390
- namePlaceholder="my_{resource_type}"
406
+ namePlaceholder={resource_type}
391
407
  bind:error={pathError}
392
408
  bind:path
393
409
  kind="resource"
@@ -141,7 +141,7 @@ $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncod
141
141
  <FieldHeader {label} {required} {type} {contentEncoding} {format} {itemsType} />
142
142
  {/if}
143
143
  {#if editableSchema}
144
- <div class="my-1 text-xs border-solid border border-gray-400 rounded p-2">
144
+ <div class="p-2 my-1 text-xs border-solid border border-gray-400">
145
145
  <span
146
146
  class="underline"
147
147
  on:click={() => {
@@ -0,0 +1,49 @@
1
+ <script>import { page } from '$app/stores';
2
+ import { userWorkspaces, workspaceStore } from '../stores';
3
+ import { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';
4
+ import Icon from 'svelte-awesome';
5
+ import { slide } from 'svelte/transition';
6
+ import InlineCodeCopy from './InlineCodeCopy.svelte';
7
+ $: opened = false;
8
+ $: workspace = $userWorkspaces.find((e) => e.id === $workspaceStore);
9
+ $: workspaceName = workspace?.name;
10
+ $: workspaceId = workspace?.id;
11
+ $: url = `${$page.url.protocol}//${$page.url.hostname}/`;
12
+ </script>
13
+
14
+ <div class="text-sm mt-2 flex">
15
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
16
+ <span
17
+ class="underline mr-4"
18
+ on:click={() => {
19
+ opened = !opened
20
+ }}
21
+ >
22
+ CLI quick setup
23
+ <Icon class="ml-2" data={opened ? faChevronUp : faChevronDown} scale={0.7} />
24
+ </span>
25
+ </div>
26
+
27
+ {#if opened}
28
+ <div
29
+ transition:slide|local
30
+ class="bg-gray-100 border-l-4 border-gray-600 text-gray-700 p-4 m-4"
31
+ role="alert"
32
+ id="dynamic-input-help-box"
33
+ >
34
+ <ul class="pl-0 list-decimal list-inside">
35
+ <li
36
+ >Install the latest wmill CLI from deno.land: <InlineCodeCopy
37
+ content={'deno install --unstable -A https://deno.land/x/wmill/main.ts'}
38
+ /></li
39
+ >
40
+ <li
41
+ >Setup the wmill cli for this workspace & remote: <InlineCodeCopy
42
+ content={`wmill workspace add ${workspaceName} ${workspaceId} ${url}`}
43
+ /></li
44
+ >
45
+ <li>Follow the prompts in your terminal</li>
46
+ <li>Use the run command above!</li>
47
+ </ul>
48
+ </div>
49
+ {/if}
@@ -0,0 +1,14 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: Record<string, never>;
4
+ events: {
5
+ [evt: string]: CustomEvent<any>;
6
+ };
7
+ slots: {};
8
+ };
9
+ export type CliHelpBoxProps = typeof __propDef.props;
10
+ export type CliHelpBoxEvents = typeof __propDef.events;
11
+ export type CliHelpBoxSlots = typeof __propDef.slots;
12
+ export default class CliHelpBox extends SvelteComponentTyped<CliHelpBoxProps, CliHelpBoxEvents, CliHelpBoxSlots> {
13
+ }
14
+ export {};
@@ -1,13 +1,16 @@
1
1
  <script>import { Highlight } from 'svelte-highlight';
2
2
  import { json } from 'svelte-highlight/languages';
3
3
  import TableCustom from './TableCustom.svelte';
4
- import { truncate } from '../utils';
5
- import { Button } from './common';
4
+ import { copyToClipboard, truncate } from '../utils';
5
+ import { Button, Drawer, DrawerContent } from './common';
6
6
  import autosize from 'svelte-autosize';
7
+ import { ClipboardCopy } from 'lucide-svelte';
7
8
  export let result;
9
+ export let requireHtmlApproval = false;
8
10
  let resultKind;
9
11
  $: resultKind = inferResultKind(result);
10
12
  let forceJson = false;
13
+ let enableHtml = false;
11
14
  function isRectangularArray(obj) {
12
15
  if (!Array.isArray(obj) || obj.length == 0) {
13
16
  return false;
@@ -35,9 +38,15 @@ function inferResultKind(result) {
35
38
  else if (keys.map((k) => Array.isArray(result[k])).reduce((a, b) => a && b)) {
36
39
  return 'table-col';
37
40
  }
41
+ else if (keys.length == 1 && keys[0] == 'html') {
42
+ return 'html';
43
+ }
38
44
  else if (keys.length == 1 && keys[0] == 'png') {
39
45
  return 'png';
40
46
  }
47
+ else if (keys.length == 1 && keys[0] == 'svg') {
48
+ return 'svg';
49
+ }
41
50
  else if (keys.length == 1 && keys[0] == 'jpeg') {
42
51
  return 'jpeg';
43
52
  }
@@ -47,6 +56,9 @@ function inferResultKind(result) {
47
56
  else if (keys.length == 1 && keys[0] == 'error') {
48
57
  return 'error';
49
58
  }
59
+ else if (keys.length === 2 && keys.includes('file') && keys.includes('filename')) {
60
+ return 'filename';
61
+ }
50
62
  else if (keys.length == 3 &&
51
63
  keys.includes('resume') &&
52
64
  keys.includes('cancel') &&
@@ -59,16 +71,35 @@ function inferResultKind(result) {
59
71
  return 'json';
60
72
  }
61
73
  let payload = '';
74
+ let jsonViewer;
62
75
  </script>
63
76
 
77
+ <Drawer bind:this={jsonViewer} size="900px">
78
+ <DrawerContent title="Expanded Result" on:close={jsonViewer.closeDrawer}>
79
+ <svelte:fragment slot="actions">
80
+ <Button
81
+ on:click={() => copyToClipboard(JSON.stringify(result, null, 4))}
82
+ color="light"
83
+ size="xs"
84
+ >
85
+ <div class="flex gap-2 items-center">Copy to clipboard <ClipboardCopy /> </div>
86
+ </Button>
87
+ </svelte:fragment>
88
+ <Highlight language={json} code={JSON.stringify(result, null, 4).replace(/\\n/g, '\n')} />
89
+ </DrawerContent>
90
+ </Drawer>
91
+
64
92
  <div class="inline-highlight">
65
93
  {#if result != undefined}
66
94
  {#if resultKind && resultKind != 'json'}
67
95
  <div class="mb-2 text-gray-500 text-sm bg-gray-50/20">
68
- as JSON&nbsp;<input type="checkbox" bind:checked={forceJson} /></div
96
+ as JSON&nbsp;<input class="windmillapp" type="checkbox" bind:checked={forceJson} /></div
69
97
  >{/if}{#if typeof result == 'object' && Object.keys(result).length > 0}<div
70
- class="mb-2 text-sm text-gray-700"
71
- >The result keys are: <b>{truncate(Object.keys(result).join(', '), 50)}</b></div
98
+ class="mb-2 min-w-[400px] text-sm text-gray-700 relative"
99
+ >The result keys are: <b>{truncate(Object.keys(result).join(', '), 50)}</b>
100
+ <div class="text-gray-500 text-sm absolute top-0 right-2">
101
+ <button on:click={jsonViewer.openDrawer}>Expand JSON</button>
102
+ </div></div
72
103
  >{/if}{#if !forceJson && resultKind == 'table-col'}<div
73
104
  class="grid grid-flow-col-dense border border-gray-200 rounded-md "
74
105
  >
@@ -104,6 +135,34 @@ let payload = '';
104
135
  </tbody>
105
136
  </TableCustom>
106
137
  </div>
138
+ {:else if !forceJson && resultKind == 'html'}
139
+ <div class="h-full">
140
+ {#if !requireHtmlApproval || enableHtml}
141
+ {@html result.html}
142
+ {:else}
143
+ <div class="font-main text-sm">
144
+ <div class="flex flex-col">
145
+ <div class="bg-red-400 py-1 rounded-t text-white font-bold text-center">
146
+ Warning
147
+ </div>
148
+ <p
149
+ class="text-gray-600 mb-2 text-left border-2 !border-t-0 rounded-b border-red-400 overflow-auto p-1"
150
+ >Rendering HTML can expose you to <a
151
+ href="https://owasp.org/www-community/attacks/xss/"
152
+ target="_blank"
153
+ rel="noreferrer"
154
+ class="hover:underline">XSS attacks</a
155
+ >. Only enable it if you trust the author of the script.
156
+ </p>
157
+ </div>
158
+ <div class="center-center">
159
+ <Button size="sm" color="dark" on:click={() => (enableHtml = true)}>
160
+ Enable HTML rendering
161
+ </Button>
162
+ </div>
163
+ </div>
164
+ {/if}
165
+ </div>
107
166
  {:else if !forceJson && resultKind == 'png'}
108
167
  <div class="h-full"
109
168
  ><img alt="png rendered" class="w-auto h-full" src="data:image/png;base64,{result.png}" />
@@ -116,6 +175,11 @@ let payload = '';
116
175
  src="data:image/jpeg;base64,{result.jpeg}"
117
176
  />
118
177
  </div>
178
+ {:else if !forceJson && resultKind == 'svg'}
179
+ <div
180
+ ><a download="windmill.svg" href="data:text/plain;base64,{btoa(result.svg)}">Download</a>
181
+ </div>
182
+ <div class="h-full overflow-auto">{@html result.svg} </div>
119
183
  {:else if !forceJson && resultKind == 'gif'}
120
184
  <div class="h-full"
121
185
  ><img alt="gif rendered" class="w-auto h-full" src="data:image/gif;base64,{result.gif}" />
@@ -126,8 +190,14 @@ let payload = '';
126
190
  >Download</a
127
191
  >
128
192
  </div>
193
+ {:else if !forceJson && resultKind === 'filename'}
194
+ <div>
195
+ <a download={result.filename} href="data:application/octet-stream;base64,{result.file}">
196
+ Download
197
+ </a>
198
+ </div>
129
199
  {:else if !forceJson && resultKind == 'error'}<div>
130
- <span class="text-red-500 font-semibold text-sm"
200
+ <span class="text-red-500 font-semibold text-sm whitespace-pre-wrap"
131
201
  >{result.error.name}: {result.error.message}</span
132
202
  >
133
203
  <pre class="text-sm whitespace-pre-wrap text-gray-900">{result.error.stack ?? ''}</pre>
@@ -157,10 +227,8 @@ let payload = '';
157
227
  ><a rel="noreferrer" target="_blank" href={result['approvalPage']}>Approval Page</a></div
158
228
  >
159
229
  </div>
160
- {:else}<Highlight
161
- language={json}
162
- code={JSON.stringify(result, null, 4).replace(/\\n/g, '\n')}
163
- />
230
+ {:else}
231
+ <Highlight language={json} code={JSON.stringify(result, null, 4).replace(/\\n/g, '\n')} />
164
232
  {/if}
165
233
  {:else}
166
234
  <div class="text-gray-500 text-sm">No result</div>
@@ -2,6 +2,7 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  result: any;
5
+ requireHtmlApproval?: boolean | undefined;
5
6
  };
6
7
  events: {
7
8
  [evt: string]: CustomEvent<any>;
@@ -102,8 +102,16 @@ export function insertAtLine(code, line) {
102
102
  }
103
103
  export function setCode(ncode) {
104
104
  code = ncode;
105
- if (editor) {
106
- editor.setValue(ncode);
105
+ if (editor?.getModel()) {
106
+ // editor.setValue(ncode)
107
+ editor.pushUndoStop();
108
+ editor.executeEdits('set', [
109
+ {
110
+ range: editor.getModel().getFullModelRange(),
111
+ text: ncode
112
+ }
113
+ ]);
114
+ editor.pushUndoStop();
107
115
  }
108
116
  }
109
117
  export function format() {
@@ -246,8 +254,9 @@ export async function reloadWebsocket() {
246
254
  console.error(`connection to ${name} language server failed`);
247
255
  }
248
256
  }
257
+ const wsProtocol = $page.url.protocol == 'https:' ? 'wss' : 'ws';
249
258
  if (lang == 'typescript') {
250
- await connectToLanguageServer(`wss://${$page.url.host}/ws/deno`, 'deno', {
259
+ await connectToLanguageServer(`${wsProtocol}://${$page.url.host}/ws/deno`, 'deno', {
251
260
  certificateStores: null,
252
261
  enablePaths: [],
253
262
  config: null,
@@ -279,7 +288,7 @@ export async function reloadWebsocket() {
279
288
  });
280
289
  }
281
290
  else if (lang === 'python') {
282
- await connectToLanguageServer(`wss://${$page.url.host}/ws/pyright`, 'pyright', {
291
+ await connectToLanguageServer(`${wsProtocol}://${$page.url.host}/ws/pyright`, 'pyright', {
283
292
  executionEnvironments: [
284
293
  {
285
294
  root: '/tmp/pyright',
@@ -289,7 +298,7 @@ export async function reloadWebsocket() {
289
298
  }
290
299
  ]
291
300
  });
292
- connectToLanguageServer(`wss://${$page.url.host}/ws/black`, 'black', {
301
+ connectToLanguageServer(`${wsProtocol}://${$page.url.host}/ws/black`, 'black', {
293
302
  formatters: {
294
303
  black: {
295
304
  command: 'black',
@@ -302,7 +311,7 @@ export async function reloadWebsocket() {
302
311
  });
303
312
  }
304
313
  else if (lang === 'go') {
305
- connectToLanguageServer(`wss://${$page.url.host}/ws/go`, 'go', {
314
+ connectToLanguageServer(`${wsProtocol}://${$page.url.host}/ws/go`, 'go', {
306
315
  'build.allowImplicitNetworkAccess': true
307
316
  });
308
317
  }
@@ -355,7 +364,8 @@ async function loadMonaco() {
355
364
  const model = meditor.createModel(code, lang, mUri.parse(uri));
356
365
  model.updateOptions(updateOptions);
357
366
  editor = meditor.create(divEl, {
358
- ...editorConfig(model, code, lang, automaticLayout, fixedOverflowWidgets)
367
+ ...editorConfig(model, code, lang, automaticLayout, fixedOverflowWidgets),
368
+ tabSize: lang == 'python' ? 4 : 2
359
369
  });
360
370
  let timeoutModel = undefined;
361
371
  editor.onDidChangeModelContent((event) => {