windmill-components 1.434.1 → 1.444.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/package/components/ArgInput.svelte +12 -16
  2. package/package/components/ArgInput.svelte.d.ts +1 -0
  3. package/package/components/AssignableTags.svelte +3 -1
  4. package/package/components/AssignableTags.svelte.d.ts +1 -0
  5. package/package/components/AuthSettings.svelte +248 -0
  6. package/package/components/AuthSettings.svelte.d.ts +19 -0
  7. package/package/components/AutoscalingConfigEditor.svelte +2 -2
  8. package/package/components/CronInput.svelte +2 -2
  9. package/package/components/DeployWorkspace.svelte +1 -1
  10. package/package/components/Description.svelte +9 -0
  11. package/package/components/Description.svelte.d.ts +18 -0
  12. package/package/components/Dev.svelte +18 -3
  13. package/package/components/DisplayResult.svelte +7 -4
  14. package/package/components/DisplayResult.svelte.d.ts +1 -0
  15. package/package/components/DropdownV2.svelte +2 -1
  16. package/package/components/DropdownV2.svelte.d.ts +1 -0
  17. package/package/components/EditableSchemaForm.svelte +2 -2
  18. package/package/components/Editor.svelte +9 -6
  19. package/package/components/Editor.svelte.d.ts +4 -2
  20. package/package/components/EditorBar.svelte +51 -6
  21. package/package/components/ErrorOrRecoveryHandler.svelte +4 -3
  22. package/package/components/ExecutionDuration.svelte +2 -1
  23. package/package/components/FieldHeader.svelte +9 -1
  24. package/package/components/FieldHeader.svelte.d.ts +1 -0
  25. package/package/components/FlowBuilder.svelte +16 -3
  26. package/package/components/FlowGraphViewer.svelte +2 -0
  27. package/package/components/FlowPreviewContent.svelte +6 -15
  28. package/package/components/FlowStatusViewerInner.svelte +14 -10
  29. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -0
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InputTransformSchemaForm.svelte +1 -1
  32. package/package/components/InstanceSetting.svelte +774 -0
  33. package/package/components/InstanceSetting.svelte.d.ts +27 -0
  34. package/package/components/InstanceSettings.svelte +68 -1005
  35. package/package/components/InstanceSettings.svelte.d.ts +0 -4
  36. package/package/components/Label.svelte +16 -6
  37. package/package/components/Label.svelte.d.ts +3 -0
  38. package/package/components/Login.svelte +17 -9
  39. package/package/components/OAuthSetting.svelte +4 -3
  40. package/package/components/OauthExtraParams.svelte +1 -1
  41. package/package/components/OauthScopes.svelte +2 -2
  42. package/package/components/ObjectStoreConfigSettings.svelte +141 -128
  43. package/package/components/QueueMetricsDrawer.svelte +5 -5
  44. package/package/components/ResourceEditor.svelte +4 -0
  45. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  46. package/package/components/ResourceEditorDrawer.svelte +15 -3
  47. package/package/components/ResourceEditorDrawer.svelte.d.ts +2 -2
  48. package/package/components/ResourcePicker.svelte +16 -5
  49. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  50. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  51. package/package/components/RunPageSchedules.svelte +15 -10
  52. package/package/components/SavedInputs.svelte +1 -1
  53. package/package/components/ScheduleEditorInner.svelte +58 -27
  54. package/package/components/SchemaForm.svelte +7 -5
  55. package/package/components/SchemaForm.svelte.d.ts +1 -0
  56. package/package/components/ScriptBuilder.svelte +58 -5
  57. package/package/components/ScriptEditor.svelte +78 -40
  58. package/package/components/ScriptEditor.svelte.d.ts +17 -2
  59. package/package/components/ScriptPicker.svelte +41 -34
  60. package/package/components/ScriptPicker.svelte.d.ts +1 -0
  61. package/package/components/ScriptVersionHistory.svelte +1 -1
  62. package/package/components/Section.svelte +38 -35
  63. package/package/components/Section.svelte.d.ts +2 -0
  64. package/package/components/ServiceLogsInner.svelte +1 -1
  65. package/package/components/SimpleEditor.svelte +2 -0
  66. package/package/components/Subsection.svelte +52 -0
  67. package/package/components/Subsection.svelte.d.ts +27 -0
  68. package/package/components/SuperadminSettings.svelte +23 -13
  69. package/package/components/TemplateEditor.svelte +4 -3
  70. package/package/components/TestConnection.svelte +5 -0
  71. package/package/components/TestJobLoader.svelte +2 -1
  72. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  73. package/package/components/Toggle.svelte +2 -4
  74. package/package/components/UserSettings.svelte +1 -1
  75. package/package/components/WorkerGroup.svelte +4 -4
  76. package/package/components/WorkerTagPicker.svelte +4 -2
  77. package/package/components/WorkerTagPicker.svelte.d.ts +1 -0
  78. package/package/components/WorkerTagSelect.svelte +2 -0
  79. package/package/components/WorkerTagSelect.svelte.d.ts +1 -0
  80. package/package/components/apps/components/display/AppDisplayComponent.svelte +2 -1
  81. package/package/components/apps/components/display/dbtable/utils.js +26 -1
  82. package/package/components/apps/components/helpers/RunnableComponent.svelte +8 -2
  83. package/package/components/apps/components/inputs/AppDateInput.svelte +7 -1
  84. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -1
  85. package/package/components/apps/editor/AppEditor.svelte +5 -34
  86. package/package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  87. package/package/components/apps/editor/AppEditorBottomPanel.svelte +4 -7
  88. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +1 -3
  89. package/package/components/apps/editor/AppEditorHeader.svelte +148 -58
  90. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
  92. package/package/components/apps/editor/RunnableJobPanel.svelte +6 -2
  93. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +1 -0
  94. package/package/components/apps/editor/appUtils.d.ts +1 -0
  95. package/package/components/apps/editor/appUtils.js +17 -0
  96. package/package/components/apps/editor/component/components.d.ts +82 -81
  97. package/package/components/apps/editor/component/components.js +4 -3
  98. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +1 -1
  99. package/package/components/apps/editor/componentsPanel/GroupList.svelte +12 -2
  100. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte +1 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -56
  103. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +1 -1
  104. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +3 -2
  105. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +1 -1
  106. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +16 -9
  107. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte.d.ts +1 -0
  108. package/package/components/apps/inputType.d.ts +2 -2
  109. package/package/components/apps/types.d.ts +2 -0
  110. package/package/components/common/alert/ConnectionIndicator.svelte +30 -0
  111. package/package/components/common/alert/ConnectionIndicator.svelte.d.ts +20 -0
  112. package/package/components/common/alert/Notification.svelte +15 -0
  113. package/package/components/common/alert/Notification.svelte.d.ts +17 -0
  114. package/package/components/common/button/AnimatedButton.svelte +1 -1
  115. package/package/components/common/button/RefreshButton.svelte +30 -0
  116. package/package/components/common/button/RefreshButton.svelte.d.ts +18 -0
  117. package/package/components/common/fileDownload/FileDownload.svelte +4 -3
  118. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +1 -0
  119. package/package/components/common/fileUpload/FileUpload.svelte +3 -3
  120. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  121. package/package/components/common/layout/List.svelte +35 -0
  122. package/package/components/common/layout/List.svelte.d.ts +21 -0
  123. package/package/components/common/layout/ListElement.svelte +3 -0
  124. package/package/components/common/layout/ListElement.svelte.d.ts +27 -0
  125. package/package/components/common/menu/MenuV2.svelte +3 -2
  126. package/package/components/common/menu/MenuV2.svelte.d.ts +1 -0
  127. package/package/components/common/modal/Modal.svelte +6 -4
  128. package/package/components/common/modal/Modal.svelte.d.ts +1 -0
  129. package/package/components/common/modal/Modal2.svelte +101 -0
  130. package/package/components/common/modal/Modal2.svelte.d.ts +28 -0
  131. package/package/components/common/popup/Popup.svelte +5 -1
  132. package/package/components/common/popup/Popup.svelte.d.ts +2 -0
  133. package/package/components/common/toggleButton-v2/ToggleButton.svelte +1 -1
  134. package/package/components/copilot/FlowCopilotStatus.svelte +1 -1
  135. package/package/components/details/ClipboardPanel.svelte +12 -2
  136. package/package/components/details/ClipboardPanel.svelte.d.ts +2 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +24 -0
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +19 -0
  139. package/package/components/details/DetailPageLayout.svelte +3 -1
  140. package/package/components/details/EmailTriggerConfigSection.svelte +119 -0
  141. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +38 -0
  142. package/package/components/details/EmailTriggerPanel.svelte +27 -74
  143. package/package/components/details/EmailTriggerPanel.svelte.d.ts +7 -1
  144. package/package/components/flows/FlowEditor.svelte +1 -1
  145. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  146. package/package/components/flows/FlowHistoryInner.svelte +1 -1
  147. package/package/components/flows/content/BranchPredicateEditor.svelte +1 -1
  148. package/package/components/flows/content/FlowEditorPanel.svelte +30 -1
  149. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -0
  150. package/package/components/flows/content/FlowInput.svelte +2 -15
  151. package/package/components/flows/content/FlowInputs.svelte +1 -1
  152. package/package/components/flows/content/FlowInputsQuick.svelte +2 -2
  153. package/package/components/flows/content/FlowModuleComponent.svelte +9 -5
  154. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  155. package/package/components/flows/content/FlowModuleHeader.svelte +4 -1
  156. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  157. package/package/components/flows/content/FlowPathViewer.svelte +3 -1
  158. package/package/components/flows/content/FlowRetries.svelte +32 -5
  159. package/package/components/flows/content/FlowSettings.svelte +56 -48
  160. package/package/components/flows/flowStateUtils.d.ts +10 -1
  161. package/package/components/flows/flowStateUtils.js +23 -0
  162. package/package/components/flows/map/FlowModuleSchemaMap.svelte +9 -19
  163. package/package/components/flows/map/InsertModuleButton.svelte +3 -3
  164. package/package/components/flows/map/VirtualItem.svelte +29 -1
  165. package/package/components/flows/map/VirtualItem.svelte.d.ts +2 -0
  166. package/package/components/flows/pickers/TopLevelNode.svelte +2 -2
  167. package/package/components/flows/previousResults.js +8 -2
  168. package/package/components/flows/types.d.ts +1 -0
  169. package/package/components/graph/FlowGraphV2.svelte +5 -1
  170. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  171. package/package/components/graph/renderers/nodes/InputNode.svelte +2 -0
  172. package/package/components/graph/renderers/nodes/InputNode.svelte.d.ts +2 -0
  173. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  174. package/package/components/icons/CSharpIcon.svelte +14 -0
  175. package/package/components/icons/CSharpIcon.svelte.d.ts +25 -0
  176. package/package/components/icons/GitIcon.svelte +5 -2
  177. package/package/components/icons/XeroIcon.svelte +24 -0
  178. package/package/components/icons/XeroIcon.svelte.d.ts +17 -0
  179. package/package/components/icons/index.d.ts +3 -1
  180. package/package/components/icons/index.js +4 -2
  181. package/package/components/instanceSettings.d.ts +3 -1
  182. package/package/components/instanceSettings.js +77 -69
  183. package/package/components/meltComponents/Popover.svelte +82 -0
  184. package/package/components/meltComponents/Popover.svelte.d.ts +21 -0
  185. package/package/components/propertyPicker/PropPicker.svelte +5 -3
  186. package/package/components/runs/JobLoader.svelte +5 -2
  187. package/package/components/runs/JobPreview.svelte +5 -5
  188. package/package/components/runs/RunRow.svelte +3 -4
  189. package/package/components/runs/RunsFilter.svelte +4 -4
  190. package/package/components/schema/EditableSchemaDrawer.svelte +4 -4
  191. package/package/components/schema/PropertyEditor.svelte +1 -1
  192. package/package/components/schema/SchemaFormDND.svelte +2 -0
  193. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  194. package/package/components/scriptEditor/LogPanel.svelte +176 -164
  195. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  196. package/package/components/search/GlobalSearchModal.svelte +3 -3
  197. package/package/components/sidebar/CriticalAlertModal.svelte +155 -9
  198. package/package/components/sidebar/CriticalAlertModalInner.svelte +65 -212
  199. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +2 -4
  200. package/package/components/sidebar/CriticalAlertTable.svelte +142 -0
  201. package/package/components/sidebar/CriticalAlertTable.svelte.d.ts +25 -0
  202. package/package/components/sidebar/OperatorMenu.svelte +30 -8
  203. package/package/components/sidebar/SideBarNotification.svelte +3 -6
  204. package/package/components/sidebar/SidebarContent.svelte +5 -5
  205. package/package/components/sidebar/WorkspaceMenu.svelte +9 -5
  206. package/package/components/sidebar/WorkspaceMenu.svelte.d.ts +1 -0
  207. package/package/components/sidebar/changelogs.js +82 -17
  208. package/package/components/splitPanes/SplitPanesOrColumnOnMobile.svelte +21 -21
  209. package/package/components/table/AutoDataTable.svelte +1 -1
  210. package/package/components/table/Cell.svelte +5 -3
  211. package/package/components/table/Cell.svelte.d.ts +1 -0
  212. package/package/components/table/DataTable.svelte +65 -58
  213. package/package/components/table/DataTable.svelte.d.ts +2 -0
  214. package/package/components/table/Head.svelte +1 -1
  215. package/package/components/table/Row.svelte +3 -1
  216. package/package/components/table/Row.svelte.d.ts +1 -0
  217. package/package/components/toast.js +3 -1
  218. package/package/components/triggers/CaptureButton.svelte +77 -0
  219. package/package/components/triggers/CaptureButton.svelte.d.ts +16 -0
  220. package/package/components/triggers/CaptureIcon.svelte +17 -0
  221. package/package/components/triggers/CaptureIcon.svelte.d.ts +23 -0
  222. package/package/components/triggers/CaptureSection.svelte +76 -0
  223. package/package/components/triggers/CaptureSection.svelte.d.ts +42 -0
  224. package/package/components/triggers/CaptureTable.svelte +224 -0
  225. package/package/components/triggers/CaptureTable.svelte.d.ts +43 -0
  226. package/package/components/triggers/CaptureWrapper.svelte +237 -0
  227. package/package/components/triggers/CaptureWrapper.svelte.d.ts +35 -0
  228. package/package/components/triggers/KafkaTriggerEditor.svelte +2 -2
  229. package/package/components/triggers/KafkaTriggerEditor.svelte.d.ts +2 -2
  230. package/package/components/triggers/KafkaTriggerEditorInner.svelte +47 -119
  231. package/package/components/triggers/KafkaTriggerEditorInner.svelte.d.ts +2 -2
  232. package/package/components/triggers/KafkaTriggersConfigSection.svelte +215 -0
  233. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +36 -0
  234. package/package/components/triggers/KafkaTriggersPanel.svelte +73 -45
  235. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +6 -0
  236. package/package/components/triggers/RouteEditor.svelte +2 -2
  237. package/package/components/triggers/RouteEditor.svelte.d.ts +2 -2
  238. package/package/components/triggers/RouteEditorConfigSection.svelte +162 -0
  239. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +43 -0
  240. package/package/components/triggers/RouteEditorInner.svelte +98 -163
  241. package/package/components/triggers/RouteEditorInner.svelte.d.ts +2 -2
  242. package/package/components/triggers/RoutesPanel.svelte +69 -54
  243. package/package/components/triggers/RoutesPanel.svelte.d.ts +5 -0
  244. package/package/components/triggers/ScheduledPollPanel.svelte +5 -9
  245. package/package/components/triggers/TriggersEditor.svelte +119 -89
  246. package/package/components/triggers/TriggersEditor.svelte.d.ts +7 -0
  247. package/package/components/triggers/TriggersEditorSection.svelte +109 -0
  248. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +29 -0
  249. package/package/components/triggers/TriggersWrapper.svelte +60 -0
  250. package/package/components/triggers/TriggersWrapper.svelte.d.ts +21 -0
  251. package/package/components/triggers/WebhooksConfigSection.svelte +382 -0
  252. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +39 -0
  253. package/package/components/triggers/WebhooksPanel.svelte +32 -331
  254. package/package/components/triggers/WebhooksPanel.svelte.d.ts +7 -1
  255. package/package/components/triggers/WebsocketEditorConfigSection.svelte +176 -0
  256. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +37 -0
  257. package/package/components/triggers/WebsocketTriggerEditor.svelte +2 -2
  258. package/package/components/triggers/WebsocketTriggerEditor.svelte.d.ts +2 -2
  259. package/package/components/triggers/WebsocketTriggerEditorInner.svelte +29 -150
  260. package/package/components/triggers/WebsocketTriggerEditorInner.svelte.d.ts +2 -2
  261. package/package/components/triggers/WebsocketTriggersPanel.svelte +70 -45
  262. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +6 -0
  263. package/package/components/triggers.d.ts +6 -2
  264. package/package/components/triggers.js +16 -0
  265. package/package/components/wizards/AgGridWizard.svelte +4 -4
  266. package/package/editorUtils.d.ts +2 -0
  267. package/package/editorUtils.js +6 -3
  268. package/package/gen/core/OpenAPI.js +1 -1
  269. package/package/gen/schemas.gen.d.ts +17 -8
  270. package/package/gen/schemas.gen.js +17 -8
  271. package/package/gen/services.gen.d.ts +55 -5
  272. package/package/gen/services.gen.js +108 -5
  273. package/package/gen/types.gen.d.ts +180 -13
  274. package/package/hubPaths.json +6 -3
  275. package/package/infer.js +9 -0
  276. package/package/script_helpers.d.ts +5 -0
  277. package/package/script_helpers.js +68 -8
  278. package/package/scripts.d.ts +1 -1
  279. package/package/scripts.js +5 -1
  280. package/package/stores.d.ts +1 -0
  281. package/package/utils.d.ts +3 -1
  282. package/package/utils.js +20 -4
  283. package/package.json +11 -8
  284. package/package/components/flows/content/CapturePayload.svelte +0 -114
  285. package/package/components/flows/content/CapturePayload.svelte.d.ts +0 -17
