windmill-components 1.269.3 → 1.291.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 (339) hide show
  1. package/package/ata/apis.d.ts +8 -5
  2. package/package/ata/apis.js +20 -9
  3. package/package/ata/edgeCases.js +5 -1
  4. package/package/ata/index.d.ts +3 -3
  5. package/package/ata/index.js +51 -28
  6. package/package/common.d.ts +1 -0
  7. package/package/components/AddUser.svelte +15 -6
  8. package/package/components/ApiConnectForm.svelte +1 -1
  9. package/package/components/ArgEnum.svelte +1 -1
  10. package/package/components/ArgEnum.svelte.d.ts +1 -1
  11. package/package/components/ArgInfo.svelte +2 -1
  12. package/package/components/ArgInput.svelte +7 -6
  13. package/package/components/ArgInput.svelte.d.ts +1 -1
  14. package/package/components/ArrayTypeNarrowing.svelte +2 -0
  15. package/package/components/CenteredModal.svelte +5 -2
  16. package/package/components/ChangeInstanceUsername.svelte +123 -0
  17. package/package/components/ChangeInstanceUsername.svelte.d.ts +20 -0
  18. package/package/components/ContentSearch.svelte +3 -4
  19. package/package/components/ContentSearch.svelte.d.ts +0 -3
  20. package/package/components/DateTimeInput.svelte +73 -9
  21. package/package/components/DateTimeInput.svelte.d.ts +8 -1
  22. package/package/components/DefaultScripts.svelte +26 -0
  23. package/package/components/DefaultScripts.svelte.d.ts +14 -0
  24. package/package/components/DefaultScriptsInner.svelte +75 -0
  25. package/package/components/DefaultScriptsInner.svelte.d.ts +14 -0
  26. package/package/components/Dev.svelte +59 -17
  27. package/package/components/DisplayResult.svelte +73 -67
  28. package/package/components/DurationMs.svelte +9 -8
  29. package/package/components/DurationMs.svelte.d.ts +1 -0
  30. package/package/components/Editor.svelte +23 -7
  31. package/package/components/FieldHeader.svelte +7 -7
  32. package/package/components/FlowBuilder.svelte +24 -13
  33. package/package/components/FlowBuilder.svelte.d.ts +0 -3
  34. package/package/components/FlowLoopIterationPreview.svelte +6 -5
  35. package/package/components/FlowMetadata.svelte +6 -2
  36. package/package/components/FlowPreviewContent.svelte +5 -5
  37. package/package/components/FolderEditor.svelte +20 -39
  38. package/package/components/GroupEditor.svelte +1 -1
  39. package/package/components/HighlightCode.svelte +7 -5
  40. package/package/components/IconedResourceType.svelte +5 -3
  41. package/package/components/IconedResourceType.svelte.d.ts +21 -7
  42. package/package/components/InputTransformForm.svelte +6 -1
  43. package/package/components/InstanceSettings.svelte +29 -17
  44. package/package/components/InstanceSettings.svelte.d.ts +3 -0
  45. package/package/components/InviteGlobalUser.svelte +1 -1
  46. package/package/components/JobArgs.svelte +20 -7
  47. package/package/components/JobStatus.svelte +8 -2
  48. package/package/components/LightweightArgInput.svelte +30 -14
  49. package/package/components/LightweightSchemaForm.svelte +1 -0
  50. package/package/components/LogViewer.svelte +21 -6
  51. package/package/components/ModulePreview.svelte +19 -11
  52. package/package/components/ModulePreview.svelte.d.ts +3 -2
  53. package/package/components/ObjectResourceInput.svelte +2 -0
  54. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  55. package/package/components/Password.svelte +5 -2
  56. package/package/components/Password.svelte.d.ts +1 -0
  57. package/package/components/Path.svelte +10 -12
  58. package/package/components/ResourcePicker.svelte +28 -9
  59. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  60. package/package/components/RunChart.svelte +1 -0
  61. package/package/components/RunForm.svelte +9 -17
  62. package/package/components/RunFormAdvancedPopup.svelte +11 -12
  63. package/package/components/S3FilePicker.svelte +1 -0
  64. package/package/components/ScheduleEditorInner.svelte +10 -9
  65. package/package/components/ScheduleEditorInner.svelte.d.ts +2 -2
  66. package/package/components/SchemaEditor.svelte +12 -1
  67. package/package/components/SchemaForm.svelte +1 -2
  68. package/package/components/SchemaModal.svelte +2 -2
  69. package/package/components/ScriptBuilder.svelte +152 -79
  70. package/package/components/ScriptBuilder.svelte.d.ts +1 -1
  71. package/package/components/ScriptEditor.svelte +8 -9
  72. package/package/components/ScriptSchedules.svelte +99 -0
  73. package/package/components/ScriptSchedules.svelte.d.ts +20 -0
  74. package/package/components/ShareModal.svelte +1 -0
  75. package/package/components/StringTypeNarrowing.svelte +9 -3
  76. package/package/components/SuperadminSettings.svelte +114 -10
  77. package/package/components/TestJobLoader.svelte +8 -0
  78. package/package/components/TestJobLoader.svelte.d.ts +1 -0
  79. package/package/components/TimeAgo.svelte +2 -2
  80. package/package/components/TimelineBar.svelte +5 -2
  81. package/package/components/Toggle.svelte +5 -2
  82. package/package/components/Toggle.svelte.d.ts +1 -0
  83. package/package/components/Tooltip.svelte +13 -2
  84. package/package/components/Tooltip.svelte.d.ts +1 -0
  85. package/package/components/Uptodate.svelte +12 -6
  86. package/package/components/UserSettings.svelte +87 -73
  87. package/package/components/WorkerTagPicker.svelte +4 -2
  88. package/package/components/WorkflowTimeline.svelte +106 -0
  89. package/package/components/WorkflowTimeline.svelte.d.ts +18 -0
  90. package/package/components/WorkspaceGroup.svelte +1 -0
  91. package/package/components/apps/components/buttons/AppButton.svelte +9 -19
  92. package/package/components/apps/components/display/AppCustomComponent.svelte +2 -4
  93. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +246 -94
  94. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte.d.ts +0 -3
  95. package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +17 -5
  96. package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte.d.ts +6 -2
  97. package/package/components/apps/components/display/dbtable/DeleteRow.svelte +6 -4
  98. package/package/components/apps/components/display/dbtable/DeleteRow.svelte.d.ts +3 -3
  99. package/package/components/apps/components/display/dbtable/InsertRow.svelte +55 -37
  100. package/package/components/apps/components/display/dbtable/InsertRow.svelte.d.ts +17 -1
  101. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +4 -3
  102. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte.d.ts +2 -2
  103. package/package/components/apps/components/display/dbtable/UpdateCell.svelte +5 -4
  104. package/package/components/apps/components/display/dbtable/UpdateCell.svelte.d.ts +3 -3
  105. package/package/components/apps/components/display/dbtable/queries/count.d.ts +4 -0
  106. package/package/components/apps/components/display/dbtable/queries/count.js +140 -0
  107. package/package/components/apps/components/display/dbtable/queries/delete.d.ts +3 -0
  108. package/package/components/apps/components/display/dbtable/queries/delete.js +68 -0
  109. package/package/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
  110. package/package/components/apps/components/display/dbtable/queries/insert.js +121 -0
  111. package/package/components/apps/components/display/dbtable/queries/select.d.ts +7 -0
  112. package/package/components/apps/components/display/dbtable/queries/select.js +196 -0
  113. package/package/components/apps/components/display/dbtable/queries/update.d.ts +3 -0
  114. package/package/components/apps/components/display/dbtable/queries/update.js +75 -0
  115. package/package/components/apps/components/display/dbtable/utils.d.ts +79 -0
  116. package/package/components/apps/components/display/dbtable/utils.js +284 -309
  117. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +39 -19
  118. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +0 -2
  119. package/package/components/apps/components/display/table/AppAggridTable.svelte +4 -1
  120. package/package/components/apps/components/display/table/AppTable.svelte +4 -0
  121. package/package/components/apps/components/display/table/AppTable.svelte.d.ts +2 -2
  122. package/package/components/apps/components/display/table/utils.js +42 -0
  123. package/package/components/apps/components/helpers/InputValue.svelte +10 -8
  124. package/package/components/apps/components/helpers/InputValue.svelte.d.ts +1 -0
  125. package/package/components/apps/components/helpers/RefreshButton.svelte +1 -1
  126. package/package/components/apps/components/helpers/ResolveConfig.svelte +2 -0
  127. package/package/components/apps/components/helpers/RunnableComponent.svelte +6 -2
  128. package/package/components/apps/components/helpers/eval.d.ts +2 -2
  129. package/package/components/apps/components/helpers/eval.js +33 -11
  130. package/package/components/apps/components/inputs/AppCheckbox.svelte +4 -0
  131. package/package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +1 -0
  132. package/package/components/apps/components/inputs/AppDateInput.svelte +2 -2
  133. package/package/components/apps/components/inputs/AppDateTimeInput.svelte +121 -0
  134. package/package/components/apps/components/inputs/AppDateTimeInput.svelte.d.ts +22 -0
  135. package/package/components/apps/components/inputs/AppSelect.svelte +5 -0
  136. package/package/components/apps/components/inputs/AppSelect.svelte.d.ts +1 -0
  137. package/package/components/apps/components/inputs/AppTimeInput.svelte +103 -0
  138. package/package/components/apps/components/inputs/AppTimeInput.svelte.d.ts +21 -0
  139. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +0 -1
  140. package/package/components/apps/components/layout/AppDecisionTree.svelte +12 -0
  141. package/package/components/apps/components/layout/AppStepper.svelte +4 -2
  142. package/package/components/apps/editor/AppEditor.svelte +19 -4
  143. package/package/components/apps/editor/AppEditorHeader.svelte +42 -14
  144. package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +2 -0
  145. package/package/components/apps/editor/AppTimeline.svelte +4 -4
  146. package/package/components/apps/editor/DecisionTreeDebug.svelte +1 -1
  147. package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
  148. package/package/components/apps/editor/GridEditorMenu.svelte +3 -3
  149. package/package/components/apps/editor/RecomputeAllComponents.svelte +1 -1
  150. package/package/components/apps/editor/SettingsPanel.svelte +2 -0
  151. package/package/components/apps/editor/TabsDebug.svelte +2 -2
  152. package/package/components/apps/editor/appUtils.js +8 -0
  153. package/package/components/apps/editor/component/Component.svelte +21 -0
  154. package/package/components/apps/editor/component/components.d.ts +168 -9
  155. package/package/components/apps/editor/component/components.js +203 -10
  156. package/package/components/apps/editor/component/sets.js +2 -0
  157. package/package/components/apps/editor/componentsPanel/ComponentList.svelte +3 -3
  158. package/package/components/apps/editor/componentsPanel/ThemeList.svelte +1 -0
  159. package/package/components/apps/editor/componentsPanel/ThemeList.svelte.d.ts +2 -0
  160. package/package/components/apps/editor/componentsPanel/ThemeRow.svelte +8 -4
  161. package/package/components/apps/editor/componentsPanel/componentControlUtils.js +2 -0
  162. package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
  163. package/package/components/apps/editor/contextPanel/DebugPanel.svelte +178 -0
  164. package/package/components/apps/editor/contextPanel/DebugPanel.svelte.d.ts +14 -0
  165. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +3 -1
  166. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +9 -18
  167. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +11 -16
  168. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +2 -2
  169. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptHiddenRunnable.svelte +2 -2
  170. package/package/components/apps/editor/inlineScriptsPanel/RunButton.svelte +4 -12
  171. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +27 -4
  172. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +3 -1
  173. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +68 -28
  174. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +1 -1
  175. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +57 -43
  176. package/package/components/apps/editor/settingsPanel/GridTab.svelte +15 -12
  177. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +9 -3
  178. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +4 -0
  179. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +8 -0
  180. package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +2 -0
  181. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +6 -0
  182. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte.d.ts +2 -0
  183. package/package/components/apps/editor/settingsPanel/Recompute.svelte +4 -5
  184. package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +3 -0
  185. package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +4 -2
  186. package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte +42 -0
  187. package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte.d.ts +19 -0
  188. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +24 -2
  189. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +2 -0
  190. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +25 -15
  191. package/package/components/apps/editor/settingsPanel/script/BackgroundScriptSettings.svelte +1 -1
  192. package/package/components/apps/editor/settingsPanel/script/ComponentScriptSettings.svelte +1 -1
  193. package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte +8 -1
  194. package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte.d.ts +1 -0
  195. package/package/components/apps/editor/settingsPanel/script/shared/ScriptTriggers.svelte +13 -0
  196. package/package/components/apps/inputType.d.ts +2 -2
  197. package/package/components/apps/svelte-select/lib/Select.svelte +2 -1
  198. package/package/components/apps/types.d.ts +5 -3
  199. package/package/components/build_workers.js +9 -13
  200. package/package/components/common/button/Button.svelte +78 -36
  201. package/package/components/common/button/Button.svelte.d.ts +7 -0
  202. package/package/components/common/button/model.d.ts +0 -1
  203. package/package/components/common/button/model.js +0 -8
  204. package/package/components/common/calendarPicker/CalendarPicker.svelte +11 -37
  205. package/package/components/common/confirmationModal/ConfirmationModal.svelte +11 -10
  206. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +5 -12
  207. package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +0 -3
  208. package/package/components/common/table/ScriptRow.svelte +28 -1
  209. package/package/components/common/tabs/Tab.svelte +6 -4
  210. package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
  211. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -2
  212. package/package/components/copilot/IteratorGen.svelte +10 -5
  213. package/package/components/copilot/MetadataGen.svelte +6 -1
  214. package/package/components/copilot/PredicateGen.svelte +3 -4
  215. package/package/components/copilot/ScriptFix.svelte +1 -1
  216. package/package/components/copilot/StepGen.svelte +2 -1
  217. package/package/components/copilot/StepGen.svelte.d.ts +1 -0
  218. package/package/components/copilot/StepInputGen.svelte +13 -7
  219. package/package/components/copilot/StepInputsGen.svelte +12 -7
  220. package/package/components/copilot/lib.d.ts +1 -1
  221. package/package/components/copilot/lib.js +2 -2
  222. package/package/components/details/Menu.svelte +11 -6
  223. package/package/components/details/Menu.svelte.d.ts +1 -3
  224. package/package/components/details/WebhooksPanel.svelte +1 -1
  225. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +11 -10
  226. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +11 -9
  227. package/package/components/flows/content/FlowInputs.svelte +84 -238
  228. package/package/components/flows/content/FlowLoop.svelte +25 -16
  229. package/package/components/flows/content/FlowModuleComponent.svelte +17 -2
  230. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  231. package/package/components/flows/content/FlowModuleWrapper.svelte +5 -0
  232. package/package/components/flows/content/FlowSchedules.svelte +75 -1
  233. package/package/components/flows/content/FlowSettings.svelte +5 -0
  234. package/package/components/flows/content/SuspendDrawer.svelte +1 -1
  235. package/package/components/flows/flowStateUtils.d.ts +1 -1
  236. package/package/components/flows/flowStateUtils.js +2 -2
  237. package/package/components/flows/idUtils.js +12 -1
  238. package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
  239. package/package/components/flows/map/InsertModuleButton.svelte +1 -3
  240. package/package/components/flows/map/MapItem.svelte +1 -1
  241. package/package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
  242. package/package/components/flows/scheduleUtils.d.ts +2 -1
  243. package/package/components/flows/scheduleUtils.js +2 -1
  244. package/package/components/home/ItemsList.svelte +10 -9
  245. package/package/components/icons/AsanaIcon.svelte +5 -0
  246. package/package/components/icons/AsanaIcon.svelte.d.ts +17 -0
  247. package/package/components/icons/BitbucketIcon.svelte +19 -0
  248. package/package/components/icons/BitbucketIcon.svelte.d.ts +17 -0
  249. package/package/components/icons/CACertificate.svelte +7 -0
  250. package/package/components/icons/CACertificate.svelte.d.ts +17 -0
  251. package/package/components/icons/CurrencyApiIcon.svelte +24 -0
  252. package/package/components/icons/CurrencyApiIcon.svelte.d.ts +17 -0
  253. package/package/components/icons/DynatraceIcon.svelte +26 -0
  254. package/package/components/icons/DynatraceIcon.svelte.d.ts +17 -0
  255. package/package/components/icons/EdgeDbIcon.svelte +25 -0
  256. package/package/components/icons/EdgeDbIcon.svelte.d.ts +17 -0
  257. package/package/components/icons/GitIcon.svelte +7 -0
  258. package/package/components/icons/GitIcon.svelte.d.ts +17 -0
  259. package/package/components/icons/GoogleCloudIcon.svelte +20 -0
  260. package/package/components/icons/GoogleCloudIcon.svelte.d.ts +17 -0
  261. package/package/components/icons/IpinfoIcon.svelte +8 -0
  262. package/package/components/icons/IpinfoIcon.svelte.d.ts +17 -0
  263. package/package/components/icons/MSTeamsIcon.svelte +5 -0
  264. package/package/components/icons/MSTeamsIcon.svelte.d.ts +17 -0
  265. package/package/components/icons/MailgunIcon.svelte +11 -0
  266. package/package/components/icons/MailgunIcon.svelte.d.ts +17 -0
  267. package/package/components/icons/PushoverIcon.svelte +8 -0
  268. package/package/components/icons/PushoverIcon.svelte.d.ts +17 -0
  269. package/package/components/icons/QuickbooksIcon.svelte +5 -0
  270. package/package/components/icons/QuickbooksIcon.svelte.d.ts +17 -0
  271. package/package/components/icons/ResendIcon.svelte +7 -0
  272. package/package/components/icons/ResendIcon.svelte.d.ts +17 -0
  273. package/package/components/icons/TrelloIcon.svelte +5 -0
  274. package/package/components/icons/TrelloIcon.svelte.d.ts +17 -0
  275. package/package/components/icons/TwilioIcon.svelte +11 -0
  276. package/package/components/icons/TwilioIcon.svelte.d.ts +17 -0
  277. package/package/components/icons/ZendeskIcon.svelte +11 -0
  278. package/package/components/icons/ZendeskIcon.svelte.d.ts +17 -0
  279. package/package/components/icons/index.d.ts +36 -1
  280. package/package/components/icons/index.js +37 -2
  281. package/package/components/instanceSettings.js +38 -1
  282. package/package/components/jobs/JobPreview.svelte +4 -1
  283. package/package/components/runs/JobLoader.svelte +6 -4
  284. package/package/components/runs/JobPreview.svelte +15 -1
  285. package/package/components/runs/ManuelDatePicker.svelte +1 -1
  286. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -3
  287. package/package/components/runs/RunRow.svelte +5 -19
  288. package/package/components/runs/RunsFilter.svelte +1 -1
  289. package/package/components/runs/RunsTable.svelte +1 -1
  290. package/package/components/scriptEditor/LogPanel.svelte +12 -0
  291. package/package/components/settings/PremiumInfo.svelte +92 -31
  292. package/package/components/settings/WorkspaceUserSettings.svelte +42 -6
  293. package/package/components/sidebar/changelogs.js +20 -0
  294. package/package/components/table/AutoDataTable.svelte +18 -4
  295. package/package/consts.d.ts +0 -3
  296. package/package/consts.js +0 -3
  297. package/package/enterpriseUtils.d.ts +1 -0
  298. package/package/enterpriseUtils.js +17 -0
  299. package/package/gen/core/OpenAPI.js +1 -1
  300. package/package/gen/index.d.ts +5 -2
  301. package/package/gen/models/LargeFileStorage.d.ts +3 -1
  302. package/package/gen/models/LargeFileStorage.js +2 -0
  303. package/package/gen/models/User.d.ts +0 -2
  304. package/package/gen/models/UserUsage.d.ts +4 -0
  305. package/package/gen/models/WorkflowStatus.d.ts +6 -0
  306. package/package/gen/models/WorkflowStatusRecord.d.ts +2 -0
  307. package/package/gen/models/WorkflowStatusRecord.js +5 -0
  308. package/package/gen/models/WorkflowTask.d.ts +4 -0
  309. package/package/gen/models/WorkflowTask.js +5 -0
  310. package/package/gen/models/WorkspaceDefaultScripts.d.ts +5 -0
  311. package/package/gen/models/WorkspaceDefaultScripts.js +5 -0
  312. package/package/gen/services/AdminService.d.ts +6 -9
  313. package/package/gen/services/AdminService.js +6 -7
  314. package/package/gen/services/FolderService.d.ts +3 -2
  315. package/package/gen/services/JobService.d.ts +27 -2
  316. package/package/gen/services/JobService.js +22 -2
  317. package/package/gen/services/SettingService.d.ts +11 -0
  318. package/package/gen/services/SettingService.js +13 -0
  319. package/package/gen/services/UserService.d.ts +14 -9
  320. package/package/gen/services/UserService.js +20 -7
  321. package/package/gen/services/WorkspaceService.d.ts +62 -0
  322. package/package/gen/services/WorkspaceService.js +76 -0
  323. package/package/infer.d.ts +20 -1
  324. package/package/infer.js +39 -19
  325. package/package/script_helpers.d.ts +7 -6
  326. package/package/script_helpers.js +24 -7
  327. package/package/scripts.d.ts +11 -0
  328. package/package/scripts.js +38 -1
  329. package/package/stores.d.ts +2 -1
  330. package/package/stores.js +2 -0
  331. package/package/utils.d.ts +1 -1
  332. package/package/utils.js +3 -3
  333. package/package.json +3 -4
  334. package/package/components/common/confirmationModal/model.d.ts +0 -9
  335. package/package/components/common/confirmationModal/model.js +0 -1
  336. package/package/gen/models/NewUser.d.ts +0 -5
  337. package/package/gen/models/Usage.d.ts +0 -3
  338. /package/package/gen/models/{NewUser.js → UserUsage.js} +0 -0
  339. /package/package/gen/models/{Usage.js → WorkflowStatus.js} +0 -0
