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.
- package/package/ata/apis.d.ts +8 -5
- package/package/ata/apis.js +20 -9
- package/package/ata/edgeCases.js +5 -1
- package/package/ata/index.d.ts +3 -3
- package/package/ata/index.js +51 -28
- package/package/common.d.ts +1 -0
- package/package/components/AddUser.svelte +15 -6
- package/package/components/ApiConnectForm.svelte +1 -1
- package/package/components/ArgEnum.svelte +1 -1
- package/package/components/ArgEnum.svelte.d.ts +1 -1
- package/package/components/ArgInfo.svelte +2 -1
- package/package/components/ArgInput.svelte +7 -6
- package/package/components/ArgInput.svelte.d.ts +1 -1
- package/package/components/ArrayTypeNarrowing.svelte +2 -0
- package/package/components/CenteredModal.svelte +5 -2
- package/package/components/ChangeInstanceUsername.svelte +123 -0
- package/package/components/ChangeInstanceUsername.svelte.d.ts +20 -0
- package/package/components/ContentSearch.svelte +3 -4
- package/package/components/ContentSearch.svelte.d.ts +0 -3
- package/package/components/DateTimeInput.svelte +73 -9
- package/package/components/DateTimeInput.svelte.d.ts +8 -1
- package/package/components/DefaultScripts.svelte +26 -0
- package/package/components/DefaultScripts.svelte.d.ts +14 -0
- package/package/components/DefaultScriptsInner.svelte +75 -0
- package/package/components/DefaultScriptsInner.svelte.d.ts +14 -0
- package/package/components/Dev.svelte +59 -17
- package/package/components/DisplayResult.svelte +73 -67
- package/package/components/DurationMs.svelte +9 -8
- package/package/components/DurationMs.svelte.d.ts +1 -0
- package/package/components/Editor.svelte +23 -7
- package/package/components/FieldHeader.svelte +7 -7
- package/package/components/FlowBuilder.svelte +24 -13
- package/package/components/FlowBuilder.svelte.d.ts +0 -3
- package/package/components/FlowLoopIterationPreview.svelte +6 -5
- package/package/components/FlowMetadata.svelte +6 -2
- package/package/components/FlowPreviewContent.svelte +5 -5
- package/package/components/FolderEditor.svelte +20 -39
- package/package/components/GroupEditor.svelte +1 -1
- package/package/components/HighlightCode.svelte +7 -5
- package/package/components/IconedResourceType.svelte +5 -3
- package/package/components/IconedResourceType.svelte.d.ts +21 -7
- package/package/components/InputTransformForm.svelte +6 -1
- package/package/components/InstanceSettings.svelte +29 -17
- package/package/components/InstanceSettings.svelte.d.ts +3 -0
- package/package/components/InviteGlobalUser.svelte +1 -1
- package/package/components/JobArgs.svelte +20 -7
- package/package/components/JobStatus.svelte +8 -2
- package/package/components/LightweightArgInput.svelte +30 -14
- package/package/components/LightweightSchemaForm.svelte +1 -0
- package/package/components/LogViewer.svelte +21 -6
- package/package/components/ModulePreview.svelte +19 -11
- package/package/components/ModulePreview.svelte.d.ts +3 -2
- package/package/components/ObjectResourceInput.svelte +2 -0
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/Password.svelte +5 -2
- package/package/components/Password.svelte.d.ts +1 -0
- package/package/components/Path.svelte +10 -12
- package/package/components/ResourcePicker.svelte +28 -9
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/RunChart.svelte +1 -0
- package/package/components/RunForm.svelte +9 -17
- package/package/components/RunFormAdvancedPopup.svelte +11 -12
- package/package/components/S3FilePicker.svelte +1 -0
- package/package/components/ScheduleEditorInner.svelte +10 -9
- package/package/components/ScheduleEditorInner.svelte.d.ts +2 -2
- package/package/components/SchemaEditor.svelte +12 -1
- package/package/components/SchemaForm.svelte +1 -2
- package/package/components/SchemaModal.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +152 -79
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte +8 -9
- package/package/components/ScriptSchedules.svelte +99 -0
- package/package/components/ScriptSchedules.svelte.d.ts +20 -0
- package/package/components/ShareModal.svelte +1 -0
- package/package/components/StringTypeNarrowing.svelte +9 -3
- package/package/components/SuperadminSettings.svelte +114 -10
- package/package/components/TestJobLoader.svelte +8 -0
- package/package/components/TestJobLoader.svelte.d.ts +1 -0
- package/package/components/TimeAgo.svelte +2 -2
- package/package/components/TimelineBar.svelte +5 -2
- package/package/components/Toggle.svelte +5 -2
- package/package/components/Toggle.svelte.d.ts +1 -0
- package/package/components/Tooltip.svelte +13 -2
- package/package/components/Tooltip.svelte.d.ts +1 -0
- package/package/components/Uptodate.svelte +12 -6
- package/package/components/UserSettings.svelte +87 -73
- package/package/components/WorkerTagPicker.svelte +4 -2
- package/package/components/WorkflowTimeline.svelte +106 -0
- package/package/components/WorkflowTimeline.svelte.d.ts +18 -0
- package/package/components/WorkspaceGroup.svelte +1 -0
- package/package/components/apps/components/buttons/AppButton.svelte +9 -19
- package/package/components/apps/components/display/AppCustomComponent.svelte +2 -4
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +246 -94
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte.d.ts +0 -3
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +17 -5
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte.d.ts +6 -2
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +6 -4
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte.d.ts +3 -3
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +55 -37
- package/package/components/apps/components/display/dbtable/InsertRow.svelte.d.ts +17 -1
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +4 -3
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte.d.ts +2 -2
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +5 -4
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte.d.ts +3 -3
- package/package/components/apps/components/display/dbtable/queries/count.d.ts +4 -0
- package/package/components/apps/components/display/dbtable/queries/count.js +140 -0
- package/package/components/apps/components/display/dbtable/queries/delete.d.ts +3 -0
- package/package/components/apps/components/display/dbtable/queries/delete.js +68 -0
- package/package/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
- package/package/components/apps/components/display/dbtable/queries/insert.js +121 -0
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +7 -0
- package/package/components/apps/components/display/dbtable/queries/select.js +196 -0
- package/package/components/apps/components/display/dbtable/queries/update.d.ts +3 -0
- package/package/components/apps/components/display/dbtable/queries/update.js +75 -0
- package/package/components/apps/components/display/dbtable/utils.d.ts +79 -0
- package/package/components/apps/components/display/dbtable/utils.js +284 -309
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +39 -19
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +0 -2
- package/package/components/apps/components/display/table/AppAggridTable.svelte +4 -1
- package/package/components/apps/components/display/table/AppTable.svelte +4 -0
- package/package/components/apps/components/display/table/AppTable.svelte.d.ts +2 -2
- package/package/components/apps/components/display/table/utils.js +42 -0
- package/package/components/apps/components/helpers/InputValue.svelte +10 -8
- package/package/components/apps/components/helpers/InputValue.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RefreshButton.svelte +1 -1
- package/package/components/apps/components/helpers/ResolveConfig.svelte +2 -0
- package/package/components/apps/components/helpers/RunnableComponent.svelte +6 -2
- package/package/components/apps/components/helpers/eval.d.ts +2 -2
- package/package/components/apps/components/helpers/eval.js +33 -11
- package/package/components/apps/components/inputs/AppCheckbox.svelte +4 -0
- package/package/components/apps/components/inputs/AppCheckbox.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppDateInput.svelte +2 -2
- package/package/components/apps/components/inputs/AppDateTimeInput.svelte +121 -0
- package/package/components/apps/components/inputs/AppDateTimeInput.svelte.d.ts +22 -0
- package/package/components/apps/components/inputs/AppSelect.svelte +5 -0
- package/package/components/apps/components/inputs/AppSelect.svelte.d.ts +1 -0
- package/package/components/apps/components/inputs/AppTimeInput.svelte +103 -0
- package/package/components/apps/components/inputs/AppTimeInput.svelte.d.ts +21 -0
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +0 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +12 -0
- package/package/components/apps/components/layout/AppStepper.svelte +4 -2
- package/package/components/apps/editor/AppEditor.svelte +19 -4
- package/package/components/apps/editor/AppEditorHeader.svelte +42 -14
- package/package/components/apps/editor/AppEditorHeader.svelte.d.ts +2 -0
- package/package/components/apps/editor/AppTimeline.svelte +4 -4
- package/package/components/apps/editor/DecisionTreeDebug.svelte +1 -1
- package/package/components/apps/editor/DeploymentHistory.svelte +1 -1
- package/package/components/apps/editor/GridEditorMenu.svelte +3 -3
- package/package/components/apps/editor/RecomputeAllComponents.svelte +1 -1
- package/package/components/apps/editor/SettingsPanel.svelte +2 -0
- package/package/components/apps/editor/TabsDebug.svelte +2 -2
- package/package/components/apps/editor/appUtils.js +8 -0
- package/package/components/apps/editor/component/Component.svelte +21 -0
- package/package/components/apps/editor/component/components.d.ts +168 -9
- package/package/components/apps/editor/component/components.js +203 -10
- package/package/components/apps/editor/component/sets.js +2 -0
- package/package/components/apps/editor/componentsPanel/ComponentList.svelte +3 -3
- package/package/components/apps/editor/componentsPanel/ThemeList.svelte +1 -0
- package/package/components/apps/editor/componentsPanel/ThemeList.svelte.d.ts +2 -0
- package/package/components/apps/editor/componentsPanel/ThemeRow.svelte +8 -4
- package/package/components/apps/editor/componentsPanel/componentControlUtils.js +2 -0
- package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +6 -0
- package/package/components/apps/editor/contextPanel/DebugPanel.svelte +178 -0
- package/package/components/apps/editor/contextPanel/DebugPanel.svelte.d.ts +14 -0
- package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +3 -1
- package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +9 -18
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +11 -16
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptHiddenRunnable.svelte +2 -2
- package/package/components/apps/editor/inlineScriptsPanel/RunButton.svelte +4 -12
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +27 -4
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte.d.ts +3 -1
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +68 -28
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +57 -43
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +15 -12
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +9 -3
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +4 -0
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +8 -0
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +2 -0
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +6 -0
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte.d.ts +2 -0
- package/package/components/apps/editor/settingsPanel/Recompute.svelte +4 -5
- package/package/components/apps/editor/settingsPanel/Recompute.svelte.d.ts +3 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/ColorInput.svelte +4 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte +42 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte.d.ts +19 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +24 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +2 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +25 -15
- package/package/components/apps/editor/settingsPanel/script/BackgroundScriptSettings.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/script/ComponentScriptSettings.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte +8 -1
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptTriggers.svelte +13 -0
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/apps/svelte-select/lib/Select.svelte +2 -1
- package/package/components/apps/types.d.ts +5 -3
- package/package/components/build_workers.js +9 -13
- package/package/components/common/button/Button.svelte +78 -36
- package/package/components/common/button/Button.svelte.d.ts +7 -0
- package/package/components/common/button/model.d.ts +0 -1
- package/package/components/common/button/model.js +0 -8
- package/package/components/common/calendarPicker/CalendarPicker.svelte +11 -37
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +11 -10
- package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte +5 -12
- package/package/components/common/confirmationModal/UnsavedConfirmationModal.svelte.d.ts +0 -3
- package/package/components/common/table/ScriptRow.svelte +28 -1
- package/package/components/common/tabs/Tab.svelte +6 -4
- package/package/components/common/tabs/Tab.svelte.d.ts +1 -0
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +4 -2
- package/package/components/copilot/IteratorGen.svelte +10 -5
- package/package/components/copilot/MetadataGen.svelte +6 -1
- package/package/components/copilot/PredicateGen.svelte +3 -4
- package/package/components/copilot/ScriptFix.svelte +1 -1
- package/package/components/copilot/StepGen.svelte +2 -1
- package/package/components/copilot/StepGen.svelte.d.ts +1 -0
- package/package/components/copilot/StepInputGen.svelte +13 -7
- package/package/components/copilot/StepInputsGen.svelte +12 -7
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/copilot/lib.js +2 -2
- package/package/components/details/Menu.svelte +11 -6
- package/package/components/details/Menu.svelte.d.ts +1 -3
- package/package/components/details/WebhooksPanel.svelte +1 -1
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +11 -10
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +11 -9
- package/package/components/flows/content/FlowInputs.svelte +84 -238
- package/package/components/flows/content/FlowLoop.svelte +25 -16
- package/package/components/flows/content/FlowModuleComponent.svelte +17 -2
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleWrapper.svelte +5 -0
- package/package/components/flows/content/FlowSchedules.svelte +75 -1
- package/package/components/flows/content/FlowSettings.svelte +5 -0
- package/package/components/flows/content/SuspendDrawer.svelte +1 -1
- package/package/components/flows/flowStateUtils.d.ts +1 -1
- package/package/components/flows/flowStateUtils.js +2 -2
- package/package/components/flows/idUtils.js +12 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
- package/package/components/flows/map/InsertModuleButton.svelte +1 -3
- package/package/components/flows/map/MapItem.svelte +1 -1
- package/package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/package/components/flows/scheduleUtils.d.ts +2 -1
- package/package/components/flows/scheduleUtils.js +2 -1
- package/package/components/home/ItemsList.svelte +10 -9
- package/package/components/icons/AsanaIcon.svelte +5 -0
- package/package/components/icons/AsanaIcon.svelte.d.ts +17 -0
- package/package/components/icons/BitbucketIcon.svelte +19 -0
- package/package/components/icons/BitbucketIcon.svelte.d.ts +17 -0
- package/package/components/icons/CACertificate.svelte +7 -0
- package/package/components/icons/CACertificate.svelte.d.ts +17 -0
- package/package/components/icons/CurrencyApiIcon.svelte +24 -0
- package/package/components/icons/CurrencyApiIcon.svelte.d.ts +17 -0
- package/package/components/icons/DynatraceIcon.svelte +26 -0
- package/package/components/icons/DynatraceIcon.svelte.d.ts +17 -0
- package/package/components/icons/EdgeDbIcon.svelte +25 -0
- package/package/components/icons/EdgeDbIcon.svelte.d.ts +17 -0
- package/package/components/icons/GitIcon.svelte +7 -0
- package/package/components/icons/GitIcon.svelte.d.ts +17 -0
- package/package/components/icons/GoogleCloudIcon.svelte +20 -0
- package/package/components/icons/GoogleCloudIcon.svelte.d.ts +17 -0
- package/package/components/icons/IpinfoIcon.svelte +8 -0
- package/package/components/icons/IpinfoIcon.svelte.d.ts +17 -0
- package/package/components/icons/MSTeamsIcon.svelte +5 -0
- package/package/components/icons/MSTeamsIcon.svelte.d.ts +17 -0
- package/package/components/icons/MailgunIcon.svelte +11 -0
- package/package/components/icons/MailgunIcon.svelte.d.ts +17 -0
- package/package/components/icons/PushoverIcon.svelte +8 -0
- package/package/components/icons/PushoverIcon.svelte.d.ts +17 -0
- package/package/components/icons/QuickbooksIcon.svelte +5 -0
- package/package/components/icons/QuickbooksIcon.svelte.d.ts +17 -0
- package/package/components/icons/ResendIcon.svelte +7 -0
- package/package/components/icons/ResendIcon.svelte.d.ts +17 -0
- package/package/components/icons/TrelloIcon.svelte +5 -0
- package/package/components/icons/TrelloIcon.svelte.d.ts +17 -0
- package/package/components/icons/TwilioIcon.svelte +11 -0
- package/package/components/icons/TwilioIcon.svelte.d.ts +17 -0
- package/package/components/icons/ZendeskIcon.svelte +11 -0
- package/package/components/icons/ZendeskIcon.svelte.d.ts +17 -0
- package/package/components/icons/index.d.ts +36 -1
- package/package/components/icons/index.js +37 -2
- package/package/components/instanceSettings.js +38 -1
- package/package/components/jobs/JobPreview.svelte +4 -1
- package/package/components/runs/JobLoader.svelte +6 -4
- package/package/components/runs/JobPreview.svelte +15 -1
- package/package/components/runs/ManuelDatePicker.svelte +1 -1
- package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -3
- package/package/components/runs/RunRow.svelte +5 -19
- package/package/components/runs/RunsFilter.svelte +1 -1
- package/package/components/runs/RunsTable.svelte +1 -1
- package/package/components/scriptEditor/LogPanel.svelte +12 -0
- package/package/components/settings/PremiumInfo.svelte +92 -31
- package/package/components/settings/WorkspaceUserSettings.svelte +42 -6
- package/package/components/sidebar/changelogs.js +20 -0
- package/package/components/table/AutoDataTable.svelte +18 -4
- package/package/consts.d.ts +0 -3
- package/package/consts.js +0 -3
- package/package/enterpriseUtils.d.ts +1 -0
- package/package/enterpriseUtils.js +17 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/index.d.ts +5 -2
- package/package/gen/models/LargeFileStorage.d.ts +3 -1
- package/package/gen/models/LargeFileStorage.js +2 -0
- package/package/gen/models/User.d.ts +0 -2
- package/package/gen/models/UserUsage.d.ts +4 -0
- package/package/gen/models/WorkflowStatus.d.ts +6 -0
- package/package/gen/models/WorkflowStatusRecord.d.ts +2 -0
- package/package/gen/models/WorkflowStatusRecord.js +5 -0
- package/package/gen/models/WorkflowTask.d.ts +4 -0
- package/package/gen/models/WorkflowTask.js +5 -0
- package/package/gen/models/WorkspaceDefaultScripts.d.ts +5 -0
- package/package/gen/models/WorkspaceDefaultScripts.js +5 -0
- package/package/gen/services/AdminService.d.ts +6 -9
- package/package/gen/services/AdminService.js +6 -7
- package/package/gen/services/FolderService.d.ts +3 -2
- package/package/gen/services/JobService.d.ts +27 -2
- package/package/gen/services/JobService.js +22 -2
- package/package/gen/services/SettingService.d.ts +11 -0
- package/package/gen/services/SettingService.js +13 -0
- package/package/gen/services/UserService.d.ts +14 -9
- package/package/gen/services/UserService.js +20 -7
- package/package/gen/services/WorkspaceService.d.ts +62 -0
- package/package/gen/services/WorkspaceService.js +76 -0
- package/package/infer.d.ts +20 -1
- package/package/infer.js +39 -19
- package/package/script_helpers.d.ts +7 -6
- package/package/script_helpers.js +24 -7
- package/package/scripts.d.ts +11 -0
- package/package/scripts.js +38 -1
- package/package/stores.d.ts +2 -1
- package/package/stores.js +2 -0
- package/package/utils.d.ts +1 -1
- package/package/utils.js +3 -3
- package/package.json +3 -4
- package/package/components/common/confirmationModal/model.d.ts +0 -9
- package/package/components/common/confirmationModal/model.js +0 -1
- package/package/gen/models/NewUser.d.ts +0 -5
- package/package/gen/models/Usage.d.ts +0 -3
- /package/package/gen/models/{NewUser.js → UserUsage.js} +0 -0
- /package/package/gen/models/{Usage.js → WorkflowStatus.js} +0 -0
package/package/ata/apis.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
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: (
|
|
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: (
|
|
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: (
|
|
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;
|
package/package/ata/apis.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// https://github.com/jsdelivr/data.jsdelivr.com
|
|
2
|
-
export const getNPMVersionsForModule = (
|
|
2
|
+
export const getNPMVersionsForModule = (moduleName, resLimit) => {
|
|
3
3
|
const url = `https://data.jsdelivr.com/v1/package/npm/${moduleName}`;
|
|
4
|
-
return api(
|
|
4
|
+
return api(url, resLimit, {
|
|
5
5
|
cache: 'no-store'
|
|
6
6
|
});
|
|
7
7
|
};
|
|
8
|
-
export const getNPMVersionForModuleReference = (
|
|
8
|
+
export const getNPMVersionForModuleReference = (moduleName, reference, resLimit) => {
|
|
9
9
|
const url = `https://data.jsdelivr.com/v1/package/resolve/npm/${moduleName}@${reference}`;
|
|
10
|
-
return api(
|
|
10
|
+
return api(url, resLimit);
|
|
11
11
|
};
|
|
12
|
-
export const getFiletreeForModuleWithVersion = async (
|
|
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(
|
|
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 (
|
|
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
|
|
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.
|
|
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');
|
package/package/ata/edgeCases.js
CHANGED
|
@@ -68,5 +68,9 @@ export const mapModuleNameToModule = (moduleSpecifier) => {
|
|
|
68
68
|
return moduleName;
|
|
69
69
|
};
|
|
70
70
|
export function isRelativePath(d) {
|
|
71
|
-
return d.startsWith('./') ||
|
|
71
|
+
return (d.startsWith('./') ||
|
|
72
|
+
d.startsWith('../') ||
|
|
73
|
+
d.startsWith('/') ||
|
|
74
|
+
d.startsWith('.../') ||
|
|
75
|
+
d.startsWith('/'));
|
|
72
76
|
}
|
package/package/ata/index.d.ts
CHANGED
|
@@ -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: (
|
|
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: {
|
package/package/ata/index.js
CHANGED
|
@@ -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
|
-
|
|
17
|
+
let resLimit = { usage: 0 };
|
|
18
|
+
return async (initialSourceFile) => {
|
|
18
19
|
estimatedToDownload = 0;
|
|
19
20
|
estimatedDownloaded = 0;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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 (
|
|
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(
|
|
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(
|
|
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(
|
|
197
|
+
const res = await getFiletreeForModuleWithVersion(moduleName, toDownload, raw, resLimit);
|
|
175
198
|
if (res instanceof Error) {
|
|
176
199
|
return {
|
|
177
200
|
error: res,
|
package/package/common.d.ts
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
71
|
-
|
|
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',
|
|
@@ -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
|
-
|
|
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 =
|
|
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-
|
|
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
|
|
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 {};
|