windmill-components 1.56.5 → 1.57.2

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 (188) hide show
  1. package/assets/app.css +5 -1
  2. package/components/ArgInput.svelte +6 -6
  3. package/components/DisplayResult.svelte +1 -1
  4. package/components/Dropdown.svelte +1 -1
  5. package/components/Dropdown.svelte.d.ts +1 -0
  6. package/components/Editor.svelte +5 -3
  7. package/components/Editor.svelte.d.ts +2 -0
  8. package/components/EditorBar.svelte +15 -1
  9. package/components/FlowBuilder.svelte +18 -10
  10. package/components/GroupEditor.svelte +1 -0
  11. package/components/IconedResourceType.svelte +2 -2
  12. package/components/InputTransformForm.svelte +7 -5
  13. package/components/ItemPicker.svelte +63 -57
  14. package/components/ItemPicker.svelte.d.ts +1 -2
  15. package/components/LogViewer.svelte +7 -9
  16. package/components/ModulePreview.svelte +4 -13
  17. package/components/MoveDrawer.svelte +40 -16
  18. package/components/MoveDrawer.svelte.d.ts +2 -2
  19. package/components/PageHeader.svelte +1 -1
  20. package/components/Path.svelte +5 -2
  21. package/components/Popover.svelte +6 -4
  22. package/components/Popover.svelte.d.ts +2 -0
  23. package/components/ResourcePicker.svelte +1 -0
  24. package/components/RunChart.svelte +0 -1
  25. package/components/SchemaForm.svelte +2 -1
  26. package/components/SchemaForm.svelte.d.ts +1 -0
  27. package/components/ScriptBuilder.svelte +2 -1
  28. package/components/ScriptEditor.svelte +86 -80
  29. package/components/ShareModal.svelte.d.ts +2 -2
  30. package/components/SimpleEditor.svelte +17 -0
  31. package/components/StringTypeNarrowing.svelte +30 -8
  32. package/components/TemplateEditor.svelte +18 -2
  33. package/components/TestJobLoader.svelte +83 -74
  34. package/components/Tooltip.svelte +1 -1
  35. package/components/VariableEditor.svelte +4 -3
  36. package/components/VariableEditor.svelte.d.ts +2 -2
  37. package/components/apps/components/buttons/AppButton.svelte +3 -7
  38. package/components/apps/components/dataDisplay/AppBarChart.svelte +10 -6
  39. package/components/apps/components/dataDisplay/AppHtml.svelte +23 -0
  40. package/components/apps/components/dataDisplay/AppHtml.svelte.d.ts +23 -0
  41. package/components/apps/components/dataDisplay/AppPieChart.svelte +10 -6
  42. package/components/apps/components/dataDisplay/AppScatterChart.svelte +46 -0
  43. package/components/apps/components/dataDisplay/AppScatterChart.svelte.d.ts +21 -0
  44. package/components/apps/components/dataDisplay/AppText.svelte +48 -7
  45. package/components/apps/components/dataDisplay/AppText.svelte.d.ts +1 -0
  46. package/components/apps/components/dataDisplay/AppTimeseries.svelte +57 -0
  47. package/components/apps/components/dataDisplay/AppTimeseries.svelte.d.ts +22 -0
  48. package/components/apps/components/form/AppForm.svelte +33 -28
  49. package/components/apps/components/helpers/InputValue.svelte +10 -16
  50. package/components/apps/components/helpers/InputValue.svelte.d.ts +2 -0
  51. package/components/apps/components/helpers/NonRunnableComponent.svelte +4 -6
  52. package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
  53. package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  54. package/components/apps/components/helpers/RunnableComponent.svelte +120 -119
  55. package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
  56. package/components/apps/components/helpers/RunnableWrapper.svelte +11 -1
  57. package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  58. package/components/apps/components/selectInputs/AppSelect.svelte +2 -0
  59. package/components/apps/components/table/AppTable.svelte +22 -17
  60. package/components/apps/components/table/AppTableFooter.svelte +2 -1
  61. package/components/apps/components/table/tableOptions.d.ts +2 -9
  62. package/components/apps/components/table/tableOptions.js +5 -2
  63. package/components/apps/components/textInputs/AppTextInput.svelte +0 -1
  64. package/components/apps/editor/AppEditor.svelte +133 -102
  65. package/components/apps/editor/AppEditor.svelte.d.ts +1 -0
  66. package/components/apps/editor/AppEditorHeader.svelte +355 -50
  67. package/components/apps/editor/AppEditorHeader.svelte.d.ts +2 -4
  68. package/components/apps/editor/AppExportButton.svelte +34 -0
  69. package/components/apps/editor/AppExportButton.svelte.d.ts +17 -0
  70. package/components/apps/editor/AppPreview.svelte +19 -6
  71. package/components/apps/editor/AppPreview.svelte.d.ts +5 -0
  72. package/components/apps/editor/AppPublishButton.svelte +46 -0
  73. package/components/apps/editor/AppPublishButton.svelte.d.ts +19 -0
  74. package/components/apps/editor/ComponentEditor.svelte +35 -3
  75. package/components/apps/editor/ComponentHeader.svelte +23 -16
  76. package/components/apps/editor/ComponentHeader.svelte.d.ts +1 -0
  77. package/components/apps/editor/GridEditor.svelte +71 -48
  78. package/components/apps/editor/RecomputeAllComponents.svelte +80 -13
  79. package/components/apps/editor/componentsPanel/ComponentList.svelte +30 -28
  80. package/components/apps/editor/componentsPanel/componentStaticValues.d.ts +2 -1
  81. package/components/apps/editor/componentsPanel/componentStaticValues.js +3 -2
  82. package/components/apps/editor/componentsPanel/data.js +191 -77
  83. package/components/apps/editor/contextPanel/ContextPanel.svelte +60 -41
  84. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -2
  85. package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte.d.ts +1 -0
  86. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +47 -10
  87. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -0
  88. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +11 -4
  89. package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte.d.ts +1 -0
  90. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +29 -21
  91. package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +10 -6
  92. package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +38 -33
  93. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +3 -2
  94. package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +1 -10
  95. package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +27 -9
  96. package/components/apps/editor/settingsPanel/ComponentPanel.svelte +8 -6
  97. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +6 -16
  98. package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +0 -1
  99. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +46 -21
  100. package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +3 -1
  101. package/components/apps/editor/settingsPanel/PickInlineScript.svelte +0 -1
  102. package/components/apps/editor/settingsPanel/Recompute.svelte +1 -1
  103. package/components/apps/editor/settingsPanel/SelectedRunnable.svelte +8 -7
  104. package/components/apps/editor/settingsPanel/TableActions.svelte +10 -10
  105. package/components/apps/editor/settingsPanel/common/PanelSection.svelte +1 -0
  106. package/components/apps/editor/settingsPanel/common/PanelSection.svelte.d.ts +1 -0
  107. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte +55 -49
  108. package/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte.d.ts +2 -2
  109. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +24 -0
  110. package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +17 -0
  111. package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +8 -11
  112. package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +35 -7
  113. package/components/apps/editorUtils.d.ts +1 -0
  114. package/components/apps/editorUtils.js +11 -0
  115. package/components/apps/gridUtils.js +1 -1
  116. package/components/apps/inputType.d.ts +5 -4
  117. package/components/apps/rx.d.ts +1 -1
  118. package/components/apps/rx.js +6 -2
  119. package/components/apps/store.d.ts +2 -0
  120. package/components/apps/store.js +2 -0
  121. package/components/apps/types.d.ts +19 -3
  122. package/components/apps/utils.d.ts +2 -2
  123. package/components/apps/utils.js +22 -8
  124. package/components/common/button/Button.svelte +6 -8
  125. package/components/common/button/Button.svelte.d.ts +1 -0
  126. package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +4 -1
  127. package/components/common/popup/Popup.svelte +1 -1
  128. package/components/common/table/AppRow.svelte +26 -3
  129. package/components/common/table/AppRow.svelte.d.ts +4 -0
  130. package/components/common/table/FlowRow.svelte +4 -4
  131. package/components/common/table/RowIcon.svelte +1 -1
  132. package/components/common/table/ScriptRow.svelte +2 -2
  133. package/components/common/tabs/Tabs.svelte +1 -1
  134. package/components/common/toggleButton/ToggleButton.svelte +2 -0
  135. package/components/common/toggleButton/ToggleButton.svelte.d.ts +1 -0
  136. package/components/common/toggleButton/ToggleButtonGroup.svelte +3 -3
  137. package/components/flows/CreateActionsApp.svelte +43 -0
  138. package/components/flows/CreateActionsApp.svelte.d.ts +14 -0
  139. package/components/flows/CreateActionsFlow.svelte +6 -1
  140. package/components/flows/content/DynamicInputHelpBox.svelte +1 -1
  141. package/components/flows/content/FlowConstants.svelte +23 -9
  142. package/components/flows/content/FlowInputs.svelte +2 -2
  143. package/components/flows/content/FlowModuleHeader.svelte +6 -5
  144. package/components/flows/content/FlowSettings.svelte +1 -1
  145. package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  146. package/components/flows/map/FlowConstantsItem.svelte +5 -7
  147. package/components/flows/map/FlowModuleSchemaMap.svelte +1 -5
  148. package/components/flows/map/FlowSettingsItem.svelte +5 -7
  149. package/components/flows/pickers/PickHubApp.svelte +73 -0
  150. package/components/flows/pickers/PickHubApp.svelte.d.ts +20 -0
  151. package/components/flows/pickers/PickHubFlow.svelte +3 -1
  152. package/components/flows/pickers/PickHubScript.svelte +1 -0
  153. package/components/flows/propPicker/PropPickerWrapper.svelte +42 -31
  154. package/components/home/ItemsList.svelte +6 -4
  155. package/components/icons/ClickhouseIcon.svelte +22 -0
  156. package/components/icons/ClickhouseIcon.svelte.d.ts +17 -0
  157. package/components/icons/FaunadbIcon.svelte +19 -0
  158. package/components/icons/FaunadbIcon.svelte.d.ts +17 -0
  159. package/components/icons/OpenaiIcon.svelte +18 -0
  160. package/components/icons/OpenaiIcon.svelte.d.ts +17 -0
  161. package/components/icons/index.d.ts +7 -1
  162. package/components/icons/index.js +8 -2
  163. package/components/propertyPicker/ObjectViewer.svelte +11 -4
  164. package/components/propertyPicker/PropPicker.svelte +1 -1
  165. package/components/scriptEditor/LogPanel.svelte +26 -22
  166. package/components/sidebar/WorkspaceMenu.svelte +2 -3
  167. package/components/splitPanes/SplitPanesWrapper.svelte +1 -5
  168. package/components/splitPanes/SplitPanesWrapper.svelte.d.ts +0 -1
  169. package/editorUtils.js +2 -0
  170. package/gen/core/OpenAPI.js +1 -1
  171. package/gen/models/Policy.d.ts +1 -0
  172. package/gen/services/AppService.d.ts +50 -0
  173. package/gen/services/AppService.js +55 -0
  174. package/gen/services/GranularAclService.d.ts +3 -3
  175. package/gen/services/ResourceService.d.ts +15 -0
  176. package/gen/services/ResourceService.js +17 -0
  177. package/infer.js +4 -0
  178. package/package.json +18 -9
  179. package/stores.d.ts +1 -0
  180. package/stores.js +13 -5
  181. package/utils.d.ts +9 -1
  182. package/utils.js +28 -11
  183. package/components/apps/CreateApp.svelte +0 -68
  184. package/components/apps/CreateApp.svelte.d.ts +0 -14
  185. package/components/apps/editor/settingsPanel/SectionPanel.svelte +0 -70
  186. package/components/apps/editor/settingsPanel/SectionPanel.svelte.d.ts +0 -19
  187. package/components/apps/editor/settingsPanel/UserInputEditor.svelte +0 -2
  188. package/components/apps/editor/settingsPanel/UserInputEditor.svelte.d.ts +0 -14
