windmill-components 1.444.1 → 1.447.4

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 (229) hide show
  1. package/package/autosize.js +1 -1
  2. package/package/components/AppConnectInner.svelte +2 -1
  3. package/package/components/ArgInput.svelte +37 -24
  4. package/package/components/CapturesInputs.svelte +16 -0
  5. package/package/components/CapturesInputs.svelte.d.ts +21 -0
  6. package/package/components/Dev.svelte +7 -1
  7. package/package/components/EditableSchemaForm.svelte +369 -290
  8. package/package/components/EditableSchemaForm.svelte.d.ts +12 -2
  9. package/package/components/Editor.svelte +5 -7
  10. package/package/components/FirstStepInputs.svelte +111 -0
  11. package/package/components/FirstStepInputs.svelte.d.ts +17 -0
  12. package/package/components/FlowBuilder.svelte +28 -7
  13. package/package/components/FlowPreviewContent.svelte +72 -1
  14. package/package/components/FlowPreviewContent.svelte.d.ts +1 -0
  15. package/package/components/GfmMarkdown.svelte +93 -2
  16. package/package/components/HighlightCode.svelte +2 -0
  17. package/package/components/HistoricInputs.svelte +193 -0
  18. package/package/components/HistoricInputs.svelte.d.ts +20 -0
  19. package/package/components/InfiniteList.svelte +161 -0
  20. package/package/components/InfiniteList.svelte.d.ts +40 -0
  21. package/package/components/LightweightArgInput.svelte +19 -15
  22. package/package/components/MoveDrawer.svelte +2 -1
  23. package/package/components/Path.svelte +7 -1
  24. package/package/components/Path.svelte.d.ts +1 -1
  25. package/package/components/ResourcePicker.svelte +2 -1
  26. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  27. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  28. package/package/components/SaveInputsButton.svelte +53 -0
  29. package/package/components/SaveInputsButton.svelte.d.ts +24 -0
  30. package/package/components/SavedInputs.svelte +33 -61
  31. package/package/components/SavedInputsPicker.svelte +264 -0
  32. package/package/components/SavedInputsPicker.svelte.d.ts +20 -0
  33. package/package/components/ScheduleEditorInner.svelte +0 -1
  34. package/package/components/SchemaForm.svelte +22 -3
  35. package/package/components/ScriptBuilder.svelte +595 -562
  36. package/package/components/ScriptEditor.svelte +10 -3
  37. package/package/components/ScriptEditor.svelte.d.ts +5 -2
  38. package/package/components/ScriptSchema.svelte +1 -2
  39. package/package/components/Section.svelte +6 -4
  40. package/package/components/ShareModal.svelte.d.ts +2 -2
  41. package/package/components/SimpleEditor.svelte +39 -7
  42. package/package/components/SimpleEditor.svelte.d.ts +1 -4
  43. package/package/components/StringTypeNarrowing.svelte +3 -1
  44. package/package/components/TestConnection.svelte +5 -0
  45. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  46. package/package/components/WorkerGroup.svelte +2 -1
  47. package/package/components/apps/components/inputs/AppS3FileInput.svelte +1 -0
  48. package/package/components/apps/editor/component/components.d.ts +79 -79
  49. package/package/components/apps/editor/component/default-codes.d.ts +1 -1
  50. package/package/components/apps/editor/component/default-codes.js +10 -10
  51. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +2 -1
  52. package/package/components/apps/inputType.d.ts +2 -2
  53. package/package/components/common/button/Button.svelte +10 -52
  54. package/package/components/common/button/PulseButton.svelte +81 -0
  55. package/package/components/common/button/PulseButton.svelte.d.ts +34 -0
  56. package/package/components/common/button/RoundIconButton.svelte +11 -0
  57. package/package/components/common/button/RoundIconButton.svelte.d.ts +19 -0
  58. package/package/components/common/button/model.d.ts +1 -0
  59. package/package/components/common/button/model.js +47 -0
  60. package/package/components/common/fileUpload/FileUpload.svelte +3 -1
  61. package/package/components/common/fileUpload/FileUpload.svelte.d.ts +1 -0
  62. package/package/components/common/languageIcons/LanguageIcon.svelte +3 -0
  63. package/package/components/common/layout/List.svelte +10 -4
  64. package/package/components/common/layout/List.svelte.d.ts +1 -0
  65. package/package/components/common/tabs/Tab.svelte +14 -1
  66. package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
  67. package/package/components/copilot/ScriptGen.svelte +1 -1
  68. package/package/components/copilot/lib.js +1 -1
  69. package/package/components/copilot/prompts/edit.yaml +1 -1
  70. package/package/components/copilot/prompts/editPrompt.js +1 -1
  71. package/package/components/copilot/prompts/fix.yaml +1 -1
  72. package/package/components/copilot/prompts/fixPrompt.js +1 -1
  73. package/package/components/copilot/prompts/gen.yaml +1 -1
  74. package/package/components/copilot/prompts/genPrompt.js +1 -1
  75. package/package/components/custom_ui.d.ts +1 -0
  76. package/package/components/details/DetailPageDetailPanel.svelte +20 -19
  77. package/package/components/details/DetailPageDetailPanel.svelte.d.ts +4 -1
  78. package/package/components/details/DetailPageLayout.svelte +4 -1
  79. package/package/components/details/DetailPageLayout.svelte.d.ts +3 -0
  80. package/package/components/details/DetailPageTriggerPanel.svelte +84 -63
  81. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +3 -1
  82. package/package/components/details/EmailTriggerConfigSection.svelte +1 -1
  83. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +2 -1
  84. package/package/components/details/EmailTriggerPanel.svelte +2 -0
  85. package/package/components/details/EmailTriggerPanel.svelte.d.ts +2 -0
  86. package/package/components/flows/FlowEditor.svelte +8 -2
  87. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  88. package/package/components/flows/common/FlowCard.svelte +12 -6
  89. package/package/components/flows/content/DynamicInputHelpBox.svelte +1 -0
  90. package/package/components/flows/content/FlowEditorPanel.svelte +15 -9
  91. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  92. package/package/components/flows/content/FlowInput.svelte +449 -98
  93. package/package/components/flows/content/FlowInput.svelte.d.ts +2 -0
  94. package/package/components/flows/content/FlowInputEditor.svelte +46 -0
  95. package/package/components/flows/content/FlowInputEditor.svelte.d.ts +25 -0
  96. package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
  97. package/package/components/flows/content/FlowLoop.svelte +192 -194
  98. package/package/components/flows/content/FlowModuleComponent.svelte +372 -382
  99. package/package/components/flows/content/FlowModuleMock.svelte +6 -7
  100. package/package/components/flows/content/FlowPathViewer.svelte +2 -1
  101. package/package/components/flows/content/FlowSettings.svelte +25 -3
  102. package/package/components/flows/content/FlowWhileLoop.svelte +97 -99
  103. package/package/components/flows/flowStore.d.ts +13 -0
  104. package/package/components/flows/flowStore.js +41 -0
  105. package/package/components/flows/header/FlowPreviewButtons.svelte +10 -4
  106. package/package/components/flows/header/FlowPreviewButtons.svelte.d.ts +4 -2
  107. package/package/components/flows/header/FlowYamlEditor.svelte +3 -0
  108. package/package/components/flows/map/FlowModuleSchemaItem.svelte +8 -58
  109. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +67 -0
  110. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +24 -0
  111. package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
  112. package/package/components/flows/pickers/FlowScriptPicker.svelte +1 -1
  113. package/package/components/flows/previousResults.d.ts +1 -1
  114. package/package/components/flows/previousResults.js +7 -2
  115. package/package/components/flows/types.d.ts +7 -0
  116. package/package/components/flows/utils.d.ts +1 -0
  117. package/package/components/flows/utils.js +3 -0
  118. package/package/components/graph/graphBuilder.js +1 -1
  119. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +22 -8
  120. package/package/components/graph/renderers/triggers/TriggersBadge.svelte.d.ts +1 -1
  121. package/package/components/icons/NatsIcon.svelte +19 -0
  122. package/package/components/icons/NatsIcon.svelte.d.ts +18 -0
  123. package/package/components/icons/OracleDBIcon.svelte +15 -0
  124. package/package/components/icons/OracleDBIcon.svelte.d.ts +25 -0
  125. package/package/components/icons/index.d.ts +7 -1
  126. package/package/components/icons/index.js +8 -2
  127. package/package/components/meltComponents/ButtonDropDown.svelte +32 -0
  128. package/package/components/meltComponents/ButtonDropDown.svelte.d.ts +27 -0
  129. package/package/components/meltComponents/Popover.svelte +7 -4
  130. package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
  131. package/package/components/runs/RunsFilter.svelte +2 -2
  132. package/package/components/schema/AddPropertyFormV2.svelte +46 -0
  133. package/package/components/schema/AddPropertyFormV2.svelte.d.ts +18 -0
  134. package/package/components/schema/AddPropertyV2.svelte +151 -0
  135. package/package/components/schema/AddPropertyV2.svelte.d.ts +25 -0
  136. package/package/components/schema/EditableSchemaDrawer.svelte +17 -8
  137. package/package/components/schema/EditableSchemaWrapper.svelte +58 -14
  138. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +0 -1
  139. package/package/components/schema/FlowPropertyEditor.svelte +8 -3
  140. package/package/components/schema/JobSchemaPicker.svelte +32 -0
  141. package/package/components/schema/JobSchemaPicker.svelte.d.ts +19 -0
  142. package/package/components/schema/PropertyEditor.svelte +9 -1
  143. package/package/components/schema/RunningJobSchemaPicker.svelte +67 -0
  144. package/package/components/schema/RunningJobSchemaPicker.svelte.d.ts +21 -0
  145. package/package/components/schema/SchemaFormDND.svelte +1 -1
  146. package/package/components/schema/SchemaPicker.svelte +92 -0
  147. package/package/components/schema/SchemaPicker.svelte.d.ts +23 -0
  148. package/package/components/schema/SchemaPickerRow.svelte +95 -0
  149. package/package/components/schema/SchemaPickerRow.svelte.d.ts +22 -0
  150. package/package/components/scriptEditor/LogPanel.svelte +1 -1
  151. package/package/components/settings/ChangeWorkspaceColor.svelte +103 -0
  152. package/package/components/settings/ChangeWorkspaceColor.svelte.d.ts +16 -0
  153. package/package/components/settings/ChangeWorkspaceId.svelte +1 -0
  154. package/package/components/settings/ChangeWorkspaceName.svelte +4 -0
  155. package/package/components/sidebar/MenuButton.svelte +5 -2
  156. package/package/components/sidebar/MenuButton.svelte.d.ts +1 -0
  157. package/package/components/sidebar/SidebarContent.svelte +8 -0
  158. package/package/components/sidebar/WorkspaceMenu.svelte +40 -21
  159. package/package/components/table/DataTable.svelte +43 -3
  160. package/package/components/table/DataTable.svelte.d.ts +2 -0
  161. package/package/components/table/Head.svelte +1 -1
  162. package/package/components/table/Row.svelte +11 -1
  163. package/package/components/table/Row.svelte.d.ts +3 -0
  164. package/package/components/table/index.d.ts +3 -0
  165. package/package/components/table/index.js +3 -0
  166. package/package/components/triggers/CaptureButton.svelte +38 -4
  167. package/package/components/triggers/CaptureButton.svelte.d.ts +3 -1
  168. package/package/components/triggers/CaptureIcon.svelte +7 -4
  169. package/package/components/triggers/CaptureIcon.svelte.d.ts +7 -13
  170. package/package/components/triggers/CaptureSection.svelte +50 -17
  171. package/package/components/triggers/CaptureSection.svelte.d.ts +5 -3
  172. package/package/components/triggers/CaptureTable.svelte +239 -186
  173. package/package/components/triggers/CaptureTable.svelte.d.ts +9 -11
  174. package/package/components/triggers/CaptureWrapper.svelte +126 -109
  175. package/package/components/triggers/CaptureWrapper.svelte.d.ts +3 -1
  176. package/package/components/triggers/KafkaTriggerEditorInner.svelte +1 -0
  177. package/package/components/triggers/KafkaTriggersConfigSection.svelte +16 -4
  178. package/package/components/triggers/KafkaTriggersConfigSection.svelte.d.ts +3 -1
  179. package/package/components/triggers/KafkaTriggersPanel.svelte +2 -0
  180. package/package/components/triggers/KafkaTriggersPanel.svelte.d.ts +2 -0
  181. package/package/components/triggers/NatsTriggerEditor.svelte +19 -0
  182. package/package/components/triggers/NatsTriggerEditor.svelte.d.ts +21 -0
  183. package/package/components/triggers/NatsTriggerEditorInner.svelte +239 -0
  184. package/package/components/triggers/NatsTriggerEditorInner.svelte.d.ts +21 -0
  185. package/package/components/triggers/NatsTriggersConfigSection.svelte +276 -0
  186. package/package/components/triggers/NatsTriggersConfigSection.svelte.d.ts +37 -0
  187. package/package/components/triggers/NatsTriggersPanel.svelte +126 -0
  188. package/package/components/triggers/NatsTriggersPanel.svelte.d.ts +26 -0
  189. package/package/components/triggers/RouteEditorConfigSection.svelte +12 -2
  190. package/package/components/triggers/RouteEditorConfigSection.svelte.d.ts +5 -1
  191. package/package/components/triggers/RouteEditorInner.svelte +5 -0
  192. package/package/components/triggers/RoutesPanel.svelte +4 -0
  193. package/package/components/triggers/RoutesPanel.svelte.d.ts +3 -0
  194. package/package/components/triggers/TriggersEditor.svelte +146 -97
  195. package/package/components/triggers/TriggersEditor.svelte.d.ts +2 -0
  196. package/package/components/triggers/TriggersEditorSection.svelte +19 -13
  197. package/package/components/triggers/TriggersEditorSection.svelte.d.ts +3 -0
  198. package/package/components/triggers/TriggersWrapper.svelte +7 -3
  199. package/package/components/triggers/TriggersWrapper.svelte.d.ts +2 -1
  200. package/package/components/triggers/WebhooksConfigSection.svelte +7 -6
  201. package/package/components/triggers/WebhooksConfigSection.svelte.d.ts +2 -1
  202. package/package/components/triggers/WebhooksPanel.svelte +2 -0
  203. package/package/components/triggers/WebhooksPanel.svelte.d.ts +2 -0
  204. package/package/components/triggers/WebsocketEditorConfigSection.svelte +3 -1
  205. package/package/components/triggers/WebsocketEditorConfigSection.svelte.d.ts +2 -1
  206. package/package/components/triggers/WebsocketTriggersPanel.svelte +2 -0
  207. package/package/components/triggers/WebsocketTriggersPanel.svelte.d.ts +2 -0
  208. package/package/components/triggers.d.ts +2 -1
  209. package/package/components/triggers.js +2 -0
  210. package/package/components/vscode.js +12 -8
  211. package/package/consts.d.ts +1 -0
  212. package/package/consts.js +18 -0
  213. package/package/gen/core/OpenAPI.js +1 -1
  214. package/package/gen/schemas.gen.d.ts +207 -13
  215. package/package/gen/schemas.gen.js +207 -13
  216. package/package/gen/services.gen.d.ts +118 -10
  217. package/package/gen/services.gen.js +237 -17
  218. package/package/gen/types.gen.d.ts +400 -40
  219. package/package/hubPaths.json +2 -1
  220. package/package/infer.js +11 -2
  221. package/package/monaco_workers/build_workers.js +39 -37
  222. package/package/monaco_workers/graphql.worker.bundle.js +18371 -36513
  223. package/package/script_helpers.d.ts +5 -2
  224. package/package/script_helpers.js +46 -8
  225. package/package/scripts.js +4 -0
  226. package/package/stores.d.ts +2 -1
  227. package/package/stores.js +2 -1
  228. package/package.json +14 -16
  229. package/package/monaco_workers/graphql.worker.bundle.d.ts +0 -0
@@ -0,0 +1,26 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ isFlow: boolean;
5
+ path: string;
6
+ newItem?: boolean | undefined;
7
+ isEditor?: boolean | undefined;
8
+ canHavePreprocessor?: boolean | undefined;
9
+ hasPreprocessor?: boolean | undefined;
10
+ loadTriggers?: (() => Promise<void>) | undefined;
11
+ };
12
+ events: {
13
+ applyArgs: any;
14
+ addPreprocessor: any;
15
+ } & {
16
+ [evt: string]: CustomEvent<any>;
17
+ };
18
+ slots: {};
19
+ };
20
+ export type NatsTriggersPanelProps = typeof __propDef.props;
21
+ export type NatsTriggersPanelEvents = typeof __propDef.events;
22
+ export type NatsTriggersPanelSlots = typeof __propDef.slots;
23
+ export default class NatsTriggersPanel extends SvelteComponent<NatsTriggersPanelProps, NatsTriggersPanelEvents, NatsTriggersPanelSlots> {
24
+ get loadTriggers(): () => Promise<void>;
25
+ }
26
+ export {};
@@ -14,6 +14,9 @@ import { base } from '../../base';
14
14
  import CaptureSection from './CaptureSection.svelte';
15
15
  import CaptureTable from './CaptureTable.svelte';
