This commit is contained in:
crschnick
2026-03-14 20:31:26 +00:00
parent 3bb30745d0
commit 3add2eac21
66 changed files with 74 additions and 241 deletions

View File

@@ -1,12 +1,8 @@
package io.xpipe.app.action;
import io.xpipe.app.ext.DataStore;
import io.xpipe.app.ext.DataStoreProvider;
import io.xpipe.app.ext.DataStoreProviders;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntry;
import java.net.URI;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

View File

@@ -2,7 +2,6 @@ package io.xpipe.app.beacon;
import io.xpipe.app.beacon.mcp.AppMcpServer;
import io.xpipe.app.core.AppLocalTemp;
import io.xpipe.app.core.AppProperties;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.issue.TrackEvent;
import io.xpipe.app.prefs.AppPrefs;

View File

@@ -22,7 +22,6 @@ import javafx.scene.input.KeyEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Region;
import javafx.scene.layout.StackPane;
import org.bouncycastle.math.raw.Mod;
import java.time.Duration;
import java.util.ArrayList;

View File

@@ -27,7 +27,6 @@ import javafx.scene.control.ListCell;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import lombok.NonNull;
import lombok.Setter;
import lombok.Value;
import org.kordamp.ikonli.javafx.FontIcon;

View File

@@ -2,7 +2,6 @@ package io.xpipe.app.comp.base;
import io.xpipe.app.comp.BaseRegionBuilder;
import io.xpipe.app.comp.SimpleRegionBuilder;
import io.xpipe.app.issue.TrackEvent;
import io.xpipe.app.platform.PlatformThread;
import javafx.application.Platform;

View File

