Merge branch 'next/minor' of github.com:Start9Labs/start-os into rebase/feat/domains

This commit is contained in:
Matt Hill
2024-03-30 21:14:53 -06:00
191 changed files with 1789 additions and 1316 deletions

452
core/Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,7 @@ sqlx = { version = "0.7.2", features = [
"postgres",
] }
ssh-key = "0.6.2"
ts-rs = "7"
ts-rs = { git = "https://github.com/dr-bonez/ts-rs.git", branch = "feature/top-level-type-override" } # "8"
thiserror = "1.0"
tokio = { version = "1", features = ["full"] }
torut = { git = "https://github.com/Start9Labs/torut.git", branch = "update/dependencies" }

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type BindOptionsSecure = { ssl: boolean, };
export type ServiceInterfaceId = string;

View File

@@ -6,11 +6,13 @@ use color_eyre::eyre::eyre;
use reqwest::header::CONTENT_TYPE;
use serde::{Deserialize, Serialize};
use tokio::io::{AsyncRead, AsyncReadExt};
use ts_rs::TS;
use yasi::InternedString;
use crate::{mime, Error, ErrorKind, ResultExt};
#[derive(Clone)]
#[derive(Clone, TS)]
#[ts(type = "string")]
pub struct DataUrl<'a> {
mime: InternedString,
data: Cow<'a, [u8]>,

View File

