@e280/authlocal
Version:
User-sovereign login system for everybody
54 lines (44 loc) • 1.27 kB
text/typescript
import {Identity} from "../../trust/exports/authority.js"
import {Intake} from "../views/pages/ingress/intake.js"
export namespace Situation {
export type List = {
kind: "list"
onCreate: () => Promise<void>
onEdit: (identity: Identity) => Promise<void>
onDelete: (identities: Identity[]) => Promise<void>
onEgress: (identities: Identity[]) => Promise<void>
onIngress: () => Promise<void>
}
export type Create = {
kind: "create"
identities: Identity[]
initialIdentity: Identity
initialIdentitySeed: string
onIngress: () => Promise<void>
onSave: (identity: Identity) => Promise<void>
onDone: () => Promise<void>
onBack?: () => Promise<void>
}
export type Edit = {
kind: "edit"
seed: string
identity: Identity
onBack: () => Promise<void>
onSave: (identity: Identity) => Promise<void>
onDelete: (identity: Identity) => Promise<void>
}
export type Delete = {
kind: "delete"
identities: Identity[]
onBack: () => Promise<void>
onDelete: (ids: string[]) => Promise<void>
}
export type Ingress = {
kind: "ingress"
intake: Intake
onBack: () => Promise<void>
onSave: (identities: Identity[]) => Promise<void>
}
////////////////////////////////
export type Any = List | Create | Edit | Delete | Ingress
}