16
16
  import ClipboardPanel from '../details/ClipboardPanel.svelte';
17
+ export let isFlow;
18
+ export let path;
19
+ export let args = { route_path: '', http_method: 'get' };
17
20
  export let dirtyRoutePath = false;
18
21
  export let route_path = '';
19
22
  export let http_method = 'post';
@@ -53,12 +56,18 @@ async function routeExists(route_path, method) {
53
56
  }
54
57
  });
55
58
  }
59
+ $: captureURL = `${location.origin}${base}/api/w/${$workspaceStore}/capture_u/http/${isFlow ? 'flow' : 'script'}/${path.replaceAll('/', '.')}/${route_path}`;
56
60
  function getHttpRoute(route_path) {
57
61
  return `${location.origin}${base}/api/r/${isCloudHosted() ? $workspaceStore + '/' : ''}${route_path}`;
58
62
  }
59
63
  $: validateRoute(route_path, http_method);
60
64
  $: isValid = routeError === '';
61
65
  $: fullRoute = getHttpRoute(route_path);
66
+ $: showCapture && (http_method = 'post');
67
+ function updateArgs(route_path, http_method) {
68
+ args && ((args.route_path = route_path), (args.http_method = http_method));
69
+ }
70
+ $: updateArgs(route_path, http_method);
62
71
  </script>