@@ -1,5 +1,4 @@
1
1
  <script>import { afterUpdate } from 'svelte';
2
- import { Splitpanes } from 'svelte-splitpanes';
3
2
  /**
4
3
  * This component should be used instead of `Splitpanes` if the wrapper `Splitpanes`
5
4
  * has elements that are **NOT** `Pane` above the place of this component.
@@ -7,7 +6,6 @@ import { Splitpanes } from 'svelte-splitpanes';
7
6
  /** This element will act as the reference point to the `Splitpanes`
8
7
  * and the top difference will be calculated from it. */
9
8
  export let refElement = undefined;
10
- export let panesClass = '';
11
9
  let wrapper;
12
10
  let gap = 0;
13
11
  function getTopDifference() {
@@ -28,7 +26,5 @@ afterUpdate(() => {
28
26
  class="h-full {$$props.class || ''}"
29
27
  style="max-height: calc(100% - {gap}px) !important;"
30
28
  >
31
- <Splitpanes class={panesClass} {...$$restProps}>
32
- <slot />
33
- </Splitpanes>
29
+ <slot />
34
30
  </div>
@@ -3,7 +3,6 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  refElement?: HTMLElement | undefined;
6
- panesClass?: string | undefined;
7
6
  };
8
7
  events: {
9
8
  [evt: string]: CustomEvent<any>;
package/editorUtils.js CHANGED
@@ -38,6 +38,8 @@ export function langToExt(lang) {
38
38
  return 'json';
39
39
  case 'sql':
40
40
  return 'sql';
41
+ case 'yaml':
42
+ return 'yaml';
41
43
  case 'typescript':
42
44
  return 'ts';
43
45
  case 'python':
@@ -1,6 +1,6 @@
1
1
  export const OpenAPI = {
2
2
  BASE: '/api',
3
- VERSION: '1.56.1',
3
+ VERSION: '1.57.1',
4
4
  WITH_CREDENTIALS: false,
5
5
  CREDENTIALS: 'include',
6
6
  TOKEN: undefined,
@@ -2,6 +2,7 @@ export type Policy = {
2
2
  triggerables?: Record<string, any>;
3
3
  execution_mode?: Policy.execution_mode;
4
4
  on_behalf_of?: string;
5
+ on_behalf_of_email?: string;
5
6
  };
6
7
  export declare namespace Policy {
7
8
  enum execution_mode {
@@ -3,6 +3,38 @@ import type { ListableApp } from '../models/ListableApp';
3
3
  import type { Policy } from '../models/Policy';
4
4
  import type { CancelablePromise } from '../core/CancelablePromise';
5
5
  export declare class AppService {
6
+ /**
7
+ * list all available hub apps
8
+ * @returns any hub apps list
9
+ * @throws ApiError
10
+ */
11
+ static listHubApps(): CancelablePromise<{
12
+ apps?: Array<{
13
+ id: number;
14
+ app_id: number;
15
+ summary: string;
16
+ apps: Array<string>;
17
+ approved: boolean;
18
+ votes: number;
19
+ }>;
20
+ }>;
21
+ /**
22
+ * get hub app by id
23
+ * @returns any app
24
+ * @throws ApiError
25
+ */
26
+ static getHubAppById({ id, }: {
27
+ id: number;
28
+ }): CancelablePromise<{
29
+ app: {
30
+ summary: string;
31
+ value: {
32
+ staticApp: any;
33
+ app: any;
34
+ summary: string;
35
+ };
36
+ };
37
+ }>;
6
38
  /**
7
39
  * list all available apps
8
40
  * @returns ListableApp All available apps
@@ -59,6 +91,24 @@ export declare class AppService {
59
91
  workspace: string;
60
92
  path: string;
61
93
  }): CancelablePromise<AppWithLastVersion>;
94
+ /**
95
+ * get public app by secret
96
+ * @returns AppWithLastVersion app details
97
+ * @throws ApiError
98
+ */
99
+ static getPublicAppBySecret({ workspace, path, }: {
100
+ workspace: string;
101
+ path: string;
102
+ }): CancelablePromise<AppWithLastVersion>;
103
+ /**
104
+ * get public secret of app
105
+ * @returns string app secret
106
+ * @throws ApiError
107
+ */
108
+ static getPublicSecretOfApp({ workspace, path, }: {
109
+ workspace: string;
110
+ path: string;
111
+ }): CancelablePromise<string>;
62
112
  /**
63
113
  * get app by version
64
114
  * @returns AppWithLastVersion app details
@@ -1,6 +1,31 @@
1
1
  import { OpenAPI } from '../core/OpenAPI';
2
2
  import { request as __request } from '../core/request';
3
3
  export class AppService {
4
+ /**
5
+ * list all available hub apps
6
+ * @returns any hub apps list
7
+ * @throws ApiError
8
+ */
9
+ static listHubApps() {
10
+ return __request(OpenAPI, {
11
+ method: 'GET',
12
+ url: '/apps/hub/list',
13
+ });
14
+ }
15
+ /**
16
+ * get hub app by id
17
+ * @returns any app
18
+ * @throws ApiError
19
+ */
20
+ static getHubAppById({ id, }) {
21
+ return __request(OpenAPI, {
22
+ method: 'GET',
23
+ url: '/apps/hub/get/{id}',
24
+ path: {
25
+ 'id': id,
26
+ },
27
+ });
28
+ }
4
29
  /**
5
30
  * list all available apps
6
31
  * @returns ListableApp All available apps
@@ -54,6 +79,36 @@ export class AppService {
54
79
  },
55
80
  });
56
81
  }
82
+ /**
83
+ * get public app by secret
84
+ * @returns AppWithLastVersion app details
85
+ * @throws ApiError
86
+ */
87
+ static getPublicAppBySecret({ workspace, path, }) {
88
+ return __request(OpenAPI, {
89
+ method: 'GET',
90
+ url: '/w/{workspace}/apps/public_app/{path}',
91
+ path: {
92
+ 'workspace': workspace,
93
+ 'path': path,
94
+ },
95
+ });
96
+ }
97
+ /**
98
+ * get public secret of app
99
+ * @returns string app secret
100
+ * @throws ApiError
101
+ */
102
+ static getPublicSecretOfApp({ workspace, path, }) {
103
+ return __request(OpenAPI, {
104
+ method: 'GET',
105
+ url: '/w/{workspace}/apps/secret_of/{path}',
106
+ path: {
107
+ 'workspace': workspace,
108
+ 'path': path,
109
+ },
110
+ });
111
+ }
57
112
  /**
58
113
  * get app by version
59
114
  * @returns AppWithLastVersion app details
@@ -8,7 +8,7 @@ export declare class GranularAclService {
8
8
  static getGranularAcls({ workspace, path, kind, }: {
9
9
  workspace: string;
10
10
  path: string;
11
- kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder';
11
+ kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app';
12
12
  }): CancelablePromise<Record<string, boolean>>;
13
13
  /**
14
14
  * add granular acls
@@ -18,7 +18,7 @@ export declare class GranularAclService {
18
18
  static addGranularAcls({ workspace, path, kind, requestBody, }: {
19
19
  workspace: string;
20
20
  path: string;
21
- kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder';
21
+ kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app';
22
22
  /**
23
23
  * acl to add
24
24
  */
@@ -35,7 +35,7 @@ export declare class GranularAclService {
35
35
  static removeGranularAcls({ workspace, path, kind, requestBody, }: {
36
36
  workspace: string;
37
37
  path: string;
38
- kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder';
38
+ kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app';
39
39
  /**
40
40
  * acl to add
41
41
  */
@@ -40,6 +40,21 @@ export declare class ResourceService {
40
40
  */
41
41
  requestBody: EditResource;
42
42
  }): CancelablePromise<string>;
43
+ /**
44
+ * update resource value
45
+ * @returns string resource value updated
46
+ * @throws ApiError
47
+ */
48
+ static updateResourceValue({ workspace, path, requestBody, }: {
49
+ workspace: string;
50
+ path: string;
51
+ /**
52
+ * updated resource
53
+ */
54
+ requestBody: {
55
+ value?: any;
56
+ };
57
+ }): CancelablePromise<string>;
43
58
  /**
44
59
  * get resource
45
60
  * @returns Resource resource
@@ -49,6 +49,23 @@ export class ResourceService {
49
49
  mediaType: 'application/json',
50
50
  });
51
51
  }
52
+ /**
53
+ * update resource value
54
+ * @returns string resource value updated
55
+ * @throws ApiError
56
+ */
57
+ static updateResourceValue({ workspace, path, requestBody, }) {
58
+ return __request(OpenAPI, {
59
+ method: 'POST',
60
+ url: '/w/{workspace}/resources/update_value/{path}',
61
+ path: {
62
+ 'workspace': workspace,
63
+ 'path': path,
64
+ },
65
+ body: requestBody,
66
+ mediaType: 'application/json',
67
+ });
68
+ }
52
69
  /**
53
70
  * get resource
54
71
  * @returns Resource resource
package/infer.js CHANGED
@@ -72,6 +72,10 @@ function argSigToJsonSchemaType(t, oldS) {
72
72
  newS.type = 'string';
73
73
  newS.format = 'sql';
74
74
  }
75
+ else if (t === 'yaml') {
76
+ newS.type = 'string';
77
+ newS.format = 'yaml';
78
+ }
75
79
  else if (t === 'bytes') {
76
80
  newS.type = 'string';
77
81
  newS.contentEncoding = 'base64';
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "windmill-components",
3
- "version": "1.56.5",
3
+ "version": "1.57.2",
4
4
  "devDependencies": {
5
- "@playwright/test": "^1.28.0",
5
+ "@playwright/test": "^1.29.1",
6
6
  "@sveltejs/adapter-static": "^1.0.0",
7
7
  "@sveltejs/kit": "^1.0.0-next.589",
8
8
  "@sveltejs/package": "^1.0.1",
9
9
  "@tailwindcss/forms": "^0.5.3",
10
10
  "@tailwindcss/typography": "^0.5.8",
11
11
  "@types/vscode": "~1.74.0",
12
- "@types/node": "^18.11.9",
12
+ "@types/node": "^18.11.18",
13
13
  "@typescript-eslint/eslint-plugin": "^5.46.1",
14
- "@typescript-eslint/parser": "^5.46.1",
14
+ "@typescript-eslint/parser": "^5.48.0",
15
15
  "@windmill-components-labs/svelvet": "^4.0.20",
16
16
  "@zerodevx/svelte-toast": "^0.8.1",
17
17
  "autoprefixer": "^10.4.13",
18
18
  "cssnano": "^5.1.14",
19
19
  "d3-dag": "^0.11.5",
20
20
  "eslint": "^8.28.0",
21
- "eslint-config-prettier": "^8.3.0",
21
+ "eslint-config-prettier": "^8.6.0",
22
22
  "eslint-plugin-svelte3": "^4.0.0",
23
23
  "lucide-svelte": "^0.104.0",
24
24
  "openapi-typescript-codegen": "^0.23.0",
@@ -36,7 +36,6 @@
36
36
  "svelte-grid": "^5.1.1",
37
37
  "svelte-heros": "^2.3.5",
38
38
  "svelte-highlight": "^6.2.1",
39
- "svelte-markdown": "^0.2.3",
40
39
  "svelte-overlay": "^1.4.1",
41
40
  "svelte-popperjs": "^1.3.2",
42
41
  "svelte-preprocess": "^5.0.0",
@@ -156,12 +155,14 @@
156
155
  "./components/Tooltip.svelte": "./components/Tooltip.svelte",
157
156
  "./components/UserSettings.svelte": "./components/UserSettings.svelte",
158
157
  "./components/VariableEditor.svelte": "./components/VariableEditor.svelte",
159
- "./components/apps/CreateApp.svelte": "./components/apps/CreateApp.svelte",
160
158
  "./components/apps/components/DisplayComponent.svelte": "./components/apps/components/DisplayComponent.svelte",
161
159
  "./components/apps/components/buttons/AppButton.svelte": "./components/apps/components/buttons/AppButton.svelte",
162
160
  "./components/apps/components/dataDisplay/AppBarChart.svelte": "./components/apps/components/dataDisplay/AppBarChart.svelte",
161
+ "./components/apps/components/dataDisplay/AppHtml.svelte": "./components/apps/components/dataDisplay/AppHtml.svelte",
163
162
  "./components/apps/components/dataDisplay/AppPieChart.svelte": "./components/apps/components/dataDisplay/AppPieChart.svelte",
163
+ "./components/apps/components/dataDisplay/AppScatterChart.svelte": "./components/apps/components/dataDisplay/AppScatterChart.svelte",
164
164
  "./components/apps/components/dataDisplay/AppText.svelte": "./components/apps/components/dataDisplay/AppText.svelte",
165
+ "./components/apps/components/dataDisplay/AppTimeseries.svelte": "./components/apps/components/dataDisplay/AppTimeseries.svelte",
165
166
  "./components/apps/components/dateInputs/AppDateInput.svelte": "./components/apps/components/dateInputs/AppDateInput.svelte",
166
167
  "./components/apps/components/form/AppForm.svelte": "./components/apps/components/form/AppForm.svelte",
167
168
  "./components/apps/components/helpers/AlignWrapper.svelte": "./components/apps/components/helpers/AlignWrapper.svelte",
@@ -181,7 +182,9 @@
181
182
  "./components/apps/components/textInputs/AppTextInput.svelte": "./components/apps/components/textInputs/AppTextInput.svelte",
182
183
  "./components/apps/editor/AppEditor.svelte": "./components/apps/editor/AppEditor.svelte",
183
184
  "./components/apps/editor/AppEditorHeader.svelte": "./components/apps/editor/AppEditorHeader.svelte",
185
+ "./components/apps/editor/AppExportButton.svelte": "./components/apps/editor/AppExportButton.svelte",
184
186
  "./components/apps/editor/AppPreview.svelte": "./components/apps/editor/AppPreview.svelte",
187
+ "./components/apps/editor/AppPublishButton.svelte": "./components/apps/editor/AppPublishButton.svelte",
185
188
  "./components/apps/editor/ComponentEditor.svelte": "./components/apps/editor/ComponentEditor.svelte",
186
189
  "./components/apps/editor/ComponentHeader.svelte": "./components/apps/editor/ComponentHeader.svelte",
187
190
  "./components/apps/editor/GridEditor.svelte": "./components/apps/editor/GridEditor.svelte",
@@ -210,14 +213,13 @@
210
213
  "./components/apps/editor/settingsPanel/PickFlow.svelte": "./components/apps/editor/settingsPanel/PickFlow.svelte",
211
214
  "./components/apps/editor/settingsPanel/PickInlineScript.svelte": "./components/apps/editor/settingsPanel/PickInlineScript.svelte",
212
215
  "./components/apps/editor/settingsPanel/Recompute.svelte": "./components/apps/editor/settingsPanel/Recompute.svelte",
213
- "./components/apps/editor/settingsPanel/SectionPanel.svelte": "./components/apps/editor/settingsPanel/SectionPanel.svelte",
214
216
  "./components/apps/editor/settingsPanel/SelectedRunnable.svelte": "./components/apps/editor/settingsPanel/SelectedRunnable.svelte",
215
217
  "./components/apps/editor/settingsPanel/SubTypeEditor.svelte": "./components/apps/editor/settingsPanel/SubTypeEditor.svelte",
216
218
  "./components/apps/editor/settingsPanel/TableActionLabel.svelte": "./components/apps/editor/settingsPanel/TableActionLabel.svelte",
217
219
  "./components/apps/editor/settingsPanel/TableActions.svelte": "./components/apps/editor/settingsPanel/TableActions.svelte",
218
- "./components/apps/editor/settingsPanel/UserInputEditor.svelte": "./components/apps/editor/settingsPanel/UserInputEditor.svelte",
219
220
  "./components/apps/editor/settingsPanel/common/PanelSection.svelte": "./components/apps/editor/settingsPanel/common/PanelSection.svelte",
220
221
  "./components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte": "./components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte",
222
+ "./components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte": "./components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte",
221
223
  "./components/apps/editor/settingsPanel/inputEditor/RowInputEditor.svelte": "./components/apps/editor/settingsPanel/inputEditor/RowInputEditor.svelte",
222
224
  "./components/apps/editor/settingsPanel/inputEditor/RunnableInputEditor.svelte": "./components/apps/editor/settingsPanel/inputEditor/RunnableInputEditor.svelte",
223
225
  "./components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte": "./components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte",
@@ -225,9 +227,11 @@
225
227
  "./components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte": "./components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte",
226
228
  "./components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte": "./components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte",
227
229
  "./components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte": "./components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte",
230
+ "./components/apps/editorUtils": "./components/apps/editorUtils.js",
228
231
  "./components/apps/gridUtils": "./components/apps/gridUtils.js",
229
232
  "./components/apps/inputType": "./components/apps/inputType.js",
230
233
  "./components/apps/rx": "./components/apps/rx.js",
234
+ "./components/apps/store": "./components/apps/store.js",
231
235
  "./components/apps/types": "./components/apps/types.js",
232
236
  "./components/apps/utils": "./components/apps/utils.js",
233
237
  "./components/common/actionRow/ActionRow.svelte": "./components/common/actionRow/ActionRow.svelte",
@@ -271,6 +275,7 @@
271
275
  "./components/common/tabs/Tabs.svelte": "./components/common/tabs/Tabs.svelte",
272
276
  "./components/common/toggleButton/ToggleButton.svelte": "./components/common/toggleButton/ToggleButton.svelte",
273
277
  "./components/common/toggleButton/ToggleButtonGroup.svelte": "./components/common/toggleButton/ToggleButtonGroup.svelte",
278
+ "./components/flows/CreateActionsApp.svelte": "./components/flows/CreateActionsApp.svelte",
274
279
  "./components/flows/CreateActionsFlow.svelte": "./components/flows/CreateActionsFlow.svelte",
275
280
  "./components/flows/FlowEditor.svelte": "./components/flows/FlowEditor.svelte",
276
281
  "./components/flows/FlowProgressBar.svelte": "./components/flows/FlowProgressBar.svelte",
@@ -318,6 +323,7 @@
318
323
  "./components/flows/map/InsertModuleButton.svelte": "./components/flows/map/InsertModuleButton.svelte",
319
324
  "./components/flows/map/MapItem.svelte": "./components/flows/map/MapItem.svelte",
320
325
  "./components/flows/pickers/FlowScriptPicker.svelte": "./components/flows/pickers/FlowScriptPicker.svelte",
326
+ "./components/flows/pickers/PickHubApp.svelte": "./components/flows/pickers/PickHubApp.svelte",
321
327
  "./components/flows/pickers/PickHubFlow.svelte": "./components/flows/pickers/PickHubFlow.svelte",
322
328
  "./components/flows/pickers/PickHubScript.svelte": "./components/flows/pickers/PickHubScript.svelte",
323
329
  "./components/flows/pickers/PickScript.svelte": "./components/flows/pickers/PickScript.svelte",
@@ -336,9 +342,11 @@
336
342
  "./components/home/ListFilters.svelte": "./components/home/ListFilters.svelte",
337
343
  "./components/home/NoItemFound.svelte": "./components/home/NoItemFound.svelte",
338
344
  "./components/icons/AirtableIcon.svelte": "./components/icons/AirtableIcon.svelte",
345
+ "./components/icons/ClickhouseIcon.svelte": "./components/icons/ClickhouseIcon.svelte",
339
346
  "./components/icons/DatadogIcon.svelte": "./components/icons/DatadogIcon.svelte",
340
347
  "./components/icons/DbIcon.svelte": "./components/icons/DbIcon.svelte",
341
348
  "./components/icons/DiscordIcon.svelte": "./components/icons/DiscordIcon.svelte",
349
+ "./components/icons/FaunadbIcon.svelte": "./components/icons/FaunadbIcon.svelte",
342
350
  "./components/icons/FunkwhaleIcon.svelte": "./components/icons/FunkwhaleIcon.svelte",
343
351
  "./components/icons/GCloudIcon.svelte": "./components/icons/GCloudIcon.svelte",
344
352
  "./components/icons/GItlabIcon.svelte": "./components/icons/GItlabIcon.svelte",
@@ -358,6 +366,7 @@
358
366
  "./components/icons/MatrixIcon.svelte": "./components/icons/MatrixIcon.svelte",
359
367
  "./components/icons/Mysql.svelte": "./components/icons/Mysql.svelte",
360
368
  "./components/icons/NextcloudIcon.svelte": "./components/icons/NextcloudIcon.svelte",
369
+ "./components/icons/OpenaiIcon.svelte": "./components/icons/OpenaiIcon.svelte",
361
370
  "./components/icons/PostgresIcon.svelte": "./components/icons/PostgresIcon.svelte",
362
371
  "./components/icons/QRCodeIcon.svelte": "./components/icons/QRCodeIcon.svelte",
363
372
  "./components/icons/S3Icon.svelte": "./components/icons/S3Icon.svelte",
package/stores.d.ts CHANGED
@@ -32,4 +32,5 @@ export declare const hubScripts: import("svelte/store").Writable<{
32
32
  app: string;
33
33
  ask_id: number;
34
34
  }[] | undefined>;
35
+ export declare function switchWorkspace(workspace: string | undefined): void;
35
36
  export declare function clearStores(): void;
package/stores.js CHANGED
@@ -16,10 +16,6 @@ export const userWorkspaces = derived([usersWorkspaceStore, superadmin], ([store
16
16
  id: "admins",
17
17
  name: "Admins",
18
18
  username: "superadmin",
19
- }, {
20
- id: "starter",
21
- name: "Starter",
22
- username: "superadmin",
23
19
  }];
24
20
  }
25
21
  else {
@@ -30,7 +26,12 @@ export const hubScripts = writable(undefined);
30
26
  if (browser) {
31
27
  workspaceStore.subscribe(async (workspace) => {
32
28
  if (workspace) {
33
- localStorage.setItem("workspace", String(workspace));
29
+ try {
30
+ localStorage.setItem("workspace", String(workspace));
31
+ }
32
+ catch (e) {
33
+ console.error('Could not persist workspace to local storage', e);
34
+ }
34
35
  userStore.set(await getUserExt(workspace));
35
36
  }
36
37
  else {
@@ -38,7 +39,14 @@ if (browser) {
38
39
  }
39
40
  });
40
41
  }
42
+ export function switchWorkspace(workspace) {
43
+ localStorage.removeItem("flow");
44
+ localStorage.removeItem("app");
45
+ workspaceStore.set(workspace);
46
+ }
41
47
  export function clearStores() {
48
+ localStorage.removeItem("flow");
49
+ localStorage.removeItem("app");
42
50
  localStorage.removeItem("workspace");
43
51
  userStore.set(undefined);
44
52
  workspaceStore.set(undefined);
package/utils.d.ts CHANGED
@@ -71,7 +71,7 @@ export declare function isString(value: any): boolean;
71
71
  export declare function mapUserToUserExt(user: User): UserExt;
72
72
  export declare function schemaToTsType(schema: Schema): string;
73
73
  export declare function schemaToObject(schema: Schema, args: Record<string, any>): Object;
74
- export type InputCat = 'string' | 'number' | 'boolean' | 'list' | 'resource-object' | 'enum' | 'date' | 'base64' | 'resource-string' | 'object' | 'sql';
74
+ export type InputCat = 'string' | 'number' | 'boolean' | 'list' | 'resource-object' | 'enum' | 'date' | 'base64' | 'resource-string' | 'object' | 'sql' | 'yaml';
75
75
  export declare function setInputCat(type: string | undefined, format: string | undefined, itemsType: string | undefined, enum_: any, contentEncoding: string | undefined): InputCat;
76
76
  export declare function scriptPathToHref(path: string): string;
77
77
  export declare function getScriptByPath(path: string): Promise<{
@@ -89,6 +89,14 @@ export declare function loadHubFlows(): Promise<{
89
89
  approved: boolean;
90
90
  votes: number;
91
91
  }[] | undefined>;
92
+ export declare function loadHubApps(): Promise<{
93
+ id: number;
94
+ app_id: number;
95
+ summary: string;
96
+ apps: string[];
97
+ approved: boolean;
98
+ votes: number;
99
+ }[] | undefined>;
92
100
  export declare function formatCron(inp: string): string;
93
101
  export declare function flowToHubUrl(flow: Flow): URL;
94
102
  export declare function scriptToHubUrl(content: string, summary: string, description: string, kind: Script.kind, language: Script.language, schema: Schema | undefined, lock: string | undefined): URL;
package/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
2
  import { goto } from '$app/navigation';
3
- import { FlowService, FolderService, Script, ScriptService, UserService } from './gen';
3
+ import { AppService, FlowService, FolderService, Script, ScriptService, UserService } from './gen';
4
4
  import { toast } from '@zerodevx/svelte-toast';
5
5
  import { hubScripts, workspaceStore } from './stores';
6
6
  import { page } from '$app/stores';
@@ -147,10 +147,10 @@ export function removeItemAll(arr, value) {
147
147
  return arr;
148
148
  }
149
149
  export async function isOwner(path, user, workspace) {
150
- if (user.is_admin && (workspace != 'starter' || user.is_super_admin)) {
150
+ if (user.is_admin && ((workspace == 'starter' || workspace == 'admin') && user.is_super_admin)) {
151
151
  return true;
152
152
  }
153
- else if (workspace == 'starter') {
153
+ else if (workspace == 'starter' || workspace == 'admin') {
154
154
  return false;
155
155
  }
156
156
  else {
@@ -239,15 +239,19 @@ export async function setQuery(url, key, value) {
239
239
  url.searchParams.set(key, value);
240
240
  await goto(`?${url.searchParams.toString()}`);
241
241
  }
242
+ let debounced = undefined;
242
243
  export function setQueryWithoutLoad(url, key, value) {
243
- const nurl = new URL(url.toString());
244
- nurl.searchParams.set(key, value);
245
- try {
246
- history.replaceState(history.state, '', nurl.toString());
247
- }
248
- catch (e) {
249
- console.error(e);
250
- }
244
+ debounced && clearTimeout(debounced);
245
+ debounced = setTimeout(() => {
246
+ const nurl = new URL(url.toString());
247
+ nurl.searchParams.set(key, value);
248
+ try {
249
+ history.replaceState(history.state, '', nurl.toString());
250
+ }
251
+ catch (e) {
252
+ console.error(e);
253
+ }
254
+ }, 200);
251
255
  }
252
256
  export function groupBy(scripts, toGroup, dflts = []) {
253
257
  let r = {};
@@ -380,6 +384,9 @@ export function setInputCat(type, format, itemsType, enum_, contentEncoding) {
380
384
  else if (type == 'string' && format == 'sql') {
381
385
  return 'sql';
382
386
  }
387
+ else if (type == 'string' && format == 'yaml') {
388
+ return 'yaml';
389
+ }
383
390
  else if (type == 'string' && contentEncoding == 'base64') {
384
391
  return 'base64';
385
392
  }
@@ -452,6 +459,16 @@ export async function loadHubFlows() {
452
459
  console.error('Hub is not available');
453
460
  }
454
461
  }
462
+ export async function loadHubApps() {
463
+ try {
464
+ const apps = (await AppService.listHubApps()).apps ?? [];
465
+ const processed = apps.sort((a, b) => b.votes - a.votes);
466
+ return processed;
467
+ }
468
+ catch {
469
+ console.error('Hub is not available');
470
+ }
471
+ }
455
472
  export function formatCron(inp) {
456
473
  // Allow for cron expressions inputted by the user to omit month and year
457
474
  let splitted = inp.split(' ');
@@ -1,68 +0,0 @@
1
- <script>import { faPlus } from '@fortawesome/free-solid-svg-icons';
2
- import { AppService, Policy } from '../../gen';
3
- import { userStore, workspaceStore } from '../../stores';
4
- import { sendUserToast } from '../../utils';
5
- import { Button, Drawer, DrawerContent } from '../common';
6
- let path = '';
7
- let initialPath = '';
8
- let pathError = '';
9
- import { goto } from '$app/navigation';
10
- import Path from '../Path.svelte';
11
- import { LayoutDashboard } from 'lucide-svelte';
12
- let drawerOpen = false;
13
- function closeDrawer() {
14
- drawerOpen = false;
15
- }
16
- async function createApp() {
17
- const appJson = {
18
- grid: [],
19
- title: 'New app',
20
- unusedInlineScripts: []
21
- };
22
- const policy = {
23
- triggerables: {},
24
- execution_mode: Policy.execution_mode.PUBLISHER,
25
- on_behalf_of: `u/${$userStore?.username}`
26
- };
27
- try {
28
- const appId = await AppService.createApp({
29
- workspace: $workspaceStore,
30
- requestBody: {
31
- value: appJson,
32
- path,
33
- summary: 'App summary',
34
- policy
35
- }
36
- });
37
- goto(`/apps/edit/${appId}`);
38
- }
39
- catch (e) {
40
- sendUserToast('Error creating app', e);
41
- }
42
- }
43
- </script>
44
-
45
- <Drawer bind:open={drawerOpen} size="800px">
46
- <DrawerContent title="Add an app" on:close={() => closeDrawer()}>
47
- <Path bind:error={pathError} bind:path {initialPath} namePlaceholder="my_app" kind="app">
48
- <div slot="ownerToolkit">
49
- App permissions depend on their path. Select the group <span class="font-mono">all</span>
50
- to share it, and <span class="font-mono">user</span> to keep it private.
51
- <a href="https://docs.windmill.dev/docs/reference/namespaces">docs</a>
52
- </div>
53
- </Path>
54
-
55
- <div slot="actions">
56
- <Button on:click={() => createApp()}>Create app</Button>
57
- </div>
58
- </DrawerContent>
59
- </Drawer>
60
-
61
- <Button
62
- size="sm"
63
- spacingSize="lg"
64
- startIcon={{ icon: faPlus }}
65
- on:click={() => (drawerOpen = true)}
66
- >
67
- New App (alpha) <LayoutDashboard class="ml-1.5" size={18} />
68
- </Button>
@@ -1,14 +0,0 @@
1
- import { SvelteComponentTyped } from "svelte";
2
- declare const __propDef: {
3
- props: Record<string, never>;
4
- events: {
5
- [evt: string]: CustomEvent<any>;
6
- };
7
- slots: {};
8
- };
9
- export type CreateAppProps = typeof __propDef.props;
10
- export type CreateAppEvents = typeof __propDef.events;
11
- export type CreateAppSlots = typeof __propDef.slots;
12
- export default class CreateApp extends SvelteComponentTyped<CreateAppProps, CreateAppEvents, CreateAppSlots> {
13
- }
14
- export {};