@@ -24,6 +24,8 @@ import { setLicense } from '../enterpriseUtils';
24
24
  import Tabs from './common/tabs/Tabs.svelte';
25
25
  import Tab from './common/tabs/Tab.svelte';
26
26
  import { slide } from 'svelte/transition';
27
+ import CaptureTable from './triggers/CaptureTable.svelte';
28
+ import CaptureButton from './triggers/CaptureButton.svelte';
27
29
  // Exported
28
30
  export let schema = emptySchema();
29
31
  export let code;
@@ -43,6 +45,10 @@ export let noHistory = false;
43
45
  export let saveToWorkspace = false;
44
46
  export let watchChanges = false;
45
47
  export let customUi = {};
48
+ export let args = initialArgs;
49
+ export let selectedTab = 'main';
50
+ export let hasPreprocessor = false;
51
+ export let captureTable = undefined;
46
52
  let jobProgressReset;
47
53
  let websocketAlive = {
48
54
  pyright: false,
@@ -57,8 +63,6 @@ $: watchChanges &&
57
63
  dispatch('change', { code, schema });
58
64
  let width = 1200;
59
65
  let testJobLoader;
60
- // Test args input
61
- let args = initialArgs;
62
66
  let isValid = true;
63
67
  let scriptProgress = undefined;
64
68
  // Test
@@ -99,14 +103,19 @@ async function loadPastTests() {
99
103
  scriptPathExact: path
100
104
  });
