feat: New one-click Home Server, now in Labs. Launch your own self-hosted server instance with just 1 click from the Preferences window. (#2341)

This commit is contained in:
Mo
2023-07-03 08:30:48 -05:00
committed by GitHub
parent d79e7b14b1
commit 96f42643a9
367 changed files with 5895 additions and 570 deletions

View File

@@ -1,5 +1,7 @@
import { Environment } from '@standardnotes/models'
import { HomeServerManagerInterface } from '../HomeServer/HomeServerManagerInterface'
import { WebClientRequiresDesktopMethods } from './DesktopWebCommunication'
import { DeviceInterface } from './DeviceInterface'
import { WebOrDesktopDeviceInterface } from './WebOrDesktopDeviceInterface'
@@ -10,6 +12,9 @@ export function isDesktopDevice(x: DeviceInterface): x is DesktopDeviceInterface
return x.environment === Environment.Desktop
}
export interface DesktopDeviceInterface extends WebOrDesktopDeviceInterface, WebClientRequiresDesktopMethods {
export interface DesktopDeviceInterface
extends WebOrDesktopDeviceInterface,
WebClientRequiresDesktopMethods,
HomeServerManagerInterface {
environment: Environment.Desktop
}

View File

@@ -1,7 +1,7 @@
import { DecryptedTransferPayload } from '@standardnotes/models'
import { DesktopWatchedDirectoriesChanges, FileBackupsDevice } from '@standardnotes/files'
import { DesktopWatchedDirectoriesChanges, DirectoryManagerInterface, FileBackupsDevice } from '@standardnotes/files'
export interface WebClientRequiresDesktopMethods extends FileBackupsDevice {
export interface WebClientRequiresDesktopMethods extends FileBackupsDevice, DirectoryManagerInterface {
syncComponents(payloads: unknown[]): void
onSearch(text?: string): void
@@ -21,4 +21,6 @@ export interface DesktopClientRequiresWebMethods {
onComponentInstallationComplete(componentData: DecryptedTransferPayload, error: unknown): Promise<void>
handleWatchedDirectoriesChanges(changes: DesktopWatchedDirectoriesChanges): Promise<void>
handleHomeServerStarted(serverUrl: string): Promise<void>
}

View File

@@ -1,3 +1,4 @@
import { ApplicationInterface } from './../Application/ApplicationInterface'
import { ApplicationIdentifier } from '@standardnotes/common'
import {
FullyFormedTransferPayload,
@@ -31,6 +32,11 @@ export interface DeviceInterface {
removeAllRawStorageValues(): Promise<void>
removeRawStorageValuesForIdentifier(identifier: ApplicationIdentifier): Promise<void>
setApplication(application: ApplicationInterface): void
removeApplication(application: ApplicationInterface): void
/**
* On web platforms, databased created may be new.
* New databases can be because of new sessions, or if the browser deleted it.