windmill-components 1.504.6 → 1.511.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 (233) hide show
  1. package/package/ata/index.js +1 -1
  2. package/package/components/AppConnectInner.svelte +184 -29
  3. package/package/components/ArgInput.svelte +33 -103
  4. package/package/components/AuthSettings.svelte +45 -1
  5. package/package/components/Dev.svelte +31 -24
  6. package/package/components/DisplayResult.svelte +53 -26
  7. package/package/components/DisplayResult.svelte.d.ts +1 -1
  8. package/package/components/DynSelect.svelte +3 -3
  9. package/package/components/Editor.svelte +115 -88
  10. package/package/components/Editor.svelte.d.ts +30 -55
  11. package/package/components/EditorBar.svelte +2 -2
  12. package/package/components/ErrorOrRecoveryHandler.svelte +73 -67
  13. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +8 -24
  14. package/package/components/FlowBuilder.svelte +11 -2
  15. package/package/components/FlowJobResult.svelte +12 -17
  16. package/package/components/FlowJobResult.svelte.d.ts +5 -18
  17. package/package/components/FlowPreviewContent.svelte +13 -10
  18. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  19. package/package/components/FlowPreviewResult.svelte +14 -6
  20. package/package/components/FlowStatusViewer.svelte +11 -24
  21. package/package/components/FlowStatusViewer.svelte.d.ts +19 -18
  22. package/package/components/FlowStatusViewerInner.svelte +110 -131
  23. package/package/components/FlowStatusViewerInner.svelte.d.ts +20 -18
  24. package/package/components/GitDiffPreview.svelte +55 -0
  25. package/package/components/GitDiffPreview.svelte.d.ts +13 -0
  26. package/package/components/HistoricInputs.svelte +2 -2
  27. package/package/components/HttpAgentWorkerDrawer.svelte +1 -1
  28. package/package/components/InitGitRepoPopover.svelte +410 -0
  29. package/package/components/InitGitRepoPopover.svelte.d.ts +13 -0
  30. package/package/components/InstanceSetting.svelte +21 -9
  31. package/package/components/InstanceSettings.svelte +16 -3
  32. package/package/components/JobLoader.svelte +567 -0
  33. package/package/components/JobLoader.svelte.d.ts +53 -0
  34. package/package/components/JobLogs.svelte +6 -4
  35. package/package/components/JobLogs.svelte.d.ts +5 -18
  36. package/package/components/JsonEditor.svelte +11 -11
  37. package/package/components/JsonEditor.svelte.d.ts +14 -56
  38. package/package/components/Label.svelte +6 -11
  39. package/package/components/Label.svelte.d.ts +14 -39
  40. package/package/components/LightweightResourcePicker.svelte +18 -39
  41. package/package/components/LightweightResourcePicker.svelte.d.ts +6 -22
  42. package/package/components/LogViewer.svelte +35 -41
  43. package/package/components/LogViewer.svelte.d.ts +6 -20
  44. package/package/components/ModulePreviewResultViewer.svelte +3 -1
  45. package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -0
  46. package/package/components/ModuleTest.svelte +16 -11
  47. package/package/components/NumberTypeNarrowing.svelte +13 -16
  48. package/package/components/NumberTypeNarrowing.svelte.d.ts +4 -18
  49. package/package/components/PullGitRepoPopover.svelte +355 -0
  50. package/package/components/PullGitRepoPopover.svelte.d.ts +18 -0
  51. package/package/components/ResourceTypePicker.svelte +20 -17
  52. package/package/components/ResourceTypePicker.svelte.d.ts +7 -6
  53. package/package/components/S3FilePicker.svelte +5 -3
  54. package/package/components/SavedInputs.svelte +2 -2
  55. package/package/components/ScriptBuilder.svelte +4 -3
  56. package/package/components/ScriptEditor.svelte +34 -31
  57. package/package/components/ScriptEditor.svelte.d.ts +3 -3
  58. package/package/components/Section.svelte +7 -20
  59. package/package/components/Section.svelte.d.ts +20 -47
  60. package/package/components/ServiceLogsInner.svelte +2 -1
  61. package/package/components/ServiceLogsInner.svelte.d.ts +1 -0
  62. package/package/components/SimpleEditor.svelte +4 -4
  63. package/package/components/SimpleEditor.svelte.d.ts +1 -0
  64. package/package/components/SqlRepl.svelte +0 -1
  65. package/package/components/Subsection.svelte +10 -12
  66. package/package/components/Subsection.svelte.d.ts +15 -39
  67. package/package/components/UserSettings.svelte +1 -1
  68. package/package/components/WorkerGroup.svelte +260 -165
  69. package/package/components/WorkerGroup.svelte.d.ts +2 -0
  70. package/package/components/WorkerTagPicker.svelte +3 -3
  71. package/package/components/WorkerTagSelect.svelte +33 -4
  72. package/package/components/apps/components/buttons/AppButton.svelte +7 -1
  73. package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
  74. package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
  75. package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +16 -11
  76. package/package/components/apps/components/display/AppJobIdLogComponent.svelte +13 -10
  77. package/package/components/apps/components/display/AppMenu.svelte +5 -0
  78. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +3 -3
  79. package/package/components/apps/components/display/dbtable/DeleteRow.svelte +3 -3
  80. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +3 -3
  81. package/package/components/apps/components/display/dbtable/UpdateCell.svelte +3 -3
  82. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +3 -3
  83. package/package/components/apps/components/helpers/RunnableComponent.svelte +65 -54
  84. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -5
  85. package/package/components/apps/components/inputs/AppUserResource.svelte +26 -8
  86. package/package/components/apps/editor/AppEditorHeader.svelte +11 -5
  87. package/package/components/apps/editor/AppJobsDrawer.svelte +5 -5
  88. package/package/components/apps/editor/RunnableJobPanel.svelte +4 -4
  89. package/package/components/apps/editor/component/components.d.ts +12 -0
  90. package/package/components/apps/editor/component/components.js +19 -7
  91. package/package/components/assets/AssetButtons.svelte +38 -0
  92. package/package/components/assets/AssetButtons.svelte.d.ts +15 -0
  93. package/package/components/assets/AssetsDropdownButton.svelte +60 -72
  94. package/package/components/assets/AssetsDropdownButton.svelte.d.ts +3 -4
  95. package/package/components/assets/AssetsUsageDrawer.svelte +10 -10
  96. package/package/components/assets/JobAssetsViewer.svelte +79 -0
  97. package/package/components/assets/JobAssetsViewer.svelte.d.ts +7 -0
  98. package/package/components/assets/README_DEV.md +0 -0
  99. package/package/components/assets/lib.d.ts +9 -1
  100. package/package/components/assets/lib.js +48 -7
  101. package/package/components/common/fileUpload/FileUpload.svelte +126 -84
  102. package/package/components/common/fileUpload/FileUpload.svelte.d.ts +13 -3
  103. package/package/components/common/fileUpload/S3ArgInput.svelte +111 -0
  104. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +21 -0
  105. package/package/components/common/table/ScriptRow.svelte +3 -1
  106. package/package/components/copilot/AIFormSettings.svelte +3 -4
  107. package/package/components/copilot/AIFormSettings.svelte.d.ts +5 -19
  108. package/package/components/copilot/autocomplete/Autocompletor.d.ts +3 -1
  109. package/package/components/copilot/autocomplete/Autocompletor.js +269 -35
  110. package/package/components/copilot/autocomplete/request.d.ts +3 -0
  111. package/package/components/copilot/autocomplete/request.js +15 -7
  112. package/package/components/copilot/chat/AIChatDisplay.svelte +8 -0
  113. package/package/components/copilot/chat/AIChatManager.svelte.js +13 -8
  114. package/package/components/copilot/chat/flow/ModuleAcceptReject.svelte +5 -5
  115. package/package/components/copilot/chat/flow/core.d.ts +1 -1
  116. package/package/components/copilot/chat/flow/core.js +2 -38
  117. package/package/components/copilot/chat/navigator/apiTools.d.ts +8 -0
  118. package/package/components/copilot/chat/navigator/apiTools.js +95 -15
  119. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  120. package/package/components/copilot/chat/navigator/core.js +2 -1
  121. package/package/components/copilot/chat/script/core.d.ts +11 -2
  122. package/package/components/copilot/chat/script/core.js +165 -23
  123. package/package/components/copilot/chat/shared.d.ts +10 -0
  124. package/package/components/copilot/chat/shared.js +56 -0
  125. package/package/components/copilot/lib.d.ts +1 -0
  126. package/package/components/copilot/lib.js +30 -9
  127. package/package/components/custom_ui.d.ts +1 -0
  128. package/package/components/flows/FlowAssetsHandler.svelte +133 -0
  129. package/package/components/flows/FlowAssetsHandler.svelte.d.ts +14 -0
  130. package/package/components/flows/content/FlowModuleCache.svelte +4 -4
  131. package/package/components/flows/content/FlowModuleCache.svelte.d.ts +4 -18
  132. package/package/components/flows/content/FlowModuleComponent.svelte +16 -19
  133. package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +3 -4
  134. package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte.d.ts +4 -18
  135. package/package/components/flows/content/FlowModuleSleep.svelte +6 -7
  136. package/package/components/flows/content/FlowModuleSleep.svelte.d.ts +4 -18
  137. package/package/components/flows/content/FlowModuleSuspend.svelte +19 -17
  138. package/package/components/flows/content/FlowModuleSuspend.svelte.d.ts +4 -18
  139. package/package/components/flows/content/FlowModuleTimeout.svelte +4 -4
  140. package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +4 -18
  141. package/package/components/flows/flowStore.d.ts +1 -1
  142. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -0
  143. package/package/components/flows/propPicker/OutputPicker.svelte +9 -4
  144. package/package/components/flows/scheduleUtils.js +1 -1
  145. package/package/components/flows/types.d.ts +2 -1
  146. package/package/components/graph/FlowGraphV2.svelte +8 -104
  147. package/package/components/graph/FlowGraphV2.svelte.d.ts +0 -2
  148. package/package/components/graph/graphBuilder.svelte.d.ts +6 -3
  149. package/package/components/graph/graphBuilder.svelte.js +35 -9
  150. package/package/components/graph/renderers/edges/BaseEdge.svelte +2 -5
  151. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +1 -0
  152. package/package/components/graph/renderers/nodes/AssetNode.svelte +23 -20
  153. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +5 -10
  154. package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
  155. package/package/components/graph/util.js +1 -1
  156. package/package/components/home/ItemsList.svelte +2 -0
  157. package/package/components/icons/AssetGenericIcon.svelte +0 -3
  158. package/package/components/jobs/JobPreview.svelte +10 -6
  159. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +13 -12
  160. package/package/components/runs/BatchReRunOptionsPane.svelte +5 -1
  161. package/package/components/runs/JobPreview.svelte +26 -16
  162. package/package/components/runs/{JobLoader.svelte.d.ts → JobsLoader.svelte.d.ts} +3 -3
  163. package/package/components/runs/NoWorkerWithTagWarning.svelte +2 -2
  164. package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -0
  165. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  166. package/package/components/scriptEditor/LogPanel.svelte +3 -2
  167. package/package/components/script_builder.d.ts +2 -2
  168. package/package/components/settings/CreateToken.svelte +76 -41
  169. package/package/components/settings/CreateToken.svelte.d.ts +1 -1
  170. package/package/components/settings/ScopeSelector.svelte +613 -0
  171. package/package/components/settings/ScopeSelector.svelte.d.ts +8 -0
  172. package/package/components/settings/TokenDisplay.svelte +103 -0
  173. package/package/components/settings/TokenDisplay.svelte.d.ts +10 -0
  174. package/package/components/settings/TokensTable.svelte +70 -349
  175. package/package/components/sidebar/CriticalAlertModal.svelte +3 -0
  176. package/package/components/triggers/DeleteTriggerButton.svelte +1 -1
  177. package/package/components/triggers/TriggerEditorToolbar.svelte +3 -3
  178. package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte +55 -0
  179. package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +13 -0
  180. package/package/components/triggers/TriggersEditor.svelte +45 -3
  181. package/package/components/triggers/TriggersWrapper.svelte +2 -2
  182. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +47 -6
  183. package/package/components/triggers/gcp/utils.js +9 -1
  184. package/package/components/triggers/http/OpenAPISpecGenerator.svelte +3 -2
  185. package/package/components/triggers/http/RouteEditorConfigSection.svelte +26 -23
  186. package/package/components/triggers/http/RouteEditorConfigSection.svelte.d.ts +5 -19
  187. package/package/components/triggers/http/RouteEditorInner.svelte +219 -175
  188. package/package/components/triggers/http/RouteEditorInner.svelte.d.ts +6 -2
  189. package/package/components/triggers/http/utils.js +9 -3
  190. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +47 -6
  191. package/package/components/triggers/kafka/utils.js +9 -1
  192. package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte +4 -132
  193. package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +2 -5
  194. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +182 -13
  195. package/package/components/triggers/mqtt/utils.js +9 -1
  196. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +47 -6
  197. package/package/components/triggers/nats/utils.js +9 -1
  198. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +41 -2
  199. package/package/components/triggers/postgres/utils.js +9 -1
  200. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +38 -92
  201. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +47 -6
  202. package/package/components/triggers/sqs/utils.js +9 -1
  203. package/package/components/triggers/utils.js +12 -0
  204. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +47 -6
  205. package/package/components/triggers/websocket/utils.js +11 -1
  206. package/package/components/workspaceSettings/AISettings.svelte +0 -2
  207. package/package/components/workspaceSettings/FilterList.svelte +56 -0
  208. package/package/components/workspaceSettings/FilterList.svelte.d.ts +8 -0
  209. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +785 -0
  210. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +18 -0
  211. package/package/gen/core/OpenAPI.js +1 -1
  212. package/package/gen/schemas.gen.d.ts +305 -23
  213. package/package/gen/schemas.gen.js +305 -23
  214. package/package/gen/services.gen.d.ts +33 -1
  215. package/package/gen/services.gen.js +66 -2
  216. package/package/gen/types.gen.d.ts +216 -11
  217. package/package/history.svelte.js +0 -2
  218. package/package/hub.d.ts +1 -0
  219. package/package/hubPaths.json +5 -2
  220. package/package/infer.js +16 -10
  221. package/package/svelte5Utils.svelte.d.ts +1 -0
  222. package/package/svelte5Utils.svelte.js +25 -18
  223. package/package/toast.js +10 -0
  224. package/package/utils.d.ts +3 -2
  225. package/package/utils.js +20 -5
  226. package/package.json +11 -11
  227. package/package/components/ResultJobLoader.svelte +0 -219
  228. package/package/components/ResultJobLoader.svelte.d.ts +0 -52
  229. package/package/components/TestJobLoader.svelte +0 -274
  230. package/package/components/TestJobLoader.svelte.d.ts +0 -43
  231. package/package/components/icons/AssetVarIcon.svelte +0 -31
  232. package/package/components/icons/AssetVarIcon.svelte.d.ts +0 -9
  233. /package/package/components/runs/{JobLoader.svelte → JobsLoader.svelte} +0 -0
@@ -4,6 +4,34 @@ import { type Preview } from '../gen';
4
4
  import type { Text } from 'yjs';
5
5
  import { editor as meditor, type IDisposable } from 'monaco-editor';
6
6
  import { type DepsToGet } from '../ata/index';
7
+ interface Props {
8
+ code?: string;
9
+ cmdEnterAction?: (() => void) | undefined;
10
+ formatAction?: (() => void) | undefined;
11
+ automaticLayout?: boolean;
12
+ websocketAlive?: any;
13
+ shouldBindKey?: boolean;
14
+ fixedOverflowWidgets?: boolean;
15
+ path?: string | undefined;
16
+ yContent?: Text | undefined;
17
+ awareness?: any | undefined;
18
+ folding?: boolean;
19
+ args?: Record<string, any> | undefined;
20
+ useWebsockets?: boolean;
21
+ small?: boolean;
22
+ scriptLang: Preview['language'] | 'bunnative' | 'tsx' | 'jsx' | 'json' | undefined;
23
+ disabled?: boolean;
24
+ lineNumbersMinChars?: number;
25
+ files?: Record<string, {
26
+ code: string;
27
+ readonly?: boolean;
28
+ }> | undefined;
29
+ extraLib?: string | undefined;
30
+ changeTimeout?: number;
31
+ loadAsync?: boolean;
32
+ key?: string | undefined;
33
+ class?: string | undefined;
34
+ }
7
35
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
8
36
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
9
37
  $$bindings?: Bindings;
@@ -17,60 +45,7 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
17
45
  };
18
46
  z_$$bindings?: Bindings;
19
47
  }
20
- declare const Editor: $$__sveltets_2_IsomorphicComponent<{
21
- [x: string]: any;
22
- code?: string | undefined;
23
- cmdEnterAction?: (() => void) | undefined | undefined;
24
- formatAction?: (() => void) | undefined | undefined;
25
- automaticLayout?: boolean | undefined;
26
- websocketAlive?: {
27
- pyright: boolean;
28
- ruff: boolean;
29
- deno: boolean;
30
- go: boolean;
31
- shellcheck: boolean;
32
- } | undefined;
33
- shouldBindKey?: boolean | undefined;
34
- fixedOverflowWidgets?: boolean | undefined;
35
- path?: string | undefined | undefined;
36
- yContent?: Text | undefined;
37
- awareness?: any | undefined;
38
- folding?: boolean | undefined;
39
- args?: Record<string, any> | undefined;
40
- useWebsockets?: boolean | undefined;
41
- small?: boolean | undefined;
42
- scriptLang: Preview["language"] | "bunnative" | "tsx" | "jsx" | "json" | undefined;
43
- disabled?: boolean | undefined;
44
- lineNumbersMinChars?: number | undefined;
45
- files?: Record<string, {
46
- code: string;
47
- readonly?: boolean;
48
- }> | undefined;
49
- extraLib?: string | undefined | undefined;
50
- changeTimeout?: number | undefined;
51
- loadAsync?: boolean | undefined;
52
- key?: string | undefined | undefined;
53
- switchToFile?: ((path: string, value: string, lang: string) => void) | undefined;
54
- getCode?: (() => string) | undefined;
55
- getModel?: (() => meditor.IEditorModel | undefined) | undefined;
56
- insertAtCursor?: ((code: string) => void) | undefined;
57
- arrowDown?: (() => void) | undefined;
58
- backspace?: (() => void) | undefined;
59
- insertAtBeginning?: ((code: string) => void) | undefined;
60
- insertAtLine?: ((code: string, line: number) => void) | undefined;
61
- getSelectedLines?: (() => string | undefined) | undefined;
62
- onDidChangeCursorSelection?: ((f: (e: meditor.ICursorSelectionChangedEvent) => void) => IDisposable | undefined) | undefined;
63
- show?: (() => void) | undefined;
64
- hide?: (() => void) | undefined;
65
- setCode?: ((ncode: string, noHistory?: boolean) => void) | undefined;
66
- append?: ((code: string) => void) | undefined;
67
- format?: (() => Promise<void>) | undefined;
68
- getScriptLang?: (() => string | undefined) | undefined;
69
- reviewAndApplyCode?: ((code: string) => void) | undefined;
70
- reloadWebsocket?: (() => Promise<void>) | undefined;
71
- fetchPackageDeps?: ((deps: DepsToGet) => Promise<void>) | undefined;
72
- addAction?: ((id: string, label: string, callback: (editor: meditor.IStandaloneCodeEditor) => void, keybindings?: number[]) => void) | undefined;
73
- }, {
48
+ declare const Editor: $$__sveltets_2_IsomorphicComponent<Props, {
74
49
  change: CustomEvent<any>;
75
50
  saveDraft: CustomEvent<any>;
76
51
  blur: CustomEvent<any>;
@@ -100,6 +75,6 @@ declare const Editor: $$__sveltets_2_IsomorphicComponent<{
100
75
  reloadWebsocket: () => Promise<void>;
101
76
  fetchPackageDeps: (deps: DepsToGet) => Promise<void>;
102
77
  addAction: (id: string, label: string, callback: (editor: meditor.IStandaloneCodeEditor) => void, keybindings?: number[]) => void;
103
- }, string>;
78
+ }, "code" | "websocketAlive">;
104
79
  type Editor = InstanceType<typeof Editor>;
105
80
  export default Editor;
@@ -500,10 +500,10 @@ JsonNode ${windmillPathToCamelCaseName(path)} = JsonNode.Parse(await client.GetS
500
500
  let t = { postgresql: 'postgres', mysql: 'mysql', bigquery: 'bigquery' }[resType]
501
501
  if (!t) {
502
502
  sendUserToast(`Resource type ${resType} is not supported in DuckDB`, true)
503
- editor.insertAtCursor(`'$res:${path}'`)
503
+ editor.insertAtCursor(`'res://${path}'`)
504
504
  return
505
505
  } else {
506
- editor.insertAtCursor(`ATTACH '$res:${path}' AS db (TYPE ${t});`)
506
+ editor.insertAtCursor(`ATTACH 'res://${path}' AS db (TYPE ${t});`)
507
507
  }
508
508
  }
509
509
 
@@ -18,24 +18,15 @@ const slackSuccessHandler = hubPaths.slackSuccessHandler;
18
18
  const teamsRecoveryHandler = hubPaths.teamsRecoveryHandler;
19
19
  const teamsHandlerScriptPath = hubPaths.teamsErrorHandler;
20
20
  const teamsSuccessHandler = hubPaths.teamsSuccessHandler;
21
- export let errorOrRecovery;
22
- export let isEditable;
23
- export let toggleText = 'Enable';
24
- export let showScriptHelpText = false;
25
- export let handlerSelected;
26
- export let handlerPath;
27
- export let handlerExtraArgs;
28
- export let customInitialScriptPath;
29
- export let customScriptTemplate;
30
- export let customHandlerKind = 'script';
31
- let customHandlerSchema;
32
- let slackHandlerSchema;
33
- let isFetching = false;
34
- let teams_channels = [];
35
- let teams_team_name = undefined;
36
- let workspaceConnectedToSlack = undefined;
37
- let workspaceConnectedToTeams = undefined;
38
- let connectionTestJob;
21
+ let { errorOrRecovery, isEditable, toggleText = 'Enable', showScriptHelpText = false, handlerSelected = $bindable(), handlerPath = $bindable(), handlerExtraArgs = $bindable(), customScriptTemplate, customHandlerKind = $bindable('script'), customTabTooltip } = $props();
22
+ let customHandlerSchema = $state();
23
+ let slackHandlerSchema = $state();
24
+ let isFetching = $state(false);
25
+ let teams_channels = $state([]);
26
+ let teams_team_name = $state(undefined);
27
+ let workspaceConnectedToSlack = $state(undefined);
28
+ let workspaceConnectedToTeams = $state(undefined);
29
+ let connectionTestJob = $state();
39
30
  async function loadSlackResources() {
40
31
  const settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
41
32
  if (!emptyString(settings.slack_name) && !emptyString(settings.slack_team_id)) {
@@ -146,7 +137,7 @@ async function loadHandlerScriptArgs(p, defaultArgs = []) {
146
137
  }
147
138
  }
148
139
  function isSlackHandler(scriptPath) {
149
- if (scriptPath === undefined) {
140
+ if (!scriptPath) {
150
141
  return false;
151
142
  }
152
143
  if (errorOrRecovery == 'error') {
@@ -161,7 +152,7 @@ function isSlackHandler(scriptPath) {
161
152
  }
162
153
  }
163
154
  function isTeamsHandler(scriptPath) {
164
- if (scriptPath === undefined) {
155
+ if (!scriptPath) {
165
156
  return false;
166
157
  }
167
158
  if (errorOrRecovery == 'error') {
@@ -175,67 +166,82 @@ function isTeamsHandler(scriptPath) {
175
166
  return scriptPath.startsWith('hub/') && scriptPath.endsWith('/schedule-success-handler-teams');
176
167
  }
177
168
  }
178
- $: {
169
+ $effect(() => {
179
170
  if ($workspaceStore) {
180
171
  loadSlackResources();
181
172
  loadTeamsResources();
182
173
  }
183
- }
184
- let lastHandlerSelected = undefined;
185
- let channelCache = {
174
+ });
175
+ $effect(() => {
176
+ if (handlerSelected === 'slack' && isSlackHandler(handlerPath)) {
177
+ handlerExtraArgs['slack'] = '$res:f/slack_bot/bot_token';
178
+ }
179
+ else {
180
+ handlerExtraArgs['slack'] = undefined;
181
+ }
182
+ });
183
+ let lastHandlerSelected = $state(undefined);
184
+ let channelCache = $state({
186
185
  slack: undefined,
187
186
  teams: undefined
188
- };
189
- $: {
187
+ });
188
+ $effect(() => {
190
189
  if (lastHandlerSelected !== handlerSelected && lastHandlerSelected !== undefined) {
191
190
  if (lastHandlerSelected === 'teams' || lastHandlerSelected === 'slack') {
192
191
  channelCache[lastHandlerSelected] = handlerExtraArgs['channel'];
193
192
  }
194
193
  if (handlerSelected === 'custom') {
195
194
  handlerExtraArgs['channel'] = '';
195
+ handlerPath = undefined;
196
196
  }
197
197
  else {
198
198
  handlerExtraArgs['channel'] = channelCache[handlerSelected] ?? '';
199
199
  }
200
200
  }
201
201
  lastHandlerSelected = handlerSelected;
202
- }
203
- $: handlerPath &&
204
- !isSlackHandler(handlerPath) &&
205
- !isTeamsHandler(handlerPath) &&
206
- loadHandlerScriptArgs(handlerPath, [
207
- 'path',
208
- 'workspace_id',
209
- 'job_id',
210
- 'is_flow',
211
- 'schedule_path',
212
- 'error',
213
- 'error_started_at',
214
- 'failed_times',
215
- 'started_at',
216
- 'success_times',
217
- 'success_result',
218
- 'success_started_at',
219
- 'email'
220
- ]).then((schema) => (customHandlerSchema = schema));
221
- $: handlerPath &&
222
- isSlackHandler(handlerPath) &&
223
- loadHandlerScriptArgs(handlerPath, [
224
- 'path',
225
- 'workspace_id',
226
- 'job_id',
227
- 'is_flow',
228
- 'schedule_path',
229
- 'error',
230
- 'error_started_at',
231
- 'failed_times',
232
- 'started_at',
233
- 'success_times',
234
- 'success_result',
235
- 'success_started_at',
236
- 'email',
237
- 'slack'
238
- ]).then((schema) => (slackHandlerSchema = schema));
202
+ });
203
+ $effect(() => {
204
+ handlerPath &&
205
+ !isSlackHandler(handlerPath) &&
206
+ !isTeamsHandler(handlerPath) &&
207
+ loadHandlerScriptArgs(handlerPath, [
208
+ 'path',
209
+ 'workspace_id',
210
+ 'job_id',
211
+ 'is_flow',
212
+ 'schedule_path',
213
+ 'error',
214
+ 'error_started_at',
215
+ 'failed_times',
216
+ 'started_at',
217
+ 'success_times',
218
+ 'success_result',
219
+ 'success_started_at',
220
+ 'email',
221
+ 'trigger_path'
222
+ ]).then((schema) => (customHandlerSchema = schema));
223
+ });
224
+ $effect(() => {
225
+ handlerPath &&
226
+ isSlackHandler(handlerPath) &&
227
+ loadHandlerScriptArgs(handlerPath, [
228
+ 'path',
229
+ 'workspace_id',
230
+ 'job_id',
231
+ 'is_flow',
232
+ 'schedule_path',
233
+ 'error',
234
+ 'error_started_at',
235
+ 'failed_times',
236
+ 'started_at',
237
+ 'success_times',
238
+ 'success_result',
239
+ 'success_started_at',
240
+ 'email',
241
+ 'trigger_path',
242
+ 'slack'
243
+ ]).then((schema) => (slackHandlerSchema = schema));
244
+ });
239
245
  </script>
240
246
 
241
247
  <div>
@@ -244,7 +250,7 @@ $: handlerPath &&
244
250
  <Tab value="teams" disabled={!isEditable}>Teams</Tab>
245
251
  <Tab value="custom" disabled={!isEditable}>
246
252
  Custom
247
- <slot name="custom-tab-tooltip" />
253
+ {@render customTabTooltip?.()}
248
254
  </Tab>
249
255
  </Tabs>
250
256
  </div>
@@ -253,15 +259,15 @@ $: handlerPath &&
253
259
  <div class="flex flex-row mb-2">
254
260
  <ScriptPicker
255
261
  disabled={!isEditable || !$enterpriseLicense}
256
- initialPath={customInitialScriptPath}
257
262
  kinds={['script', 'failure']}
258
263
  allowFlow={true}
259
264
  bind:scriptPath={handlerPath}
260
265
  bind:itemKind={customHandlerKind}
261
266
  allowRefresh={isEditable}
267
+ clearable
262
268
  />
263
269
 
264
- {#if handlerPath === undefined}
270
+ {#if !handlerPath}
265
271
  <Button
266
272
  btnClasses="ml-4 mt-2"
267
273
  color="dark"
@@ -427,7 +433,7 @@ $: handlerPath &&
427
433
  />
428
434
  <div class="flex-shrink-0">
429
435
  <button
430
- on:click={loadTeamsResources}
436
+ onclick={loadTeamsResources}
431
437
  class="flex items-center gap-1 p-1.5 rounded hover:bg-surface-hover focus:bg-surface-hover"
432
438
  >
433
439
  <RefreshCcw size={16} class={isFetching ? 'animate-spin' : ''} />
@@ -1,31 +1,15 @@
1
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const ErrorOrRecoveryHandler: $$__sveltets_2_IsomorphicComponent<{
15
- errorOrRecovery: "error" | "recovery" | "success";
1
+ interface Props {
2
+ errorOrRecovery: 'error' | 'recovery' | 'success';
16
3
  isEditable: boolean;
17
4
  toggleText?: string;
18
5
  showScriptHelpText?: boolean;
19
- handlerSelected: "custom" | "slack" | "teams";
6
+ handlerSelected: 'custom' | 'slack' | 'teams';
20
7
  handlerPath: string | undefined;
21
8
  handlerExtraArgs: Record<string, any>;
22
- customInitialScriptPath: string | undefined;
23
9
  customScriptTemplate: string;
24
- customHandlerKind?: "flow" | "script";
25
- }, {
26
- [evt: string]: CustomEvent<any>;
27
- }, {
28
- 'custom-tab-tooltip': {};
29
- }, {}, string>;
30
- type ErrorOrRecoveryHandler = InstanceType<typeof ErrorOrRecoveryHandler>;
10
+ customHandlerKind?: 'flow' | 'script';
11
+ customTabTooltip?: import('svelte').Snippet;
12
+ }
13
+ declare const ErrorOrRecoveryHandler: import("svelte").Component<Props, {}, "handlerSelected" | "handlerPath" | "handlerExtraArgs" | "customHandlerKind">;
14
+ type ErrorOrRecoveryHandler = ReturnType<typeof ErrorOrRecoveryHandler>;
31
15
  export default ErrorOrRecoveryHandler;
@@ -37,6 +37,7 @@ import { TestSteps } from './flows/testSteps.svelte';
37
37
  import { aiChatManager } from './copilot/chat/AIChatManager.svelte';
38
38
  import { setStepHistoryLoaderContext, StepHistoryLoader } from './stepHistoryLoader.svelte';
39
39
  import { ModulesTestStates } from './modulesTest.svelte';
40
+ import FlowAssetsHandler, { initFlowGraphAssetsCtx } from './flows/FlowAssetsHandler.svelte';
40
41
  let { initialPath = $bindable(''), pathStoreInit = undefined, newFlow, selectedId, initialArgs = {}, loading = false, flowStore, flowStateStore, savedFlow = $bindable(undefined), diffDrawer = undefined, customUi = {}, disableAi = false, disabledFlowInputs = false, savedPrimarySchedule = undefined, version = undefined, setSavedraftCb = undefined, draftTriggersFromUrl = undefined, selectedTriggerIndexFromUrl = undefined, children, loadedFromHistoryFromUrl, noInitial = false, onSaveInitial, onSaveDraft, onDeploy, onDeployError, onDetails, onSaveDraftError, onSaveDraftOnlyAtNewPath, onHistoryRestore } = $props();
41
42
  let initialPathStore = writable(initialPath);
42
43
  // used for new flows for captures
@@ -475,6 +476,7 @@ setContext('FlowEditorContext', {
475
476
  modulesTestStates,
476
477
  outputPickerOpenFns
477
478
  });
479
+ setContext('FlowGraphAssetContext', initFlowGraphAssetsCtx({ getModules: () => flowStore.val.value.modules }));
478
480
  // Add triggers context store
479
481
  const triggersState = $state(new Triggers([
480
482
  { type: 'webhook', path: '', isDraft: false },
@@ -784,9 +786,9 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
784
786
  redoProps={{ disabled: $history.index === $history.history.length - 1 }}
785
787
  on:undo={() => {
786
788
  const currentModules = flowStore.val?.value?.modules
787
- console.log('undo before', flowStore.val, JSON.stringify(flowStore.val, null, 2))
789
+ // console.log('undo before', flowStore.val, JSON.stringify(flowStore.val, null, 2))
788
790
  flowStore.val = undo(history, flowStore.val)
789
- console.log('undo after', flowStore.val, JSON.stringify(flowStore.val, null, 2))
791
+ // console.log('undo after', flowStore.val, JSON.stringify(flowStore.val, null, 2))
790
792
 
791
793
  const newModules = flowStore.val?.value?.modules
792
794
  const restoredModules = newModules?.filter(
@@ -1030,3 +1032,10 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
1030
1032
  renderCount += 1
1031
1033
  }}
1032
1034
  />
1035
+
1036
+ <FlowAssetsHandler
1037
+ modules={flowStore.val.value.modules}
1038
+ enableParser
1039
+ enableDbExplore
1040
+ enablePathScriptAndFlowAssets
1041
+ />
@@ -6,22 +6,10 @@ import { workspaceStore } from '../stores';
6
6
  import DrawerContent from './common/drawer/DrawerContent.svelte';
7
7
  import { Drawer } from './common';
8
8
  import AllFlowLogs from './AllFlowLogs.svelte';
9
- export let waitingForExecutor = false;
10
- export let result;
11
- export let logs;
12
- export let col = false;
13
- export let noBorder = false;
14
- export let loading;
15
- export let filename = undefined;
16
- export let jobId = undefined;
17
- export let tag = undefined;
18
- export let workspaceId = undefined;
19
- export let refreshLog = false;
20
- export let durationStates;
21
- export let downloadLogs = true;
22
- let lastJobId = undefined;
23
- let drawer = undefined;
24
- $: jobId != lastJobId && diffJobId();
9
+ import { untrack } from 'svelte';
10
+ let { waitingForExecutor = false, result, logs = $bindable(), col = false, noBorder = false, loading, filename = undefined, jobId = undefined, tag = undefined, workspaceId = undefined, refreshLog = false, durationStates, downloadLogs = true, tagLabel = undefined } = $props();
11
+ let lastJobId = $state(undefined);
12
+ let drawer = $state(undefined);
25
13
  let iteration = 0;
26
14
  let logOffset = 0;
27
15
  async function diffJobId() {
@@ -53,6 +41,12 @@ async function getLogs() {
53
41
  }, iteration < 10 ? 1000 : iteration < 20 ? 2000 : 5000);
54
42
  }
55
43
  }
44
+ $effect(() => {
45
+ jobId;
46
+ untrack(() => {
47
+ jobId != lastJobId && diffJobId();
48
+ });
49
+ });
56
50
  </script>
57
51
 
58
52
  <Drawer bind:this={drawer}>
@@ -78,9 +72,10 @@ async function getLogs() {
78
72
  </div>
79
73
  <div class="overflow-auto {col ? '' : 'max-h-80'} relative">
80
74
  <div class="absolute z-40 text-xs top-0 left-1"
81
- ><button class="" on:click={drawer.openDrawer}>explore all steps' logs</button></div
75
+ ><button class="" onclick={drawer.openDrawer}>explore all steps' logs</button></div
82
76
  >
83
77
  <LogViewer
78
+ {tagLabel}
84
79
  download={downloadLogs}
85
80
  content={logs ?? ''}
86
81
  {jobId}
@@ -1,19 +1,6 @@
1
1
  import type { DurationStatus } from './graph';
2
2
  import type { Writable } from 'svelte/store';
3
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports & {
11
- $set?: any;
12
- $on?: any;
13
- };
14
- z_$$bindings?: Bindings;
15
- }
16
- declare const FlowJobResult: $$__sveltets_2_IsomorphicComponent<{
3
+ interface Props {
17
4
  waitingForExecutor?: boolean;
18
5
  result: any;
19
6
  logs: string | undefined;
@@ -27,8 +14,8 @@ declare const FlowJobResult: $$__sveltets_2_IsomorphicComponent<{
27
14
  refreshLog?: boolean;
28
15
  durationStates: Writable<Record<string, DurationStatus>> | undefined;
29
16
  downloadLogs?: boolean;
30
- }, {
31
- [evt: string]: CustomEvent<any>;
32
- }, {}, {}, string>;
33
- type FlowJobResult = InstanceType<typeof FlowJobResult>;
17
+ tagLabel?: string | undefined;
18
+ }
19
+ declare const FlowJobResult: import("svelte").Component<Props, {}, "logs">;
20
+ type FlowJobResult = ReturnType<typeof FlowJobResult>;
34
21
  export default FlowJobResult;
@@ -1,9 +1,9 @@
1
- <script lang="ts">import { run, stopPropagation } from 'svelte/legacy';
1
+ <script lang="ts">import { stopPropagation } from 'svelte/legacy';
2
2
  import { JobService } from '../gen';
3
3
  import { workspaceStore } from '../stores';
4
4
  import { Badge, Button } from './common';
5
5
  import Popover from './meltComponents/Popover.svelte';
6
- import { createEventDispatcher, getContext } from 'svelte';
6
+ import { createEventDispatcher, getContext, untrack } from 'svelte';
7
7
  import { runFlowPreview } from './flows/utils';
8
8
  import SchemaForm from './SchemaForm.svelte';
9
9
  import SchemaFormWithArgPicker from './SchemaFormWithArgPicker.svelte';
@@ -58,7 +58,7 @@ function extractFlow(previewMode) {
58
58
  }
59
59
  let lastPreviewFlow = $state(undefined);
60
60
  export async function runPreview(args, restartedFrom) {
61
- if (stepHistoryLoader?.flowJobInitial) {
61
+ if (stepHistoryLoader?.flowJobInitial !== false) {
62
62
  stepHistoryLoader?.setFlowJobInitial(false);
63
63
  }
64
64
  try {
@@ -141,20 +141,23 @@ async function selectInput(input, type) {
141
141
  export function refresh() {
142
142
  renderCount++;
143
143
  }
144
- let scrollableDiv = undefined;
144
+ let scrollableDiv = $state(undefined);
145
145
  function handleScroll() {
146
- scrollTop = scrollableDiv?.scrollTop ?? 0;
146
+ let newScroll = scrollableDiv?.scrollTop ?? 0;
147
+ if (newScroll != 0 && render) {
148
+ scrollTop = newScroll;
149
+ }
147
150
  }
148
151
  function onScrollableDivChange() {
149
152
  if (scrollTop != 0 && scrollableDiv) {
150
153
  scrollableDiv.scrollTop = scrollTop;
151
154
  }
152
155
  }
153
- run(() => {
154
- selectedJobStep !== undefined && onSelectedJobStepChange();
156
+ $effect.pre(() => {
157
+ selectedJobStep !== undefined && untrack(() => onSelectedJobStepChange());
155
158
  });
156
- run(() => {
157
- scrollableDiv && onScrollableDivChange();
159
+ $effect(() => {
160
+ scrollableDiv && render && untrack(() => onScrollableDivChange());
158
161
  });
159
162
  export async function cancelTest() {
160
163
  isRunning = false;
@@ -482,7 +485,7 @@ export function flowHasChanged() {
482
485
  wideResults
483
486
  {flowStateStore}
484
487
  {jobId}
485
- on:done={() => {
488
+ on:done={(x) => {
486
489
  isRunning = false
487
490
  $executionCount = $executionCount + 1
488
491
  onJobDone?.()
@@ -54,6 +54,6 @@ declare const FlowPreviewContent: $$__sveltets_2_IsomorphicComponent<Props, {
54
54
  getIsOwner: () => boolean;
55
55
  getJob: () => Job | undefined;
56
56
  flowHasChanged: () => boolean;
57
- }, "initial" | "preventEscape" | "job" | "jobId" | "scrollTop" | "localDurationStatuses" | "localModuleStates" | "rightColumnSelect" | "previewMode" | "selectedJobStep" | "selectedJobStepIsTopLevel" | "selectedJobStepType" | "branchOrIterationN">;
57
+ }, "initial" | "preventEscape" | "job" | "jobId" | "scrollTop" | "localDurationStatuses" | "rightColumnSelect" | "localModuleStates" | "selectedJobStep" | "previewMode" | "selectedJobStepIsTopLevel" | "selectedJobStepType" | "branchOrIterationN">;
58
58
  type FlowPreviewContent = InstanceType<typeof FlowPreviewContent>;
59
59
  export default FlowPreviewContent;
@@ -1,8 +1,9 @@
1
- <script lang="ts">import { Badge, Loader2 } from 'lucide-svelte';
1
+ <script lang="ts">import { Loader2 } from 'lucide-svelte';
2
2
  import FlowJobResult from './FlowJobResult.svelte';
3
3
  import FlowPreviewStatus from './preview/FlowPreviewStatus.svelte';
4
4
  import FlowStatusWaitingForEvents from './FlowStatusWaitingForEvents.svelte';
5
5
  import { emptyString } from '../utils';
6
+ import Badge from './common/badge/Badge.svelte';
6
7
  let { job, workspaceId, isOwner, hideFlowResult, hideDownloadLogs, localDurationStatuses, innerModules, suspendStatus, hideJobId, extra } = $props();
7
8
  </script>
8
9
 
@@ -52,10 +53,17 @@ let { job, workspaceId, isOwner, hideFlowResult, hideDownloadLogs, localDuration
52
53
  {#if mod.type == 'InProgress'}
53
54
  {@const rawMod = job.raw_flow?.modules[i]}
54
55
 
55
- <div
56
- ><span class="inline-flex gap-1"
57
- ><Badge color="indigo">{mod.id}</Badge>
58
- <span class="font-medium text-primary">
56
+ <div>
57
+ <span class="inline-flex gap-1">
58
+ <Badge
59
+ color="indigo"
60
+ wrapperClass="max-w-full"
61
+ baseClass="max-w-full truncate !px-1"
62
+ title={mod.id}
63
+ >
64
+ <span class="max-w-full text-2xs truncate">{mod.id}</span></Badge
65
+ >
66
+ <span class="font-medium text-primary mt-0.5">
59
67
  {#if !emptyString(rawMod?.summary)}
60
68
  {rawMod?.summary ?? ''}
61
69
  {:else if rawMod?.value.type == 'script'}
@@ -65,7 +73,7 @@ let { job, workspaceId, isOwner, hideFlowResult, hideDownloadLogs, localDuration
65
73
  {/if}
66
74
  </span>
67
75
 
68
- <Loader2 class="animate-spin" /></span
76
+ <Loader2 class="animate-spin mt-0.5" /></span
69
77
  ></div
70
78
  >
71
79
  {/if}