101
105
  }
102
- let hasPreprocessor = false;
103
- export async function inferSchema(code, nlang) {
106
+ export async function inferSchema(code, nlang, resetArgs = false) {
104
107
  let nschema = schema ?? emptySchema();
105
108
  try {
106
109
  const result = await inferArgs(nlang ?? lang, code, nschema, selectedTab === 'preprocessor' ? 'preprocessor' : undefined);
107
110
  hasPreprocessor =
108
111
  (selectedTab === 'preprocessor' ? !result?.no_main_func : result?.has_preprocessor) ?? false;
112
+ if (!hasPreprocessor && selectedTab === 'preprocessor') {
113
+ selectedTab = 'main';
114
+ }
109
115
  validCode = true;
116
+ if (resetArgs) {
117
+ args = {};
118
+ }
110
119
  schema = nschema;
111
120
  }
112
121
  catch (e) {
@@ -183,10 +192,10 @@ function collabUrl() {
183
192
  url.search = '';
184
193
  return `${url}?collab=1` + (edit ? '' : `&path=${path}`);
185
194
  }
186
- let selectedTab = 'main';
187
195
  $: showTabs = hasPreprocessor;
188
196
  $: !hasPreprocessor && (selectedTab = 'main');
189
197
  $: selectedTab && inferSchema(code);
198
+ let argsRender = 0;
190
199
  </script>
191
200
 
192
201
  <TestJobLoader
@@ -264,9 +273,10 @@ $: selectedTab && inferSchema(code);
264
273
  <SplitPanesWrapper>
265
274
  <Splitpanes class="!overflow-visible">
266
275
  <Pane size={60} minSize={10} class="!overflow-visible">
267
- <div class="pl-2 h-full !overflow-visible bg-gray-50 dark:bg-[#272D38]">
276
+ <div class="h-full !overflow-visible bg-gray-50 dark:bg-[#272D38]">
268
277
  {#key lang}
269
278
  <Editor
279
+ lineNumbersMinChars={4}
270
280
  folding
271
281
  {path}
272
282
  bind:code
@@ -314,10 +324,15 @@ $: selectedTab && inferSchema(code);
314
324
  <div transition:slide={{ duration: 200 }}>
315
325
  <Tabs bind:selected={selectedTab}>
316
326
  <Tab value="main">Main</Tab>
317
- <Tab value="preprocessor">Preprocessor</Tab>
327
+ {#if hasPreprocessor}
328
+ <div transition:slide={{ duration: 200, axis: 'x' }}>
329
+ <Tab value="preprocessor">Preprocessor</Tab>
330
+ </div>
331
+ {/if}
318
332
  </Tabs>
319
333
  </div>
320
334
  {/if}
335
+
321
336
  <div class="flex justify-center pt-1">
322
337
  {#if testIsLoading}
323
338
  <Button on:click={testJobLoader?.cancelJob} btnClasses="w-full" color="red" size="xs">
@@ -331,48 +346,53 @@ $: selectedTab && inferSchema(code);
331
346
  Cancel
332
347
  </Button>
333
348
  {:else}
334
- <Button
335
- color="dark"
336
- on:click={() => {
337
- runTest()
338
- }}
339
- btnClasses="w-full"
340
- size="xs"
341
- startIcon={{
342
- icon: Play,
343
- classes: 'animate-none'
344
- }}
345
- shortCut={{ Icon: CornerDownLeft, hide: testIsLoading }}
346
- >
347
- {#if testIsLoading}
348
- Running
349
- {:else}
350
- Test
351
- {/if}
352
- </Button>
349
+ <div class="flex flex-row divide-x divide-gray-800 dark:divide-gray-300 items-stretch">
350
+ <Button
351
+ color="dark"
352
+ on:click={() => {
353
+ runTest()
354
+ }}
355
+ btnClasses="w-full rounded-r-none"
356
+ size="xs"
357
+ startIcon={{
358
+ icon: Play,
359
+ classes: 'animate-none'
360
+ }}
361
+ shortCut={{ Icon: CornerDownLeft, hide: testIsLoading }}
362
+ >
363
+ {#if testIsLoading}
364
+ Running
365
+ {:else}
366
+ Test
367
+ {/if}
368
+ </Button>
369
+ <CaptureButton on:openTriggers />
370
+ </div>
353
371
  {/if}
354
372
  </div>
355
373
  <Splitpanes horizontal class="!max-h-[calc(100%-43px)]">
356
374
  <Pane size={33}>
357
375
  <div class="px-2">
358
376
  <div class="break-words relative font-sans">
359
- <SchemaForm
360
- helperScript={{
361
- type: 'inline',
362
- code,
363
- //@ts-ignore
364
- lang
365
- }}
366
- compact
367
- {schema}
368
- bind:args
369
- bind:isValid
370
- showSchemaExplorer
371
- />
377
+ {#key argsRender}
378
+ <SchemaForm
379
+ helperScript={{
380
+ type: 'inline',
381
+ code,
382
+ //@ts-ignore
383
+ lang
384
+ }}
385
+ compact
386
+ {schema}
387
+ bind:args
388
+ bind:isValid
389
+ showSchemaExplorer
390
+ />
391
+ {/key}
372
392
  </div>
373
393
  </div>
374
394
  </Pane>
375
- <Pane size={67}>
395
+ <Pane size={67} class="relative">
376
396
  <LogPanel
377
397
  {lang}
378
398
  previewJob={testJob}
@@ -381,6 +401,7 @@ $: selectedTab && inferSchema(code);
381
401
  {editor}
382
402
  {diffEditor}
383
403
  {args}
404
+ showCaptures={true}
384
405
  >
385
406
  {#if scriptProgress}
386
407
  <!-- Put to the slot in logpanel -->
@@ -391,6 +412,23 @@ $: selectedTab && inferSchema(code);
391
412
  compact={true}
392
413
  />
393
414
  {/if}
415
+ <svelte:fragment slot="capturesTab">
416
+ <div class="h-full p-2">
417
+ <CaptureTable
418
+ bind:this={captureTable}
419
+ captureType="all"
420
+ {hasPreprocessor}
421
+ canHavePreprocessor={lang === 'bun' || lang === 'deno' || lang === 'python3'}
422
+ isFlow={false}
423
+ path={path ?? ''}
424
+ hideCapturesWhenEmpty={false}
425
+ canEdit={true}
426
+ on:applyArgs
427
+ on:updateSchema
428
+ on:addPreprocessor
429
+ />
430
+ </div>
431
+ </svelte:fragment>
394
432
  </LogPanel>
395
433
  </Pane>
396
434
  </Splitpanes>
@@ -4,6 +4,7 @@ import { type Preview } from '../gen';
4
4
  import Editor from './Editor.svelte';
5
5
  import DiffEditor from './DiffEditor.svelte';
6
6
  import type { ScriptEditorWhitelabelCustomUi } from './custom_ui';
7
+ import CaptureTable from './triggers/CaptureTable.svelte';
7
8
  declare const __propDef: {
8
9
  props: {
9
10
  schema?: Schema | any;
@@ -24,13 +25,27 @@ declare const __propDef: {
24
25
  saveToWorkspace?: boolean | undefined;
25
26
  watchChanges?: boolean | undefined;
26
27
  customUi?: ScriptEditorWhitelabelCustomUi | undefined;
27
- inferSchema?: ((code: string, nlang?: SupportedLanguage) => Promise<void>) | undefined;
28
+ args?: Record<string, any> | undefined;
29
+ selectedTab?: "main" | "preprocessor" | undefined;
30
+ hasPreprocessor?: boolean | undefined;
31
+ captureTable?: CaptureTable | undefined;
32
+ inferSchema?: ((code: string, nlang?: SupportedLanguage, resetArgs?: boolean) => Promise<void>) | undefined;
28
33
  setCollaborationMode?: (() => Promise<void>) | undefined;
29
34
  disableCollaboration?: (() => void) | undefined;
30
35
  };
31
36
  events: {
32
37
  createScriptFromInlineScript: CustomEvent<any>;
33
38
  saveDraft: CustomEvent<any>;
39
+ openTriggers: CustomEvent<any>;
40
+ applyArgs: CustomEvent<{
41
+ kind: "main" | "preprocessor";
42
+ args: Record<string, any> | undefined;
43
+ }>;
44
+ updateSchema: CustomEvent<{
45
+ schema: any;
46
+ redirect: boolean;
47
+ }>;
48
+ addPreprocessor: CustomEvent<null>;
34
49
  format: CustomEvent<any>;
35
50
  change: CustomEvent<any>;
36
51
  } & {
@@ -46,7 +61,7 @@ export type ScriptEditorProps = typeof __propDef.props;
46
61
  export type ScriptEditorEvents = typeof __propDef.events;
47
62
  export type ScriptEditorSlots = typeof __propDef.slots;
48
63
  export default class ScriptEditor extends SvelteComponent<ScriptEditorProps, ScriptEditorEvents, ScriptEditorSlots> {
49
- get inferSchema(): (code: string, nlang?: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible" | undefined) => Promise<void>;
64
+ get inferSchema(): (code: string, nlang?: "python3" | "deno" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "graphql" | "nativets" | "bun" | "php" | "rust" | "ansible" | "csharp" | undefined, resetArgs?: boolean) => Promise<void>;
50
65
  get setCollaborationMode(): () => Promise<void>;
51
66
  get disableCollaboration(): () => void;
52
67
  }
@@ -22,6 +22,7 @@ export let kinds = ['script'];
22
22
  export let disabled = false;
23
23
  export let allowRefresh = false;
24
24
  export let allowEdit = true;
25
+ export let allowView = true;
25
26
  let items = [];
26
27
  let drawerViewer;
27
28
  let drawerFlowViewer;
@@ -128,16 +129,18 @@ let darkMode = false;
128
129
  href="{base}/flows/edit/{scriptPath}">Edit</Button
129
130
  >
130
131
  {/if}
131
- <Button
132
- color="light"
133
- size="xs"
134
- variant="border"
135
- on:click={async () => {
136
- drawerFlowViewer.openDrawer()
137
- }}
138
- >
139
- View
140
- </Button>
132
+ {#if allowView}
133
+ <Button
134
+ color="light"
135
+ size="xs"
136
+ variant="border"
137
+ on:click={async () => {
138
+ drawerFlowViewer.openDrawer()
139
+ }}
140
+ >
141
+ View
142
+ </Button>
143
+ {/if}
141
144
  </div>
142
145
  {:else if itemKind == 'app'}
143
146
  <div class="flex gap-2">
@@ -153,16 +156,18 @@ let darkMode = false;
153
156
  Edit
154
157
  </Button>
155
158
  {/if}
156
- <Button
157
- color="light"
158
- size="xs"
159
- variant="border"
160
- target="_blank"
161
- startIcon={{ icon: Code }}
162
- href="{base}/apps/get/{scriptPath}"
163
- >
164
- View
165
- </Button>
159
+ {#if allowView}
160
+ <Button
161
+ color="light"
162
+ size="xs"
163
+ variant="border"
164
+ target="_blank"
165
+ startIcon={{ icon: Code }}
166
+ href="{base}/apps/get/{scriptPath}"
167
+ >
168
+ View
169
+ </Button>
170
+ {/if}
166
171
  </div>
167
172
  {:else}
168
173
  <div class="flex gap-2">
@@ -178,20 +183,22 @@ let darkMode = false;
178
183
  Edit
179
184
  </Button>
180
185
  {/if}
181
- <Button
182
- color="light"
183
- size="xs"
184
- variant="border"
185
- startIcon={{ icon: Code }}
186
- on:click={async () => {
187
- const { language, content } = await getScriptByPath(scriptPath ?? '')
188
- code = content
189
- lang = language
190
- drawerViewer.openDrawer()
191
- }}
192
- >
193
- View
194
- </Button>
186
+ {#if allowView}
187
+ <Button
188
+ color="light"
189
+ size="xs"
190
+ variant="border"
191
+ startIcon={{ icon: Code }}
192
+ on:click={async () => {
193
+ const { language, content } = await getScriptByPath(scriptPath ?? '')
194
+ code = content
195
+ lang = language
196
+ drawerViewer.openDrawer()
197
+ }}
198
+ >
199
+ View
200
+ </Button>
201
+ {/if}
195
202
  </div>
196
203
  {/if}
197
204
  {/if}
@@ -9,6 +9,7 @@ declare const __propDef: {
9
9
  disabled?: boolean | undefined;
10
10
  allowRefresh?: boolean | undefined;
11
11
  allowEdit?: boolean | undefined;
12
+ allowView?: boolean | undefined;
12
13
  };
13
14
  events: {
14
15
  select: CustomEvent<any>;
@@ -135,7 +135,7 @@ let previousHash = undefined;
135
135
  color="blue"
136
136
  buttonType="button"
137
137
  btnClasses="!p-1 !w-[34px] !ml-1"
138
- aria-label="Save Deployment Message"
138
+ aria-label="Save deployment message"
139
139
  on:click={() => {
140
140
  updateDeploymentMsg(selectedVersion?.script_hash)
141
141
  }}
@@ -7,48 +7,51 @@ export let tooltip = undefined;
7
7
  export let eeOnly = false;
8
8
  export let small = false;
9
9
  export let collapsable = false;
10
- let collapsed = true;
10
+ export let collapsed = true;
11
+ export let headless = false;
11
12
  </script>
12
13
 
13
14
  <div class="w-full">
14
- <div class="flex flex-row justify-between items-center mb-2">
15
- <h2
16
- class={twMerge(
17
- 'font-semibold flex flex-row items-center gap-1',
18
- small ? 'text-sm' : 'text-base'
19
- )}
20
- >
21
- {#if collapsable}
22
- <button class="flex items-center gap-1" on:click={() => (collapsed = !collapsed)}>
23
- {#if collapsed}
24
- <ChevronRight size={16} />
25
- {:else}
26
- <ChevronDown size={16} />
27
- {/if}
15
+ {#if !headless}
16
+ <div class="flex flex-row justify-between items-center mb-2">
17
+ <h2
18
+ class={twMerge(
19
+ 'font-semibold flex flex-row items-center gap-1',
20
+ small ? 'text-sm' : 'text-base'
21
+ )}
22
+ >
23
+ {#if collapsable}
24
+ <button class="flex items-center gap-1" on:click={() => (collapsed = !collapsed)}>
25
+ {#if collapsed}
26
+ <ChevronRight size={16} />
27
+ {:else}
28
+ <ChevronDown size={16} />
29
+ {/if}
30
+ {label}
31
+ </button>
32
+ {:else}
28
33
  {label}
29
- </button>
30
- {:else}
31
- {label}
32
- {/if}
34
+ {/if}
33
35
 
34
- <slot name="header" />
35
- {#if tooltip}
36
- <Tooltip>{tooltip}</Tooltip>
37
- {/if}
38
- {#if eeOnly}
39
- {#if !$enterpriseLicense}
40
- <div class="flex text-xs items-center gap-1 text-yellow-500 whitespace-nowrap ml-8">
41
- <AlertTriangle size={16} />
42
- EE only <Tooltip>Enterprise Edition only feature</Tooltip>
43
- </div>
36
+ <slot name="header" />
37
+ {#if tooltip}
38
+ <Tooltip>{tooltip}</Tooltip>
44
39
  {/if}
40
+ {#if eeOnly}
41
+ {#if !$enterpriseLicense}
42
+ <div class="flex text-xs items-center gap-1 text-yellow-500 whitespace-nowrap ml-8">
43
+ <AlertTriangle size={16} />
44
+ EE only <Tooltip>Enterprise Edition only feature</Tooltip>
45
+ </div>
46
+ {/if}
47
+ {/if}
48
+ </h2>
49
+ <slot name="action" />
50
+ {#if collapsable && collapsed}
51
+ <slot name="badge" />
45
52
  {/if}
46
- </h2>
47
- <slot name="action" />
48
- {#if collapsable && collapsed}
49
- <slot name="badge" />
50
- {/if}
51
- </div>
53
+ </div>
54
+ {/if}
52
55
  <div class={collapsable && collapsed ? `hidden ${$$props.class}` : `${$$props.class}`}>
53
56
  <slot />
54
57
  </div>
@@ -7,6 +7,8 @@ declare const __propDef: {
7
7
  eeOnly?: boolean | undefined;
8
8
  small?: boolean | undefined;
9
9
  collapsable?: boolean | undefined;
10
+ collapsed?: boolean | undefined;
11
+ headless?: boolean | undefined;
10
12
  };
11
13
  events: {
12
14
  [evt: string]: CustomEvent<any>;
@@ -515,7 +515,7 @@ function allLogsOrQueryResults(allLogs, countsPerHost) {
515
515
  <div
516
516
  class="text-sm pt-2 pl-0.5 whitespace-nowrap"
517
517
  title={hn}
518
- style="width: 90px;">{truncateRev(hn, 8)}</div
518
+ style="width: 90px;">{truncateRev(hn, countsPerHost || loadingLogs ? 40 : 8)}</div
519
519
  >
520
520
  {#if loadingLogCounts}
521
521
  <Loader2 size={15} class="animate-spin" />
@@ -187,6 +187,8 @@ async function loadMonaco() {
187
187
  editor = meditor.create(divEl, {
188
188
  ...editorConfig(code, lang, automaticLayout, fixedOverflowWidgets),
189
189
  model,
190
+ lineDecorationsWidth: 6,
191
+ lineNumbersMinChars: 2,
190
192
  // overflowWidgetsDomNode: widgets,
191
193
  fontSize: small ? 12 : 14
192
194
  });
@@ -0,0 +1,52 @@
1
+ <script>import { enterpriseLicense } from '../stores';
2
+ import { AlertTriangle, ChevronDown, ChevronRight } from 'lucide-svelte';
3
+ import Tooltip from './Tooltip.svelte';
4
+ import { twMerge } from 'tailwind-merge';
5
+ export let label = undefined;
6
+ export let tooltip = undefined;
7
+ export let eeOnly = false;
8
+ export let collapsable = false;
9
+ export let collapsed = true;
10
+ export let headless = false;
11
+ </script>
12
+
13
+ <div class="w-full">
14
+ {#if !headless}
15
+ <div class="flex flex-row justify-between items-center mb-1">
16
+ <h3 class={twMerge('font-semibold flex flex-row items-center gap-2', 'text-sm')}>
17
+ {#if collapsable}
18
+ <button class="flex items-center gap-1" on:click={() => (collapsed = !collapsed)}>
19
+ {#if collapsed}
20
+ <ChevronRight size={16} />
21
+ {:else}
22
+ <ChevronDown size={16} />
23
+ {/if}
24
+ {label}
25
+ </button>
26
+ {:else}
27
+ {label}
28
+ {/if}
29
+
30
+ <slot name="header" />
31
+ {#if tooltip}
32
+ <Tooltip>{tooltip}</Tooltip>
33
+ {/if}
34
+ {#if eeOnly}
35
+ {#if !$enterpriseLicense}
36
+ <div class="flex text-xs items-center gap-1 text-yellow-500 whitespace-nowrap ml-8">
37
+ <AlertTriangle size={16} />
38
+ EE only <Tooltip>Enterprise Edition only feature</Tooltip>
39
+ </div>
40
+ {/if}
41
+ {/if}
42
+ </h3>
43
+ <slot name="action" />
44
+ {#if collapsable && collapsed}
45
+ <slot name="badge" />
46
+ {/if}
47
+ </div>
48
+ {/if}
49
+ <div class={collapsable && collapsed ? `hidden ${$$props.class}` : `${$$props.class}`}>
50
+ <slot />
51
+ </div>
52
+ </div>
@@ -0,0 +1,27 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ [x: string]: any;
5
+ label?: string | undefined;
6
+ tooltip?: string | undefined;
7
+ eeOnly?: boolean | undefined;
8
+ collapsable?: boolean | undefined;
9
+ collapsed?: boolean | undefined;
10
+ headless?: boolean | undefined;
11
+ };
12
+ events: {
13
+ [evt: string]: CustomEvent<any>;
14
+ };
15
+ slots: {
16
+ header: {};
17
+ action: {};
18
+ badge: {};
19
+ default: {};
20
+ };
21
+ };
22
+ export type SubsectionProps = typeof __propDef.props;
23
+ export type SubsectionEvents = typeof __propDef.events;
24
+ export type SubsectionSlots = typeof __propDef.slots;
25
+ export default class Subsection extends SvelteComponent<SubsectionProps, SubsectionEvents, SubsectionSlots> {
26
+ }
27
+ export {};
@@ -49,7 +49,7 @@ async function listUsers(activeOnly) {
49
49
  }
50
50
  $: listUsers(activeOnly);
51
51
  let tab = 'users';
52
- $: $instanceSettingsSelectedTab, tab = $instanceSettingsSelectedTab;
52
+ $: $instanceSettingsSelectedTab, (tab = $instanceSettingsSelectedTab);
53
53
  $: tab, instanceSettingsSelectedTab.set(tab);
54
54
  let nbDisplayed = 50;
55
55
  let instanceSettings;
@@ -122,7 +122,7 @@ async function updateName(name, email) {
122
122
  </div>
123
123
  <div class="pt-4 h-full">
124
124
  <Tabs bind:selected={tab}>
125
- <Tab value="users">Global users</Tab>
125
+ <Tab value="users">Users</Tab>
126
126
  {#each settingsKeys as category}
127
127
  <Tab value={category}>{category}</Tab>
128
128
  {/each}
@@ -241,7 +241,7 @@ async function updateName(name, email) {
241
241
  {/if}
242
242
  <td>
243
243
  <ToggleButtonGroup
244
- selected={super_admin ? "super_admin" : devops ? "devops" : "user"}
244
+ selected={super_admin ? 'super_admin' : devops ? 'devops' : 'user'}
245
245
  on:selected={async (e) => {
246
246
  if (email == $userStore?.email) {
247
247
  sendUserToast('You cannot demote yourself', true)
@@ -249,9 +249,9 @@ async function updateName(name, email) {
249
249
  return
250
250
  }
251
251
 
252
- let role = e.detail;
252
+ let role = e.detail
253
253
 
254
- if (role === "super_admin") {
254
+ if (role === 'super_admin') {
255
255
  await UserService.globalUserUpdate({
256
256
  email,
257
257
  requestBody: {
@@ -260,7 +260,7 @@ async function updateName(name, email) {
260
260
  }
261
261
  })
262
262
  }
263
- if (role === "devops") {
263
+ if (role === 'devops') {
264
264
  await UserService.globalUserUpdate({
265
265
  email,
266
266
  requestBody: {
@@ -268,9 +268,8 @@ async function updateName(name, email) {
268
268
  is_devops: true
269
269
  }
270
270
  })
271
-
272
271
  }
273
- if (role === "user") {
272
+ if (role === 'user') {
274
273
  await UserService.globalUserUpdate({
275
274
  email,
276
275
  requestBody: {
@@ -283,15 +282,20 @@ async function updateName(name, email) {
283
282
  listUsers(activeOnly)
284
283
  }}
285
284
  >
286
- <ToggleButton value={"user"} size="xs" label="User" />
287
- <ToggleButton value={"devops"} size="xs" label="Devops" tooltip="Devops is a role that grants visibilty similar to that of a super admin, but without giving all rights. For example devops users can see service logs and crtical alerts. You can think of it as a 'readonly' super admin" />
288
- <ToggleButton value={"super_admin"} size="xs" label="Superadmin" />
285
+ <ToggleButton value={'user'} size="xs" label="User" />
286
+ <ToggleButton
287
+ value={'devops'}
288
+ size="xs"
289
+ label="Devops"
290
+ tooltip="Devops is a role that grants visibilty similar to that of a super admin, but without giving all rights. For example devops users can see service logs and crtical alerts. You can think of it as a 'readonly' super admin"
291
+ />
292
+ <ToggleButton value={'super_admin'} size="xs" label="Superadmin" />
289
293
  </ToggleButtonGroup>
290
294
  </td>
291
295
  <td>
292
296
  <div class="flex flex-row gap-x-1 justify-end">
293
297
  <InstanceNameEditor
294
- login_type={login_type}
298
+ {login_type}
295
299
  value={name}
296
300
  {username}
297
301
  {email}
@@ -340,7 +344,13 @@ async function updateName(name, email) {
340
344
  </div>
341
345
  </TabContent>
342
346
  <TabContent value="" values={settingsKeys}>
343
- <InstanceSettings bind:this={instanceSettings} hideTabs hideSave {tab} {closeDrawer}/>
347
+ <InstanceSettings
348
+ bind:this={instanceSettings}
349
+ hideTabs
350
+ hideSave
351
+ {tab}
352
+ {closeDrawer}
353
+ />
344
354
  </TabContent>
345
355
  </svelte:fragment>
346
356
  </Tabs>