@@ -1,9 +1,8 @@
1
- import type { ATABootstrapConfig } from './index';
2
- export declare const getNPMVersionsForModule: (config: ATABootstrapConfig, moduleName: string) => Promise<Error | {
1
+ export declare const getNPMVersionsForModule: (moduleName: string, resLimit: ResLimit) => Promise<Error | {
3
2
  tags: Record<string, string>;
4
3
  versions: string[];
5
4
  }>;
6
- export declare const getNPMVersionForModuleReference: (config: ATABootstrapConfig, moduleName: string, reference: string) => Promise<Error | {
5
+ export declare const getNPMVersionForModuleReference: (moduleName: string, reference: string, resLimit: ResLimit) => Promise<Error | {
7
6
  version: string | null;
8
7
  }>;
9
8
  export type NPMTreeMeta = {
@@ -15,7 +14,7 @@ export type NPMTreeMeta = {
15
14
  version: string;
16
15
  raw: string;
17
16
  };
18
- export declare const getFiletreeForModuleWithVersion: (config: ATABootstrapConfig, moduleName: string, version: string, raw: string) => Promise<Error | {
17
+ export declare const getFiletreeForModuleWithVersion: (moduleName: string, version: string, raw: string, resLimit: ResLimit) => Promise<Error | {
19
18
  moduleName: string;
20
19
  version: string;
21
20
  raw: string;
@@ -24,4 +23,8 @@ export declare const getFiletreeForModuleWithVersion: (config: ATABootstrapConfi
24
23
  name: string;
25
24
  }>;
26
25
  }>;
27
- export declare const getDTSFileForModuleWithVersion: (config: ATABootstrapConfig, moduleName: string, version: string, file: string) => Promise<string | Error>;
26
+ export declare const getDTSFileForModuleWithVersion: (moduleName: string, version: string, file: string) => Promise<string | Error>;
27
+ export interface ResLimit {
28
+ usage: number;
29
+ }
30
+ export declare function isOverlimit(resLimit: ResLimit): boolean;
@@ -1,17 +1,17 @@
1
1
  // https://github.com/jsdelivr/data.jsdelivr.com
2
- export const getNPMVersionsForModule = (config, moduleName) => {
2
+ export const getNPMVersionsForModule = (moduleName, resLimit) => {
3
3
  const url = `https://data.jsdelivr.com/v1/package/npm/${moduleName}`;
4
- return api(config, url, {
4
+ return api(url, resLimit, {
5
5
  cache: 'no-store'
6
6
  });
7
7
  };
8
- export const getNPMVersionForModuleReference = (config, moduleName, reference) => {
8
+ export const getNPMVersionForModuleReference = (moduleName, reference, resLimit) => {
9
9
  const url = `https://data.jsdelivr.com/v1/package/resolve/npm/${moduleName}@${reference}`;
10
- return api(config, url);
10
+ return api(url, resLimit);
11
11
  };
12
- export const getFiletreeForModuleWithVersion = async (config, moduleName, version, raw) => {
12
+ export const getFiletreeForModuleWithVersion = async (moduleName, version, raw, resLimit) => {
13
13
  const url = `https://data.jsdelivr.com/v1/package/npm/${moduleName}@${version}/flat`;
14
- const res = await api(config, url);
14
+ const res = await api(url, resLimit);
15
15
  if (res instanceof Error) {
16
16
  return res;
17
17
  }
@@ -24,7 +24,7 @@ export const getFiletreeForModuleWithVersion = async (config, moduleName, versio
24
24
  };
25
25
  }
26
26
  };
27
- export const getDTSFileForModuleWithVersion = async (config, moduleName, version, file) => {
27
+ export const getDTSFileForModuleWithVersion = async (moduleName, version, file) => {
28
28
  // file comes with a prefix /
29
29
  const url = `https://cdn.jsdelivr.net/npm/${moduleName}@${version}${file}`;
30
30
  const res = await fetch(url);
@@ -35,10 +35,21 @@ export const getDTSFileForModuleWithVersion = async (config, moduleName, version
35
35
  return new Error('OK');
36
36
  }
37
37
  };
38
- function api(config, url, init) {
38
+ export function isOverlimit(resLimit) {
39
+ return resLimit.usage > 5000000;
40
+ }
41
+ function api(url, resLimit, init) {
42
+ if (isOverlimit(resLimit)) {
43
+ console.warn(`Exceeded limit of types downloaded for the needs of the assistant fetching: ${url}, ${resLimit.usage}`);
44
+ return new Promise(() => new Error('Exceeded limit of 100MB of data downloaded.'));
45
+ }
39
46
  return fetch(url, init).then((res) => {
40
47
  if (res.ok) {
41
- return res.json().then((f) => f);
48
+ return res.text().then((text) => {
49
+ resLimit.usage += text.length;
50
+ console.log('resLimit', url, resLimit.usage);
51
+ return JSON.parse(text);
52
+ });
42
53
  }
43
54
  else {
44
55
  return new Error('OK');
@@ -68,5 +68,9 @@ export const mapModuleNameToModule = (moduleSpecifier) => {
68
68
  return moduleName;
69
69
  };
70
70
  export function isRelativePath(d) {
71
- return d.startsWith('./') || d.startsWith('../') || d.startsWith('/') || d.startsWith('.../');
71
+ return (d.startsWith('./') ||
72
+ d.startsWith('../') ||
73
+ d.startsWith('/') ||
74
+ d.startsWith('.../') ||
75
+ d.startsWith('/'));
72
76
  }
@@ -1,3 +1,4 @@
1
+ import { type ResLimit } from './apis';
1
2
  export interface ATABootstrapConfig {
2
3
  root: string;
3
4
  scriptPath?: string;
@@ -33,10 +34,9 @@ export interface ATABootstrapConfig {
33
34
  */
34
35
  export declare const setupTypeAcquisition: (config: ATABootstrapConfig) => (initialSourceFile: string) => Promise<void>;
35
36
  /** The bulk load of the work in getting the filetree based on how people think about npm names and versions */
36
- export declare const getFileTreeForModuleWithTag: (config: ATABootstrapConfig, moduleName: string, tag: string | undefined, raw: string) => Promise<{
37
- /** If you need a custom logger instead of the console global */
37
+ export declare const getFileTreeForModuleWithTag: (moduleName: string, tag: string | undefined, raw: string, resLimit: ResLimit) => Promise<{
38
38
  moduleName: string;
39
- version: string;
39
+ version: string; /** code to dependency parser */
40
40
  raw: string;
41
41
  default: string;
42
42
  files: {
@@ -1,4 +1,4 @@
1
- import { getDTSFileForModuleWithVersion, getFiletreeForModuleWithVersion, getNPMVersionForModuleReference, getNPMVersionsForModule } from './apis';
1
+ import { getDTSFileForModuleWithVersion, getFiletreeForModuleWithVersion, getNPMVersionForModuleReference, getNPMVersionsForModule, isOverlimit } from './apis';
2
2
  import { isRelativePath, mapModuleNameToModule } from './edgeCases';
3
3
  /**
4
4
  * The function which starts up type acquisition,
@@ -14,14 +14,31 @@ export const setupTypeAcquisition = (config) => {
14
14
  const fsMap = new Map();
15
15
  let estimatedToDownload = 0;
16
16
  let estimatedDownloaded = 0;
17
- return (initialSourceFile) => {
17
+ let resLimit = { usage: 0 };
18
+ return async (initialSourceFile) => {
18
19
  estimatedToDownload = 0;
19
20
  estimatedDownloaded = 0;
20
- return resolveDeps(initialSourceFile, 0).then((t) => {
21
- if (estimatedDownloaded > 0) {
22
- config.delegate.finished?.(fsMap);
21
+ let todo = [initialSourceFile];
22
+ let next = [];
23
+ let i = 0;
24
+ let nb = 0;
25
+ let time = new Date().getTime();
26
+ while (todo.length && nb < 200 && new Date().getTime() - time < 1000 * 15) {
27
+ const current = todo.shift();
28
+ nb += 1;
29
+ const deps = await resolveDeps(current, i, resLimit);
30
+ if (i <= 0) {
31
+ next.push(...deps);
23
32
  }
24
- });
33
+ if (todo.length === 0) {
34
+ i += 1;
35
+ todo = next;
36
+ next = [];
37
+ }
38
+ }
39
+ if (estimatedDownloaded > 0) {
40
+ config.delegate.finished?.(fsMap);
41
+ }
25
42
  };
26
43
  function getVersion(d) {
27
44
  if (d.lastIndexOf('@') > 0) {
@@ -34,10 +51,7 @@ export const setupTypeAcquisition = (config) => {
34
51
  }
35
52
  return 'latest';
36
53
  }
37
- async function resolveDeps(initialSourceFile, depth) {
38
- // if (depth > 2) {
39
- // return
40
- // }
54
+ async function resolveDeps(initialSourceFile, depth, resLimit) {
41
55
  let depsToGet = config
42
56
  .depsParser(initialSourceFile)
43
57
  .map((d) => {
@@ -49,36 +63,41 @@ export const setupTypeAcquisition = (config) => {
49
63
  };
50
64
  })
51
65
  .filter((f) => !moduleMap.has(f.raw));
52
- if (depsToGet.length === 0) {
53
- return;
54
- }
55
- // Make it so it won't get re-downloaded
56
- depsToGet.forEach((dep) => moduleMap.set(dep.raw, { state: 'loading' }));
57
66
  if (depth == 0) {
58
67
  const relativeDeps = depsToGet.filter((f) => isRelativePath(f.raw));
59
68
  relativeDeps.forEach(async (f) => {
60
69
  let path = f.raw.startsWith('/')
61
- ? ''
70
+ ? f.raw
62
71
  : '/' + config.scriptPath + (f.raw.startsWith('../') ? '/../' : '/.') + f.raw;
63
72
  let url = config.root + path;
73
+ console.log('fetching local file', url, f.raw);
64
74
  const res = await fetch(url);
65
75
  if (res.ok) {
66
76
  config.delegate.localFile?.(await res.text(), f.raw);
67
77
  }
68
78
  });
69
- depsToGet = depsToGet.filter((f) => !isRelativePath(f.raw));
70
79
  }
80
+ depsToGet.forEach((dep) => moduleMap.set(dep.raw, { state: 'loading' }));
81
+ depsToGet = depsToGet.filter((f) => !isRelativePath(f.raw));
82
+ if (depsToGet.length === 0) {
83
+ return [];
84
+ }
85
+ console.log('dependencies to fetch for type assistant: ', depsToGet.map((x) => x.raw));
86
+ // Make it so it won't get re-downloaded
71
87
  // Grab the module trees which gives us a list of files to download
72
- const trees = await Promise.all(depsToGet.map((f) => getFileTreeForModuleWithTag(config, f.module, f.version, f.raw)));
88
+ const trees = await Promise.all(depsToGet.map((f) => getFileTreeForModuleWithTag(f.module, f.version, f.raw, resLimit)));
73
89
  const treesOnly = trees.filter((t) => !('error' in t));
74
90
  // These are the modules which we can grab directly
75
91
  const hasDTS = treesOnly.filter((t) => t.files.find((f) => f.name.endsWith('.d.ts')));
76
92
  const dtsFilesFromNPM = hasDTS.map((t) => treeToDTSFiles(t, `/node_modules/${t.raw}`));
93
+ // console.log(dtsFilesFromNPM, 'dtsFilesFromNPM')
77
94
  // These are ones we need to look on DT for (which may not be there, who knows)
78
95
  const mightBeOnDT = treesOnly.filter((t) => !hasDTS.includes(t));
96
+ // console.log(mightBeOnDT, 'mightBeOnDT')
97
+ // return
79
98
  const dtTrees = await Promise.all(
80
99
  // TODO: Switch from 'latest' to the version from the original tree which is user-controlled
81
- mightBeOnDT.map((f) => getFileTreeForModuleWithTag(config, `@types/${getDTName(f.moduleName)}`, 'latest', `@types/${getDTName(f.raw)}`)));
100
+ mightBeOnDT.map((f) => getFileTreeForModuleWithTag(`@types/${getDTName(f.moduleName)}`, 'latest', `@types/${getDTName(f.raw)}`, resLimit)));
82
101
  const dtTreesOnly = dtTrees.filter((t) => !('error' in t));
83
102
  const dtsFilesFromDT = dtTreesOnly.map((t) => treeToDTSFiles(t, `/node_modules/@types/${getDTName(t.raw).replace('types__', '')}`));
84
103
  // Collect all the npm and DT DTS requests and flatten their arrays
@@ -89,7 +108,7 @@ export const setupTypeAcquisition = (config) => {
89
108
  }
90
109
  // Grab the package.jsons for each dependency
91
110
  for (const tree of treesOnly) {
92
- const pkgJSON = await getDTSFileForModuleWithVersion(config, tree.moduleName, tree.version, '/package.json');
111
+ const pkgJSON = await getDTSFileForModuleWithVersion(tree.moduleName, tree.version, '/package.json');
93
112
  let prefix = `/node_modules/${tree.raw}`;
94
113
  if (dtTreesOnly.includes(tree))
95
114
  prefix = `/node_modules/@types/${getDTName(tree.raw).replace('types__', '')}`;
@@ -103,8 +122,12 @@ export const setupTypeAcquisition = (config) => {
103
122
  }
104
123
  }
105
124
  // Grab all dts files
106
- await Promise.all(allDTSFiles.map(async (dts) => {
107
- const dtsCode = await getDTSFileForModuleWithVersion(config, dts.moduleName, dts.moduleVersion, dts.path);
125
+ return (await Promise.all(allDTSFiles.map(async (dts) => {
126
+ if (isOverlimit(resLimit)) {
127
+ console.warn('Exceeded limit of types downloaded for the needs of the assistant');
128
+ return;
129
+ }
130
+ const dtsCode = await getDTSFileForModuleWithVersion(dts.moduleName, dts.moduleVersion, dts.path);
108
131
  estimatedDownloaded++;
109
132
  if (dtsCode instanceof Error) {
110
133
  // TODO?
@@ -118,11 +141,11 @@ export const setupTypeAcquisition = (config) => {
118
141
  config.delegate.progress(estimatedDownloaded, estimatedToDownload);
119
142
  }
120
143
  if (dts.moduleName != 'bun-types') {
144
+ return dtsCode;
121
145
  // Recurse through deps
122
- await resolveDeps(dtsCode, depth + 1);
123
146
  }
124
147
  }
125
- }));
148
+ }))).filter((f) => f != undefined);
126
149
  }
127
150
  };
128
151
  function treeToDTSFiles(tree, vfsPrefix) {
@@ -140,14 +163,14 @@ function treeToDTSFiles(tree, vfsPrefix) {
140
163
  return dtsRefs;
141
164
  }
142
165
  /** The bulk load of the work in getting the filetree based on how people think about npm names and versions */
143
- export const getFileTreeForModuleWithTag = async (config, moduleName, tag, raw) => {
166
+ export const getFileTreeForModuleWithTag = async (moduleName, tag, raw, resLimit) => {
144
167
  let toDownload = tag || 'latest';
145
168
  // I think having at least 2 dots is a reasonable approx for being a semver and not a tag,
146
169
  // we can skip an API request, TBH this is probably rare
147
170
  if (toDownload.split('.').length < 2) {
148
171
  // The jsdelivr API needs a _version_ not a tag. So, we need to switch out
149
172
  // the tag to the version via an API request.
150
- const response = await getNPMVersionForModuleReference(config, moduleName, toDownload);
173
+ const response = await getNPMVersionForModuleReference(moduleName, toDownload, resLimit);
151
174
  if (response instanceof Error) {
152
175
  return {
153
176
  error: response,
@@ -156,7 +179,7 @@ export const getFileTreeForModuleWithTag = async (config, moduleName, tag, raw)
156
179
  }
157
180
  const neededVersion = response.version;
158
181
  if (!neededVersion) {
159
- const versions = await getNPMVersionsForModule(config, moduleName);
182
+ const versions = await getNPMVersionsForModule(moduleName, resLimit);
160
183
  if (versions instanceof Error) {
161
184
  return {
162
185
  error: response,
@@ -171,7 +194,7 @@ export const getFileTreeForModuleWithTag = async (config, moduleName, tag, raw)
171
194
  }
172
195
  toDownload = neededVersion;
173
196
  }
174
- const res = await getFiletreeForModuleWithVersion(config, moduleName, toDownload, raw);
197
+ const res = await getFiletreeForModuleWithVersion(moduleName, toDownload, raw, resLimit);
175
198
  if (res instanceof Error) {
176
199
  return {
177
200
  error: res,
@@ -35,6 +35,7 @@ export interface SchemaProperty {
35
35
  required?: string[];
36
36
  showExpr?: string;
37
37
  password?: boolean;
38
+ order?: string[];
38
39
  }
39
40
  export interface ModalSchemaProperty {
40
41
  selectedType?: string;
@@ -1,6 +1,6 @@
1
1
  <script>import { createEventDispatcher } from 'svelte';
2
2
  import { globalEmailInvite, superadmin, workspaceStore } from '../stores';
3
- import { UserService, WorkspaceService } from '../gen';
3
+ import { SettingService, UserService, WorkspaceService } from '../gen';
4
4
  import { Button, Popup } from './common';
5
5
  import { sendUserToast } from '../toast';
6
6
  import { isCloudHosted } from '../cloud';
@@ -18,12 +18,18 @@ function handleKeyUp(event) {
18
18
  addUser();
19
19
  }
20
20
  }
21
+ let automateUsernameCreation = false;
22
+ async function getAutomateUsernameCreationSetting() {
23
+ automateUsernameCreation =
24
+ (await SettingService.getGlobal({ key: 'automate_username_creation' })) ?? false;
25
+ }
26
+ getAutomateUsernameCreationSetting();
21
27
  async function addUser() {
22
28
  await WorkspaceService.addUser({
23
29
  workspace: $workspaceStore,
24
30
  requestBody: {
25
31
  email,
26
- username,
32
+ username: automateUsernameCreation ? undefined : username,
27
33
  is_admin: selected == 'admin',
28
34
  operator: selected == 'operator'
29
35
  }
@@ -32,6 +38,7 @@ async function addUser() {
32
38
  if (!(await UserService.existsEmail({ email }))) {
33
39
  let isSuperadmin = $superadmin;
34
40
  if (!isCloudHosted()) {
41
+ const emailCopy = email;
35
42
  sendUserToast(`User ${email} is not registered yet on the instance. ${!isSuperadmin
36
43
  ? `If not using SSO, ask an administrator to add ${email} to the instance`
37
44
  : ''}`, true, isSuperadmin
@@ -39,7 +46,7 @@ async function addUser() {
39
46
  {
40
47
  label: 'Add user to the instance',
41
48
  callback: () => {
42
- $globalEmailInvite = email;
49
+ $globalEmailInvite = emailCopy;
43
50
  goto('#superadmin-settings');
44
51
  }
45
52
  }
@@ -67,8 +74,10 @@ let selected = 'developer';
67
74
  <span class="text-xs mb-1 leading-6">Email</span>
68
75
  <input type="email mb-1" on:keyup={handleKeyUp} placeholder="email" bind:value={email} />
69
76
 
70
- <span class="text-xs mb-1 pt-2 leading-6">Username</span>
71
- <input type="text" on:keyup={handleKeyUp} placeholder="username" bind:value={username} />
77
+ {#if !automateUsernameCreation}
78
+ <span class="text-xs mb-1 pt-2 leading-6">Username</span>
79
+ <input type="text" on:keyup={handleKeyUp} placeholder="username" bind:value={username} />
80
+ {/if}
72
81
 
73
82
  <span class="text-xs mb-1 pt-2 leading-6">Role</span>
74
83
  <ToggleButtonGroup bind:selected class="mb-4">
@@ -105,7 +114,7 @@ let selected = 'developer';
105
114
  username = undefined
106
115
  })
107
116
  }}
108
- disabled={email === undefined || username === undefined}
117
+ disabled={email === undefined || (!automateUsernameCreation && username === undefined)}
109
118
  >
110
119
  Add
111
120
  </Button>
@@ -76,7 +76,7 @@ function parseConnectionString(close) {
76
76
  user,
77
77
  password: password || args?.password,
78
78
  host,
79
- port: port || args?.port,
79
+ port: (port ? Number(port) : undefined) || args?.port,
80
80
  dbname: dbname || args?.dbname,
81
81
  sslmode: sslmode || args?.sslmode
82
82
  }, null, 2);
@@ -20,7 +20,7 @@ function onCreate(newItem) {
20
20
  <div class="w-full flex-col">
21
21
  <div class="w-full">
22
22
  <AutoComplete
23
- items={[...(enum_ ?? []), ...customItems]}
23
+ items={[...(required ? [] : ['']), ...(enum_ ?? []), ...customItems]}
24
24
  bind:selectedItem={value}
25
25
  inputClassName={twMerge(
26
26
  'bg-surface-secondary flex',
@@ -4,7 +4,7 @@ declare const __propDef: {
4
4
  disabled: boolean;
5
5
  value: any;
6
6
  enum_: string[] | undefined;
7
- autofocus: boolean;
7
+ autofocus: boolean | null;
8
8
  defaultValue: string | undefined;
9
9
  valid: boolean;
10
10
  create: boolean;
@@ -25,8 +25,9 @@ async function getResource(path) {
25
25
  on:click={() => copyToClipboard(JSON.stringify(jsonViewerContent, null, 4))}
26
26
  color="light"
27
27
  size="xs"
28
+ startIcon={{ icon: ClipboardCopy }}
28
29
  >
29
- <div class="flex gap-2 items-center">Copy <ClipboardCopy /> </div>
30
+ Copy
30
31
  </Button>
31
32
  </svelte:fragment>
32
33
  {#if isString(jsonViewerContent)}
@@ -41,7 +41,7 @@ export let itemsType = undefined;
41
41
  export let displayHeader = true;
42
42
  export let properties = undefined;
43
43
  export let nestedRequired = undefined;
44
- export let autofocus = false;
44
+ export let autofocus = null;
45
45
  export let compact = false;
46
46
  export let password = false;
47
47
  export let pickForField = undefined;
@@ -74,7 +74,7 @@ function computeDefaultValue(nvalue, inputCat, defaultValue) {
74
74
  if (inputCat === 'string') {
75
75
  value = '';
76
76
  }
77
- else if (inputCat == 'enum') {
77
+ else if (inputCat == 'enum' && required) {
78
78
  value = enum_?.[0];
79
79
  }
80
80
  else if (inputCat == 'boolean') {
@@ -278,8 +278,8 @@ function changePosition(i, up) {
278
278
  {/if}
279
279
 
280
280
  {#if description}
281
- <div class="text-sm italic pb-1 text-secondary">
282
- {description}
281
+ <div class="text-xs italic pb-1 text-secondary">
282
+ <pre class="font-main">{description}</pre>
283
283
  </div>
284
284
  {/if}
285
285
  <div class="flex space-x-1">
@@ -448,7 +448,7 @@ function changePosition(i, up) {
448
448
  {:else if inputCat == 'resource-object' && resourceTypes == undefined}
449
449
  <span class="text-2xs text-tertiary">Loading resource types...</span>
450
450
  {:else if inputCat == 'resource-object' && (resourceTypes == undefined || (format.split('-').length > 1 && resourceTypes.includes(format.substring('resource-'.length))))}
451
- <ObjectResourceInput {disablePortal} {format} bind:value {showSchemaExplorer} />
451
+ <ObjectResourceInput selectFirst {disablePortal} {format} bind:value {showSchemaExplorer} />
452
452
  {:else if inputCat == 'resource-object' && format.split('-').length > 1 && format
453
453
  .replace('resource-', '')
454
454
  .replace('_', '')
@@ -541,7 +541,7 @@ function changePosition(i, up) {
541
541
  />
542
542
  </div>
543
543
  {:else if inputCat == 'date'}
544
- <DateTimeInput {autofocus} bind:value />
544
+ <DateTimeInput useDropdown {autofocus} bind:value />
545
545
  {:else if inputCat == 'sql' || inputCat == 'yaml'}
546
546
  <div class="border my-1 mb-4 w-full border-primary">
547
547
  <SimpleEditor
@@ -571,6 +571,7 @@ function changePosition(i, up) {
571
571
  </div>
572
572
  {:else if inputCat == 'resource-string'}
573
573
  <ResourcePicker
574
+ selectFirst
574
575
  {disablePortal}
575
576
  bind:value
576
577
  resourceType={format && format.split('-').length > 1
@@ -32,7 +32,7 @@ declare const __propDef: {
32
32
  [name: string]: SchemaProperty;
33
33
  } | undefined;
34
34
  nestedRequired?: string[] | undefined;
35
- autofocus?: boolean | undefined;
35
+ autofocus?: boolean | null | undefined;
36
36
  compact?: boolean | undefined;
37
37
  password?: boolean | undefined;
38
38
  pickForField?: string | undefined;
@@ -60,6 +60,7 @@ let selected = itemsType?.type != 'string'
60
60
  </div>
61
61
  <div class="flex flex-row mb-1 mt-2">
62
62
  <Button
63
+ color="light"
63
64
  variant="border"
64
65
  size="sm"
65
66
  on:click={() => {
@@ -73,6 +74,7 @@ let selected = itemsType?.type != 'string'
73
74
  <Plus size={14} />
74
75
  </Button>
75
76
  <Button
77
+ color="light"
76
78
  variant="border"
77
79
  size="sm"
78
80
  btnClasses="ml-2"
@@ -1,13 +1,16 @@
1
- <script>import WindmillIcon from './icons/WindmillIcon.svelte';
1
+ <script>import { setLicense } from '../enterpriseUtils';
2
+ import { enterpriseLicense } from '../stores';
3
+ import WindmillIcon from './icons/WindmillIcon.svelte';
2
4
  import LoginPageHeader from './LoginPageHeader.svelte';
3
5
  export let subtitle = undefined;
4
6
  export let title = 'Windmill';
5
7
  export let disableLogo = false;
8
+ setLicense();
6
9
  </script>
7
10
 
8
11
  <div class="center-center min-h-screen p-4 relative bg-surface-secondary">
9
12
  <div class="flex flex-col gap-2 items-center w-full">
10
- {#if !disableLogo}
13
+ {#if (!disableLogo && !$enterpriseLicense) || !$enterpriseLicense?.endsWith('_whitelabel')}
11
14
  <div class="hidden lg:block">
12
15
  <div>
13
16
  <WindmillIcon height="100px" width="100px" spin="slow" />
@@ -0,0 +1,123 @@
1
+ <script>import { SettingService, UserService } from '../gen';
2
+ import { Button, Popup } from './common';
3
+ import { sendUserToast } from '../toast';
4
+ import Alert from './common/alert/Alert.svelte';
5
+ import { autoPlacement } from '@floating-ui/core';
6
+ import { createEventDispatcher } from 'svelte';
7
+ export let email;
8
+ export let username;
9
+ export let isConflict = false;
10
+ let usernameInfo = undefined;
11
+ function handleKeyUp(event) {
12
+ const key = event.key;
13
+ if (key === 'Enter') {
14
+ event.preventDefault();
15
+ renameUser();
16
+ }
17
+ }
18
+ async function getUsernameInfo() {
19
+ usernameInfo = await UserService.globalUsernameInfo({
20
+ email
21
+ });
22
+ if (isConflict) {
23
+ username = usernameInfo.username;
24
+ }
25
+ }
26
+ getUsernameInfo();
27
+ const dispatch = createEventDispatcher();
28
+ async function renameUser() {
29
+ const automateUsernameCreation = (await SettingService.getGlobal({ key: 'automate_username_creation' })) ?? false;
30
+ if (!automateUsernameCreation) {
31
+ sendUserToast('Modifying the username is only possible when the creation of usernames is automated and defined at instance level..');
32
+ return;
33
+ }
34
+ await UserService.globalUserRename({
35
+ email,
36
+ requestBody: {
37
+ new_username: username
38
+ }
39
+ });
40
+ sendUserToast(`Rename user ${email} to ${username}`);
41
+ dispatch('renamed');
42
+ }
43
+ </script>
44
+
45
+ <Popup
46
+ floatingConfig={{
47
+ middleware: [
48
+ autoPlacement({
49
+ allowedPlacements: ['bottom-end', 'top-end']
50
+ })
51
+ ]
52
+ }}
53
+ containerClasses="border rounded-lg shadow-lg p-4 bg-surface"
54
+ let:close
55
+ >
56
+ <svelte:fragment slot="button">
57
+ <Button color={isConflict ? 'red' : 'light'} size="xs" spacingSize="xs2" nonCaptureEvent={true}
58
+ >{isConflict ? 'Fix username conflict' : 'Change username'}</Button
59
+ >
60
+ </svelte:fragment>
61
+ <div class="flex flex-col max-w-2xl p-2">
62
+ <span class="text-sm mb-2 leading-6 font-semibold"
63
+ >{isConflict ? 'Fix username conflict' : 'Change username'}</span
64
+ >
65
+
66
+ <span class="text-xs mb-1 leading-6"
67
+ >{isConflict ? 'Auto-generated instance username' : 'New username'}</span
68
+ >
69
+ <input
70
+ type="text"
71
+ class="mb-4"
72
+ on:keyup={handleKeyUp}
73
+ bind:value={username}
74
+ disabled={isConflict}
75
+ />
76
+
77
+ {#if isConflict}
78
+ <Alert title="Username conflict" class="mb-4">
79
+ Users are required to have an instance-wide username that is shared across all workspaces.
80
+ However, this user has different usernames in different workspaces.
81
+
82
+ {#if usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
83
+ <br />
84
+ <br />
85
+ Workspaces requiring username modification: {usernameInfo.workspace_usernames
86
+ .filter((w) => w.username !== username)
87
+ .map((wu) => `${wu.workspace_id} (${wu.username})`)
88
+ .join(', ')}
89
+ {/if}
90
+ </Alert>
91
+ {/if}
92
+
93
+ {#if !isConflict && usernameInfo?.workspace_usernames && usernameInfo.workspace_usernames.filter((w) => w.username !== username).length > 0}
94
+ <Alert title="Concerned workspaces" class="mb-4">
95
+ {usernameInfo.workspace_usernames
96
+ .filter((w) => w.username !== username)
97
+ .map((wu) => `${wu.workspace_id}`)
98
+ .join(', ')}
99
+ </Alert>
100
+ {/if}
101
+
102
+ <Alert type="warning" title="Manual action required" class="mb-4">
103
+ This operation does not handle references in scripts, workflows and applications to scripts in
104
+ the workspace, and references in resources to variables. You will have to handle those
105
+ manually.
106
+ <br />
107
+ </Alert>
108
+
109
+ <Button
110
+ variant="contained"
111
+ color="blue"
112
+ size="xs"
113
+ on:click={() => {
114
+ renameUser().then(() => {
115
+ close(null)
116
+ })
117
+ }}
118
+ disabled={email === undefined || !username}
119
+ >
120
+ Confirm username change
121
+ </Button>
122
+ </div>
123
+ </Popup>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ email: string;
5
+ username: string;
6
+ isConflict?: boolean | undefined;
7
+ };
8
+ events: {
9
+ renamed: CustomEvent<any>;
10
+ } & {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ };
15
+ export type ChangeInstanceUsernameProps = typeof __propDef.props;
16
+ export type ChangeInstanceUsernameEvents = typeof __propDef.events;
17
+ export type ChangeInstanceUsernameSlots = typeof __propDef.slots;
18
+ export default class ChangeInstanceUsername extends SvelteComponent<ChangeInstanceUsernameProps, ChangeInstanceUsernameEvents, ChangeInstanceUsernameSlots> {
19
+ }
20
+ export {};