windmill-components 1.122.0 → 1.138.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/assets/app.css +8 -0
- package/package/common.d.ts +1 -0
- package/package/common.js +8 -0
- package/package/components/AddUser.svelte +27 -5
- package/package/components/ApiConnectForm.svelte +14 -39
- package/package/components/AppConnect.svelte +25 -9
- package/package/components/ArgEnum.svelte +1 -0
- package/package/components/ArgInfo.svelte +2 -2
- package/package/components/ArgInput.svelte +16 -13
- package/package/components/ArgInput.svelte.d.ts +1 -0
- package/package/components/ArrayTypeNarrowing.svelte +1 -1
- package/package/components/Badge.svelte +1 -1
- package/package/components/CenteredModal.svelte +7 -13
- package/package/components/ChevronButton.svelte +1 -1
- package/package/components/CliHelpBox.svelte +4 -25
- package/package/components/CollapseLink.svelte +3 -2
- package/package/components/CollapseLink.svelte.d.ts +1 -0
- package/package/components/CronInput.svelte +5 -5
- package/package/components/DBSchemaExplorer.svelte +160 -0
- package/package/components/DBSchemaExplorer.svelte.d.ts +17 -0
- package/package/components/DarkModeObserver.svelte +18 -0
- package/package/components/DarkModeObserver.svelte.d.ts +16 -0
- package/package/components/DeployWorkspace.svelte +1 -1
- package/package/components/DiffDrawer.svelte +3 -1
- package/package/components/DiffEditor.svelte +69 -0
- package/package/components/DiffEditor.svelte.d.ts +35 -0
- package/package/components/DisplayResult.svelte +29 -13
- package/package/components/DisplayResult.svelte.d.ts +8 -0
- package/package/components/Dropdown.svelte +8 -8
- package/package/components/Editor.svelte +125 -17
- package/package/components/Editor.svelte.d.ts +11 -1
- package/package/components/EditorBar.svelte +149 -56
- package/package/components/EditorBar.svelte.d.ts +5 -1
- package/package/components/EditorTheme.svelte +194 -0
- package/package/components/EditorTheme.svelte.d.ts +14 -0
- package/package/components/FieldHeader.svelte +6 -6
- package/package/components/FlowBuilder.svelte +6 -2
- package/package/components/FlowGraphViewer.svelte +9 -11
- package/package/components/FlowJobResult.svelte +4 -3
- package/package/components/FlowJobResult.svelte.d.ts +1 -0
- package/package/components/FlowMetadata.svelte +16 -14
- package/package/components/FlowPreviewContent.svelte +4 -4
- package/package/components/FlowStatusViewer.svelte +20 -17
- package/package/components/FlowStatusWaitingForEvents.svelte +1 -1
- package/package/components/FlowViewer.svelte +8 -5
- package/package/components/FlowViewer.svelte.d.ts +1 -0
- package/package/components/FolderEditor.svelte +3 -3
- package/package/components/FolderInfo.svelte +2 -2
- package/package/components/FolderUsageInfo.svelte +1 -1
- package/package/components/GroupEditor.svelte +40 -13
- package/package/components/GroupInfo.svelte +2 -2
- package/package/components/HighlightCode.svelte +4 -0
- package/package/components/HighlightCode.svelte.d.ts +2 -1
- package/package/components/IconedResourceType.svelte +1 -1
- package/package/components/InlineCodeCopy.svelte +2 -1
- package/package/components/InputTransformForm.svelte +1 -5
- package/package/components/InputTransformSchemaForm.svelte +2 -2
- package/package/components/InputTransformsViewer.svelte +2 -2
- package/package/components/InviteGlobalUser.svelte +39 -28
- package/package/components/InviteUser.svelte +27 -5
- package/package/components/ItemPicker.svelte +13 -7
- package/package/components/JobArgs.svelte +4 -4
- package/package/components/LightweightArgInput.svelte +3 -3
- package/package/components/LogViewer.svelte +10 -5
- package/package/components/LoginPageHeader.svelte +16 -0
- package/package/components/LoginPageHeader.svelte.d.ts +23 -0
- package/package/components/Modal.svelte +2 -2
- package/package/components/ModulePreview.svelte +15 -5
- package/package/components/ModulePreview.svelte.d.ts +6 -1
- package/package/components/ModuleStatus.svelte +2 -2
- package/package/components/MoveDrawer.svelte +3 -3
- package/package/components/ObjectResourceInput.svelte +2 -0
- package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
- package/package/components/Password.svelte +8 -3
- package/package/components/Password.svelte.d.ts +1 -0
- package/package/components/Path.svelte +31 -18
- package/package/components/Path.svelte.d.ts +4 -0
- package/package/components/RadioButton.svelte +3 -3
- package/package/components/Range.svelte.d.ts +0 -3
- package/package/components/Required.svelte +2 -2
- package/package/components/ResourceEditor.svelte +10 -9
- package/package/components/ResourcePicker.svelte +31 -6
- package/package/components/ResourcePicker.svelte.d.ts +1 -0
- package/package/components/ResultJobLoader.svelte.d.ts +2 -2
- package/package/components/RunForm.svelte +69 -59
- package/package/components/RunForm.svelte.d.ts +1 -0
- package/package/components/RunPageSchedules.svelte +169 -0
- package/package/components/RunPageSchedules.svelte.d.ts +18 -0
- package/package/components/SavedInputs.svelte +36 -18
- package/package/components/ScheduleEditor.svelte +23 -11
- package/package/components/SchemaEditor.svelte +16 -8
- package/package/components/SchemaForm.svelte +7 -9
- package/package/components/SchemaForm.svelte.d.ts +1 -0
- package/package/components/SchemaModal.svelte +41 -13
- package/package/components/SchemaModal.svelte.d.ts +2 -1
- package/package/components/SchemaViewer.svelte +1 -1
- package/package/components/ScriptBuilder.svelte +147 -76
- package/package/components/ScriptBuilder.svelte.d.ts +1 -1
- package/package/components/ScriptEditor.svelte +22 -2
- package/package/components/ScriptEditor.svelte.d.ts +6 -3
- package/package/components/ScriptPicker.svelte +84 -32
- package/package/components/ScriptPicker.svelte.d.ts +1 -0
- package/package/components/ScriptVersionHistory.svelte +20 -2
- package/package/components/ScriptVersionHistory.svelte.d.ts +3 -0
- package/package/components/SharedBadge.svelte +1 -1
- package/package/components/SimpleEditor.svelte +25 -10
- package/package/components/SimpleEditor.svelte.d.ts +9 -0
- package/package/components/Star.svelte +5 -1
- package/package/components/StringTypeNarrowing.svelte +2 -2
- package/package/components/SupabaseConnect.svelte +160 -0
- package/package/components/SupabaseConnect.svelte.d.ts +19 -0
- package/package/components/SuperadminSettings.svelte +9 -8
- package/package/components/TableCustom.svelte +2 -2
- package/package/components/TableSimple.svelte +5 -5
- package/package/components/TemplateEditor.svelte +0 -10
- package/package/components/TestConnection.svelte +72 -0
- package/package/components/TestConnection.svelte.d.ts +17 -0
- package/package/components/TestJobLoader.svelte.d.ts +4 -3
- package/package/components/Toast.svelte +7 -5
- package/package/components/Toggle.svelte +3 -3
- package/package/components/ToggleHubWorkspace.svelte +6 -9
- package/package/components/Tooltip.svelte +2 -2
- package/package/components/Uptodate.svelte +2 -2
- package/package/components/UserSettings.svelte +10 -10
- package/package/components/VariableEditor.svelte +21 -20
- package/package/components/Version.svelte +3 -1
- package/package/components/WhitelistIp.svelte +1 -1
- package/package/components/apps/components/buttons/AppButton.svelte +2 -2
- package/package/components/apps/components/buttons/AppForm.svelte +5 -4
- package/package/components/apps/components/buttons/AppFormButton.svelte +1 -1
- package/package/components/apps/components/buttons/AppSchemaForm.svelte +1 -1
- package/package/components/apps/components/display/AppBarChart.svelte +13 -1
- package/package/components/apps/components/display/AppFlowStatusComponent.svelte +1 -1
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +64 -0
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte.d.ts +23 -0
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +72 -0
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte.d.ts +23 -0
- package/package/components/apps/components/display/AppMap.svelte +4 -10
- package/package/components/apps/components/display/AppPdf.svelte +6 -6
- package/package/components/apps/components/display/AppText.svelte +19 -19
- package/package/components/apps/components/display/PlotlyHtml.svelte +16 -4
- package/package/components/apps/components/display/table/AppAggridTable.svelte +16 -12
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppTable.svelte +149 -124
- package/package/components/apps/components/helpers/ComponentErrorHandler.svelte +2 -2
- package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
- package/package/components/apps/components/helpers/InputValue.svelte +14 -4
- package/package/components/apps/components/helpers/InputValue.svelte.d.ts +2 -0
- package/package/components/apps/components/helpers/Loader.svelte +1 -1
- package/package/components/apps/components/helpers/MissingConnectionWarning.svelte +1 -1
- package/package/components/apps/components/helpers/RefreshButton.svelte +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +57 -21
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +52 -28
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +15 -2
- package/package/components/apps/components/helpers/eval.d.ts +2 -0
- package/package/components/apps/components/helpers/eval.js +6 -1
- package/package/components/apps/components/inputs/AppCheckbox.svelte +15 -17
- package/package/components/apps/components/inputs/AppDateInput.svelte +19 -1
- package/package/components/apps/components/inputs/AppMultiSelect.svelte +81 -22
- package/package/components/apps/components/inputs/AppMultiSelect.svelte.d.ts +2 -0
- package/package/components/apps/components/inputs/AppQuillEditor.svelte +29 -3
- package/package/components/apps/components/inputs/AppSelect.svelte +18 -7
- package/package/components/apps/components/inputs/AppSelectTab.svelte +3 -8
- package/package/components/apps/components/inputs/AppTextInput.svelte +4 -0
- package/package/components/apps/components/inputs/AppTextInput.svelte.d.ts +2 -0
- package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
- package/package/components/apps/components/layout/AppList.svelte +54 -62
- package/package/components/apps/components/layout/AppModal.svelte +13 -5
- package/package/components/apps/components/layout/AppStepper.svelte +1 -1
- package/package/components/apps/components/layout/AppTabs.svelte +3 -3
- package/package/components/apps/components/layout/ListWrapper.svelte +0 -1
- package/package/components/apps/components/layout/RowWrapper.svelte +22 -0
- package/package/components/apps/components/layout/RowWrapper.svelte.d.ts +23 -0
- package/package/components/apps/editor/AppComponentInput.svelte +1 -1
- package/package/components/apps/editor/AppDeploymentHistory.svelte +34 -0
- package/package/components/apps/editor/AppDeploymentHistory.svelte.d.ts +17 -0
- package/package/components/apps/editor/AppEditor.svelte +13 -4
- package/package/components/apps/editor/AppEditorHeader.svelte +78 -41
- package/package/components/apps/editor/AppInputs.svelte +1 -1
- package/package/components/apps/editor/AppPreview.svelte +14 -5
- package/package/components/apps/editor/ComponentHeader.svelte +4 -4
- package/package/components/apps/editor/DeploymentHistory.svelte +8 -6
- package/package/components/apps/editor/GridEditor.svelte +4 -4
- package/package/components/apps/editor/RecomputeAllComponents.svelte +2 -2
- package/package/components/apps/editor/SettingsPanel.svelte +4 -5
- package/package/components/apps/editor/TabsDebug.svelte +1 -1
- package/package/components/apps/editor/component/Component.svelte +21 -1
- package/package/components/apps/editor/component/ComponentNavigation.svelte +15 -1
- package/package/components/apps/editor/component/components.d.ts +293 -58
- package/package/components/apps/editor/component/components.js +146 -4
- package/package/components/apps/editor/component/sets.js +2 -2
- package/package/components/apps/editor/componentsPanel/ComponentList.svelte +8 -8
- package/package/components/apps/editor/componentsPanel/CssProperty.svelte +4 -4
- package/package/components/apps/editor/componentsPanel/CssSettings.svelte +2 -2
- package/package/components/apps/editor/componentsPanel/ListItem.svelte +3 -3
- package/package/components/apps/editor/componentsPanel/QuickStyleMenu.svelte +2 -2
- package/package/components/apps/editor/componentsPanel/QuickStyleProperty.svelte +3 -3
- package/package/components/apps/editor/componentsPanel/quickStyleProperties.js +8 -0
- package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +3 -3
- package/package/components/apps/editor/contextPanel/ContextPanel.svelte +8 -6
- package/package/components/apps/editor/contextPanel/SubGridOutput.svelte +6 -3
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +18 -24
- package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +16 -9
- package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +16 -26
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +71 -51
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +2 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorPanel.svelte +1 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptHiddenRunnable.svelte +21 -1
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptHiddenRunnable.svelte.d.ts +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +1 -2
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +9 -3
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanelList.svelte +33 -11
- package/package/components/apps/editor/settingsPanel/AlignmentEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +24 -11
- package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/GridCondition.svelte +2 -3
- package/package/components/apps/editor/settingsPanel/GridPane.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/GridTab.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/GridTabDisabled.svelte +0 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +4 -5
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +1 -4
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +0 -2
- package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/Recompute.svelte +5 -5
- package/package/components/apps/editor/settingsPanel/TableActions.svelte +12 -7
- package/package/components/apps/editor/settingsPanel/common/PanelSection.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte +2 -3
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalInputEditor.svelte.d.ts +0 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/IconSelectInput.svelte +63 -74
- package/package/components/apps/editor/settingsPanel/inputEditor/JsonEditor.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/TabSelectInput.svelte +3 -7
- package/package/components/apps/editor/settingsPanel/mainInput/InlineScriptList.svelte +5 -5
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/mainInput/WorkspaceFlowList.svelte +3 -3
- package/package/components/apps/editor/settingsPanel/mainInput/WorkspaceScriptList.svelte +4 -4
- package/package/components/apps/editor/settingsPanel/script/BackgroundScriptSettings.svelte +2 -0
- package/package/components/apps/editor/settingsPanel/script/ComponentScriptSettings.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptSettingHeader.svelte +1 -1
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptTransformer.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptTransformer.svelte.d.ts +7 -4
- package/package/components/apps/editor/settingsPanel/script/shared/ScriptTriggers.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte +2 -2
- package/package/components/apps/rx.d.ts +3 -3
- package/package/components/apps/rx.js +4 -5
- package/package/components/apps/svelte-select/lib/ChevronIcon.svelte +17 -0
- package/package/components/apps/svelte-select/lib/ChevronIcon.svelte.d.ts +23 -0
- package/package/components/apps/svelte-select/lib/ClearIcon.svelte +21 -0
- package/package/components/apps/svelte-select/lib/ClearIcon.svelte.d.ts +23 -0
- package/package/components/apps/svelte-select/lib/ConditionalPortal.svelte +12 -0
- package/package/components/apps/svelte-select/lib/ConditionalPortal.svelte.d.ts +18 -0
- package/package/components/apps/svelte-select/lib/ConditionalPortalGlobal.svelte +9 -0
- package/package/components/apps/svelte-select/lib/ConditionalPortalGlobal.svelte.d.ts +18 -0
- package/package/components/apps/svelte-select/lib/LoadingIcon.svelte +33 -0
- package/package/components/apps/svelte-select/lib/LoadingIcon.svelte.d.ts +23 -0
- package/package/components/apps/svelte-select/lib/Select.svelte +1129 -0
- package/package/components/apps/svelte-select/lib/Select.svelte.d.ts +205 -0
- package/package/components/apps/svelte-select/lib/filter.d.ts +13 -0
- package/package/components/apps/svelte-select/lib/filter.js +32 -0
- package/package/components/apps/svelte-select/lib/get-items.d.ts +11 -0
- package/package/components/apps/svelte-select/lib/get-items.js +30 -0
- package/package/components/apps/svelte-select/lib/index.d.ts +1 -0
- package/package/components/apps/svelte-select/lib/index.js +1 -0
- package/package/components/apps/svelte-select/lib/tailwind.css +130 -0
- package/package/components/apps/types.d.ts +6 -0
- package/package/components/apps/utils.d.ts +1 -5
- package/package/components/apps/utils.js +6 -34
- package/package/components/codeGen/ScriptFix.svelte +123 -0
- package/package/components/codeGen/ScriptFix.svelte.d.ts +22 -0
- package/package/components/codeGen/ScriptGen.svelte +218 -0
- package/package/components/codeGen/ScriptGen.svelte.d.ts +24 -0
- package/package/components/codeGen/index.d.ts +1 -0
- package/package/components/codeGen/index.js +1 -0
- package/package/components/codeGen/lib.d.ts +28 -0
- package/package/components/codeGen/lib.js +217 -0
- package/package/components/codeGen/prompts/edit.yaml +94 -0
- package/package/components/codeGen/prompts/fix.yaml +113 -0
- package/package/components/codeGen/prompts/gen.yaml +49 -0
- package/package/components/codeGen/prompts/index.d.ts +12 -0
- package/package/components/codeGen/prompts/index.js +7 -0
- package/package/components/codeGen/utils.d.ts +4 -0
- package/package/components/codeGen/utils.js +79 -0
- package/package/components/common/CloseButton.svelte +3 -3
- package/package/components/common/actionRow/ActionRow.svelte +1 -1
- package/package/components/common/alert/Alert.svelte +18 -18
- package/package/components/common/breadcrumb/Breadcrumb.svelte +1 -1
- package/package/components/common/button/Button.svelte +14 -14
- package/package/components/common/button/ButtonDropdown.svelte +2 -2
- package/package/components/common/calendarPicker/CalendarPicker.svelte +62 -0
- package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +19 -0
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +7 -5
- package/package/components/common/drawer/Drawer.svelte +5 -3
- package/package/components/common/drawer/DrawerContent.svelte +3 -2
- package/package/components/common/drawer/DrawerContent.svelte.d.ts +1 -0
- package/package/components/common/fileInput/FileInput.svelte +3 -3
- package/package/components/common/kbd/Kbd.svelte +1 -1
- package/package/components/common/languageIcons/LanguageIcon.svelte +22 -1
- package/package/components/common/languageIcons/LanguageIcon.svelte.d.ts +1 -1
- package/package/components/common/menu/Menu.svelte +1 -1
- package/package/components/common/menu/MenuItem.svelte +1 -1
- package/package/components/common/modal/AlwaysMountedModal.svelte +4 -4
- package/package/components/common/modal/Modal.svelte +3 -3
- package/package/components/common/popup/Popup.svelte +33 -157
- package/package/components/common/popup/Popup.svelte.d.ts +6 -45
- package/package/components/common/skeleton/SkeletonElement.svelte +1 -1
- package/package/components/common/stepper/Stepper.svelte +3 -3
- package/package/components/common/table/AppRow.svelte +36 -24
- package/package/components/common/table/FlowRow.svelte +13 -39
- package/package/components/common/table/RawAppRow.svelte +1 -15
- package/package/components/common/table/Row.svelte +22 -23
- package/package/components/common/table/RowIcon.svelte +7 -7
- package/package/components/common/table/ScriptRow.svelte +17 -41
- package/package/components/common/table/Table.svelte +1 -1
- package/package/components/common/tabs/Tab.svelte +1 -1
- package/package/components/common/tabs/Tabs.svelte +1 -4
- package/package/components/common/toggleButton-v2/ToggleButton.svelte +9 -2
- package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +1 -0
- package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
- package/package/components/details/ClipboardPanel.svelte +19 -0
- package/package/components/details/ClipboardPanel.svelte.d.ts +17 -0
- package/package/components/details/DetailPageDetailPanel.svelte +92 -0
- package/package/components/details/DetailPageDetailPanel.svelte.d.ts +23 -0
- package/package/components/details/DetailPageHeader.svelte +66 -0
- package/package/components/details/DetailPageHeader.svelte.d.ts +29 -0
- package/package/components/details/DetailPageLayout.svelte +51 -0
- package/package/components/details/DetailPageLayout.svelte.d.ts +35 -0
- package/package/components/details/Menu.svelte +53 -0
- package/package/components/details/Menu.svelte.d.ts +18 -0
- package/package/components/details/WebhooksPanel.svelte +236 -0
- package/package/components/details/WebhooksPanel.svelte.d.ts +29 -0
- package/package/components/details/createAppFromScript.d.ts +719 -0
- package/package/components/details/createAppFromScript.js +723 -0
- package/package/components/details/utils.d.ts +8 -0
- package/package/components/details/utils.js +50 -0
- package/package/components/flows/FlowEditor.svelte +1 -1
- package/package/components/flows/common/FlowCardHeader.svelte +4 -4
- package/package/components/flows/content/CapturePayload.svelte +2 -2
- package/package/components/flows/content/DynamicInputHelpBox.svelte +1 -1
- package/package/components/flows/content/FlowBranchesAllWrapper.svelte +1 -1
- package/package/components/flows/content/FlowBranchesOneWrapper.svelte +2 -2
- package/package/components/flows/content/FlowConstants.svelte +43 -3
- package/package/components/flows/content/FlowEditorPanel.svelte +1 -1
- package/package/components/flows/content/FlowInputs.svelte +85 -34
- package/package/components/flows/content/FlowInputsFlow.svelte +2 -2
- package/package/components/flows/content/FlowLoop.svelte +29 -29
- package/package/components/flows/content/FlowModuleComponent.svelte +61 -1
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +2 -0
- package/package/components/flows/content/FlowModuleConcurrencyLimit.svelte +51 -0
- package/package/components/flows/content/FlowModuleConcurrencyLimit.svelte.d.ts +17 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +3 -1
- package/package/components/flows/content/FlowModuleHeader.svelte +57 -37
- package/package/components/flows/content/FlowModuleHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleTimeout.svelte +43 -0
- package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +17 -0
- package/package/components/flows/content/FlowModuleWrapper.svelte +6 -0
- package/package/components/flows/content/FlowRetries.svelte +3 -3
- package/package/components/flows/content/FlowSchedules.svelte +1 -1
- package/package/components/flows/content/FlowSettings.svelte +102 -24
- package/package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
- package/package/components/flows/flowStateUtils.js +1 -1
- package/package/components/flows/header/FlowPreviewButtons.svelte +1 -0
- package/package/components/flows/idUtils.js +1 -1
- package/package/components/flows/map/FlowConstantsItem.svelte +1 -1
- package/package/components/flows/map/FlowErrorHandlerItem.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +24 -12
- package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +2 -2
- package/package/components/flows/map/FlowSettingsItem.svelte +1 -1
- package/package/components/flows/map/InsertModuleButton.svelte +10 -10
- package/package/components/flows/map/MapItem.svelte +10 -6
- package/package/components/flows/map/VirtualItem.svelte +10 -8
- package/package/components/flows/map/VirtualItem.svelte.d.ts +1 -1
- package/package/components/flows/pickers/FlowScriptPicker.svelte +28 -21
- package/package/components/flows/pickers/FlowScriptPicker.svelte.d.ts +1 -1
- package/package/components/flows/pickers/PickHubApp.svelte +3 -3
- package/package/components/flows/pickers/PickHubFlow.svelte +3 -3
- package/package/components/flows/pickers/PickHubScript.svelte +6 -6
- package/package/components/flows/pickers/WorkspaceScriptPicker.svelte +2 -2
- package/package/components/flows/utils.js +2 -1
- package/package/components/graph/FlowGraph.svelte +53 -34
- package/package/components/graph/svelvet/container/views/GraphView.svelte +12 -17
- package/package/components/graph/svelvet/container/views/Svelvet.svelte +2 -4
- package/package/components/graph/svelvet/edges/views/Edges/EdgeText.svelte.d.ts +2 -2
- package/package/components/home/ItemsList.svelte +13 -9
- package/package/components/home/ListFilters.svelte +2 -1
- package/package/components/home/ListFilters.svelte.d.ts +1 -0
- package/package/components/home/NoItemFound.svelte +1 -1
- package/package/components/icons/BigQueryIcon.svelte +36 -0
- package/package/components/icons/BigQueryIcon.svelte.d.ts +17 -0
- package/package/components/icons/PowershellIcon.svelte +56 -0
- package/package/components/icons/PowershellIcon.svelte.d.ts +17 -0
- package/package/components/icons/RestIcon.svelte +21 -0
- package/package/components/icons/RestIcon.svelte.d.ts +17 -0
- package/package/components/jobs/JobDetail.svelte +21 -21
- package/package/components/jobs/JobPreview.svelte +6 -6
- package/package/components/preview/FlowPreviewStatus.svelte +2 -2
- package/package/components/progressBar/ProgressBar.svelte +2 -2
- package/package/components/propertyPicker/ObjectViewer.svelte +13 -18
- package/package/components/propertyPicker/PropPicker.svelte +5 -2
- package/package/components/scriptEditor/LogPanel.svelte +13 -4
- package/package/components/scriptEditor/LogPanel.svelte.d.ts +4 -0
- package/package/components/sidebar/DarkModeToggle.svelte +30 -0
- package/package/components/sidebar/DarkModeToggle.svelte.d.ts +17 -0
- package/package/components/sidebar/FavoriteMenu.svelte +4 -3
- package/package/components/sidebar/MenuLink.svelte +3 -2
- package/package/components/sidebar/MultiplayerMenu.svelte +2 -2
- package/package/components/sidebar/SidebarContent.svelte +9 -1
- package/package/components/sidebar/UserMenu.svelte +11 -10
- package/package/components/sidebar/WorkspaceMenu.svelte +11 -10
- package/package/components/theme/nord.json +93 -0
- package/package/defaults.d.ts +1 -0
- package/package/defaults.js +2 -1
- package/package/editorUtils.js +2 -0
- package/package/gen/core/CancelablePromise.js +1 -0
- package/package/gen/core/OpenAPI.d.ts +5 -5
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/core/request.d.ts +17 -0
- package/package/gen/core/request.js +27 -16
- package/package/gen/index.d.ts +43 -1
- package/package/gen/index.js +2 -0
- package/package/gen/models/AccountId.d.ts +1 -0
- package/package/gen/models/{Postgresql.js → AccountId.js} +1 -0
- package/package/gen/models/ActionKind.d.ts +9 -0
- package/package/gen/models/ActionKind.js +14 -0
- package/package/gen/models/After.d.ts +4 -0
- package/package/gen/models/After.js +5 -0
- package/package/gen/models/AppWithLastVersion.js +1 -0
- package/package/gen/models/AppWithLastVersionWDraft.js +1 -0
- package/package/gen/models/ArgsFilter.d.ts +4 -0
- package/package/gen/models/ArgsFilter.js +5 -0
- package/package/gen/models/AuditLog.js +1 -0
- package/package/gen/models/Before.d.ts +4 -0
- package/package/gen/models/Before.js +5 -0
- package/package/gen/models/BranchAll.js +1 -0
- package/package/gen/models/BranchOne.js +1 -0
- package/package/gen/models/ClientName.d.ts +1 -0
- package/package/gen/models/ClientName.js +5 -0
- package/package/gen/models/CompletedJob.d.ts +8 -4
- package/package/gen/models/CompletedJob.js +7 -2
- package/package/gen/models/ContextualVariable.js +1 -0
- package/package/gen/models/CreateInput.js +1 -0
- package/package/gen/models/CreateResource.js +1 -0
- package/package/gen/models/CreateVariable.js +1 -0
- package/package/gen/models/CreateWorkspace.js +1 -0
- package/package/gen/models/CreatedBy.d.ts +4 -0
- package/package/gen/models/CreatedBy.js +5 -0
- package/package/gen/models/EditResource.js +1 -0
- package/package/gen/models/EditResourceType.js +1 -0
- package/package/gen/models/EditSchedule.js +1 -0
- package/package/gen/models/EditVariable.js +1 -0
- package/package/gen/models/EditWorkspaceUser.js +1 -0
- package/package/gen/models/Flow.js +1 -0
- package/package/gen/models/FlowMetadata.d.ts +1 -0
- package/package/gen/models/FlowMetadata.js +1 -0
- package/package/gen/models/FlowModule.d.ts +1 -0
- package/package/gen/models/FlowModule.js +1 -0
- package/package/gen/models/FlowModuleValue.d.ts +1 -2
- package/package/gen/models/FlowModuleValue.js +1 -0
- package/package/gen/models/FlowPreview.d.ts +1 -0
- package/package/gen/models/FlowPreview.js +1 -0
- package/package/gen/models/FlowStatus.js +1 -0
- package/package/gen/models/FlowStatusModule.js +1 -0
- package/package/gen/models/FlowValue.js +1 -0
- package/package/gen/models/Folder.js +1 -0
- package/package/gen/models/ForloopFlow.js +1 -0
- package/package/gen/models/GlobalUserInfo.js +1 -0
- package/package/gen/models/Graphql.js +1 -0
- package/package/gen/models/Group.js +1 -0
- package/package/gen/models/Http.js +1 -0
- package/package/gen/models/Identity.js +1 -0
- package/package/gen/models/IncludeHeader.d.ts +6 -0
- package/package/gen/models/IncludeHeader.js +5 -0
- package/package/gen/models/Input.d.ts +1 -0
- package/package/gen/models/Input.js +1 -0
- package/package/gen/models/InputId.d.ts +1 -0
- package/package/gen/models/InputId.js +5 -0
- package/package/gen/models/InputTransform.js +1 -0
- package/package/gen/models/InstanceGroup.d.ts +4 -0
- package/package/gen/models/InstanceGroup.js +5 -0
- package/package/gen/models/JavascriptTransform.js +1 -0
- package/package/gen/models/Job.js +1 -0
- package/package/gen/models/JobId.d.ts +1 -0
- package/package/gen/models/JobId.js +5 -0
- package/package/gen/models/JobKinds.d.ts +4 -0
- package/package/gen/models/JobKinds.js +5 -0
- package/package/gen/models/ListableApp.js +1 -0
- package/package/gen/models/ListableRawApp.js +1 -0
- package/package/gen/models/ListableResource.js +1 -0
- package/package/gen/models/ListableVariable.js +1 -0
- package/package/gen/models/Login.js +1 -0
- package/package/gen/models/MainArgSignature.js +1 -0
- package/package/gen/models/Name.d.ts +1 -0
- package/package/gen/models/Name.js +5 -0
- package/package/gen/models/NewJobId.d.ts +4 -0
- package/package/gen/models/NewJobId.js +5 -0
- package/package/gen/models/NewSchedule.js +1 -0
- package/package/gen/models/NewScript.d.ts +9 -1
- package/package/gen/models/NewScript.js +7 -0
- package/package/gen/models/NewScriptWithDraft.js +1 -0
- package/package/gen/models/NewToken.js +1 -0
- package/package/gen/models/NewTokenImpersonate.js +1 -0
- package/package/gen/models/NewUser.js +1 -0
- package/package/gen/models/OpenFlow.js +1 -0
- package/package/gen/models/OpenFlowWPath.d.ts +1 -0
- package/package/gen/models/OpenFlowWPath.js +1 -0
- package/package/gen/models/Operation.d.ts +4 -0
- package/package/gen/models/Operation.js +5 -0
- package/package/gen/models/OrderDesc.d.ts +4 -0
- package/package/gen/models/OrderDesc.js +5 -0
- package/package/gen/models/Page.d.ts +4 -0
- package/package/gen/models/Page.js +5 -0
- package/package/gen/models/ParentJob.d.ts +4 -0
- package/package/gen/models/ParentJob.js +5 -0
- package/package/gen/models/Path.d.ts +1 -0
- package/package/gen/models/Path.js +5 -0
- package/package/gen/models/PathFlow.js +1 -0
- package/package/gen/models/PathId.d.ts +1 -0
- package/package/gen/models/PathId.js +5 -0
- package/package/gen/models/PathScript.js +1 -0
- package/package/gen/models/Payload.d.ts +6 -0
- package/package/gen/models/Payload.js +5 -0
- package/package/gen/models/PerPage.d.ts +4 -0
- package/package/gen/models/PerPage.js +5 -0
- package/package/gen/models/Policy.js +1 -0
- package/package/gen/models/Preview.d.ts +7 -3
- package/package/gen/models/Preview.js +7 -2
- package/package/gen/models/QueueLimit.d.ts +5 -0
- package/package/gen/models/QueueLimit.js +5 -0
- package/package/gen/models/QueuedJob.d.ts +8 -4
- package/package/gen/models/QueuedJob.js +7 -2
- package/package/gen/models/RawScript.d.ts +8 -1
- package/package/gen/models/RawScript.js +6 -0
- package/package/gen/models/Resource.js +1 -0
- package/package/gen/models/ResourceName.d.ts +4 -0
- package/package/gen/models/ResourceName.js +5 -0
- package/package/gen/models/ResourceType.js +1 -0
- package/package/gen/models/ResultFilter.d.ts +4 -0
- package/package/gen/models/ResultFilter.js +5 -0
- package/package/gen/models/Retry.js +1 -0
- package/package/gen/models/RunnableId.d.ts +1 -0
- package/package/gen/models/RunnableId.js +5 -0
- package/package/gen/models/RunnableType.js +1 -0
- package/package/gen/models/RunnableTypeQuery.d.ts +2 -0
- package/package/gen/models/RunnableTypeQuery.js +5 -0
- package/package/gen/models/Running.d.ts +4 -0
- package/package/gen/models/Running.js +5 -0
- package/package/gen/models/Schedule.js +1 -0
- package/package/gen/models/SchedulePath.d.ts +4 -0
- package/package/gen/models/SchedulePath.js +5 -0
- package/package/gen/models/ScheduleWJobs.js +1 -0
- package/package/gen/models/Script.d.ts +9 -1
- package/package/gen/models/Script.js +7 -0
- package/package/gen/models/ScriptArgs.js +1 -0
- package/package/gen/models/ScriptExactHash.d.ts +4 -0
- package/package/gen/models/ScriptExactHash.js +5 -0
- package/package/gen/models/ScriptExactPath.d.ts +4 -0
- package/package/gen/models/ScriptExactPath.js +5 -0
- package/package/gen/models/ScriptHash.d.ts +1 -0
- package/package/gen/models/ScriptHash.js +5 -0
- package/package/gen/models/ScriptPath.d.ts +1 -0
- package/package/gen/models/ScriptPath.js +5 -0
- package/package/gen/models/ScriptStartPath.d.ts +4 -0
- package/package/gen/models/ScriptStartPath.js +5 -0
- package/package/gen/models/SlackToken.js +1 -0
- package/package/gen/models/StartedAfter.d.ts +4 -0
- package/package/gen/models/StartedAfter.js +5 -0
- package/package/gen/models/StartedBefore.d.ts +4 -0
- package/package/gen/models/StartedBefore.js +5 -0
- package/package/gen/models/StaticTransform.js +1 -0
- package/package/gen/models/Success.d.ts +4 -0
- package/package/gen/models/Success.js +5 -0
- package/package/gen/models/Suspended.d.ts +4 -0
- package/package/gen/models/Suspended.js +5 -0
- package/package/gen/models/Tag.d.ts +4 -0
- package/package/gen/models/Tag.js +5 -0
- package/package/gen/models/Token.d.ts +1 -0
- package/package/gen/models/Token.js +5 -0
- package/package/gen/models/TokenResponse.js +1 -0
- package/package/gen/models/TruncatedToken.js +1 -0
- package/package/gen/models/UpdateInput.js +1 -0
- package/package/gen/models/Usage.js +1 -0
- package/package/gen/models/User.js +1 -0
- package/package/gen/models/UserWorkspaceList.js +1 -0
- package/package/gen/models/Username.d.ts +4 -0
- package/package/gen/models/Username.js +5 -0
- package/package/gen/models/VersionId.d.ts +1 -0
- package/package/gen/models/VersionId.js +5 -0
- package/package/gen/models/WorkerPing.d.ts +1 -0
- package/package/gen/models/WorkerPing.js +1 -0
- package/package/gen/models/Workspace.js +1 -0
- package/package/gen/models/WorkspaceId.d.ts +1 -0
- package/package/gen/models/WorkspaceId.js +5 -0
- package/package/gen/models/WorkspaceInvite.js +1 -0
- package/package/gen/services/GroupService.d.ts +15 -0
- package/package/gen/services/GroupService.js +25 -0
- package/package/gen/services/JobService.d.ts +2 -2
- package/package/gen/services/JobService.js +2 -2
- package/package/gen/services/OauthService.d.ts +5 -2
- package/package/gen/services/OauthService.js +1 -1
- package/package/gen/services/ScheduleService.d.ts +6 -1
- package/package/gen/services/ScheduleService.js +3 -1
- package/package/gen/services/ScriptService.d.ts +1 -1
- package/package/gen/services/UserService.d.ts +8 -0
- package/package/gen/services/UserService.js +14 -0
- package/package/gen/services/WorkspaceService.d.ts +38 -0
- package/package/gen/services/WorkspaceService.js +46 -0
- package/package/infer.d.ts +6 -2
- package/package/infer.js +55 -2
- package/package/script_helpers.d.ts +9 -3
- package/package/script_helpers.js +77 -57
- package/package/scripts.d.ts +3 -1
- package/package/scripts.js +26 -2
- package/package/stores.d.ts +3 -0
- package/package/stores.js +3 -0
- package/package/utils.d.ts +5 -3
- package/package/utils.js +19 -7
- package/package.json +23 -19
- package/package/components/common/table/LanguageBadge.svelte +0 -40
- package/package/components/common/table/LanguageBadge.svelte.d.ts +0 -17
- package/package/gen/models/Postgresql.d.ts +0 -3
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { SupportedLanguage } from '../../common';
|
|
3
|
+
import type Editor from '../Editor.svelte';
|
|
4
|
+
import type DiffEditor from '../DiffEditor.svelte';
|
|
5
|
+
declare const __propDef: {
|
|
6
|
+
props: {
|
|
7
|
+
lang: SupportedLanguage;
|
|
8
|
+
editor: Editor | undefined;
|
|
9
|
+
diffEditor: DiffEditor | undefined;
|
|
10
|
+
error: string;
|
|
11
|
+
};
|
|
12
|
+
events: {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
};
|
|
15
|
+
slots: {};
|
|
16
|
+
};
|
|
17
|
+
export type ScriptFixProps = typeof __propDef.props;
|
|
18
|
+
export type ScriptFixEvents = typeof __propDef.events;
|
|
19
|
+
export type ScriptFixSlots = typeof __propDef.slots;
|
|
20
|
+
export default class ScriptFix extends SvelteComponentTyped<ScriptFixProps, ScriptFixEvents, ScriptFixSlots> {
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
<script>import { Button } from '../common';
|
|
2
|
+
import { SUPPORTED_LANGUAGES, editScript, generateScript } from './lib';
|
|
3
|
+
import { sendUserToast } from '../../toast';
|
|
4
|
+
import { faCheck, faClose, faMagicWandSparkles } from '@fortawesome/free-solid-svg-icons';
|
|
5
|
+
import Popup from '../common/popup/Popup.svelte';
|
|
6
|
+
import { Icon } from 'svelte-awesome';
|
|
7
|
+
import { dbSchema, existsOpenaiResourcePath } from '../../stores';
|
|
8
|
+
import { scriptLangToEditorLang } from '../../scripts';
|
|
9
|
+
import Tooltip from '../Tooltip.svelte';
|
|
10
|
+
// props
|
|
11
|
+
export let iconOnly = false;
|
|
12
|
+
export let lang;
|
|
13
|
+
export let editor;
|
|
14
|
+
export let diffEditor;
|
|
15
|
+
export let inlineScript = false;
|
|
16
|
+
// state
|
|
17
|
+
let funcDesc = '';
|
|
18
|
+
let genLoading = false;
|
|
19
|
+
let openaiAvailable = undefined;
|
|
20
|
+
let button;
|
|
21
|
+
let input;
|
|
22
|
+
let generatedCode = '';
|
|
23
|
+
let selection;
|
|
24
|
+
let isEdit = false;
|
|
25
|
+
async function onGenerate() {
|
|
26
|
+
if (funcDesc.length <= 0) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
genLoading = true;
|
|
31
|
+
if (isEdit && selection) {
|
|
32
|
+
const selectedCode = editor?.getSelectedLines() || '';
|
|
33
|
+
const originalCode = editor?.getCode() || '';
|
|
34
|
+
const result = await editScript({
|
|
35
|
+
language: lang,
|
|
36
|
+
description: funcDesc,
|
|
37
|
+
selectedCode,
|
|
38
|
+
dbSchema: lang === 'postgresql' ? $dbSchema : undefined
|
|
39
|
+
});
|
|
40
|
+
generatedCode = originalCode.replace(selectedCode, result.code + '\n');
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const result = await generateScript({
|
|
44
|
+
language: lang,
|
|
45
|
+
description: funcDesc,
|
|
46
|
+
dbSchema: lang === 'postgresql' ? $dbSchema : undefined
|
|
47
|
+
});
|
|
48
|
+
generatedCode = result.code;
|
|
49
|
+
}
|
|
50
|
+
funcDesc = '';
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
sendUserToast('Failed to generate code', true);
|
|
54
|
+
console.error(err);
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
genLoading = false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function acceptDiff() {
|
|
61
|
+
editor?.setCode(diffEditor?.getModified() || '');
|
|
62
|
+
editor?.format();
|
|
63
|
+
generatedCode = '';
|
|
64
|
+
}
|
|
65
|
+
function rejectDiff() {
|
|
66
|
+
generatedCode = '';
|
|
67
|
+
}
|
|
68
|
+
function checkIfOpenaiAvailable(lang, existsOpenaiResourcePath) {
|
|
69
|
+
openaiAvailable = existsOpenaiResourcePath && SUPPORTED_LANGUAGES.has(lang);
|
|
70
|
+
}
|
|
71
|
+
function showDiff() {
|
|
72
|
+
diffEditor?.setDiff(editor?.getCode() || '', generatedCode, lang === 'frontend' ? 'javascript' : scriptLangToEditorLang(lang));
|
|
73
|
+
diffEditor?.show();
|
|
74
|
+
editor?.hide();
|
|
75
|
+
}
|
|
76
|
+
function hideDiff() {
|
|
77
|
+
editor?.show();
|
|
78
|
+
diffEditor?.hide();
|
|
79
|
+
}
|
|
80
|
+
function setSelectionHandler() {
|
|
81
|
+
editor?.onDidChangeCursorSelection((e) => {
|
|
82
|
+
selection = e.selection;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
$: checkIfOpenaiAvailable(lang, $existsOpenaiResourcePath);
|
|
86
|
+
$: input?.focus();
|
|
87
|
+
$: lang && (generatedCode = '');
|
|
88
|
+
$: generatedCode && showDiff();
|
|
89
|
+
$: !generatedCode && hideDiff();
|
|
90
|
+
$: editor && setSelectionHandler();
|
|
91
|
+
$: selection && (isEdit = !selection.isEmpty());
|
|
92
|
+
</script>
|
|
93
|
+
|
|
94
|
+
{#if openaiAvailable}
|
|
95
|
+
{#if generatedCode}
|
|
96
|
+
{#if inlineScript}
|
|
97
|
+
<div class="flex gap-1">
|
|
98
|
+
<Button
|
|
99
|
+
title="Discard generated code"
|
|
100
|
+
btnClasses="!font-medium px-2 w-7"
|
|
101
|
+
size="xs"
|
|
102
|
+
color="red"
|
|
103
|
+
on:click={rejectDiff}
|
|
104
|
+
variant="contained"
|
|
105
|
+
>
|
|
106
|
+
<Icon data={faClose} />
|
|
107
|
+
</Button><Button
|
|
108
|
+
title="Accept generated code"
|
|
109
|
+
btnClasses="!font-medium px-2 w-7"
|
|
110
|
+
size="xs"
|
|
111
|
+
color="green"
|
|
112
|
+
on:click={acceptDiff}
|
|
113
|
+
>
|
|
114
|
+
<Icon data={faCheck} /></Button
|
|
115
|
+
>
|
|
116
|
+
</div>
|
|
117
|
+
{:else}
|
|
118
|
+
<div class="flex gap-1 px-2">
|
|
119
|
+
<Button
|
|
120
|
+
title="Discard generated code"
|
|
121
|
+
btnClasses="!font-medium px-2"
|
|
122
|
+
size="xs"
|
|
123
|
+
color="red"
|
|
124
|
+
on:click={rejectDiff}
|
|
125
|
+
variant="contained"
|
|
126
|
+
startIcon={{ icon: faClose }}
|
|
127
|
+
{iconOnly}
|
|
128
|
+
>
|
|
129
|
+
Discard
|
|
130
|
+
</Button><Button
|
|
131
|
+
title="Accept generated code"
|
|
132
|
+
btnClasses="!font-medium px-2"
|
|
133
|
+
size="xs"
|
|
134
|
+
color="green"
|
|
135
|
+
on:click={acceptDiff}
|
|
136
|
+
startIcon={{ icon: faCheck }}
|
|
137
|
+
{iconOnly}
|
|
138
|
+
>
|
|
139
|
+
Accept
|
|
140
|
+
</Button>
|
|
141
|
+
</div>
|
|
142
|
+
{/if}
|
|
143
|
+
{/if}
|
|
144
|
+
{#if !generatedCode}
|
|
145
|
+
<Popup floatingConfig={{ placement: 'bottom-end', strategy: 'absolute' }} let:close>
|
|
146
|
+
<svelte:fragment slot="button">
|
|
147
|
+
{#if inlineScript}
|
|
148
|
+
<Button
|
|
149
|
+
size="lg"
|
|
150
|
+
bind:element={button}
|
|
151
|
+
color="light"
|
|
152
|
+
btnClasses="!px-2 !bg-surface-secondary hover:!bg-surface-hover"
|
|
153
|
+
loading={genLoading}
|
|
154
|
+
nonCaptureEvent={true}
|
|
155
|
+
>
|
|
156
|
+
<Icon scale={0.8} data={faMagicWandSparkles} />
|
|
157
|
+
</Button>
|
|
158
|
+
{:else}
|
|
159
|
+
<Button
|
|
160
|
+
title="Generate code from prompt"
|
|
161
|
+
btnClasses="!font-medium text-secondary"
|
|
162
|
+
size="xs"
|
|
163
|
+
color="light"
|
|
164
|
+
spacingSize="md"
|
|
165
|
+
bind:element={button}
|
|
166
|
+
startIcon={{ icon: faMagicWandSparkles }}
|
|
167
|
+
{iconOnly}
|
|
168
|
+
loading={genLoading}
|
|
169
|
+
nonCaptureEvent={true}
|
|
170
|
+
>
|
|
171
|
+
{isEdit ? 'AI Edit' : 'AI Gen'}
|
|
172
|
+
</Button>
|
|
173
|
+
{/if}
|
|
174
|
+
</svelte:fragment>
|
|
175
|
+
<label class="block text-primary w-96">
|
|
176
|
+
<div class="flex w-full">
|
|
177
|
+
<input
|
|
178
|
+
type="text"
|
|
179
|
+
bind:this={input}
|
|
180
|
+
bind:value={funcDesc}
|
|
181
|
+
class="!w-auto grow"
|
|
182
|
+
on:keypress={({ key }) => {
|
|
183
|
+
if (key === 'Enter' && funcDesc.length > 0) {
|
|
184
|
+
close(input || null)
|
|
185
|
+
onGenerate()
|
|
186
|
+
}
|
|
187
|
+
}}
|
|
188
|
+
placeholder={isEdit
|
|
189
|
+
? 'Describe the changes you want'
|
|
190
|
+
: 'Describe what the script should do'}
|
|
191
|
+
/>
|
|
192
|
+
<Button
|
|
193
|
+
size="xs"
|
|
194
|
+
color="blue"
|
|
195
|
+
buttonType="button"
|
|
196
|
+
btnClasses="!p-1 !w-[38px] !ml-2"
|
|
197
|
+
aria-label="Generate"
|
|
198
|
+
on:click={() => {
|
|
199
|
+
close(input || null)
|
|
200
|
+
onGenerate()
|
|
201
|
+
}}
|
|
202
|
+
disabled={funcDesc.length <= 0}
|
|
203
|
+
>
|
|
204
|
+
<Icon data={faMagicWandSparkles} />
|
|
205
|
+
</Button>
|
|
206
|
+
</div>
|
|
207
|
+
{#if lang === 'postgresql' && $dbSchema}
|
|
208
|
+
<p class="text-sm mt-2">
|
|
209
|
+
Will take into account the DB schema
|
|
210
|
+
<Tooltip>
|
|
211
|
+
In order to better generate the script, we pass the selected DB schema to GPT-4.
|
|
212
|
+
</Tooltip>
|
|
213
|
+
</p>
|
|
214
|
+
{/if}
|
|
215
|
+
</label>
|
|
216
|
+
</Popup>
|
|
217
|
+
{/if}
|
|
218
|
+
{/if}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
import type { SupportedLanguage } from '../../common';
|
|
3
|
+
import type Editor from '../Editor.svelte';
|
|
4
|
+
import type DiffEditor from '../DiffEditor.svelte';
|
|
5
|
+
import type SimpleEditor from '../SimpleEditor.svelte';
|
|
6
|
+
declare const __propDef: {
|
|
7
|
+
props: {
|
|
8
|
+
iconOnly?: boolean | undefined;
|
|
9
|
+
lang: SupportedLanguage | 'frontend';
|
|
10
|
+
editor: Editor | SimpleEditor | undefined;
|
|
11
|
+
diffEditor: DiffEditor | undefined;
|
|
12
|
+
inlineScript?: boolean | undefined;
|
|
13
|
+
};
|
|
14
|
+
events: {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
};
|
|
17
|
+
slots: {};
|
|
18
|
+
};
|
|
19
|
+
export type ScriptGenProps = typeof __propDef.props;
|
|
20
|
+
export type ScriptGenEvents = typeof __propDef.events;
|
|
21
|
+
export type ScriptGenSlots = typeof __propDef.slots;
|
|
22
|
+
export default class ScriptGen extends SvelteComponentTyped<ScriptGenProps, ScriptGenEvents, ScriptGenSlots> {
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ScriptGen } from './ScriptGen.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ScriptGen } from './ScriptGen.svelte';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Script } from '../../gen';
|
|
2
|
+
export declare const SUPPORTED_LANGUAGES: Set<string>;
|
|
3
|
+
interface BaseOptions {
|
|
4
|
+
language: Script.language | 'frontend';
|
|
5
|
+
dbSchema?: object;
|
|
6
|
+
}
|
|
7
|
+
interface ScriptGenerationOptions extends BaseOptions {
|
|
8
|
+
description: string;
|
|
9
|
+
dbSchema?: object;
|
|
10
|
+
}
|
|
11
|
+
interface EditScriptOptions extends ScriptGenerationOptions {
|
|
12
|
+
selectedCode: string;
|
|
13
|
+
}
|
|
14
|
+
interface FixScriptOpions extends BaseOptions {
|
|
15
|
+
code: string;
|
|
16
|
+
error: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function generateScript(scriptOptions: ScriptGenerationOptions): Promise<{
|
|
19
|
+
code: string;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function editScript(scriptOptions: EditScriptOptions): Promise<{
|
|
22
|
+
code: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function fixScript(scriptOptions: FixScriptOpions): Promise<{
|
|
25
|
+
code: string;
|
|
26
|
+
explanation: string;
|
|
27
|
+
}>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { OpenAI } from 'openai';
|
|
2
|
+
import { OpenAPI } from '../../gen/core/OpenAPI';
|
|
3
|
+
import { ResourceService, Script, WorkspaceService } from '../../gen';
|
|
4
|
+
import { existsOpenaiResourcePath, workspaceStore } from '../../stores';
|
|
5
|
+
import { formatResourceTypes } from './utils';
|
|
6
|
+
import { EDIT_CONFIG, FIX_CONFIG, GEN_CONFIG } from './prompts';
|
|
7
|
+
const WARNING_MSG = 'WARNING: this code was generated by OpenAI, it might not be accurate. Use at your own risk.';
|
|
8
|
+
const COMMENT_TYPES = {
|
|
9
|
+
[Script.language.PYTHON3]: '#',
|
|
10
|
+
[Script.language.DENO]: '//',
|
|
11
|
+
[Script.language.GO]: '//',
|
|
12
|
+
[Script.language.BASH]: '#',
|
|
13
|
+
[Script.language.POSTGRESQL]: '--',
|
|
14
|
+
[Script.language.MYSQL]: '--',
|
|
15
|
+
[Script.language.NATIVETS]: '//',
|
|
16
|
+
[Script.language.BUN]: '//',
|
|
17
|
+
frontend: '//'
|
|
18
|
+
};
|
|
19
|
+
export const SUPPORTED_LANGUAGES = new Set(Object.keys(GEN_CONFIG.prompts));
|
|
20
|
+
let workspace = undefined;
|
|
21
|
+
workspaceStore.subscribe(async (value) => {
|
|
22
|
+
workspace = value;
|
|
23
|
+
if (workspace) {
|
|
24
|
+
try {
|
|
25
|
+
existsOpenaiResourcePath.set(await WorkspaceService.existsOpenaiResourcePath({ workspace }));
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
existsOpenaiResourcePath.set(false);
|
|
29
|
+
console.error('Could not get if OpenAI resource exists');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
async function addResourceTypes(scriptOptions, workspace, prompt) {
|
|
34
|
+
if (['deno', 'bun', 'nativets'].includes(scriptOptions.language)) {
|
|
35
|
+
const resourceTypes = await ResourceService.listResourceType({ workspace });
|
|
36
|
+
const resourceTypesText = formatResourceTypes(resourceTypes, 'typescript');
|
|
37
|
+
prompt = prompt.replace('{resourceTypes}', resourceTypesText);
|
|
38
|
+
}
|
|
39
|
+
else if (scriptOptions.language === 'python3') {
|
|
40
|
+
const resourceTypes = await ResourceService.listResourceType({ workspace });
|
|
41
|
+
const resourceTypesText = formatResourceTypes(resourceTypes, 'python3');
|
|
42
|
+
prompt = prompt.replace('{resourceTypes}', resourceTypesText);
|
|
43
|
+
}
|
|
44
|
+
return prompt;
|
|
45
|
+
}
|
|
46
|
+
function addDBSChema(scriptOptions, prompt) {
|
|
47
|
+
if (['mysql', 'postgresql'].includes(scriptOptions.language) && scriptOptions.dbSchema) {
|
|
48
|
+
const { dbSchema } = scriptOptions;
|
|
49
|
+
const smallerSchema = {};
|
|
50
|
+
for (const schemaKey in dbSchema) {
|
|
51
|
+
for (const tableKey in dbSchema[schemaKey]) {
|
|
52
|
+
smallerSchema[tableKey] = [];
|
|
53
|
+
for (const colKey in dbSchema[schemaKey][tableKey]) {
|
|
54
|
+
const col = dbSchema[schemaKey][tableKey][colKey];
|
|
55
|
+
const p = [colKey, col.type, col.required];
|
|
56
|
+
if (col.default) {
|
|
57
|
+
p.push(col.default);
|
|
58
|
+
}
|
|
59
|
+
smallerSchema[tableKey].push(p);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
prompt =
|
|
64
|
+
prompt +
|
|
65
|
+
"\nHere's the database schema, each column is in the format [name, type, required, default?]: " +
|
|
66
|
+
JSON.stringify(smallerSchema);
|
|
67
|
+
}
|
|
68
|
+
return prompt;
|
|
69
|
+
}
|
|
70
|
+
export async function generateScript(scriptOptions) {
|
|
71
|
+
if (!workspace) {
|
|
72
|
+
throw new Error('No workspace selected');
|
|
73
|
+
}
|
|
74
|
+
const baseURL = `${location.origin}${OpenAPI.BASE}/w/${workspace}/openai/proxy`;
|
|
75
|
+
const openai = new OpenAI({
|
|
76
|
+
baseURL,
|
|
77
|
+
apiKey: 'fakekey',
|
|
78
|
+
defaultHeaders: {
|
|
79
|
+
Authorization: ''
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
let prompt = GEN_CONFIG.prompts[scriptOptions.language].prompt.replace('{description}', scriptOptions.description);
|
|
83
|
+
prompt = await addResourceTypes(scriptOptions, workspace, prompt);
|
|
84
|
+
prompt = addDBSChema(scriptOptions, prompt);
|
|
85
|
+
const completion = await openai.chat.completions.create({
|
|
86
|
+
model: 'gpt-4',
|
|
87
|
+
max_tokens: 2048,
|
|
88
|
+
messages: [
|
|
89
|
+
{
|
|
90
|
+
role: 'system',
|
|
91
|
+
content: GEN_CONFIG.system
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
role: 'user',
|
|
95
|
+
content: prompt
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
});
|
|
99
|
+
const result = completion.choices[0]?.message?.content;
|
|
100
|
+
if (!result) {
|
|
101
|
+
throw new Error('No result from OpenAI');
|
|
102
|
+
}
|
|
103
|
+
const match = result.match(/```[a-zA-z]+\n([\s\S]*?)\n```/);
|
|
104
|
+
if (!match || match.length < 2) {
|
|
105
|
+
throw new Error('No code block found');
|
|
106
|
+
}
|
|
107
|
+
const code = match[1];
|
|
108
|
+
if (scriptOptions.language == Script.language.GO) {
|
|
109
|
+
const warning = COMMENT_TYPES[scriptOptions.language] + ' ' + WARNING_MSG + '\n';
|
|
110
|
+
return { code: code.trim().replace('package inner\n', 'package inner\n' + warning) };
|
|
111
|
+
}
|
|
112
|
+
else if (scriptOptions.language == Script.language.BASH) {
|
|
113
|
+
return {
|
|
114
|
+
code: '# shellcheck shell=bash\n' +
|
|
115
|
+
COMMENT_TYPES[scriptOptions.language] +
|
|
116
|
+
' ' +
|
|
117
|
+
WARNING_MSG +
|
|
118
|
+
'\n\n' +
|
|
119
|
+
code.trim()
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
return {
|
|
124
|
+
code: COMMENT_TYPES[scriptOptions.language] + ' ' + WARNING_MSG + '\n\n' + code.trim()
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export async function editScript(scriptOptions) {
|
|
129
|
+
if (!workspace) {
|
|
130
|
+
throw new Error('No workspace selected');
|
|
131
|
+
}
|
|
132
|
+
const baseURL = `${location.origin}${OpenAPI.BASE}/w/${workspace}/openai/proxy`;
|
|
133
|
+
const openai = new OpenAI({
|
|
134
|
+
baseURL,
|
|
135
|
+
apiKey: 'fakekey',
|
|
136
|
+
defaultHeaders: {
|
|
137
|
+
Authorization: ''
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
let prompt = EDIT_CONFIG.prompts[scriptOptions.language].prompt
|
|
141
|
+
.replace('{code}', scriptOptions.selectedCode)
|
|
142
|
+
.replace('{description}', scriptOptions.description);
|
|
143
|
+
prompt = await addResourceTypes(scriptOptions, workspace, prompt);
|
|
144
|
+
prompt = addDBSChema(scriptOptions, prompt);
|
|
145
|
+
const completion = await openai.chat.completions.create({
|
|
146
|
+
model: 'gpt-4',
|
|
147
|
+
max_tokens: 2048,
|
|
148
|
+
messages: [
|
|
149
|
+
{
|
|
150
|
+
role: 'system',
|
|
151
|
+
content: EDIT_CONFIG.system
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
role: 'user',
|
|
155
|
+
content: prompt
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
temperature: 0.5
|
|
159
|
+
});
|
|
160
|
+
const result = completion.choices[0]?.message?.content;
|
|
161
|
+
if (!result) {
|
|
162
|
+
throw new Error('No result from OpenAI');
|
|
163
|
+
}
|
|
164
|
+
const match = result.match(/```[a-zA-z]+\n([\s\S]*?)\n```/);
|
|
165
|
+
if (!match || match.length < 2) {
|
|
166
|
+
throw new Error('No code block found');
|
|
167
|
+
}
|
|
168
|
+
const code = match[1];
|
|
169
|
+
return { code };
|
|
170
|
+
}
|
|
171
|
+
export async function fixScript(scriptOptions) {
|
|
172
|
+
if (!workspace) {
|
|
173
|
+
throw new Error('No workspace selected');
|
|
174
|
+
}
|
|
175
|
+
const baseURL = `${location.origin}${OpenAPI.BASE}/w/${workspace}/openai/proxy`;
|
|
176
|
+
const openai = new OpenAI({
|
|
177
|
+
baseURL,
|
|
178
|
+
apiKey: 'fakekey',
|
|
179
|
+
defaultHeaders: {
|
|
180
|
+
Authorization: ''
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
let prompt = FIX_CONFIG.prompts[scriptOptions.language].prompt
|
|
184
|
+
.replace('{code}', scriptOptions.code)
|
|
185
|
+
.replace('{error}', scriptOptions.error);
|
|
186
|
+
prompt = await addResourceTypes(scriptOptions, workspace, prompt);
|
|
187
|
+
prompt = addDBSChema(scriptOptions, prompt);
|
|
188
|
+
const completion = await openai.chat.completions.create({
|
|
189
|
+
model: 'gpt-4',
|
|
190
|
+
max_tokens: 2048,
|
|
191
|
+
messages: [
|
|
192
|
+
{
|
|
193
|
+
role: 'system',
|
|
194
|
+
content: FIX_CONFIG.system
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
role: 'user',
|
|
198
|
+
content: prompt
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
});
|
|
202
|
+
const result = completion.choices[0]?.message?.content;
|
|
203
|
+
if (!result) {
|
|
204
|
+
throw new Error('No result from OpenAI');
|
|
205
|
+
}
|
|
206
|
+
const match = result.match(/```[a-zA-z]+\n([\s\S]*?)\n```/);
|
|
207
|
+
if (!match || match.length < 2) {
|
|
208
|
+
throw new Error('No code block found');
|
|
209
|
+
}
|
|
210
|
+
const explanationMatch = result.match(/explanation: "(.+)"/i);
|
|
211
|
+
let explanation = '';
|
|
212
|
+
if (explanationMatch && explanationMatch.length > 1) {
|
|
213
|
+
explanation = explanationMatch[1];
|
|
214
|
+
}
|
|
215
|
+
const code = match[1];
|
|
216
|
+
return { code, explanation };
|
|
217
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
system: |-
|
|
2
|
+
You write code as instructed by the user. Only output code. Wrap the code like that:
|
|
3
|
+
```language
|
|
4
|
+
{code}
|
|
5
|
+
```
|
|
6
|
+
Put explanations directly in the code as comments.
|
|
7
|
+
prompts:
|
|
8
|
+
python3:
|
|
9
|
+
prompt: |-
|
|
10
|
+
Here's my python3 code:
|
|
11
|
+
```python
|
|
12
|
+
{code}
|
|
13
|
+
```
|
|
14
|
+
Additional information: We have to export a "main" function and specify the parameter types but do not call it.
|
|
15
|
+
You have access to the following resource types, if you need them, you have to define the TypedDict exactly as specified (class name has to be IN LOWERCASE) and add them as parameters: {resourceTypes}
|
|
16
|
+
Only use the ones you need. If the TypedDict name conflicts with the imported object, rename the imported object NOT THE TYPE.
|
|
17
|
+
My instructions: {description}
|
|
18
|
+
deno:
|
|
19
|
+
prompt: |-
|
|
20
|
+
Here's my typescript code in a deno running environement:
|
|
21
|
+
```typescript
|
|
22
|
+
{code}
|
|
23
|
+
```
|
|
24
|
+
Additional information: We have to export a "main" function like this: "export async function main(...)" and specify the parameter types but do not call it.
|
|
25
|
+
You have access to the following resource types, if you need them, you have to define the type exactly as specified and add them as parameters: {resourceTypes}
|
|
26
|
+
Only use the ones you need. If the type name conflicts with the imported object, rename the imported object NOT THE TYPE.
|
|
27
|
+
My instructions: {description}
|
|
28
|
+
go:
|
|
29
|
+
prompt: |-
|
|
30
|
+
Here's my go code:
|
|
31
|
+
```go
|
|
32
|
+
{code}
|
|
33
|
+
```
|
|
34
|
+
Additional information: We have to export a "main" function. Import the packages you need. The return type of the function has to be ({return_type}, error). The file package has to be "inner"
|
|
35
|
+
My instructions: {description}
|
|
36
|
+
bash:
|
|
37
|
+
prompt: |-
|
|
38
|
+
Here's my bash code:
|
|
39
|
+
```shell
|
|
40
|
+
{code}
|
|
41
|
+
```
|
|
42
|
+
Additional information: Do not include "#!/bin/bash". Arguments are always string and can only be obtained with "var1="$1"", "var2="$2"", etc... You do not need to check if the arguments are present.
|
|
43
|
+
My instructions: {description}
|
|
44
|
+
postgresql:
|
|
45
|
+
prompt: |-
|
|
46
|
+
Here's my PostgreSQL code:
|
|
47
|
+
```sql
|
|
48
|
+
{code}
|
|
49
|
+
```
|
|
50
|
+
Additional information: Arguments can be obtained directly in the statement with `$1::{type}`, `$2::{type}`, etc... Name the parameters by adding comments before the command like that: `-- $1 name1` or `-- $2 name = default` (one per row, do not include the type)
|
|
51
|
+
My instructions: {description}
|
|
52
|
+
mysql:
|
|
53
|
+
prompt: |-
|
|
54
|
+
Here's my MySQL code:
|
|
55
|
+
```sql
|
|
56
|
+
{code}
|
|
57
|
+
```
|
|
58
|
+
Additional information: Arguments can be obtained directly in the statement with ?. Name the parameters by adding comments before the command like that: -- ? name1 ({type}) (one per row)
|
|
59
|
+
My instructions: {description}
|
|
60
|
+
nativets:
|
|
61
|
+
prompt: |-
|
|
62
|
+
Here's my typescript code:
|
|
63
|
+
```typescript
|
|
64
|
+
{code}
|
|
65
|
+
```
|
|
66
|
+
Additional information: We have to export a "main" function like this: "export async function main(...)" and specify the parameter types but do not call it.
|
|
67
|
+
You should use fetch and are not allowed to import any libraries.
|
|
68
|
+
You have access to the following resource types, if you need them, you have to define the type exactly as specified and add them as parameters: {resourceTypes}
|
|
69
|
+
Only use the ones you need. If the type name conflicts with the imported object, rename the imported object NOT THE TYPE.
|
|
70
|
+
My instructions: {description}
|
|
71
|
+
bun:
|
|
72
|
+
prompt: |-
|
|
73
|
+
Here's my typescript code in a node.js running environment:
|
|
74
|
+
```typescript
|
|
75
|
+
{code}
|
|
76
|
+
```
|
|
77
|
+
Additional information: We have to export a "main" function like this: "export async function main(...)" and specify the parameter types but do not call it.
|
|
78
|
+
You have access to the following resource types, if you need them, you have to define the type exactly as specified and add them as parameters: {resourceTypes}
|
|
79
|
+
Only use the ones you need. If the type name conflicts with the imported object, rename the imported object NOT THE TYPE.
|
|
80
|
+
My instructions: {description}
|
|
81
|
+
frontend:
|
|
82
|
+
prompt: |-
|
|
83
|
+
Here's my client-side javascript code:
|
|
84
|
+
```typescript
|
|
85
|
+
{code}
|
|
86
|
+
```
|
|
87
|
+
Additional information: You can access the context object with the ctx global variable.
|
|
88
|
+
The app state is a store that can be used to store data. You can access and update the state object with the state global variable like this: state.foo = 'bar'
|
|
89
|
+
You can use the goto function to navigate to a specific URL: goto(path: string, newTab?: boolean)
|
|
90
|
+
Use the setTab function to manually set the tab of a Tab component: setTab(id: string, index: string)
|
|
91
|
+
Use the recompute function to recompute a component: recompute(id: string)
|
|
92
|
+
Use the getAgGrid function to get the ag-grid instance of a table: getAgGrid(id: string)
|
|
93
|
+
The setValue function is meant to set or force the value of a component: setValue(id: string, value: any).
|
|
94
|
+
My instructions: {description}
|