Merge branch 'next/major' of github.com:Start9Labs/start-os into feature/nvidia

This commit is contained in:
Aiden McClelland
2025-12-31 11:31:14 -07:00
99 changed files with 1535 additions and 1120 deletions

View File

@@ -224,8 +224,6 @@ export type ListValueSpecObject = {
uniqueBy: UniqueBy
displayAs: string | null
}
// TODO Aiden do we really want this expressivity? Why not the below. Also what's with the "readonly" portion?
// export type UniqueBy = null | string | { any: string[] } | { all: string[] }
export type UniqueBy =
| 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 { Guid } from "./Guid"
import type { PackageId } from "./PackageId"
export type AddPackageSignerParams = {
id: PackageId
signer: Guid
versions: string | null
}

View File

@@ -4,6 +4,7 @@ export type NamedHealthCheckResult = { name: string } & (
| { result: "success"; message: string | null }
| { result: "disabled"; message: string | null }
| { result: "starting"; message: string | null }
| { result: "waiting"; message: string | null }
| { result: "loading"; message: string }
| { result: "failure"; message: string }
)

View File

@@ -4,7 +4,7 @@ import type { PackageVersionInfo } from "./PackageVersionInfo"
import type { Version } from "./Version"
export type PackageInfo = {
authorized: Array<Guid>
authorized: { [key: Guid]: string }
versions: { [key: Version]: PackageVersionInfo }
categories: string[]
}

View File

@@ -2,4 +2,4 @@
import type { Guid } from "./Guid"
import type { PackageId } from "./PackageId"
export type PackageSignerParams = { id: PackageId; signer: Guid }
export type RemovePackageSignerParams = { id: PackageId; signer: Guid }

View File

@@ -5,6 +5,7 @@ export type SetHealth = { id: HealthCheckId; name: string } & (
| { result: "success"; message: string | null }
| { result: "disabled"; message: string | null }
| { result: "starting"; message: string | null }
| { result: "waiting"; message: string | null }
| { result: "loading"; message: string }
| { result: "failure"; message: string }
)

View File

@@ -14,6 +14,7 @@ export { AddAdminParams } from "./AddAdminParams"
export { AddAssetParams } from "./AddAssetParams"
export { AddCategoryParams } from "./AddCategoryParams"
export { AddPackageParams } from "./AddPackageParams"
export { AddPackageSignerParams } from "./AddPackageSignerParams"
export { AddPackageToCategoryParams } from "./AddPackageToCategoryParams"
export { AddressInfo } from "./AddressInfo"
export { AddSslOptions } from "./AddSslOptions"
@@ -154,7 +155,6 @@ export { PackageId } from "./PackageId"
export { PackageIndex } from "./PackageIndex"
export { PackageInfoShort } from "./PackageInfoShort"
export { PackageInfo } from "./PackageInfo"
export { PackageSignerParams } from "./PackageSignerParams"
export { PackageState } from "./PackageState"
export { PackageVersionInfo } from "./PackageVersionInfo"
export { PasswordType } from "./PasswordType"
@@ -172,6 +172,7 @@ export { RemoveAssetParams } from "./RemoveAssetParams"
export { RemoveCategoryParams } from "./RemoveCategoryParams"
export { RemovePackageFromCategoryParams } from "./RemovePackageFromCategoryParams"
export { RemovePackageParams } from "./RemovePackageParams"
export { RemovePackageSignerParams } from "./RemovePackageSignerParams"
export { RemoveTunnelParams } from "./RemoveTunnelParams"
export { RemoveVersionParams } from "./RemoveVersionParams"
export { ReplayId } from "./ReplayId"

View File

@@ -39,6 +39,7 @@ export class GetSystemSmtp {
})
await waitForNext
}
return new Promise<never>((_, rej) => rej(new Error("aborted")))
}
/**
@@ -46,7 +47,7 @@ export class GetSystemSmtp {
*/
watch(
abort?: AbortSignal,
): AsyncGenerator<T.SmtpValue | null, void, unknown> {
): AsyncGenerator<T.SmtpValue | null, never, unknown> {
const ctrl = new AbortController()
abort?.addEventListener("abort", () => ctrl.abort())
return DropGenerator.of(this.watchGen(ctrl.signal), () => ctrl.abort())

View File

@@ -393,12 +393,13 @@ export class GetServiceInterface<Mapped = ServiceInterfaceFilled | null> {
}
await waitForNext
}
return new Promise<never>((_, rej) => rej(new Error("aborted")))
}
/**
* Watches the requested service interface. Returns an async iterator that yields whenever the value changes
*/
watch(abort?: AbortSignal): AsyncGenerator<Mapped, void, unknown> {
watch(abort?: AbortSignal): AsyncGenerator<Mapped, never, unknown> {
const ctrl = new AbortController()
abort?.addEventListener("abort", () => ctrl.abort())
return DropGenerator.of(this.watchGen(ctrl.signal), () => ctrl.abort())

View File

@@ -2,11 +2,7 @@ import { Effects } from "../Effects"
import { PackageId } from "../osBindings"
import { deepEqual } from "./deepEqual"
import { DropGenerator, DropPromise } from "./Drop"
import {
ServiceInterfaceFilled,
filledAddress,
getHostname,
} from "./getServiceInterface"
import { ServiceInterfaceFilled, filledAddress } from "./getServiceInterface"
const makeManyInterfaceFilled = async ({
effects,
@@ -106,12 +102,13 @@ export class GetServiceInterfaces<Mapped = ServiceInterfaceFilled[]> {
}
await waitForNext
}
return new Promise<never>((_, rej) => rej(new Error("aborted")))
}
/**
* Watches the service interfaces for the package. Returns an async iterator that yields whenever the value changes
*/
watch(abort?: AbortSignal): AsyncGenerator<Mapped, void, unknown> {
watch(abort?: AbortSignal): AsyncGenerator<Mapped, never, unknown> {
const ctrl = new AbortController()
abort?.addEventListener("abort", () => ctrl.abort())
return DropGenerator.of(this.watchGen(ctrl.signal), () => ctrl.abort())