@@ -1,7 +1,6 @@
package io.xpipe.app.core;
import io.xpipe.app.action.AbstractAction;
import io.xpipe.app.action.ActionProvider;
import io.xpipe.app.action.LauncherUrlProvider;
import io.xpipe.app.browser.action.impl.OpenDirectoryActionProvider;
import io.xpipe.app.core.mode.AppOperationMode;
@@ -86,7 +85,7 @@ public class AppOpenArguments {
if (found.isPresent()) {
AbstractAction a;
try {
a = ((LauncherUrlProvider) found.get()).createAction(uri);
a = found.get().createAction(uri);
} catch (Exception e) {
ErrorEventFactory.fromThrowable(e).omit().expected().handle();
return List.of();

View File

@@ -9,10 +9,6 @@ import io.xpipe.app.platform.PlatformThread;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.core.OsType;
import javafx.animation.Interpolator;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.application.ColorScheme;
import javafx.application.Platform;
@@ -21,12 +17,8 @@ import javafx.beans.value.ObservableValue;
import javafx.collections.MapChangeListener;
import javafx.css.PseudoClass;
import javafx.scene.Node;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Duration;
import atlantafx.base.theme.*;
import lombok.AllArgsConstructor;

View File

@@ -4,7 +4,6 @@ import io.xpipe.app.comp.base.TextFieldComp;
import io.xpipe.app.core.AppSystemInfo;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.process.CommandBuilder;
import io.xpipe.app.process.LocalShell;
import io.xpipe.app.process.ShellControl;
import io.xpipe.app.util.LicenseProvider;
import io.xpipe.core.FilePath;

View File

@@ -56,7 +56,7 @@ public class OtherExternalAgentStrategy implements SshIdentityAgentStrategy {
}
@Override
public FilePath determinetAgentSocketLocation(ShellControl parent) throws Exception {
public FilePath determinetAgentSocketLocation(ShellControl parent) {
return null;
}

View File

@@ -5,7 +5,6 @@ import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.process.CommandBuilder;
import io.xpipe.app.process.LocalShell;
import io.xpipe.app.process.ShellControl;
import io.xpipe.app.util.LocalExec;
import io.xpipe.core.FilePath;
@@ -96,7 +95,7 @@ public class PageantStrategy implements SshIdentityAgentStrategy {
}
@Override
public FilePath determinetAgentSocketLocation(ShellControl sc) throws Exception {
public FilePath determinetAgentSocketLocation(ShellControl sc) {
if (sc.isLocal() && sc.getOsType() == OsType.WINDOWS) {
return FilePath.of(getPageantWindowsPipe());
}

View File

@@ -7,7 +7,6 @@ import io.xpipe.app.comp.base.LabelComp;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.ext.ValidationException;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.platform.Validator;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.process.CommandBuilder;
import io.xpipe.app.process.ShellControl;
@@ -18,8 +17,6 @@ import io.xpipe.core.FilePath;
import io.xpipe.core.KeyValue;
import javafx.beans.binding.Bindings;
import javafx.beans.property.Property;
import javafx.beans.property.ReadOnlyBooleanWrapper;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
@@ -113,7 +110,7 @@ public class PasswordManagerAgentStrategy implements SshIdentityAgentStrategy {
}
@Override
public FilePath determinetAgentSocketLocation(ShellControl parent) throws Exception {
public FilePath determinetAgentSocketLocation(ShellControl parent) {
var config = getConfig();
return config != null ? FilePath.of(config.getDefaultSocketLocation()) : null;
}

View File

@@ -3,15 +3,11 @@ package io.xpipe.app.cred;
import io.xpipe.app.ext.ShellStore;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.process.CommandBuilder;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntryRef;
import lombok.Value;
import java.time.Instant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

View File

@@ -4,7 +4,6 @@ import atlantafx.base.controls.Popover;
import atlantafx.base.theme.Styles;
import io.xpipe.app.comp.SimpleRegionBuilder;
import io.xpipe.app.comp.base.ButtonComp;
import io.xpipe.app.comp.base.IconButtonComp;
import io.xpipe.app.comp.base.InputGroupComp;
import io.xpipe.app.comp.base.TextFieldComp;
import io.xpipe.app.core.AppI18n;
@@ -14,7 +13,6 @@ import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.ThreadHelper;
import javafx.application.Platform;
import javafx.beans.property.Property;
import javafx.beans.property.StringProperty;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;

View File

@@ -4,8 +4,6 @@ import atlantafx.base.controls.Popover;
import atlantafx.base.theme.Styles;
import io.xpipe.app.comp.SimpleRegionBuilder;
import io.xpipe.app.comp.base.ButtonComp;
import io.xpipe.app.comp.base.InputGroupComp;
import io.xpipe.app.comp.base.TextFieldComp;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.ext.ShellStore;
import io.xpipe.app.platform.LabelGraphic;
@@ -13,7 +11,6 @@ import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.ThreadHelper;
import javafx.application.Platform;
import javafx.beans.property.StringProperty;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
@@ -21,9 +18,6 @@ import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import org.kordamp.ikonli.javafx.FontIcon;
import java.util.List;
public class SshAgentTestComp extends SimpleRegionBuilder {

View File

@@ -1,20 +1,7 @@
package io.xpipe.app.cred;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.xpipe.app.ext.ValidationException;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.process.CommandBuilder;
import io.xpipe.app.process.OsFileSystem;
import io.xpipe.app.process.ShellControl;
import io.xpipe.app.secret.SecretNoneStrategy;
import io.xpipe.app.secret.SecretRetrievalStrategy;
import io.xpipe.core.FilePath;
import io.xpipe.core.KeyValue;
import io.xpipe.core.OsType;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
public interface SshIdentityAgentStrategy extends SshIdentityStrategy {

View File

@@ -1,6 +1,5 @@
package io.xpipe.app.ext;
import io.xpipe.app.process.ShellStoreState;
import lombok.AccessLevel;
import lombok.EqualsAndHashCode;
import lombok.Getter;

View File

@@ -11,7 +11,6 @@ import io.xpipe.app.platform.LabelGraphic;
import io.xpipe.app.platform.MenuHelper;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreCategoryConfig;
import io.xpipe.app.storage.DataStoreColor;
import io.xpipe.app.util.DesktopHelper;
import io.xpipe.core.OsType;
@@ -31,17 +30,13 @@ import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseButton;
import javafx.scene.layout.Background;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Region;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import lombok.EqualsAndHashCode;
import lombok.Value;
import org.kordamp.ikonli.javafx.FontIcon;
import java.awt.*;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

View File

@@ -2,7 +2,6 @@ package io.xpipe.app.hub.comp;
import io.xpipe.app.comp.RegionBuilder;
import io.xpipe.app.comp.SimpleRegionBuilder;
import io.xpipe.app.comp.base.ChoiceComp;
import io.xpipe.app.comp.base.ModalButton;
import io.xpipe.app.comp.base.ModalOverlay;
import io.xpipe.app.comp.base.ToggleGroupComp;
@@ -11,20 +10,17 @@ import io.xpipe.app.ext.DataStore;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreCategoryConfig;
import io.xpipe.app.storage.DataStoreColor;
import io.xpipe.app.storage.DataStoreEntry;
import javafx.beans.property.Property;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.value.ObservableValue;
import javafx.scene.control.ListCell;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.Region;
import lombok.AllArgsConstructor;
import java.util.LinkedHashMap;
import java.util.function.Supplier;
@AllArgsConstructor
public class StoreCategoryConfigComp extends SimpleRegionBuilder {

View File

@@ -1,15 +1,9 @@
package io.xpipe.app.hub.comp;
import atlantafx.base.theme.Styles;
import io.xpipe.app.comp.BaseRegionBuilder;
import io.xpipe.app.comp.SimpleRegionBuilder;
import io.xpipe.app.comp.base.IconButtonComp;
import io.xpipe.app.comp.base.InputGroupComp;
import io.xpipe.app.util.ObservableSubscriber;
import javafx.scene.layout.Region;
import java.util.List;
public class StoreEntryFilterCompBar extends SimpleRegionBuilder {
private final ObservableSubscriber filterTrigger;

View File

@@ -1,6 +1,5 @@
package io.xpipe.app.hub.comp;
import atlantafx.base.controls.Spacer;
import io.xpipe.app.comp.BaseRegionBuilder;
import io.xpipe.app.comp.RegionBuilder;
import io.xpipe.app.comp.SimpleRegionBuilder;
@@ -14,9 +13,7 @@ import io.xpipe.app.platform.MenuHelper;
import io.xpipe.app.util.ObservableSubscriber;
import io.xpipe.core.OsType;
import javafx.application.Platform;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleStringProperty;
import javafx.css.PseudoClass;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
@@ -24,7 +21,6 @@ import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.control.Separator;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import javafx.scene.text.TextAlignment;

View File

@@ -10,7 +10,6 @@ import io.xpipe.app.comp.base.IconButtonComp;
import io.xpipe.app.comp.base.InputGroupComp;
import io.xpipe.app.core.AppFontSizes;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.core.AppOpenArguments;
import io.xpipe.app.platform.PlatformThread;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.util.ObservableSubscriber;
@@ -18,11 +17,8 @@ import javafx.beans.binding.Bindings;
import javafx.geometry.Bounds;
import javafx.scene.Cursor;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Region;
import javafx.stage.PopupWindow;
import lombok.val;
import java.util.List;
import java.util.Objects;

View File

@@ -2,7 +2,6 @@ package io.xpipe.app.hub.comp;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.type.TypeFactory;
import io.xpipe.app.action.AbstractAction;
import io.xpipe.app.action.LauncherUrlProvider;
import io.xpipe.app.action.QuickConnectProvider;
import io.xpipe.app.core.AppCache;
@@ -13,7 +12,6 @@ import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.beans.value.ObservableBooleanValue;
import javafx.beans.value.ObservableStringValue;
import javafx.collections.ObservableList;
import lombok.Getter;
import java.net.URI;

View File

@@ -1,7 +1,6 @@
package io.xpipe.app.hub.comp;
import atlantafx.base.theme.Styles;
import io.xpipe.app.action.LauncherUrlProvider;
import io.xpipe.app.action.QuickConnectProvider;
import io.xpipe.app.comp.RegionBuilder;
import io.xpipe.app.comp.SimpleRegionBuilder;
@@ -39,20 +38,21 @@ public class StoreFilterStateComp extends SimpleRegionBuilder {
var searches = state.getRecentSearches().getList();
var searchesEmpty = Bindings.isEmpty(searches);
var searchesList = new ListBoxViewComp<String>(searches, searches, s -> createButton(s, s), false);
var searchesList = new ListBoxViewComp<>(searches, searches, s -> createButton(s, s), false);
var searchesPlaceholders = FXCollections.observableList(List.of(AppI18n.get("recentSearchesDescriptionNames"),
AppI18n.get("recentSearchesDescriptionTags"), AppI18n.get("recentSearchesDescriptionTypes")));
var searchesEmptyList = new ListBoxViewComp<String>(searchesPlaceholders, searchesPlaceholders, s -> createButton(s, null), false);
var searchesEmptyList = new ListBoxViewComp<>(searchesPlaceholders, searchesPlaceholders, s -> createButton(s, null), false);
var quickConnections = state.getRecentQuickConnections().getList();
var quickConnectionsEmpty = Bindings.isEmpty(quickConnections);
var quickConnectionsList = new ListBoxViewComp<String>(quickConnections, quickConnections, s -> createButton(s, s), false);
var quickConnectionsList = new ListBoxViewComp<>(quickConnections, quickConnections, s -> createButton(s, s), false);
var quickConnectionsPlaceholders = FXCollections.observableArrayList(QuickConnectProvider.getAll().stream()
.map(p -> p.getPlaceholder())
.toList());
var quickConnectionsEmptyList = new ListBoxViewComp<String>(quickConnectionsPlaceholders, quickConnectionsPlaceholders, s -> createButton(s, s.split(" ")[0] + " "), false);
var quickConnectionsEmptyList = new ListBoxViewComp<>(quickConnectionsPlaceholders, quickConnectionsPlaceholders,
s -> createButton(s, s.split(" ")[0] + " "), false);
var options = new OptionsBuilder()
.addComp(new LabelComp(AppI18n.observable("recentSearches")))

View File

@@ -8,7 +8,6 @@ import io.xpipe.app.icon.SystemIcon;
import io.xpipe.app.icon.SystemIconManager;
import io.xpipe.app.platform.LabelGraphic;
import io.xpipe.app.platform.PlatformThread;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.util.BooleanScope;
import io.xpipe.app.util.ThreadHelper;
@@ -27,7 +26,6 @@ import lombok.Getter;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static atlantafx.base.theme.Styles.TEXT_SMALL;

View File

@@ -4,7 +4,6 @@ import io.xpipe.app.comp.BaseRegionBuilder;
import io.xpipe.app.comp.RegionBuilder;
import io.xpipe.app.comp.SimpleRegionBuilder;
import io.xpipe.app.comp.base.*;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.ext.DataStore;
import io.xpipe.app.storage.DataStoreEntryRef;

View File

@@ -3,12 +3,9 @@ package io.xpipe.app.hub.comp;
import io.xpipe.app.comp.*;
import io.xpipe.app.comp.base.*;
import io.xpipe.app.core.AppFontSizes;
import io.xpipe.app.platform.BindingsHelper;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.util.FileOpener;
import javafx.application.Platform;
import javafx.beans.property.Property;
import javafx.beans.property.ReadOnlyStringWrapper;
import javafx.beans.property.SimpleStringProperty;
import javafx.scene.control.Button;

View File

@@ -2,34 +2,13 @@ package io.xpipe.app.hub.comp;
import io.xpipe.app.action.QuickConnectProvider;
import io.xpipe.app.core.AppCache;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.core.mode.AppOperationMode;
import io.xpipe.app.ext.*;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.platform.DerivedObservableList;
import io.xpipe.app.platform.PlatformThread;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreCategory;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.storage.StorageListener;
import io.xpipe.app.util.GlobalTimer;
import io.xpipe.app.util.ThreadHelper;
import javafx.application.Platform;
import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
import javafx.beans.property.*;
import javafx.beans.value.ObservableIntegerValue;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import java.time.Duration;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class StoreQuickConnect {

View File

@@ -18,7 +18,6 @@ import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Predicate;
@Getter

View File

@@ -20,7 +20,6 @@ import javafx.scene.layout.VBox;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.function.Function;

View File

@@ -75,7 +75,6 @@ public class OptionsBuilder {
private BaseRegionBuilder<?, ?> lastCompHeadReference;
private ObservableValue<String> lastNameReference;
private boolean focusFirstIncomplete = true;
private boolean focusEnabled = true;
private final BooleanProperty mappingUpdate = new SimpleBooleanProperty();

View File

@@ -12,7 +12,6 @@ import javafx.scene.text.Font;
import lombok.Getter;
import lombok.Setter;
import lombok.SneakyThrows;
import org.apache.commons.lang3.SystemUtils;
import java.awt.*;
import java.util.concurrent.CountDownLatch;

View File

@@ -15,7 +15,6 @@ import javafx.geometry.Pos;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.Region;
import atlantafx.base.theme.Styles;
import org.kordamp.ikonli.javafx.FontIcon;
import java.time.Duration;

View File

@@ -1,31 +1,20 @@
package io.xpipe.app.pwman;
import com.fasterxml.jackson.databind.JsonNode;
import io.xpipe.app.comp.base.ButtonComp;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.ext.ProcessControlProvider;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.platform.OptionsChoiceBuilder;
import io.xpipe.app.prefs.PasswordManagerTestComp;
import io.xpipe.app.process.*;
import io.xpipe.app.terminal.TerminalLaunch;
import io.xpipe.app.util.ThreadHelper;
import io.xpipe.core.JacksonMapper;
import com.fasterxml.jackson.annotation.JsonTypeName;
import javafx.application.Platform;
import javafx.beans.property.Property;
import javafx.beans.property.SimpleObjectProperty;
import javafx.geometry.Insets;
import javafx.scene.layout.Region;
import lombok.Builder;
import lombok.extern.jackson.Jacksonized;
import org.kordamp.ikonli.javafx.FontIcon;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
@JsonTypeName("dashlane")
@Builder

View File

@@ -1,6 +1,5 @@
package io.xpipe.app.pwman;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.databind.JsonNode;
@@ -14,9 +13,7 @@ import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.platform.OptionsChoiceBuilder;
import io.xpipe.app.prefs.PasswordManagerTestComp;
import io.xpipe.app.process.*;
import io.xpipe.app.secret.SecretQueryState;
import io.xpipe.app.terminal.TerminalLaunch;
import io.xpipe.app.util.AskpassAlert;
import io.xpipe.app.util.HttpHelper;
import io.xpipe.core.*;
import javafx.beans.property.Property;
@@ -26,15 +23,12 @@ import lombok.Builder;
import lombok.Getter;
import lombok.ToString;
import lombok.Value;
import lombok.experimental.NonFinal;
import lombok.extern.jackson.Jacksonized;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.*;
@Getter
@@ -114,7 +108,7 @@ public class HashicorpVaultPasswordManager implements PasswordManager {
InPlaceSecretValue token;
@Override
public String retrieveToken(HashicorpVaultPasswordManager pwman) throws Exception {
public String retrieveToken(HashicorpVaultPasswordManager pwman) {
if (token == null) {
return null;
}

View File

@@ -10,7 +10,6 @@ import io.xpipe.app.platform.BindingsHelper;
import io.xpipe.app.platform.MenuHelper;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.prefs.ExternalApplicationHelper;
import io.xpipe.app.process.LocalShell;
import io.xpipe.app.process.ShellControl;
import io.xpipe.app.process.ShellScript;
import io.xpipe.app.storage.DataStorage;
@@ -34,7 +33,7 @@ public class PasswordManagerCommand implements PasswordManager {
ShellScript script;
@Override
public boolean selectInitial() throws Exception {
public boolean selectInitial() {
return false;
}

View File

@@ -29,7 +29,7 @@ public interface PasswordManagerKeyStrategy {
@Value
@Builder
public class OptionsConfig {
class OptionsConfig {
boolean allowSocketChoice;
Path defaultSocketLocation;

View File

@@ -1,8 +1,6 @@
package io.xpipe.app.pwman;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.databind.JsonNode;
import io.xpipe.app.core.AppCache;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.core.AppSystemInfo;
import io.xpipe.app.ext.ProcessControlProvider;
@@ -12,21 +10,14 @@ import io.xpipe.app.platform.OptionsChoiceBuilder;
import io.xpipe.app.prefs.PasswordManagerTestComp;
import io.xpipe.app.process.*;
import io.xpipe.app.terminal.TerminalLaunch;
import io.xpipe.app.util.DocumentationLink;
import io.xpipe.app.util.ThreadHelper;
import io.xpipe.core.JacksonMapper;
import io.xpipe.core.OsType;
import javafx.beans.property.*;
import javafx.collections.FXCollections;
import lombok.Builder;
import lombok.Getter;
import lombok.extern.jackson.Jacksonized;
import java.nio.file.Path;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.SequencedMap;
import java.util.regex.Pattern;
@JsonTypeName("protonPass")
@Builder

View File

@@ -120,7 +120,7 @@ public class PsonoPasswordManager implements PasswordManager {
.sensitive();
var r = JacksonMapper.getDefault().readTree(cmd.readStdoutOrThrow());
var username = Optional.of(r.required("username")).filter(n -> !n.isNull()).map(JsonNode::textValue).orElse(null);
var password = Optional.of(r.required("password")).filter(n -> !n.isNull()).map(JsonNode::textValue).orElse(null);;
var password = Optional.of(r.required("password")).filter(n -> !n.isNull()).map(JsonNode::textValue).orElse(null);
return Result.of(Credentials.of(username, password), null);
} catch (Exception e) {
ErrorEventFactory.fromThrowable(e).handle();

View File

@@ -8,8 +8,6 @@ import io.xpipe.app.process.LocalShell;
import com.fasterxml.jackson.annotation.JsonTypeName;
import javafx.beans.property.Property;
import lombok.Builder;
import lombok.Getter;
import lombok.Value;
import lombok.extern.jackson.Jacksonized;
@JsonTypeName("windowsCredentialManager")
@@ -25,7 +23,7 @@ public class WindowsCredentialManager implements PasswordManager {
}
@Override
public boolean selectInitial() throws Exception {
public boolean selectInitial() {
return false;
}

View File

@@ -20,10 +20,7 @@ import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.collections.ListChangeListener;
import javafx.stage.Screen;
import lombok.Getter;
import org.kordamp.ikonli.Ikon;
import org.kordamp.ikonli.Ikonli;
import org.kordamp.ikonli.javafx.FontIcon;
import org.kordamp.ikonli.materialdesign2.MaterialDesignC;

View File

@@ -7,7 +7,6 @@ import io.xpipe.app.util.GlobalTimer;
import io.xpipe.app.util.Rect;
import io.xpipe.app.util.ThreadHelper;
import lombok.Getter;
import java.time.Duration;
import java.util.HashSet;

View File

@@ -7,8 +7,6 @@ import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.process.*;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.util.LicenseProvider;
import io.xpipe.app.util.LicenseRequiredException;
import io.xpipe.core.FilePath;
import io.xpipe.core.OsType;

View File

@@ -3,7 +3,6 @@ package io.xpipe.app.vnc;
import io.xpipe.app.ext.PrefsValue;
import io.xpipe.app.platform.ClipboardHelper;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.rdp.*;
import io.xpipe.core.OsType;
import com.fasterxml.jackson.annotation.JsonTypeInfo;

View File

@@ -11,7 +11,6 @@ import lombok.Value;
import lombok.experimental.SuperBuilder;
import lombok.extern.jackson.Jacksonized;
import java.util.Collections;
import java.util.List;
@Value

View File

@@ -8,7 +8,6 @@ import io.xpipe.app.hub.comp.SystemStateComp;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import java.util.List;

View File

@@ -1,20 +1,13 @@
package io.xpipe.ext.base.identity;
import com.fasterxml.jackson.annotation.JsonTypeName;
import io.xpipe.app.core.AppCache;
import io.xpipe.app.cred.SshIdentityStrategy;
import io.xpipe.app.cred.UsernameStrategy;
import io.xpipe.app.ext.DataStoreDependencies;
import io.xpipe.app.ext.InternalCacheDataStore;
import io.xpipe.app.ext.StatefulDataStore;
import io.xpipe.app.ext.ValidationException;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.secret.EncryptedValue;
import io.xpipe.app.secret.SecretRetrievalStrategy;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.Validators;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.Value;
@@ -81,7 +74,7 @@ public class MultiIdentityStore extends IdentityStore implements StatefulDataSto
}
@Override
public void checkComplete() throws Throwable {
public void checkComplete() {
getSelectedOrThrow();
}

View File

@@ -1,26 +1,15 @@
package io.xpipe.ext.base.identity;
import io.xpipe.app.cred.NoIdentityStrategy;
import io.xpipe.app.cred.SshIdentityStrategyChoiceConfig;
import io.xpipe.app.ext.DataStore;
import io.xpipe.app.ext.GuiDialog;
import io.xpipe.app.hub.comp.StoreListChoiceComp;
import io.xpipe.app.hub.comp.StoreViewState;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.platform.OptionsChoiceBuilder;
import io.xpipe.app.secret.EncryptedValue;
import io.xpipe.app.secret.SecretNoneStrategy;
import io.xpipe.app.secret.SecretRetrievalStrategy;
import io.xpipe.app.secret.SecretStrategyChoiceConfig;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreCategory;
import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.DocumentationLink;
import javafx.beans.property.Property;
import javafx.beans.property.SimpleListProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import java.util.ArrayList;

View File

@@ -6,7 +6,6 @@ import io.xpipe.app.hub.action.HubLeafProvider;
import io.xpipe.app.hub.action.HubMenuItemProvider;
import io.xpipe.app.hub.action.StoreActionCategory;
import io.xpipe.app.platform.LabelGraphic;
import io.xpipe.app.storage.DataStorage;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.ThreadHelper;
import javafx.beans.property.ReadOnlyStringWrapper;

View File

@@ -184,7 +184,7 @@ public class PasswordManagerIdentityStore extends IdentityStore
}
@Override
public List<KeyValue> configOptions(ShellControl sc) throws Exception {
public List<KeyValue> configOptions(ShellControl sc) {
var r = retrieve();
if (r == null || r.getSshKey() == null || r.getSshKey().getPrivateKey() == null) {
return List.of();

View File

@@ -2,13 +2,11 @@ package io.xpipe.ext.base.identity;
import io.xpipe.app.core.AppI18n;
import io.xpipe.app.ext.DataStore;
import io.xpipe.app.ext.DataStoreCreationCategory;
import io.xpipe.app.ext.GuiDialog;
import io.xpipe.app.hub.comp.StoreEntryWrapper;
import io.xpipe.app.platform.OptionsBuilder;
import io.xpipe.app.platform.OptionsChoiceBuilder;
import io.xpipe.app.platform.Validator;
import io.xpipe.app.prefs.AppPrefs;
import io.xpipe.app.prefs.VaultAuthentication;
import io.xpipe.app.secret.EncryptedValue;
import io.xpipe.app.secret.SecretNoneStrategy;

View File

@@ -81,7 +81,7 @@ public class ScriptStoreSetup {
FilePath dir;
@Override
public Optional<String> terminalContent(ShellControl shellControl) throws Exception {
public Optional<String> terminalContent(ShellControl shellControl) {
if (dir == null) {
dir = initScriptsDirectory(shellControl, finalBringFlattened);
}

View File

@@ -1,7 +1,6 @@
package io.xpipe.ext.base.service;
import io.xpipe.app.ext.DataStore;
import io.xpipe.app.ext.DataStoreDependencies;
import io.xpipe.app.ext.GroupStore;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.Validators;
@@ -13,8 +12,6 @@ import lombok.ToString;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;
import java.util.List;
@Getter
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
@SuperBuilder

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B

After

Width:  |  Height:  |  Size: 455 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

After

Width:  |  Height:  |  Size: 447 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 615 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 634 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 641 B

After

Width:  |  Height:  |  Size: 828 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

After

Width:  |  Height:  |  Size: 820 B

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,8 +1,6 @@
package io.xpipe.ext.system.incus;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.xpipe.app.ext.ContainerStoreState;
import io.xpipe.app.ext.NetworkContainerStoreState;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.process.*;
@@ -17,7 +15,6 @@ import lombok.Value;
import java.util.*;
import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.Collectors;
public class IncusCommandView extends CommandViewBase {

View File

@@ -4,7 +4,6 @@ import io.xpipe.app.comp.BaseRegionBuilder;
import io.xpipe.app.ext.ContainerStoreState;
import io.xpipe.app.ext.DataStore;
import io.xpipe.app.ext.GuiDialog;
import io.xpipe.app.ext.ShellStore;
import io.xpipe.app.hub.comp.*;
import io.xpipe.app.platform.BindingsHelper;
import io.xpipe.app.platform.OptionsBuilder;
@@ -14,7 +13,6 @@ import io.xpipe.ext.base.identity.IdentityChoiceBuilder;
import io.xpipe.ext.base.store.ShellStoreProvider;
import javafx.beans.property.Property;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.value.ObservableValue;

View File

@@ -1,8 +1,6 @@
package io.xpipe.ext.system.lxd;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.xpipe.app.ext.ContainerStoreState;
import io.xpipe.app.ext.NetworkContainerStoreState;
import io.xpipe.app.issue.ErrorEventFactory;
import io.xpipe.app.process.*;
@@ -17,7 +15,6 @@ import lombok.Value;
import java.util.*;
import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.Collectors;
public class LxdCommandView extends CommandViewBase {

View File

@@ -4,7 +4,6 @@ import io.xpipe.app.comp.BaseRegionBuilder;
import io.xpipe.app.ext.ContainerStoreState;
import io.xpipe.app.ext.DataStore;
import io.xpipe.app.ext.GuiDialog;
import io.xpipe.app.ext.ShellStore;
import io.xpipe.app.hub.comp.*;
import io.xpipe.app.platform.BindingsHelper;
import io.xpipe.app.platform.OptionsBuilder;
@@ -14,7 +13,6 @@ import io.xpipe.ext.base.identity.IdentityChoiceBuilder;
import io.xpipe.ext.base.store.ShellStoreProvider;
import javafx.beans.property.Property;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.value.ObservableValue;

View File

@@ -15,16 +15,16 @@
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><sodipodi:namedview
id="namedview1"
pagecolor="#000000"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.9861186"
inkscape:cx="202.81536"
inkscape:cy="214.47724"
inkscape:zoom="2.7891646"
inkscape:cx="98.595831"
inkscape:cy="115.98455"
inkscape:window-width="1920"
inkscape:window-height="1009"
inkscape:window-x="-8"
@@ -36,27 +36,32 @@
id="style2411">.cls-1{fill:#606161;}</style></defs><title
id="title858">identity</title><path
class="cls-1"
d="M332.32,153.7H179.68a26,26,0,0,0-26,26V332.32a26,26,0,0,0,26,26H332.32a26,26,0,0,0,26-26V179.68A26,26,0,0,0,332.32,153.7Zm14,178.62a14,14,0,0,1-14,14H179.68a14,14,0,0,1-14-14V179.68a14,14,0,0,1,14-14H332.32a14,14,0,0,1,14,14Z"
d="M 168.53751,15.715416 H 37.076569 A 22.392455,22.392455 0 0 0 14.684114,38.107871 V 169.55159 a 22.392455,22.392455 0 0 0 22.392455,22.39245 H 168.53751 a 22.392455,22.392455 0 0 0 22.39246,-22.39245 V 38.090646 a 22.392455,22.392455 0 0 0 -22.39246,-22.37523 z m 12.05748,153.836174 a 12.057476,12.057476 0 0 1 -12.05748,12.05747 H 37.076569 A 12.057476,12.057476 0 0 1 25.019094,169.55159 V 38.090646 A 12.057476,12.057476 0 0 1 37.076569,26.03317 H 168.53751 a 12.057476,12.057476 0 0 1 12.05748,12.057476 z"
id="path860"
style="fill:#dddddd;fill-opacity:1"
transform="translate(-153.7 -153.7)" /><metadata
style="fill:#e8e8e8;fill-opacity:1;stroke-width:0.861248" /><metadata
id="metadata932"><rdf:RDF><cc:Work
rdf:about=""><dc:title>identity</dc:title></cc:Work></rdf:RDF></metadata><rect
style="fill:#1870b1;fill-opacity:1;stroke-width:5.16975"
style="fill:#bfbfbf;fill-opacity:1;stroke-width:4.71402"
id="rect1"
width="129.42943"
height="19.719166"
x="37.645679"
y="48.04306" /><rect
style="fill:#1870b1;fill-opacity:1;stroke-width:5.16975"
id="rect1-5"
width="129.42943"
height="19.719166"
x="37.868244"
y="93.377953" /><rect
style="fill:#1870b1;fill-opacity:1;stroke-width:5.16975"
id="rect1-1"
width="129.42943"
height="19.719166"
x="38.84882"
y="140.00211" /></svg>
width="130.2903"
height="16.287502"
x="38.743805"
y="51.056995" /><rect
style="fill:#bfbfbf;fill-opacity:1;stroke-width:4.30891"
id="rect1-9"
width="108.85865"
height="16.287502"
x="38.409683"
y="80.544037" /><rect
style="fill:#bfbfbf;fill-opacity:1;stroke-width:4.65319"
id="rect1-8"
width="126.94962"
height="16.287502"
x="37.778194"
y="109.23331" /><rect
style="fill:#bfbfbf;fill-opacity:1;stroke-width:4.41658"
id="rect1-9-2"
width="114.36689"
height="16.287502"
x="37.68644"
y="138.36113" /></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -22,9 +22,9 @@
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.69729115"
inkscape:cx="-114.72969"
inkscape:cy="169.94336"
inkscape:zoom="2.7891646"
inkscape:cx="98.595831"
inkscape:cy="115.98455"
inkscape:window-width="1920"
inkscape:window-height="1009"
inkscape:window-x="-8"
@@ -36,27 +36,32 @@
id="style2411">.cls-1{fill:#606161;}</style></defs><title
id="title858">identity</title><path
class="cls-1"
d="M332.32,153.7H179.68a26,26,0,0,0-26,26V332.32a26,26,0,0,0,26,26H332.32a26,26,0,0,0,26-26V179.68A26,26,0,0,0,332.32,153.7Zm14,178.62a14,14,0,0,1-14,14H179.68a14,14,0,0,1-14-14V179.68a14,14,0,0,1,14-14H332.32a14,14,0,0,1,14,14Z"
d="M 168.53751,15.715416 H 37.076569 A 22.392455,22.392455 0 0 0 14.684114,38.107871 V 169.55159 a 22.392455,22.392455 0 0 0 22.392455,22.39245 H 168.53751 a 22.392455,22.392455 0 0 0 22.39246,-22.39245 V 38.090646 a 22.392455,22.392455 0 0 0 -22.39246,-22.37523 z m 12.05748,153.836174 a 12.057476,12.057476 0 0 1 -12.05748,12.05747 H 37.076569 A 12.057476,12.057476 0 0 1 25.019094,169.55159 V 38.090646 A 12.057476,12.057476 0 0 1 37.076569,26.03317 H 168.53751 a 12.057476,12.057476 0 0 1 12.05748,12.057476 z"
id="path860"
style="fill:#222222;fill-opacity:1"
transform="translate(-153.7 -153.7)" /><metadata
style="fill:#222222;fill-opacity:1;stroke-width:0.861248" /><metadata
id="metadata932"><rdf:RDF><cc:Work
rdf:about=""><dc:title>identity</dc:title></cc:Work></rdf:RDF></metadata><rect
style="fill:#1a2bba;fill-opacity:1;stroke-width:5.16975"
style="fill:#3e3e3e;fill-opacity:1;stroke-width:4.71402"
id="rect1"
width="129.42943"
height="19.719166"
x="37.645679"
y="48.04306" /><rect
style="fill:#1a2bba;fill-opacity:1;stroke-width:5.16975"
id="rect1-5"
width="129.42943"
height="19.719166"
x="37.868244"
y="93.377953" /><rect
style="fill:#1a2bba;fill-opacity:1;stroke-width:5.16975"
id="rect1-1"
width="129.42943"
height="19.719166"
x="38.84882"
y="140.00211" /></svg>
width="130.2903"
height="16.287502"
x="38.743805"
y="51.056995" /><rect
style="fill:#3e3e3e;fill-opacity:1;stroke-width:4.30891"
id="rect1-9"
width="108.85865"
height="16.287502"
x="38.409683"
y="80.544037" /><rect
style="fill:#3e3e3e;fill-opacity:1;stroke-width:4.65319"
id="rect1-8"
width="126.94962"
height="16.287502"
x="37.778194"
y="109.23331" /><rect
style="fill:#3e3e3e;fill-opacity:1;stroke-width:4.41658"
id="rect1-9-2"
width="114.36689"
height="16.287502"
x="37.68644"
y="138.36113" /></svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB