windmill-components 1.383.8 → 1.389.1

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 (195) hide show
  1. package/package/assets/app.css +25 -1
  2. package/package/components/ArgInput.svelte +2 -1
  3. package/package/components/ChangeInstanceUsername.svelte +9 -108
  4. package/package/components/ChangeInstanceUsernameInner.svelte +112 -0
  5. package/package/components/ChangeInstanceUsernameInner.svelte.d.ts +21 -0
  6. package/package/components/DiffDrawer.svelte +27 -20
  7. package/package/components/DiffEditor.svelte +13 -1
  8. package/package/components/DisplayResult.svelte +39 -9
  9. package/package/components/DropdownV2.svelte +4 -26
  10. package/package/components/DropdownV2.svelte.d.ts +9 -1
  11. package/package/components/DropdownV2Inner.svelte +42 -0
  12. package/package/components/DropdownV2Inner.svelte.d.ts +40 -0
  13. package/package/components/Editor.svelte +142 -128
  14. package/package/components/Editor.svelte.d.ts +5 -4
  15. package/package/components/EditorBar.svelte +9 -11
  16. package/package/components/EditorSettings.svelte +44 -0
  17. package/package/components/EditorSettings.svelte.d.ts +17 -0
  18. package/package/components/EditorTheme.svelte +1 -1
  19. package/package/components/ErrorOrRecoveryHandler.svelte +27 -20
  20. package/package/components/FlowBuilder.svelte +17 -3
  21. package/package/components/FlowBuilder.svelte.d.ts +3 -0
  22. package/package/components/FlowGraphViewerStep.svelte +1 -1
  23. package/package/components/FlowStatusViewer.svelte +3 -1
  24. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  25. package/package/components/FlowStatusViewerInner.svelte +5 -2
  26. package/package/components/FlowViewerInner.svelte +3 -7
  27. package/package/components/FormatOnSave.svelte +12 -29
  28. package/package/components/GraphqlSchemaViewer.svelte +1 -1
  29. package/package/components/GraphqlSchemaViewer.svelte.d.ts +1 -1
  30. package/package/components/HighlightCode.svelte +3 -0
  31. package/package/components/InstanceNameEditor.svelte +64 -0
  32. package/package/components/InstanceNameEditor.svelte.d.ts +23 -0
  33. package/package/components/LightweightArgInput.svelte +6 -11
  34. package/package/components/LogViewer.svelte +37 -29
  35. package/package/components/LogViewer.svelte.d.ts +2 -0
  36. package/package/components/ObjectResourceInput.svelte +1 -1
  37. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  38. package/package/components/Path.svelte +3 -3
  39. package/package/components/QueueMetricsDrawer.svelte +6 -218
  40. package/package/components/QueueMetricsDrawer.svelte.d.ts +2 -3
  41. package/package/components/QueueMetricsDrawerInner.svelte +211 -0
  42. package/package/components/QueueMetricsDrawerInner.svelte.d.ts +15 -0
  43. package/package/components/ResourceEditorDrawer.svelte +14 -11
  44. package/package/components/ResourceEditorDrawer.svelte.d.ts +1 -1
  45. package/package/components/ResultJobLoader.svelte.d.ts +1 -1
  46. package/package/components/S3FilePicker.svelte +20 -8
  47. package/package/components/ScheduleEditorInner.svelte +497 -469
  48. package/package/components/ScriptBuilder.svelte +12 -1
  49. package/package/components/ScriptBuilder.svelte.d.ts +3 -0
  50. package/package/components/ScriptEditor.svelte +2 -0
  51. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  52. package/package/components/ServiceLogsInner.svelte +511 -0
  53. package/package/components/ServiceLogsInner.svelte.d.ts +20 -0
  54. package/package/components/SimpleEditor.svelte +75 -37
  55. package/package/components/SimpleEditor.svelte.d.ts +9 -3
  56. package/package/components/Summary.svelte +33 -31
  57. package/package/components/Summary.svelte.d.ts +1 -0
  58. package/package/components/SuperadminSettings.svelte +28 -10
  59. package/package/components/TemplateEditor.svelte +1 -1
  60. package/package/components/TestJobLoader.svelte.d.ts +1 -1
  61. package/package/components/VimMode.svelte +16 -0
  62. package/package/components/VimMode.svelte.d.ts +14 -0
  63. package/package/components/WorkerTagPicker.svelte +4 -1
  64. package/package/components/WorkspaceGroup.svelte +139 -68
  65. package/package/components/WorkspaceGroup.svelte.d.ts +3 -0
  66. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +19 -2
  67. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  68. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +2 -1
  69. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +2 -0
  70. package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +2 -1
  71. package/package/components/apps/components/display/table/AppAggridTable.svelte +45 -3
  72. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +2 -1
  73. package/package/components/apps/components/display/table/AppAggridTableEe.svelte +2 -0
  74. package/package/components/apps/components/display/table/AppAggridTableEe.svelte.d.ts +2 -1
  75. package/package/components/apps/editor/AppEditor.svelte +239 -92
  76. package/package/components/apps/editor/AppEditorBottomPanel.svelte +22 -0
  77. package/package/components/apps/editor/AppEditorBottomPanel.svelte.d.ts +24 -0
  78. package/package/components/apps/editor/AppEditorHeader.svelte +44 -2
  79. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/AppExportButton.svelte +1 -1
  81. package/package/components/apps/editor/AppPreview.svelte +4 -0
  82. package/package/components/apps/editor/DeploymentHistory.svelte +7 -3
  83. package/package/components/apps/editor/GridEditor.svelte +4 -13
  84. package/package/components/apps/editor/RunnableJobPanel.svelte +25 -58
  85. package/package/components/apps/editor/RunnableJobPanel.svelte.d.ts +10 -1
  86. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte +56 -0
  87. package/package/components/apps/editor/RunnalbeJobPanelInner.svelte.d.ts +18 -0
  88. package/package/components/apps/editor/SubGridEditor.svelte +3 -1
  89. package/package/components/apps/editor/component/Component.svelte +26 -4
  90. package/package/components/apps/editor/component/Component.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/component/components.d.ts +5 -0
  92. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +2 -0
  93. package/package/components/apps/editor/componentsPanel/tailwindUtils.js +267 -1
  94. package/package/components/apps/editor/contextPanel/ContextPanel.svelte +9 -1
  95. package/package/components/apps/editor/contextPanel/ContextPanel.svelte.d.ts +2 -0
  96. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -0
  97. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +4 -0
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +7 -2
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte.d.ts +5 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +14 -2
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte.d.ts +1 -0
  102. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +25 -5
  103. package/package/components/apps/editor/settingsPanel/HideButton.svelte +47 -0
  104. package/package/components/apps/editor/settingsPanel/HideButton.svelte.d.ts +22 -0
  105. package/package/components/apps/editor/settingsPanel/TableActions.svelte +43 -4
  106. package/package/components/apps/editor/settingsPanel/TableActions.svelte.d.ts +2 -1
  107. package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -1
  108. package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte.d.ts +1 -0
  109. package/package/components/apps/svelte-grid/Grid.svelte +6 -2
  110. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +1 -0
  111. package/package/components/apps/svelte-grid/MoveResize.svelte +11 -3
  112. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +1 -0
  113. package/package/components/apps/svelte-grid/utils/item.d.ts +4 -1
  114. package/package/components/apps/svelte-grid/utils/item.js +11 -4
  115. package/package/components/build_workers.d.ts +1 -1
  116. package/package/components/build_workers.js +16 -122
  117. package/package/components/common/button/Button.svelte.d.ts +2 -2
  118. package/package/components/common/calendarPicker/CalendarPicker.svelte +6 -2
  119. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +2 -0
  120. package/package/components/common/drawer/ConditionalPortal.svelte +2 -1
  121. package/package/components/common/drawer/ConditionalPortal.svelte.d.ts +1 -0
  122. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  123. package/package/components/common/popup/Popup.svelte +2 -1
  124. package/package/components/common/popup/Popup.svelte.d.ts +1 -0
  125. package/package/components/common/table/AppRow.svelte +11 -8
  126. package/package/components/common/table/AppRow.svelte.d.ts +1 -2
  127. package/package/components/common/table/FlowRow.svelte +3 -3
  128. package/package/components/common/table/FlowRow.svelte.d.ts +1 -2
  129. package/package/components/common/table/RawAppRow.svelte +3 -3
  130. package/package/components/common/table/RawAppRow.svelte.d.ts +1 -2
  131. package/package/components/common/table/ScriptRow.svelte +3 -3
  132. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -2
  133. package/package/components/copilot/CodeCompletionStatus.svelte +21 -46
  134. package/package/components/copilot/StepGen.svelte +2 -1
  135. package/package/components/custom_ui.d.ts +4 -1
  136. package/package/components/flows/CreateActionsApp.svelte +11 -8
  137. package/package/components/flows/CreateActionsFlow.svelte +11 -8
  138. package/package/components/flows/FlowEditor.svelte +1 -2
  139. package/package/components/flows/FlowEditor.svelte.d.ts +0 -1
  140. package/package/components/flows/FlowHistory.svelte +6 -3
  141. package/package/components/flows/content/FlowModuleComponent.svelte +1 -0
  142. package/package/components/flows/content/FlowModuleScript.svelte +15 -11
  143. package/package/components/flows/content/FlowSettings.svelte +1 -4
  144. package/package/components/flows/content/ScriptEditorDrawer.svelte +3 -0
  145. package/package/components/flows/header/FlowYamlEditor.svelte +55 -0
  146. package/package/components/flows/header/FlowYamlEditor.svelte.d.ts +17 -0
  147. package/package/components/flows/map/InsertTriggerButton.svelte +1 -1
  148. package/package/components/flows/map/InsertTriggerButton.svelte.d.ts +1 -0
  149. package/package/components/flows/map/VirtualItem.svelte +1 -1
  150. package/package/components/flows/pickers/PickHubScript.svelte +1 -0
  151. package/package/components/flows/types.d.ts +7 -6
  152. package/package/components/flows/utils.d.ts +9 -0
  153. package/package/components/flows/utils.js +21 -0
  154. package/package/components/graph/graphBuilder.js +1 -0
  155. package/package/components/graph/model.d.ts +1 -0
  156. package/package/components/graph/renderers/edges/BaseEdge.svelte +16 -0
  157. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  158. package/package/components/graph/renderers/nodes/NoBranchNode.svelte +5 -1
  159. package/package/components/graph/renderers/nodes/NoBranchNode.svelte.d.ts +1 -0
  160. package/package/components/home/Item.svelte +0 -17
  161. package/package/components/home/deploy_ui.d.ts +2 -0
  162. package/package/components/home/deploy_ui.js +21 -0
  163. package/package/components/icons/RustIcon.svelte +70 -0
  164. package/package/components/icons/RustIcon.svelte.d.ts +25 -0
  165. package/package/components/icons/rust-logo.svg +1 -0
  166. package/package/components/instanceSettings.js +2 -2
  167. package/package/components/monaco_keybindings.d.ts +3 -0
  168. package/package/components/monaco_keybindings.js +9 -0
  169. package/package/components/preview/FlowPreviewStatus.svelte +6 -2
  170. package/package/components/runs/JobLoader.svelte +12 -3
  171. package/package/components/runs/JobLoader.svelte.d.ts +1 -1
  172. package/package/components/runs/ManuelDatePicker.svelte +31 -44
  173. package/package/components/runs/ManuelDatePicker.svelte.d.ts +6 -2
  174. package/package/components/runs/RunsFilter.svelte +4 -1
  175. package/package/components/runs/RunsFilter.svelte.d.ts +1 -0
  176. package/package/components/search/GlobalSearchModal.svelte +36 -25
  177. package/package/components/vscode.js +1 -1
  178. package/package/components/wizards/TableActionsWizard.svelte +84 -0
  179. package/package/components/wizards/TableActionsWizard.svelte.d.ts +22 -0
  180. package/package/editorUtils.js +2 -0
  181. package/package/gen/core/OpenAPI.js +1 -1
  182. package/package/gen/schemas.gen.d.ts +8 -8
  183. package/package/gen/schemas.gen.js +8 -8
  184. package/package/gen/services.gen.d.ts +4 -0
  185. package/package/gen/services.gen.js +16 -0
  186. package/package/gen/types.gen.d.ts +20 -8
  187. package/package/infer.d.ts +1 -1
  188. package/package/infer.js +48 -7
  189. package/package/script_helpers.d.ts +1 -0
  190. package/package/script_helpers.js +39 -1
  191. package/package/scripts.d.ts +1 -1
  192. package/package/scripts.js +12 -4
  193. package/package/stores.d.ts +5 -1
  194. package/package/stores.js +7 -2
  195. package/package.json +18 -9
@@ -23,7 +23,7 @@ export type Script = {
23
23
  };
24
24
  lock?: string;
25
25
  lock_error_logs?: string;
26
- language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php';
26
+ language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust';
27
27
  kind: 'script' | 'failure' | 'trigger' | 'command' | 'approval';
28
28
  starred: boolean;
29
29
  tag?: string;
@@ -55,7 +55,7 @@ export type NewScript = {
55
55
  };
56
56
  is_template?: boolean;
57
57
  lock?: string;
58
- language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php';
58
+ language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust';
59
59
  kind?: 'script' | 'failure' | 'trigger' | 'command' | 'approval';
60
60
  tag?: string;
61
61
  draft_only?: boolean;
@@ -135,7 +135,7 @@ export type QueuedJob = {
135
135
  flow_status?: FlowStatus;
136
136
  raw_flow?: FlowValue;
137
137
  is_flow_step: boolean;
138
- language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php';
138
+ language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust';
139
139
  email: string;
140
140
  visible_to_owner: boolean;
141
141
  mem_peak?: number;
@@ -174,7 +174,7 @@ export type CompletedJob = {
174
174
  flow_status?: FlowStatus;
175
175
  raw_flow?: FlowValue;
176
176
  is_flow_step: boolean;
177
- language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php';
177
+ language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust';
178
178
  is_skipped: boolean;
179
179
  email: string;
180
180
  visible_to_owner: boolean;
@@ -319,7 +319,7 @@ export type Preview = {
319
319
  content?: string;
320
320
  path?: string;
321
321
  args: ScriptArgs;
322
- language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php';
322
+ language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust';
323
323
  tag?: string;
324
324
  kind?: 'code' | 'identity' | 'http';
325
325
  dedicated_worker?: boolean;
@@ -500,8 +500,8 @@ export type WorkerPing = {
500
500
  custom_tags?: Array<(string)>;
501
501
  worker_group: string;
502
502
  wm_version: string;
503
- current_job_id?: string;
504
- current_job_workspace_id?: string;
503
+ last_job_id?: string;
504
+ last_job_workspace_id?: string;
505
505
  occupancy_rate?: number;
506
506
  memory?: number;
507
507
  vcpus?: number;
@@ -752,7 +752,7 @@ export type MetricDataPoint = {
752
752
  export type RawScriptForDependencies = {
753
753
  raw_code: string;
754
754
  path: string;
755
- language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php';
755
+ language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust';
756
756
  };
757
757
  export type ConcurrencyGroup = {
758
758
  concurrency_key: string;
@@ -1255,6 +1255,7 @@ export type GlobalUserUpdateData = {
1255
1255
  */
1256
1256
  requestBody: {
1257
1257
  is_super_admin?: boolean;
1258
+ name?: string;
1258
1259
  };
1259
1260
  };
1260
1261
  export type GlobalUserUpdateResponse = string;
@@ -2260,6 +2261,7 @@ export type UpdateFlowHistoryData = {
2260
2261
  export type UpdateFlowHistoryResponse = string;
2261
2262
  export type GetFlowByPathData = {
2262
2263
  path: string;
2264
+ withStarredInfo?: boolean;
2263
2265
  workspace: string;
2264
2266
  };
2265
2267
  export type GetFlowByPathResponse = Flow;
@@ -2431,6 +2433,7 @@ export type ExistsAppData = {
2431
2433
  export type ExistsAppResponse = boolean;
2432
2434
  export type GetAppByPathData = {
2433
2435
  path: string;
2436
+ withStarredInfo?: boolean;
2434
2437
  workspace: string;
2435
2438
  };
2436
2439
  export type GetAppByPathResponse = AppWithLastVersion;
@@ -2737,6 +2740,7 @@ export type DeleteScriptByPathData = {
2737
2740
  export type DeleteScriptByPathResponse = string;
2738
2741
  export type GetScriptByPathData = {
2739
2742
  path: string;
2743
+ withStarredInfo?: boolean;
2740
2744
  workspace: string;
2741
2745
  };
2742
2746
  export type GetScriptByPathResponse = Script;
@@ -2780,6 +2784,7 @@ export type ExistsScriptByPathData = {
2780
2784
  export type ExistsScriptByPathResponse = boolean;
2781
2785
  export type GetScriptByHashData = {
2782
2786
  hash: string;
2787
+ withStarredInfo?: boolean;
2783
2788
  workspace: string;
2784
2789
  };
2785
2790
  export type GetScriptByHashResponse = Script;
@@ -4713,6 +4718,7 @@ export type ListLogFilesResponse = Array<{
4713
4718
  file_path: string;
4714
4719
  ok_lines?: number;
4715
4720
  err_lines?: number;
4721
+ json_fmt: boolean;
4716
4722
  }>;
4717
4723
  export type GetLogFileData = {
4718
4724
  path: string;
@@ -4973,6 +4979,7 @@ export type $OpenApiTs = {
4973
4979
  */
4974
4980
  requestBody: {
4975
4981
  is_super_admin?: boolean;
4982
+ name?: string;
4976
4983
  };
4977
4984
  };
4978
4985
  res: {
@@ -7168,6 +7175,7 @@ export type $OpenApiTs = {
7168
7175
  get: {
7169
7176
  req: {
7170
7177
  path: string;
7178
+ withStarredInfo?: boolean;
7171
7179
  workspace: string;
7172
7180
  };
7173
7181
  res: {
@@ -7474,6 +7482,7 @@ export type $OpenApiTs = {
7474
7482
  get: {
7475
7483
  req: {
7476
7484
  path: string;
7485
+ withStarredInfo?: boolean;
7477
7486
  workspace: string;
7478
7487
  };
7479
7488
  res: {
@@ -7996,6 +8005,7 @@ export type $OpenApiTs = {
7996
8005
  get: {
7997
8006
  req: {
7998
8007
  path: string;
8008
+ withStarredInfo?: boolean;
7999
8009
  workspace: string;
8000
8010
  };
8001
8011
  res: {
@@ -8102,6 +8112,7 @@ export type $OpenApiTs = {
8102
8112
  get: {
8103
8113
  req: {
8104
8114
  hash: string;
8115
+ withStarredInfo?: boolean;
8105
8116
  workspace: string;
8106
8117
  };
8107
8118
  res: {
@@ -11255,6 +11266,7 @@ export type $OpenApiTs = {
11255
11266
  file_path: string;
11256
11267
  ok_lines?: number;
11257
11268
  err_lines?: number;
11269
+ json_fmt: boolean;
11258
11270
  }>;
11259
11271
  };
11260
11272
  };
@@ -1,5 +1,5 @@
1
1
  import type { Schema, SupportedLanguage } from './common.js';
2
- export declare function initWasm(): Promise<void>;
2
+ export declare function initWasmTs(): Promise<void>;
3
3
  export declare function parseDeps(code: string): string[];
4
4
  export declare function inferArgs(language: SupportedLanguage | 'bunnative' | undefined, code: string, schema: Schema): Promise<boolean | null>;
5
5
  export declare function loadSchemaFromPath(path: string, hash?: string): Promise<Schema>;
package/package/infer.js CHANGED
@@ -2,14 +2,42 @@ import { ScriptService, FlowService } from './gen';
2
2
  import { get, writable } from 'svelte/store';
3
3
  import { emptySchema, sortObject } from './utils.js';
4
4
  import { tick } from 'svelte';
5
- import init, { parse_deno, parse_bash, parse_go, parse_python, parse_sql, parse_mysql, parse_bigquery, parse_snowflake, parse_graphql, parse_powershell, parse_outputs, parse_mssql, parse_ts_imports, parse_db_resource, parse_php } from 'windmill-parser-wasm';
6
- import wasmUrl from 'windmill-parser-wasm/windmill_parser_wasm_bg.wasm?url';
5
+ import initTsParser, { parse_deno, parse_outputs, parse_ts_imports } from 'windmill-parser-wasm-ts';
6
+ import initRegexParsers, { parse_sql, parse_mysql, parse_bigquery, parse_snowflake, parse_graphql, parse_mssql, parse_db_resource, parse_bash, parse_powershell, } from 'windmill-parser-wasm-regex';
7
+ import initPythonParser, { parse_python, } from 'windmill-parser-wasm-py';
8
+ import initGoParser, { parse_go, } from 'windmill-parser-wasm-go';
9
+ import initPhpParser, { parse_php, } from 'windmill-parser-wasm-php';
10
+ import initRustParser, { parse_rust, } from 'windmill-parser-wasm-rust';
11
+ import wasmUrlTs from 'windmill-parser-wasm-ts/windmill_parser_wasm_bg.wasm?url';
12
+ import wasmUrlRegex from 'windmill-parser-wasm-regex/windmill_parser_wasm_bg.wasm?url';
13
+ import wasmUrlPy from 'windmill-parser-wasm-py/windmill_parser_wasm_bg.wasm?url';
14
+ import wasmUrlGo from 'windmill-parser-wasm-go/windmill_parser_wasm_bg.wasm?url';
15
+ import wasmUrlPhp from 'windmill-parser-wasm-php/windmill_parser_wasm_bg.wasm?url';
16
+ import wasmUrlRust from 'windmill-parser-wasm-rust/windmill_parser_wasm_bg.wasm?url';
7
17
  import { workspaceStore } from './stores.js';
8
18
  import { argSigToJsonSchemaType } from './inferArgSig.js';
9
- init(wasmUrl);
10
19
  const loadSchemaLastRun = writable(undefined);
11
- export async function initWasm() {
12
- await init(wasmUrl);
20
+ let initializeTsPromise = undefined;
21
+ export async function initWasmTs() {
22
+ if (initializeTsPromise == undefined) {
23
+ initializeTsPromise = initTsParser(wasmUrlTs);
24
+ }
25
+ await initializeTsPromise;
26
+ }
27
+ async function initWasmRegex() {
28
+ await initRegexParsers(wasmUrlRegex);
29
+ }
30
+ async function initWasmPython() {
31
+ await initPythonParser(wasmUrlPy);
32
+ }
33
+ async function initWasmPhp() {
34
+ await initPhpParser(wasmUrlPhp);
35
+ }
36
+ async function initWasmRust() {
37
+ await initRustParser(wasmUrlRust);
38
+ }
39
+ async function initWasmGo() {
40
+ await initGoParser(wasmUrlGo);
13
41
  }
14
42
  export function parseDeps(code) {
15
43
  let r = JSON.parse(parse_ts_imports(code));
@@ -22,7 +50,6 @@ export function parseDeps(code) {
22
50
  }
23
51
  }
24
52
  export async function inferArgs(language, code, schema) {
25
- await init(wasmUrl);
26
53
  const lastRun = get(loadSchemaLastRun);
27
54
  let inferedSchema;
28
55
  if (lastRun && code == lastRun[0] && lastRun[1]) {
@@ -34,18 +61,23 @@ export async function inferArgs(language, code, schema) {
34
61
  }
35
62
  let inlineDBResource = undefined;
36
63
  if (['postgresql', 'mysql', 'bigquery', 'snowflake', 'mssql'].includes(language ?? '')) {
64
+ await initWasmRegex();
37
65
  inlineDBResource = parse_db_resource(code);
38
66
  }
39
67
  if (language == 'python3') {
68
+ await initWasmPython();
40
69
  inferedSchema = JSON.parse(parse_python(code));
41
70
  }
42
71
  else if (language == 'deno') {
72
+ await initWasmTs();
43
73
  inferedSchema = JSON.parse(parse_deno(code));
44
74
  }
45
75
  else if (language == 'nativets') {
76
+ await initWasmTs();
46
77
  inferedSchema = JSON.parse(parse_deno(code));
47
78
  }
48
79
  else if (language == 'bun' || language == 'bunnative') {
80
+ await initWasmTs();
49
81
  inferedSchema = JSON.parse(parse_deno(code));
50
82
  }
51
83
  else if (language == 'postgresql') {
@@ -97,21 +129,30 @@ export async function inferArgs(language, code, schema) {
97
129
  }
98
130
  }
99
131
  else if (language == 'graphql') {
132
+ await initWasmRegex();
100
133
  inferedSchema = JSON.parse(parse_graphql(code));
101
134
  inferedSchema.args = [{ name: 'api', typ: { resource: 'graphql' } }, ...inferedSchema.args];
102
135
  }
103
136
  else if (language == 'go') {
137
+ await initWasmGo();
104
138
  inferedSchema = JSON.parse(parse_go(code));
105
139
  }
106
140
  else if (language == 'bash') {
141
+ await initWasmRegex();
107
142
  inferedSchema = JSON.parse(parse_bash(code));
108
143
  }
109
144
  else if (language == 'powershell') {
145
+ await initWasmRegex();
110
146
  inferedSchema = JSON.parse(parse_powershell(code));
111
147
  }
112
148
  else if (language == 'php') {
149
+ await initWasmPhp();
113
150
  inferedSchema = JSON.parse(parse_php(code));
114
151
  }
152
+ else if (language == 'rust') {
153
+ await initWasmRust();
154
+ inferedSchema = JSON.parse(parse_rust(code));
155
+ }
115
156
  else {
116
157
  return null;
117
158
  }
@@ -206,7 +247,7 @@ export async function loadSchema(workspace, path, runType) {
206
247
  }
207
248
  }
208
249
  export async function parseOutputs(code, ignoreError) {
209
- await init(wasmUrl);
250
+ await initWasmTs();
210
251
  const getOutputs = await parse_outputs(code);
211
252
  const outputs = JSON.parse(getOutputs);
212
253
  if (outputs.error) {
@@ -23,6 +23,7 @@ export declare const SNOWFLAKE_INIT_CODE = "-- to pin the database use '-- datab
23
23
  export declare const MSSQL_INIT_CODE = "-- to pin the database use '-- database f/your/path'\n-- @p1 name1 (varchar) = default arg\n-- @p2 name2 (int)\n-- @p3 name3 (int)\nINSERT INTO demo VALUES (@p1, @p2);\nUPDATE demo SET col2 = @p3 WHERE col2 = @p2;\n";
24
24
  export declare const GRAPHQL_INIT_CODE = "query($name4: String, $name2: Int, $name3: [String]) {\n\tdemo(name1: $name1, name2: $name2, name3: $name3) {\n\t\tname1,\n\t\tname2,\n\t\tname3\n\t}\n}\n";
25
25
  export declare const PHP_INIT_CODE = "<?php\n\n// remove the first // of the following lines to specify packages to install using composer\n// // require:\n// // monolog/monolog@3.6.0\n// // stripe/stripe-php\n\nfunction main(\n // Postgresql $a,\n // array $b,\n // object $c,\n int $d = 123,\n string $e = \"default value\",\n float $f = 3.5,\n bool $g = true,\n) {\n return $d;\n}\n";
26
+ export declare const RUST_INIT_CODE = "//! Add dependencies in the following partial Cargo.toml manifest\n//!\n//! ```cargo\n//! [dependencies]\n//! anyhow = \"1.0.86\"\n//! rand = \"0.7.2\"\n//! ```\n//!\n//! Note that serde is used by default with the `derive` feature.\n//! You can still reimport it if you need additional features.\n\nuse anyhow::anyhow;\nuse rand::seq::SliceRandom;\nuse serde::Serialize;\n\n#[derive(Serialize, Debug)]\nstruct Ret {\n msg: String,\n number: i8,\n}\n\nfn main(who_to_greet: String, numbers: Vec<i8>) -> anyhow::Result<Ret> {\n println!(\n \"Person to greet: {} - numbers to choose: {:?}\",\n who_to_greet, numbers\n );\n Ok(Ret {\n msg: format!(\"Greetings {}!\", who_to_greet),\n number: *numbers\n .choose(&mut rand::thread_rng())\n .ok_or(anyhow!(\"There should be some numbers to choose from\"))?,\n })\n}\n";
26
27
  export declare const FETCH_INIT_CODE = "export async function main(\n\turl: string | undefined,\n\tmethod: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' = 'GET',\n\tbody: Object = {},\n\theaders: Record<string, string> = {}\n): Promise<Response | null> {\n\tif (!url) {\n\t\tconsole.error('Error: URL is undefined')\n\t\treturn null\n\t}\n\n\tconst requestOptions: RequestInit = {\n\t\tmethod: method || 'GET',\n\t\theaders: headers || {}\n\t}\n\n\tif (requestOptions.method !== 'GET' && requestOptions.method !== 'HEAD' && body !== undefined) {\n\t\trequestOptions.body = JSON.stringify(body)\n\t\trequestOptions.headers = {\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...requestOptions.headers\n\t\t}\n\t}\n\n\treturn await fetch(url, requestOptions)\n\t\t.then((res) => res.json())\n\t\t.catch(() => {\n\t\t\tthrow new Error('An error occured')\n\t\t})\n}";
27
28
  export declare const BASH_INIT_CODE = "# shellcheck shell=bash\n# arguments of the form X=\"$I\" are parsed as parameters X of type string\nmsg=\"$1\"\ndflt=\"${2:-default value}\"\n\n# the last line of the stdout is the return value\n# unless you write json to './result.json' or a string to './result.out'\necho \"Hello $msg\"\n";
28
29
  export declare const DENO_INIT_CODE_TRIGGER: string;
@@ -225,6 +225,40 @@ function main(
225
225
  return $d;
226
226
  }
227
227
  `;
228
+ export const RUST_INIT_CODE = `//! Add dependencies in the following partial Cargo.toml manifest
229
+ //!
230
+ //! \`\`\`cargo
231
+ //! [dependencies]
232
+ //! anyhow = "1.0.86"
233
+ //! rand = "0.7.2"
234
+ //! \`\`\`
235
+ //!
236
+ //! Note that serde is used by default with the \`derive\` feature.
237
+ //! You can still reimport it if you need additional features.
238
+
239
+ use anyhow::anyhow;
240
+ use rand::seq::SliceRandom;
241
+ use serde::Serialize;
242
+
243
+ #[derive(Serialize, Debug)]
244
+ struct Ret {
245
+ msg: String,
246
+ number: i8,
247
+ }
248
+
249
+ fn main(who_to_greet: String, numbers: Vec<i8>) -> anyhow::Result<Ret> {
250
+ println!(
251
+ "Person to greet: {} - numbers to choose: {:?}",
252
+ who_to_greet, numbers
253
+ );
254
+ Ok(Ret {
255
+ msg: format!("Greetings {}!", who_to_greet),
256
+ number: *numbers
257
+ .choose(&mut rand::thread_rng())
258
+ .ok_or(anyhow!("There should be some numbers to choose from"))?,
259
+ })
260
+ }
261
+ `;
228
262
  export const FETCH_INIT_CODE = `export async function main(
229
263
  url: string | undefined,
230
264
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' = 'GET',
@@ -429,7 +463,8 @@ const ALL_INITIAL_CODE = [
429
463
  BUN_INIT_CODE_APPROVAL,
430
464
  BASH_INIT_CODE,
431
465
  POWERSHELL_INIT_CODE,
432
- PHP_INIT_CODE
466
+ PHP_INIT_CODE,
467
+ RUST_INIT_CODE,
433
468
  ];
434
469
  export function isInitialCode(content) {
435
470
  for (const code of ALL_INITIAL_CODE) {
@@ -526,6 +561,9 @@ export function initialCode(language, kind, subkind) {
526
561
  else if (language == 'php') {
527
562
  return PHP_INIT_CODE;
528
563
  }
564
+ else if (language == 'rust') {
565
+ return RUST_INIT_CODE;
566
+ }
529
567
  else if (language == 'bun' || language == 'bunnative') {
530
568
  if (language == 'bunnative' || subkind === 'bunnative') {
531
569
  return BUNNATIVE_INIT_CODE;
@@ -1,6 +1,6 @@
1
1
  import type { Schema, SupportedLanguage } from './common';
2
2
  import { type Script } from './gen';
3
- export declare function scriptLangToEditorLang(lang: Script['language'] | 'bunnative' | undefined): "go" | "powershell" | "graphql" | "php" | "sql" | "typescript" | "python" | "shell";
3
+ export declare function scriptLangToEditorLang(lang: Script['language'] | 'bunnative' | 'frontend' | undefined): "go" | "powershell" | "graphql" | "php" | "rust" | "sql" | "typescript" | "python" | "shell";
4
4
  export type ScriptSchedule = {
5
5
  summary: string | undefined;
6
6
  args: Record<string, any>;
@@ -6,7 +6,7 @@ export function scriptLangToEditorLang(lang) {
6
6
  if (lang == 'deno') {
7
7
  return 'typescript';
8
8
  }
9
- else if (lang == 'bun' || lang == 'bunnative') {
9
+ else if (lang == 'bun' || lang == 'bunnative' || lang == 'frontend') {
10
10
  return 'typescript';
11
11
  }
12
12
  else if (lang == 'nativets') {
@@ -41,6 +41,9 @@ export function scriptLangToEditorLang(lang) {
41
41
  else if (lang == 'php') {
42
42
  return 'php';
43
43
  }
44
+ else if (lang == 'rust') {
45
+ return 'rust';
46
+ }
44
47
  else if (lang == 'graphql') {
45
48
  return 'graphql';
46
49
  }
@@ -103,6 +106,7 @@ const scriptLanguagesArray = [
103
106
  ['graphql', 'GraphQL'],
104
107
  ['powershell', 'PowerShell'],
105
108
  ['php', 'PHP'],
109
+ ['rust', 'Rust'],
106
110
  ['docker', 'Docker']
107
111
  ];
108
112
  export function processLangs(selected, langs) {
@@ -111,9 +115,13 @@ export function processLangs(selected, langs) {
111
115
  }
112
116
  else {
113
117
  let ls = langs.filter((lang) => lang !== 'nativets');
114
- if (!ls.includes('bunnative')) {
115
- ls.push('bunnative');
116
- }
118
+ //those languages are newer and may not be in the saved list
119
+ let nl = ['bunnative', 'rust'];
120
+ nl.forEach((lang) => {
121
+ if (!ls.includes(lang)) {
122
+ ls.push(lang);
123
+ }
124
+ });
117
125
  return ls;
118
126
  }
119
127
  }
@@ -43,10 +43,14 @@ export declare const copilotInfo: import("svelte/store").Writable<{
43
43
  code_completion_enabled: boolean;
44
44
  }>;
45
45
  export declare const codeCompletionLoading: import("svelte/store").Writable<boolean>;
46
- export declare const codeCompletionSessionEnabled: import("svelte/store").Writable<boolean>;
47
46
  export declare const metadataCompletionEnabled: import("svelte/store").Writable<boolean>;
48
47
  export declare const stepInputCompletionEnabled: import("svelte/store").Writable<boolean>;
48
+ export declare const FORMAT_ON_SAVE_SETTING_NAME = "formatOnSave";
49
+ export declare const VIM_MODE_SETTING_NAME = "vimMode";
50
+ export declare const CODE_COMPLETION_SETTING_NAME = "codeCompletionSessionEnabled";
49
51
  export declare const formatOnSave: import("svelte/store").Writable<boolean>;
52
+ export declare const vimMode: import("svelte/store").Writable<boolean>;
53
+ export declare const codeCompletionSessionEnabled: import("svelte/store").Writable<boolean>;
50
54
  type SQLBaseSchema = {
51
55
  [schemaKey: string]: {
52
56
  [tableKey: string]: {
package/package/stores.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { BROWSER } from 'esm-env';
2
2
  import { derived, writable } from 'svelte/store';
3
3
  import {} from './gen';
4
+ import { getLocalSetting } from './utils';
4
5
  const persistedWorkspace = BROWSER && getWorkspace();
5
6
  function getWorkspace() {
6
7
  try {
@@ -51,8 +52,12 @@ export const copilotInfo = writable({
51
52
  code_completion_enabled: false
52
53
  });
53
54
  export const codeCompletionLoading = writable(false);
54
- export const codeCompletionSessionEnabled = writable(true);
55
55
  export const metadataCompletionEnabled = writable(true);
56
56
  export const stepInputCompletionEnabled = writable(true);
57
- export const formatOnSave = writable(true);
57
+ export const FORMAT_ON_SAVE_SETTING_NAME = 'formatOnSave';
58
+ export const VIM_MODE_SETTING_NAME = 'vimMode';
59
+ export const CODE_COMPLETION_SETTING_NAME = 'codeCompletionSessionEnabled';
60
+ export const formatOnSave = writable(getLocalSetting(FORMAT_ON_SAVE_SETTING_NAME) != 'false');
61
+ export const vimMode = writable(getLocalSetting(VIM_MODE_SETTING_NAME) == 'true');
62
+ export const codeCompletionSessionEnabled = writable(getLocalSetting(CODE_COMPLETION_SETTING_NAME) != 'false');
58
63
  export const dbSchemas = writable({});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "windmill-components",
3
- "version": "1.383.8",
3
+ "version": "1.389.1",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build",
@@ -17,7 +17,6 @@
17
17
  "filter-classes": "node filterTailwindClasses.js"
18
18
  },
19
19
  "devDependencies": {
20
- "@windmill-labs/esbuild-import-meta-url-plugin": "0.0.0-semantic-release",
21
20
  "@floating-ui/core": "^1.3.1",
22
21
  "@hey-api/openapi-ts": "^0.43.0",
23
22
  "@playwright/test": "^1.34.3",
@@ -35,6 +34,7 @@
35
34
  "@types/vscode": "^1.83.5",
36
35
  "@typescript-eslint/eslint-plugin": "^5.59.8",
37
36
  "@typescript-eslint/parser": "^5.60.0",
37
+ "@windmill-labs/esbuild-import-meta-url-plugin": "0.0.0-semantic-release",
38
38
  "@zerodevx/svelte-toast": "^0.9.5",
39
39
  "autoprefixer": "^10.4.13",
40
40
  "cssnano": "^6.0.1",
@@ -50,7 +50,7 @@
50
50
  "simple-svelte-autocomplete": "^2.5.1",
51
51
  "style-to-object": "^0.4.1",
52
52
  "stylelint-config-recommended": "^13.0.0",
53
- "svelte": "^4.0.0",
53
+ "svelte": "^4.2.19",
54
54
  "svelte-awesome-color-picker": "^3.0.4",
55
55
  "svelte-check": "^3.4.3",
56
56
  "svelte-floating-ui": "^1.5.8",
@@ -73,6 +73,9 @@
73
73
  "@rgossiaux/svelte-headlessui": {
74
74
  "svelte": "$svelte"
75
75
  },
76
+ "monaco-graphql": {
77
+ "monaco-editor": "$monaco-editor"
78
+ },
76
79
  "svelte-chartjs": {
77
80
  "svelte": "$svelte"
78
81
  }
@@ -85,9 +88,9 @@
85
88
  "@codingame/monaco-vscode-keybindings-service-override": "~8.0.2",
86
89
  "@codingame/monaco-vscode-lifecycle-service-override": "~8.0.2",
87
90
  "@codingame/monaco-vscode-localization-service-override": "~8.0.2",
91
+ "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2",
88
92
  "@codingame/monaco-vscode-standalone-json-language-features": "~8.0.2",
89
93
  "@codingame/monaco-vscode-standalone-languages": "~8.0.2",
90
- "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2",
91
94
  "@codingame/monaco-vscode-standalone-typescript-language-features": "~8.0.2",
92
95
  "@json2csv/plainjs": "^7.0.6",
93
96
  "@leeoniya/ufuzzy": "^1.0.8",
@@ -116,9 +119,10 @@
116
119
  "lucide-svelte": "^0.293.0",
117
120
  "minimatch": "^10.0.1",
118
121
  "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2",
119
- "@windmill-labs/monaco-editor-wrapper": "^5.5.2",
122
+ "monaco-editor-wrapper": "^5.5.2",
120
123
  "monaco-graphql": "^1.6.0",
121
- "@windmill-labs/monaco-languageclient": "~8.8.2",
124
+ "monaco-languageclient": "~8.8.2",
125
+ "monaco-vim": "^0.4.1",
122
126
  "ol": "^7.4.0",
123
127
  "openai": "^4.47.1",
124
128
  "p-limit": "^6.1.0",
@@ -128,17 +132,22 @@
128
132
  "svelte-carousel": "^1.0.25",
129
133
  "svelte-chartjs": "^3.1.5",
130
134
  "svelte-exmarkdown": "^3.0.5",
131
- "svelte-infinite-loading": "^1.3.8",
135
+ "svelte-infinite-loading": "^1.4.0",
132
136
  "svelte-tiny-virtual-list": "^2.0.5",
133
137
  "tailwind-merge": "^1.13.2",
134
138
  "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2",
135
139
  "vscode-languageclient": "~9.0.1",
136
140
  "vscode-uri": "~3.0.8",
137
141
  "vscode-ws-jsonrpc": "~3.3.2",
138
- "windmill-parser-wasm": "^1.367.2",
142
+ "windmill-parser-wasm-rust": "^1.387.0",
143
+ "windmill-parser-wasm-php": "^1.382.2",
144
+ "windmill-parser-wasm-go": "^1.382.2",
145
+ "windmill-parser-wasm-py": "^1.382.2",
146
+ "windmill-parser-wasm-regex": "^1.382.2",
147
+ "windmill-parser-wasm-ts": "^1.382.2",
139
148
  "windmill-sql-datatype-parser-wasm": "^1.318.0",
140
149
  "y-monaco": "^0.1.4",
141
- "y-websocket": "^1.5.0",
150
+ "y-websocket": "^1.5.4",
142
151
  "yaml": "^2.3.4",
143
152
  "yjs": "^13.6.7"
144
153
  },