@@ -2,10 +2,12 @@ use std::path::Path;
use std::str::FromStr;
use serde::{Deserialize, Serialize};
use ts_rs::TS;
use crate::{Id, InvalidId};
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, ts_rs::TS)]
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, TS)]
#[ts(type = "string")]
pub struct ActionId(Id);
impl FromStr for ActionId {
type Err = InvalidId;

View File

@@ -2,10 +2,12 @@ use std::path::Path;
use std::str::FromStr;
use serde::{Deserialize, Deserializer, Serialize};
use ts_rs::TS;
use crate::{Id, InvalidId};
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, ts_rs::TS)]
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, TS)]
#[ts(type = "string")]
pub struct HealthCheckId(Id);
impl std::fmt::Display for HealthCheckId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {

View File

@@ -2,11 +2,13 @@ use std::path::Path;
use std::str::FromStr;
use serde::{Deserialize, Deserializer, Serialize};
use ts_rs::TS;
use yasi::InternedString;
use crate::{Id, InvalidId};
#[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize)]
#[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, TS)]
#[ts(type = "string")]
pub struct HostId(Id);
impl FromStr for HostId {
type Err = InvalidId;

View File

@@ -3,10 +3,12 @@ use std::path::Path;
use std::str::FromStr;
use serde::{Deserialize, Deserializer, Serialize};
use ts_rs::TS;
use crate::{Id, InvalidId, PackageId, Version};
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, ts_rs::TS)]
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, TS)]
#[ts(type = "string")]
pub struct ImageId(Id);
impl AsRef<Path> for ImageId {
fn as_ref(&self) -> &Path {

View File

@@ -6,21 +6,21 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer};
use yasi::InternedString;
mod action;
mod address;
mod health_check;
mod host;
mod image;
mod invalid_id;
mod package;
mod service_interface;
mod volume;
pub use action::ActionId;
pub use address::AddressId;
pub use health_check::HealthCheckId;
pub use host::HostId;
pub use image::ImageId;
pub use invalid_id::InvalidId;
pub use package::{PackageId, SYSTEM_PACKAGE_ID};
pub use service_interface::ServiceInterfaceId;
pub use volume::VolumeId;
lazy_static::lazy_static! {
@@ -28,8 +28,8 @@ lazy_static::lazy_static! {
pub static ref SYSTEM_ID: Id = Id(InternedString::intern("x_system"));
}
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default, ts_rs::TS)]
pub struct Id(#[ts(type = "string")] InternedString);
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
pub struct Id(InternedString);
impl TryFrom<InternedString> for Id {
type Error = InvalidId;
fn try_from(value: InternedString) -> Result<Self, Self::Error> {

View File

@@ -12,6 +12,7 @@ lazy_static::lazy_static! {
pub static ref SYSTEM_PACKAGE_ID: PackageId = PackageId(SYSTEM_ID.clone());
}
#[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, TS)]
#[ts(type = "string")]
pub struct PackageId(Id);
impl FromStr for PackageId {
type Err = InvalidId;

View File

@@ -1,46 +1,48 @@
use std::path::Path;
use serde::{Deserialize, Deserializer, Serialize};
use ts_rs::TS;
use crate::Id;
#[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize)]
pub struct AddressId(Id);
impl From<Id> for AddressId {
#[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, TS)]
#[ts(export, type = "string")]
pub struct ServiceInterfaceId(Id);
impl From<Id> for ServiceInterfaceId {
fn from(id: Id) -> Self {
Self(id)
}
}
impl std::fmt::Display for AddressId {
impl std::fmt::Display for ServiceInterfaceId {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", &self.0)
}
}
impl std::ops::Deref for AddressId {
impl std::ops::Deref for ServiceInterfaceId {
type Target = str;
fn deref(&self) -> &Self::Target {
&*self.0
}
}
impl AsRef<str> for AddressId {
impl AsRef<str> for ServiceInterfaceId {
fn as_ref(&self) -> &str {
self.0.as_ref()
}
}
impl<'de> Deserialize<'de> for AddressId {
impl<'de> Deserialize<'de> for ServiceInterfaceId {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(AddressId(Deserialize::deserialize(deserializer)?))
Ok(ServiceInterfaceId(Deserialize::deserialize(deserializer)?))
}
}
impl AsRef<Path> for AddressId {
impl AsRef<Path> for ServiceInterfaceId {
fn as_ref(&self) -> &Path {
self.0.as_ref().as_ref()
}
}
impl<'q> sqlx::Encode<'q, sqlx::Postgres> for AddressId {
impl<'q> sqlx::Encode<'q, sqlx::Postgres> for ServiceInterfaceId {
fn encode_by_ref(
&self,
buf: &mut <sqlx::Postgres as sqlx::database::HasArguments<'q>>::ArgumentBuffer,
@@ -48,7 +50,7 @@ impl<'q> sqlx::Encode<'q, sqlx::Postgres> for AddressId {
<&str as sqlx::Encode<'q, sqlx::Postgres>>::encode_by_ref(&&**self, buf)
}
}
impl sqlx::Type<sqlx::Postgres> for AddressId {
impl sqlx::Type<sqlx::Postgres> for ServiceInterfaceId {
fn type_info() -> sqlx::postgres::PgTypeInfo {
<&str as sqlx::Type<sqlx::Postgres>>::type_info()
}

View File

@@ -2,10 +2,12 @@ use std::borrow::Borrow;
use std::path::Path;
use serde::{Deserialize, Deserializer, Serialize};
use ts_rs::TS;
use crate::Id;
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, TS)]
#[ts(type = "string")]
pub enum VolumeId {
Backup,
Custom(Id),

View File

@@ -41,6 +41,7 @@ default = ["cli", "daemon"]
dev = []
unstable = ["console-subscriber", "tokio/tracing"]
docker = []
test = []
[dependencies]
aes = { version = "0.7.5", features = ["ctr"] }
@@ -70,11 +71,12 @@ current_platform = "0.2.0"
digest = "0.10.7"
divrem = "1.0.0"
ed25519 = { version = "2.2.3", features = ["pkcs8", "pem", "alloc"] }
ed25519-dalek = { version = "2.0.0", features = [
ed25519-dalek = { version = "2.1.1", features = [
"serde",
"zeroize",
"rand_core",
"digest",
"pkcs8",
] }
ed25519-dalek-v1 = { package = "ed25519-dalek", version = "1" }
emver = { version = "0.1.7", git = "https://github.com/Start9Labs/emver-rs.git", features = [
@@ -174,7 +176,7 @@ tracing-futures = "0.2.5"
tracing-journald = "0.3.0"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
trust-dns-server = "0.23.1"
ts-rs = "8.1.0"
ts-rs = { git = "https://github.com/dr-bonez/ts-rs.git", branch = "feature/top-level-type-override" } # "8.1.0"
typed-builder = "0.18.0"
url = { version = "2.4.1", features = ["serde"] }
urlencoding = "2.1.3"

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type BindKind = "static" | "single" | "multi";
export type ActionId = string;

View File

@@ -1,4 +1,12 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AllowedStatuses } from "./AllowedStatuses";
export type ActionMetadata = { name: string, description: string, warning: string | null, disabled: boolean, input: {[key: string]: any}, allowedStatuses: AllowedStatuses, group: string | null, };
export type ActionMetadata = {
name: string;
description: string;
warning: string | null;
input: any;
disabled: boolean;
allowedStatuses: AllowedStatuses;
group: string | null;
};

View File

@@ -1,3 +1,8 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AlpnInfo } from "./AlpnInfo";
export type AddSslOptions = { scheme: string | null, preferredExternalPort: number, addXForwardedHeaders: boolean | null, };
export type AddSslOptions = {
scheme: string | null;
preferredExternalPort: number;
alpn: AlpnInfo;
};

View File

@@ -1,4 +1,10 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { BindOptions } from "./BindOptions";
import type { HostId } from "./HostId";
export type AddressInfo = { username: string | null, hostId: string, bindOptions: BindOptions, suffix: string, };
export type AddressInfo = {
username: string | null;
hostId: HostId;
bindOptions: BindOptions;
suffix: string;
};

View File

@@ -0,0 +1,9 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Alerts = {
install: string | null;
uninstall: string | null;
restore: string | null;
start: string | null;
stop: string | null;
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Algorithm = "ecdsa" | "ed25519";
export type Algorithm = "ecdsa" | "ed25519";

View File

@@ -0,0 +1,5 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { PackageDataEntry } from "./PackageDataEntry";
import type { PackageId } from "./PackageId";
export type AllPackageData = { [key: PackageId]: PackageDataEntry };

View File

@@ -0,0 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { MaybeUtf8String } from "./MaybeUtf8String";
export type AlpnInfo = "reflect" | { specified: Array<MaybeUtf8String> };

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type HealthCheckString = "passing" | "disabled" | "starting" | "warning" | "failure";
export type BackupProgress = { complete: boolean };

View File

@@ -0,0 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { BindOptions } from "./BindOptions";
export type BindInfo = { options: BindOptions; assignedLanPort: number | null };

View File

@@ -1,5 +1,10 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AddSslOptions } from "./AddSslOptions";
import type { BindOptionsSecure } from "./BindOptionsSecure";
import type { Security } from "./Security";
export type BindOptions = { scheme: string | null, preferredExternalPort: number, addSsl: AddSslOptions | null, secure: BindOptionsSecure | null, };
export type BindOptions = {
scheme: string | null;
preferredExternalPort: number;
addSsl: AddSslOptions | null;
secure: Security | null;
};

View File

@@ -1,6 +1,15 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AddSslOptions } from "./AddSslOptions";
import type { BindKind } from "./BindKind";
import type { BindOptionsSecure } from "./BindOptionsSecure";
import type { HostId } from "./HostId";
import type { HostKind } from "./HostKind";
import type { Security } from "./Security";
export type BindParams = { kind: BindKind, id: string, internalPort: number, scheme: string, preferredExternalPort: number, addSsl: AddSslOptions | null, secure: BindOptionsSecure | null, };
export type BindParams = {
kind: HostKind;
id: HostId;
internalPort: number;
scheme: string | null;
preferredExternalPort: number;
addSsl: AddSslOptions | null;
secure: Security | null;
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Callback = () => void;
export type Callback = () => void;

View File

@@ -1,3 +1,10 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ChrootParams = { env: string | null, workdir: string | null, user: string | null, path: string, command: string, args: string[], };
export type ChrootParams = {
env: string | null;
workdir: string | null;
user: string | null;
path: string;
command: string;
args: string[];
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type CreateOverlayedImageParams = { imageId: string, };
export type CreateOverlayedImageParams = { imageId: string };

View File

@@ -0,0 +1,5 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { CurrentDependencyInfo } from "./CurrentDependencyInfo";
import type { PackageId } from "./PackageId";
export type CurrentDependencies = { [key: PackageId]: CurrentDependencyInfo };

View File

@@ -0,0 +1,9 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { DataUrl } from "./DataUrl";
export type CurrentDependencyInfo = {
title: string;
icon: DataUrl;
registryUrl: string;
versionSpec: string;
} & ({ kind: "exists" } | { kind: "running"; healthChecks: string[] });

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type DataUrl = string;

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type DepInfo = { description: string | null; optional: boolean };

View File

@@ -0,0 +1,5 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { DepInfo } from "./DepInfo";
import type { PackageId } from "./PackageId";
export type Dependencies = { [key: PackageId]: DepInfo };

View File

@@ -0,0 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { PackageId } from "./PackageId";
export type DependencyConfigErrors = { [key: PackageId]: string };

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type DependencyKind = "exists" | "running";
export type DependencyKind = "exists" | "running";

View File

@@ -1,3 +1,11 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type DependencyRequirement = { "kind": "running", id: string, healthChecks: string[], versionSpec: string, url: string, } | { "kind": "exists", id: string, versionSpec: string, url: string, };
export type DependencyRequirement =
| {
kind: "running";
id: string;
healthChecks: string[];
versionSpec: string;
registryUrl: string;
}
| { kind: "exists"; id: string; versionSpec: string; registryUrl: string };

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Description = { short: string; long: string };

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type DestroyOverlayedImageParams = { guid: string, };
export type DestroyOverlayedImageParams = { guid: string };

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Duration = string;

View File

@@ -1,3 +1,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ExecuteAction = { serviceId: string | null, actionId: string, input: any, };
export type ExecuteAction = {
serviceId: string | null;
actionId: string;
input: any;
};

View File

@@ -2,4 +2,13 @@
import type { AddressInfo } from "./AddressInfo";
import type { ServiceInterfaceType } from "./ServiceInterfaceType";
export type ExportServiceInterfaceParams = { id: string, name: string, description: string, hasPrimary: boolean, disabled: boolean, masked: boolean, addressInfo: AddressInfo, type: ServiceInterfaceType, };
export type ExportServiceInterfaceParams = {
id: string;
name: string;
description: string;
hasPrimary: boolean;
disabled: boolean;
masked: boolean;
addressInfo: AddressInfo;
type: ServiceInterfaceType;
};

View File

@@ -0,0 +1,10 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ExportedHostnameInfo } from "./ExportedHostnameInfo";
import type { HostId } from "./HostId";
import type { HostKind } from "./HostKind";
export type ExportedHostInfo = {
id: HostId;
kind: HostKind;
hostnames: Array<ExportedHostnameInfo>;
};

View File

@@ -0,0 +1,12 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ExportedIpHostname } from "./ExportedIpHostname";
import type { ExportedOnionHostname } from "./ExportedOnionHostname";
export type ExportedHostnameInfo =
| {
kind: "ip";
networkInterfaceId: string;
public: boolean;
hostname: ExportedIpHostname;
}
| { kind: "onion"; hostname: ExportedOnionHostname };

View File

@@ -0,0 +1,18 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ExportedIpHostname =
| { kind: "ipv4"; value: string; port: number | null; sslPort: number | null }
| { kind: "ipv6"; value: string; port: number | null; sslPort: number | null }
| {
kind: "local";
value: string;
port: number | null;
sslPort: number | null;
}
| {
kind: "domain";
domain: string;
subdomain: string | null;
port: number | null;
sslPort: number | null;
};

View File

@@ -0,0 +1,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ExportedOnionHostname = {
value: string;
port: number | null;
sslPort: number | null;
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ExposeForDependentsParams = { paths: string[], };
export type ExposeForDependentsParams = { paths: string[] };

View File

@@ -1,3 +0,0 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ExposeUiParams = { "type": "object", value: {[key: string]: ExposeUiParams}, } | { "type": "string", path: string, description: string | null, masked: boolean, copyable: boolean | null, qr: boolean | null, };

View File

@@ -1,3 +0,0 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ExposedUI = { "type": "object", value: {[key: string]: ExposedUI}, description: string | null, } | { "type": "string", path: string, description: string | null, masked: boolean, copyable: boolean | null, qr: boolean | null, };

View File

@@ -0,0 +1,5 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { NamedProgress } from "./NamedProgress";
import type { Progress } from "./Progress";
export type FullProgress = { overall: Progress; phases: Array<NamedProgress> };

View File

@@ -2,4 +2,9 @@
import type { Callback } from "./Callback";
import type { GetHostInfoParamsKind } from "./GetHostInfoParamsKind";
export type GetHostInfoParams = { kind: GetHostInfoParamsKind | null, serviceInterfaceId: string, packageId: string | null, callback: Callback, };
export type GetHostInfoParams = {
kind: GetHostInfoParamsKind | null;
serviceInterfaceId: string;
packageId: string | null;
callback: Callback;
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type GetHostInfoParamsKind = "multi";
export type GetHostInfoParamsKind = "multi";

View File

@@ -1,4 +1,8 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Callback } from "./Callback";
export type GetPrimaryUrlParams = { packageId: string | null, serviceInterfaceId: string, callback: Callback, };
export type GetPrimaryUrlParams = {
packageId: string | null;
serviceInterfaceId: string;
callback: Callback;
};

View File

@@ -1,4 +1,8 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Callback } from "./Callback";
export type GetServiceInterfaceParams = { packageId: string | null, serviceInterfaceId: string, callback: Callback, };
export type GetServiceInterfaceParams = {
packageId: string | null;
serviceInterfaceId: string;
callback: Callback;
};

View File

@@ -1,3 +1,6 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type GetServicePortForwardParams = { packageId: string | null, internalPort: number, };
export type GetServicePortForwardParams = {
packageId: string | null;
internalPort: number;
};

View File

@@ -1,4 +1,8 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Algorithm } from "./Algorithm";
export type GetSslCertificateParams = { packageId: string | null, hostId: string, algorithm: Algorithm | null, };
export type GetSslCertificateParams = {
packageId: string | null;
hostId: string;
algorithm: Algorithm | null;
};

View File

@@ -1,4 +1,8 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Algorithm } from "./Algorithm";
export type GetSslKeyParams = { packageId: string | null, hostId: string, algorithm: Algorithm | null, };
export type GetSslKeyParams = {
packageId: string | null;
hostId: string;
algorithm: Algorithm | null;
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type GetStoreParams = { packageId: string | null, path: string, };
export type GetStoreParams = { packageId: string | null; path: string };

View File

@@ -1,4 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Callback } from "./Callback";
export type GetSystemSmtpParams = { callback: Callback, };
export type GetSystemSmtpParams = { callback: Callback };

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Governor = string;

View File

@@ -0,0 +1,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type HardwareRequirements = {
device: { [key: string]: string };
ram: bigint | null;
arch: Array<string> | null;
};

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type HealthCheckId = string;

View File

@@ -0,0 +1,9 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type HealthCheckResult = { name: string } & (
| { result: "success"; message: string | null }
| { result: "disabled"; message: string | null }
| { result: "starting"; message: string | null }
| { result: "loading"; message: string }
| { result: "failure"; message: string }
);

View File

@@ -0,0 +1,11 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { BindInfo } from "./BindInfo";
import type { HostAddress } from "./HostAddress";
import type { HostKind } from "./HostKind";
export type Host = {
kind: HostKind;
bindings: { [key: number]: BindInfo };
addresses: Array<HostAddress>;
primary: HostAddress | null;
};

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type HostAddress = { kind: "onion"; address: string };

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type HostId = string;

View File

@@ -0,0 +1,5 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Host } from "./Host";
import type { HostId } from "./HostId";
export type HostInfo = { [key: HostId]: Host };

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type HostKind = "multi";

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ImageId = string;

View File

@@ -0,0 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Manifest } from "./Manifest";
export type InstalledState = { manifest: Manifest };

View File

@@ -0,0 +1,5 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { FullProgress } from "./FullProgress";
import type { Manifest } from "./Manifest";
export type InstallingInfo = { newManifest: Manifest; progress: FullProgress };

View File

@@ -0,0 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { InstallingInfo } from "./InstallingInfo";
export type InstallingState = { installingInfo: InstallingInfo };

View File

@@ -0,0 +1,8 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type IpInfo = {
ipv4Range: string | null;
ipv4: string | null;
ipv6Range: string | null;
ipv6: string | null;
};

View File

@@ -1,4 +1,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Callback } from "./Callback";
export type ListServiceInterfacesParams = { packageId: string | null, callback: Callback, };
export type ListServiceInterfacesParams = {
packageId: string | null;
callback: Callback;
};

View File

@@ -0,0 +1,20 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Duration } from "./Duration";
import type { HealthCheckId } from "./HealthCheckId";
import type { HealthCheckResult } from "./HealthCheckResult";
export type MainStatus =
| { status: "stopped" }
| { status: "restarting" }
| { status: "stopping"; timeout: Duration }
| { status: "starting" }
| {
status: "running";
started: string;
health: { [key: HealthCheckId]: HealthCheckResult };
}
| {
status: "backingUp";
started: string | null;
health: { [key: HealthCheckId]: HealthCheckResult };
};

View File

@@ -0,0 +1,32 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Alerts } from "./Alerts";
import type { Dependencies } from "./Dependencies";
import type { Description } from "./Description";
import type { HardwareRequirements } from "./HardwareRequirements";
import type { ImageId } from "./ImageId";
import type { PackageId } from "./PackageId";
import type { VolumeId } from "./VolumeId";
export type Manifest = {
id: PackageId;
title: string;
version: string;
releaseNotes: string;
license: string;
replaces: Array<string>;
wrapperRepo: string;
upstreamRepo: string;
supportSite: string;
marketingSite: string;
donationUrl: string | null;
description: Description;
images: Array<ImageId>;
assets: Array<VolumeId>;
volumes: Array<VolumeId>;
alerts: Alerts;
dependencies: Dependencies;
hardwareRequirements: HardwareRequirements;
gitHash: string | null;
osVersion: string;
hasConfig: boolean;
};

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type MaybeUtf8String = string | number[];

View File

@@ -1,4 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { MountTarget } from "./MountTarget";
export type MountParams = { location: string, target: MountTarget, };
export type MountParams = { location: string; target: MountTarget };

View File

@@ -1,3 +1,8 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type MountTarget = { packageId: string, volumeId: string, subpath: string | null, readonly: boolean, };
export type MountTarget = {
packageId: string;
volumeId: string;
subpath: string | null;
readonly: boolean;
};

View File

@@ -0,0 +1,4 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Progress } from "./Progress";
export type NamedProgress = { name: string; progress: Progress };

View File

@@ -0,0 +1,26 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { ActionId } from "./ActionId";
import type { ActionMetadata } from "./ActionMetadata";
import type { CurrentDependencies } from "./CurrentDependencies";
import type { DataUrl } from "./DataUrl";
import type { HostInfo } from "./HostInfo";
import type { PackageState } from "./PackageState";
import type { ServiceInterfaceId } from "./ServiceInterfaceId";
import type { ServiceInterfaceWithHostInfo } from "./ServiceInterfaceWithHostInfo";
import type { Status } from "./Status";
export type PackageDataEntry = {
stateInfo: PackageState;
status: Status;
marketplaceUrl: string | null;
developerKey: string;
icon: DataUrl;
lastBackup: string | null;
currentDependencies: CurrentDependencies;
actions: { [key: ActionId]: ActionMetadata };
serviceInterfaces: {
[key: ServiceInterfaceId]: ServiceInterfaceWithHostInfo;
};
hosts: HostInfo;
storeExposedDependents: string[];
};

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type PackageId = string;

View File

@@ -0,0 +1,11 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { InstalledState } from "./InstalledState";
import type { InstallingState } from "./InstallingState";
import type { UpdatingState } from "./UpdatingState";
export type PackageState =
| ({ state: "installing" } & InstallingState)
| ({ state: "restoring" } & InstallingState)
| ({ state: "updating" } & UpdatingState)
| ({ state: "installed" } & InstalledState)
| ({ state: "removing" } & InstalledState);

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ParamsMaybePackageId = { packageId: string | null, };
export type ParamsMaybePackageId = { packageId: string | null };

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ParamsPackageId = { packageId: string, };
export type ParamsPackageId = { packageId: string };

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Progress = boolean | { done: number; total: number | null };

View File

@@ -0,0 +1,9 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AllPackageData } from "./AllPackageData";
import type { ServerInfo } from "./ServerInfo";
export type Public = {
serverInfo: ServerInfo;
packageData: AllPackageData;
ui: any;
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type RemoveActionParams = { id: string, };
export type RemoveActionParams = { id: string };

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type RemoveAddressParams = { id: string, };
export type RemoveAddressParams = { id: string };

View File

@@ -1,3 +1,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ReverseProxyBind = { ip: string | null, port: number, ssl: boolean, };
export type ReverseProxyBind = {
ip: string | null;
port: number;
ssl: boolean;
};

View File

@@ -1,3 +1,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ReverseProxyDestination = { ip: string | null, port: number, ssl: boolean, };
export type ReverseProxyDestination = {
ip: string | null;
port: number;
ssl: boolean;
};

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ReverseProxyHttp = { headers: null | {[key: string]: string}, };
export type ReverseProxyHttp = { headers: null | { [key: string]: string } };

View File

@@ -3,4 +3,8 @@ import type { ReverseProxyBind } from "./ReverseProxyBind";
import type { ReverseProxyDestination } from "./ReverseProxyDestination";
import type { ReverseProxyHttp } from "./ReverseProxyHttp";
export type ReverseProxyParams = { bind: ReverseProxyBind, dst: ReverseProxyDestination, http: ReverseProxyHttp, };
export type ReverseProxyParams = {
bind: ReverseProxyBind;
dst: ReverseProxyDestination;
http: ReverseProxyHttp;
};

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type Security = { ssl: boolean };

View File

@@ -0,0 +1,35 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Governor } from "./Governor";
import type { IpInfo } from "./IpInfo";
import type { ServerStatus } from "./ServerStatus";
import type { WifiInfo } from "./WifiInfo";
export type ServerInfo = {
arch: string;
platform: string;
id: string;
hostname: string;
version: string;
lastBackup: string | null;
/**
* Used in the wifi to determine the region to set the system to
*/
lastWifiRegion: string | null;
eosVersionCompat: string;
lanAddress: string;
onionAddress: string;
/**
* for backwards compatibility
*/
torAddress: string;
ipInfo: { [key: string]: IpInfo };
statusInfo: ServerStatus;
wifi: WifiInfo;
unreadNotificationCount: number;
passwordHash: string;
pubkey: string;
caFingerprint: string;
ntpSynced: boolean;
zram: boolean;
governor: Governor | null;
};

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ServerSpecs = { cpu: string; disk: string; memory: string };

View File

@@ -0,0 +1,12 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { BackupProgress } from "./BackupProgress";
import type { PackageId } from "./PackageId";
import type { UpdateProgress } from "./UpdateProgress";
export type ServerStatus = {
backupProgress: { [key: PackageId]: BackupProgress } | null;
updated: boolean;
updateProgress: UpdateProgress | null;
shuttingDown: boolean;
restarting: boolean;
};

View File

@@ -0,0 +1,15 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AddressInfo } from "./AddressInfo";
import type { ServiceInterfaceId } from "./ServiceInterfaceId";
import type { ServiceInterfaceType } from "./ServiceInterfaceType";
export type ServiceInterface = {
id: ServiceInterfaceId;
name: string;
description: string;
hasPrimary: boolean;
disabled: boolean;
masked: boolean;
addressInfo: AddressInfo;
type: ServiceInterfaceType;
};

View File

@@ -0,0 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ServiceInterfaceId = string;

View File

@@ -1,3 +1,3 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
export type ServiceInterfaceType = "ui" | "p2p" | "api";
export type ServiceInterfaceType = "ui" | "p2p" | "api";

View File

@@ -0,0 +1,17 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AddressInfo } from "./AddressInfo";
import type { ExportedHostInfo } from "./ExportedHostInfo";
import type { ServiceInterfaceId } from "./ServiceInterfaceId";
import type { ServiceInterfaceType } from "./ServiceInterfaceType";
export type ServiceInterfaceWithHostInfo = {
hostInfo: ExportedHostInfo;
id: ServiceInterfaceId;
name: string;
description: string;
hasPrimary: boolean;
disabled: boolean;
masked: boolean;
addressInfo: AddressInfo;
type: ServiceInterfaceType;
};

Some files were not shown because too many files have changed in this diff Show More