63
72
 
64
73
  <div>
@@ -71,17 +80,18 @@ $: fullRoute = getHttpRoute(route_path);
71
80
  on:applyArgs
72
81
  on:updateSchema
73
82
  on:addPreprocessor
83
+ on:testWithArgs
74
84
  bind:captureTable
75
85
  >
76
86
  <Label label="URL">
77
- <ClipboardPanel content={fullRoute} disabled={!captureInfo.active} />
87
+ <ClipboardPanel content={captureURL} disabled={!captureInfo.active} />
78
88
  </Label>
79
89
 
80
90
  <Label label="Example cUrl">
81
91
  <CopyableCodeBlock
82
92
  disabled={!captureInfo.active}
83
93
  code={`curl \\
84
- -X POST ${fullRoute} \\
94
+ -X POST ${captureURL} \\
85
95
  -H 'Content-Type: application/json' \\
86
96
  -d '{"foo": 42}'`}
87
97
  language={bash}
@@ -3,6 +3,9 @@ import type { CaptureInfo } from './CaptureSection.svelte';
3
3
  import CaptureTable from './CaptureTable.svelte';
4
4
  declare const __propDef: {
5
5
  props: {
6
+ isFlow: boolean;
7
+ path: string;
8
+ args?: Record<string, any> | undefined;
6
9
  dirtyRoutePath?: boolean | undefined;
7
10
  route_path?: string | undefined;
8
11
  http_method?: "get" | "post" | "put" | "delete" | "patch" | undefined;
@@ -26,10 +29,11 @@ declare const __propDef: {
26
29
  args: Record<string, any> | undefined;
27
30
  }>;
28
31
  updateSchema: CustomEvent<{
29
- schema: any;
32
+ payloadData: Record<string, any>;
30
33
  redirect: boolean;
31
34
  }>;
32
35
  addPreprocessor: CustomEvent<null>;
36
+ testWithArgs: CustomEvent<any>;
33
37
  } & {
34
38
  [evt: string]: CustomEvent<any>;
35
39
  };
@@ -149,6 +149,8 @@ async function triggerScript() {
149
149
  }
150
150
  let drawer;
151
151
  let dirtyPath = false;
152
+ let args = { route_path: '' };
153
+ $: args && (route_path = args.route_path);
152
154
  </script>
153
155
 
154
156
  {#if static_asset_config}
@@ -203,7 +205,10 @@ let dirtyPath = false;
203
205
  </div>
204
206
 
205
207
  <RouteEditorConfigSection
208
+ isFlow={is_flow}
209
+ {path}
206
210
  bind:route_path
211
+ bind:args
207
212
  bind:isValid
208
213
  bind:dirtyRoutePath
209
214
  bind:http_method
@@ -13,6 +13,7 @@ export let path;
13
13
  export let newItem = false;
14
14
  export let isEditor = false;
15
15
  export let canHavePreprocessor = false;
16
+ export let hasPreprocessor = false;
16
17
  let routeEditor;
17
18
  $: path && loadTriggers();
18
19
  const { triggersCount, selectedTrigger, defaultValues } = getContext('TriggerContext');
@@ -60,12 +61,15 @@ export async function loadTriggers() {
60
61
  }}
61
62
  on:applyArgs
62
63
  on:addPreprocessor
64
+ on:updateSchema
65
+ on:testWithArgs
63
66
  cloudDisabled={false}
64
67
  triggerType="http"
65
68
  {isFlow}
66
69
  {path}
67
70
  {isEditor}
68
71
  {canHavePreprocessor}
72
+ {hasPreprocessor}
69
73
  {newItem}
70
74
  />
71
75
  {#if !newItem}
@@ -6,11 +6,14 @@ declare const __propDef: {
6
6
  newItem?: boolean | undefined;
7
7
  isEditor?: boolean | undefined;
8
8
  canHavePreprocessor?: boolean | undefined;
9
+ hasPreprocessor?: boolean | undefined;
9
10
  loadTriggers?: (() => Promise<void>) | undefined;
10
11
  };
11
12
  events: {
12
13
  applyArgs: any;
13
14
  addPreprocessor: any;
15
+ updateSchema: any;
16
+ testWithArgs: any;
14
17
  } & {
15
18
  [evt: string]: CustomEvent<any>;
16
19
  };
@@ -11,6 +11,10 @@ import { getContext, onDestroy, createEventDispatcher } from 'svelte';
11
11
  import WebsocketTriggersPanel from './WebsocketTriggersPanel.svelte';
12
12
  import ScheduledPollPanel from './ScheduledPollPanel.svelte';
13
13
  import KafkaTriggersPanel from './KafkaTriggersPanel.svelte';
14
+ import NatsTriggersPanel from './NatsTriggersPanel.svelte';
15
+ import ToggleButtonGroup from '../common/toggleButton-v2/ToggleButtonGroup.svelte';
16
+ import ToggleButton from '../common/toggleButton-v2/ToggleButton.svelte';
17
+ import { KafkaIcon, NatsIcon } from '../icons';
14
18
  export let noEditor;
15
19
  export let newItem = false;
16
20
  export let currentPath;
@@ -20,6 +24,12 @@ export let schema;
20
24
  export let isFlow;
21
25
  export let canHavePreprocessor = false;
22
26
  export let hasPreprocessor = false;
27
+ let eventStreamType = 'kafka';
28
+ $: {
29
+ if ($selectedTrigger === 'kafka' || $selectedTrigger === 'nats') {
30
+ eventStreamType = $selectedTrigger;
31
+ }
32
+ }
23
33
  const { selectedTrigger, simplifiedPoll } = getContext('TriggerContext');
24
34
  const dispatch = createEventDispatcher();
25
35
  onDestroy(() => {
@@ -29,106 +39,145 @@ onDestroy(() => {
29
39
 
30
40
  <FlowCard {noEditor} title="Triggers">
31
41
  {#if !$simplifiedPoll}
32
- <Tabs bind:selected={$selectedTrigger}>
33
- <Tab value="webhooks" selectedClass="text-primary font-semibold">Webhooks</Tab>
34
- <Tab value="schedules" selectedClass="text-primary text-sm font-semibold">Schedules</Tab>
35
- <Tab value="routes" selectedClass="text-primary text-sm font-semibold">HTTP</Tab>
36
- <Tab value="websockets" selectedClass="text-primary text-sm font-semibold">Websockets</Tab>
37
- <Tab value="kafka" selectedClass="text-primary text-sm font-semibold">Kafka</Tab>
38
- <Tab value="emails" selectedClass="text-primary text-sm font-semibold">Email</Tab>
39
- {#if isFlow}
40
- <Tab value="scheduledPoll" selectedClass="text-primary text-sm font-semibold"
41
- >Scheduled Poll</Tab
42
+ <div class="h-full flex flex-col">
43
+ <Tabs bind:selected={$selectedTrigger} wrapperClass="overflow-hidden shrink-0">
44
+ <Tab value="webhooks" selectedClass="text-primary font-semibold">Webhooks</Tab>
45
+ <Tab value="schedules" selectedClass="text-primary text-sm font-semibold">Schedules</Tab>
46
+ <Tab value="routes" selectedClass="text-primary text-sm font-semibold">HTTP</Tab>
47
+ <Tab value="websockets" selectedClass="text-primary text-sm font-semibold">Websockets</Tab>
48
+ <Tab
49
+ value="kafka"
50
+ otherValues={['nats']}
51
+ selectedClass="text-primary text-sm font-semibold"
42
52
  >
43
- {/if}
53
+ Event streams
54
+ </Tab>
55
+ <Tab value="emails" selectedClass="text-primary text-sm font-semibold">Email</Tab>
56
+ {#if isFlow}
57
+ <Tab value="scheduledPoll" selectedClass="text-primary text-sm font-semibold"
58
+ >Scheduled Poll</Tab
59
+ >
60
+ {/if}
44
61
 
45
- <svelte:fragment slot="content">
46
- {#if $selectedTrigger === 'webhooks'}
47
- <div class="p-4">
48
- <WebhooksPanel
49
- on:applyArgs
50
- on:addPreprocessor
51
- scopes={isFlow ? [`run:flow/${currentPath}`] : [`run:script/${currentPath}`]}
52
- path={currentPath}
53
- {hash}
54
- {isFlow}
55
- args={{}}
56
- token=""
57
- {newItem}
58
- isEditor={true}
59
- {canHavePreprocessor}
60
- {hasPreprocessor}
61
- />
62
- </div>
63
- {:else if $selectedTrigger === 'emails'}
64
- <div class="p-4">
65
- <EmailTriggerPanel
66
- on:applyArgs
67
- on:addPreprocessor
68
- token=""
69
- scopes={isFlow ? [`run:flow/${currentPath}`] : [`run:script/${currentPath}`]}
70
- path={currentPath}
71
- {isFlow}
72
- isEditor={true}
73
- {canHavePreprocessor}
74
- {hasPreprocessor}
75
- {newItem}
76
- />
77
- </div>
78
- {:else if $selectedTrigger === 'routes'}
79
- <div class="p-4">
80
- <RoutesPanel
81
- on:applyArgs
82
- on:addPreprocessor
83
- {newItem}
84
- path={currentPath}
85
- {isFlow}
86
- isEditor={true}
87
- />
88
- </div>
89
- {:else if $selectedTrigger === 'websockets'}
90
- <div class="p-4">
91
- <WebsocketTriggersPanel
92
- on:applyArgs
93
- on:addPreprocessor
94
- {newItem}
95
- path={currentPath}
96
- {isFlow}
97
- isEditor={true}
98
- {canHavePreprocessor}
99
- {hasPreprocessor}
100
- />
101
- </div>
102
- {:else if $selectedTrigger === 'kafka'}
103
- <div class="p-4">
104
- <KafkaTriggersPanel
105
- on:applyArgs
106
- on:addPreprocessor
107
- {newItem}
108
- path={currentPath}
109
- {isFlow}
110
- isEditor={true}
111
- {canHavePreprocessor}
112
- {hasPreprocessor}
113
- />
62
+ <svelte:fragment slot="content">
63
+ <div class="min-h-0 grow overflow-y-auto">
64
+ {#if $selectedTrigger === 'webhooks'}
65
+ <div class="p-4">
66
+ <WebhooksPanel
67
+ on:applyArgs
68
+ on:addPreprocessor
69
+ on:updateSchema
70
+ on:testWithArgs
71
+ scopes={isFlow ? [`run:flow/${currentPath}`] : [`run:script/${currentPath}`]}
72
+ path={currentPath}
73
+ {hash}
74
+ {isFlow}
75
+ args={{}}
76
+ token=""
77
+ {newItem}
78
+ isEditor={true}
79
+ {canHavePreprocessor}
80
+ {hasPreprocessor}
81
+ />
82
+ </div>
83
+ {:else if $selectedTrigger === 'emails'}
84
+ <div class="p-4">
85
+ <EmailTriggerPanel
86
+ on:applyArgs
87
+ on:addPreprocessor
88
+ on:updateSchema
89
+ on:testWithArgs
90
+ token=""
91
+ scopes={isFlow ? [`run:flow/${currentPath}`] : [`run:script/${currentPath}`]}
92
+ path={currentPath}
93
+ {isFlow}
94
+ isEditor={true}
95
+ {canHavePreprocessor}
96
+ {hasPreprocessor}
97
+ {newItem}
98
+ />
99
+ </div>
100
+ {:else if $selectedTrigger === 'routes'}
101
+ <div class="p-4">
102
+ <RoutesPanel
103
+ on:applyArgs
104
+ on:addPreprocessor
105
+ on:updateSchema
106
+ on:testWithArgs
107
+ {newItem}
108
+ path={currentPath}
109
+ {isFlow}
110
+ isEditor={true}
111
+ {canHavePreprocessor}
112
+ {hasPreprocessor}
113
+ />
114
+ </div>
115
+ {:else if $selectedTrigger === 'websockets'}
116
+ <div class="p-4">
117
+ <WebsocketTriggersPanel
118
+ on:applyArgs
119
+ on:addPreprocessor
120
+ on:updateSchema
121
+ on:testWithArgs
122
+ {newItem}
123
+ path={currentPath}
124
+ {isFlow}
125
+ isEditor={true}
126
+ {canHavePreprocessor}
127
+ {hasPreprocessor}
128
+ />
129
+ </div>
130
+ {:else if $selectedTrigger === 'kafka' || $selectedTrigger === 'nats'}
131
+ <div class="p-4 flex flex-col gap-2">
132
+ <ToggleButtonGroup bind:selected={eventStreamType}>
133
+ <ToggleButton value="kafka" label="Kafka" icon={KafkaIcon} />
134
+ <ToggleButton value="nats" label="NATS" icon={NatsIcon} />
135
+ </ToggleButtonGroup>
136
+ {#if eventStreamType === 'kafka'}
137
+ <KafkaTriggersPanel
138
+ on:applyArgs
139
+ on:addPreprocessor
140
+ on:updateSchema
141
+ on:testWithArgs
142
+ {newItem}
143
+ path={currentPath}
144
+ {isFlow}
145
+ isEditor={true}
146
+ {canHavePreprocessor}
147
+ {hasPreprocessor}
148
+ />
149
+ {:else if eventStreamType === 'nats'}
150
+ <NatsTriggersPanel
151
+ on:applyArgs
152
+ on:addPreprocessor
153
+ {newItem}
154
+ path={currentPath}
155
+ {isFlow}
156
+ isEditor={true}
157
+ {canHavePreprocessor}
158
+ {hasPreprocessor}
159
+ />
160
+ {/if}
161
+ </div>
162
+ {:else if $selectedTrigger === 'schedules'}
163
+ <div class="p-4">
164
+ <RunPageSchedules
165
+ {schema}
166
+ {isFlow}
167
+ path={initialPath}
168
+ {newItem}
169
+ can_write={canWrite(currentPath, {}, $userStore)}
170
+ />
171
+ </div>
172
+ {:else if $selectedTrigger === 'scheduledPoll'}
173
+ <div class="p-4">
174
+ <ScheduledPollPanel />
175
+ </div>
176
+ {/if}
114
177
  </div>
115
- {:else if $selectedTrigger === 'schedules'}
116
- <div class="p-4">
117
- <RunPageSchedules
118
- {schema}
119
- {isFlow}
120
- path={initialPath}
121
- {newItem}
122
- can_write={canWrite(currentPath, {}, $userStore)}
123
- />
124
- </div>
125
- {:else if $selectedTrigger === 'scheduledPoll'}
126
- <div class="p-4">
127
- <ScheduledPollPanel />
128
- </div>
129
- {/if}
130
- </svelte:fragment>
131
- </Tabs>
178
+ </svelte:fragment>
179
+ </Tabs>
180
+ </div>
132
181
  {:else}
133
182
  <div class="px-4 pb-2">
134
183
  <RunPageSchedules
@@ -14,6 +14,8 @@ declare const __propDef: {
14
14
  events: {
15
15
  applyArgs: any;
16
16
  addPreprocessor: any;
17
+ updateSchema: any;
18
+ testWithArgs: any;
17
19
  exitTriggers: CustomEvent<any>;
18
20
  } & {
19
21
  [evt: string]: CustomEvent<any>;
@@ -23,12 +23,22 @@ const captureTypeLabels = {
23
23
  websocket: 'New websocket trigger',
24
24
  webhook: 'Webhook',
25
25
  kafka: 'New kafka trigger',
26
- email: 'Email trigger'
26
+ email: 'Email trigger',
27
+ nats: 'NATS trigger'
27
28
  };
28
29
  const { captureOn } = getContext('TriggerContext');
29
30
  let args = {};
30
31
  const dispatch = createEventDispatcher();
31
- const { flowStore, selectedId } = getContext('FlowEditorContext') || {};
32
+ let showCapture = false;
33
+ let init = false;
34
+ $: updateShowCapture(!!$captureOn);
35
+ function updateShowCapture(show) {
36
+ if (show && !init) {
37
+ $captureOn = undefined;
38
+ showCapture = true;
39
+ init = true;
40
+ }
41
+ }
32
42
  </script>
33
43
 
34
44
  <Section label={captureTypeLabels[triggerType]}>
@@ -38,16 +48,16 @@ const { flowStore, selectedId } = getContext('FlowEditorContext') || {};
38
48
  <Button
39
49
  size="xs2"
40
50
  on:click={() => {
41
- $captureOn = !$captureOn
51
+ showCapture = !showCapture
42
52
  }}
43
53
  variant="border"
44
54
  color="light"
45
55
  endIcon={{
46
56
  icon: ChevronDown,
47
- classes: twMerge('transition', $captureOn ? 'rotate-180' : '')
57
+ classes: twMerge('transition', showCapture ? 'rotate-180' : '')
48
58
  }}
49
59
  >
50
- Capture
60
+ Test trigger
51
61
  </Button>
52
62
  {/if}
53
63
 
@@ -59,6 +69,7 @@ const { flowStore, selectedId } = getContext('FlowEditorContext') || {};
59
69
  {disabled}
60
70
  startIcon={{ icon: Save }}
61
71
  on:click={() => {
72
+ console.log('saveTrigger', args)
62
73
  dispatch('saveTrigger', {
63
74
  config: args
64
75
  })
@@ -91,17 +102,12 @@ const { flowStore, selectedId } = getContext('FlowEditorContext') || {};
91
102
  {canHavePreprocessor}
92
103
  on:applyArgs
93
104
  on:addPreprocessor
94
- on:updateSchema={(e) => {
95
- const { schema, redirect } = e.detail
96
- $flowStore.schema = schema
97
- if (redirect) {
98
- $selectedId = 'Input'
99
- }
100
- }}
105
+ on:updateSchema
101
106
  on:saveTrigger
107
+ on:testWithArgs
102
108
  bind:args
103
109
  {data}
104
- showCapture={$captureOn}
110
+ {showCapture}
105
111
  />
106
112
  {:else}
107
113
  <TriggersWrapper {path} {isFlow} {triggerType} {cloudDisabled} {args} {data} />
@@ -1,4 +1,5 @@
1
1
  import { SvelteComponent } from "svelte";
2
+ import { type CaptureTriggerKind } from '../../gen';
2
3
  declare const __propDef: {
3
4
  props: {
4
5
  cloudDisabled: boolean;
@@ -15,7 +16,9 @@ declare const __propDef: {
15
16
  events: {
16
17
  applyArgs: any;
17
18
  addPreprocessor: any;
19
+ updateSchema: any;
18
20
  saveTrigger: CustomEvent<any>;
21
+ testWithArgs: any;
19
22
  } & {
20
23
  [evt: string]: CustomEvent<any>;
21
24
  };
@@ -6,6 +6,7 @@ import WebsocketEditorConfigSection from './WebsocketEditorConfigSection.svelte'
6
6
  import WebhooksConfigSection from './WebhooksConfigSection.svelte';
7
7
  import EmailTriggerConfigSection from '../details/EmailTriggerConfigSection.svelte';
8
8
  import KafkaTriggersConfigSection from './KafkaTriggersConfigSection.svelte';
9
+ import NatsTriggersConfigSection from './NatsTriggersConfigSection.svelte';
9
10
  export let triggerType = 'webhook';
10
11
  export let cloudDisabled = false;
11
12
  export let args;
@@ -41,9 +42,10 @@ export let data = {};
41
42
  <RouteEditorConfigSection
42
43
  showCapture={false}
43
44
  can_write={true}
44
- bind:route_path={args.route_path}
45
- bind:http_method={args.http_method}
45
+ bind:args
46
46
  headless
47
+ {isFlow}
48
+ {path}
47
49
  />
48
50
  {:else if triggerType === 'email'}
49
51
  <EmailTriggerConfigSection
@@ -55,6 +57,8 @@ export let data = {};
55
57
  emailDomain={data?.emailDomain}
56
58
  />
57
59
  {:else if triggerType === 'kafka'}
58
- <KafkaTriggersConfigSection headless={true} bind:args staticInputDisabled={false} />
60
+ <KafkaTriggersConfigSection headless={true} bind:args staticInputDisabled={false} {path} />
61
+ {:else if triggerType === 'nats'}
62
+ <NatsTriggersConfigSection headless={true} bind:args staticInputDisabled={false} {path} />
59
63
  {/if}
60
64
  </div>
@@ -1,7 +1,8 @@
1
1
  import { SvelteComponent } from "svelte";
2
+ import { type CaptureTriggerKind } from '../../gen';
2
3
  declare const __propDef: {
3
4
  props: {
4
- triggerType?: any;
5
+ triggerType?: CaptureTriggerKind | undefined;
5
6
  cloudDisabled?: boolean | undefined;
6
7
  args: any;
7
8
  isFlow?: boolean | undefined;
@@ -10,7 +10,7 @@ import { Highlight } from 'svelte-highlight';
10
10
  import { typescript } from 'svelte-highlight/languages';
11
11
  import ClipboardPanel from '../details/ClipboardPanel.svelte';
12
12
  import { copyToClipboard } from '../../utils';
13
- import { page } from '$app/stores';
13
+ // import { page } from '$app/stores'
14
14
  import { base } from '../../base';
15
15
  import TriggerTokens from './TriggerTokens.svelte';
16
16
  import { workspaceStore, userStore } from '../../stores';
@@ -35,7 +35,7 @@ let userSettings;
35
35
  let url = '';
36
36
  $: webhooks = isFlow ? computeFlowWebhooks(path) : computeScriptWebhooks(hash, path);
37
37
  function computeScriptWebhooks(hash, path) {
38
- let webhookBase = `${$page.url.origin}${base}/api/w/${$workspaceStore}/jobs`;
38
+ let webhookBase = `${location.origin}${base}/api/w/${$workspaceStore}/jobs`;
39
39
  return {
40
40
  async: {
41
41
  hash: `${webhookBase}/run/h/${hash}`,
@@ -49,7 +49,7 @@ function computeScriptWebhooks(hash, path) {
49
49
  };
50
50
  }
51
51
  function computeFlowWebhooks(path) {
52
- let webhooksBase = `${$page.url.origin}${base}/api/w/${$workspaceStore}/jobs`;
52
+ let webhooksBase = `${location.origin}${base}/api/w/${$workspaceStore}/jobs`;
53
53
  let urlAsync = `${webhooksBase}/run/f/${path}`;
54
54
  let urlSync = `${webhooksBase}/run_wait_result/f/${path}`;
55
55
  return {
@@ -124,7 +124,7 @@ async function triggerJob() {
124
124
  function waitForJobCompletion(UUID) {
125
125
  return new Promise(async (resolve, reject) => {
126
126
  try {
127
- const endpoint = \`${$page.url.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/\${UUID}\`;
127
+ const endpoint = \`${location.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/\${UUID}\`;
128
128
  const checkResponse = await fetch(endpoint, {
129
129
  method: 'GET',
130
130
  headers: ${JSON.stringify(headers(), null, 2).replaceAll('\n', '\n\t\t\t\t')}
@@ -149,7 +149,7 @@ function waitForJobCompletion(UUID) {
149
149
  // Combine and return
150
150
  return `${mainFunction}\n\n${triggerJobFunction}\n\n${waitForJobCompletionFunction}`;
151
151
  }
152
- let captureUrl = `${$page.url.origin}/api/w/${$workspaceStore}/capture_u/webhook/${isFlow ? 'flow' : 'script'}/${path}`;
152
+ let captureUrl = `${location.origin}/api/w/${$workspaceStore}/capture_u/webhook/${isFlow ? 'flow' : 'script'}/${path}`;
153
153
  function captureCurlCode() {
154
154
  return `curl \\
155
155
  -X POST ${captureUrl} \\
@@ -165,7 +165,7 @@ ${webhookType === 'sync' ? 'RESULT' : 'UUID'}=$(curl -s ${requestType != 'get_pa
165
165
  ${webhookType === 'sync'
166
166
  ? 'echo -E $RESULT | jq'
167
167
  : `
168
- URL="${$page.url.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/$UUID"
168
+ URL="${location.origin}/api/w/${$workspaceStore}/jobs_u/completed/get_result_maybe/$UUID"
169
169
  while true; do
170
170
  curl -s -H "Authorization: Bearer $TOKEN" $URL -o res.json
171
171
  COMPLETED=$(cat res.json | jq .completed)
@@ -210,6 +210,7 @@ $: url =
210
210
  on:applyArgs
211
211
  on:updateSchema
212
212
  on:addPreprocessor
213
+ on:testWithArgs
213
214
  >
214
215
  <Label label="URL">
215
216
  <ClipboardPanel content={captureUrl} disabled={!captureInfo.active} />
@@ -22,10 +22,11 @@ declare const __propDef: {
22
22
  args: Record<string, any> | undefined;
23
23
  }>;
24
24
  updateSchema: CustomEvent<{
25
- schema: any;
25
+ payloadData: Record<string, any>;
26
26
  redirect: boolean;
27
27
  }>;
28
28
  addPreprocessor: CustomEvent<null>;
29
+ testWithArgs: CustomEvent<any>;
29
30
  } & {
30
31
  [evt: string]: CustomEvent<any>;
31
32
  };
@@ -38,6 +38,8 @@ let data = {
38
38
  on:applyArgs
39
39
  on:addPreprocessor
40
40
  on:refreshCaptures
41
+ on:updateSchema
42
+ on:testWithArgs
41
43
  cloudDisabled={false}
42
44
  triggerType="webhook"
43
45
  {isFlow}
@@ -16,6 +16,8 @@ declare const __propDef: {
16
16
  applyArgs: any;
17
17
  addPreprocessor: any;
18
18
  refreshCaptures: CustomEvent<any>;
19
+ updateSchema: any;
20
+ testWithArgs: any;
19
21
  } & {
20
22
  [evt: string]: CustomEvent<any>;
21
23
  };