Files
mesh-contracts/ts/src/mesh-config.ts
T
jschoubben c7fb8d6689 SD-M3: the Go and TypeScript generated from the definitions (design 26 *The generator*)
go/seats the seat list every reader compiles and every seat's name; a package per whole seat with its names, subjects,
types and a test of its fixtures; ts/ the same as a TypeScript package. Written by seatgen, never by hand.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:50:54 +01:00

120 lines
3.0 KiB
TypeScript

// Code generated by seatgen from the seat definitions; DO NOT EDIT.
// The contract of the seat "mesh-config", defined whole (seats/mesh-config/seat.json): The mesh's config values: read and set one, and the renames still open. mesh-config's own events stay under its own subjects (ADR 0620 §2).
export const seat = "mesh-config";
export const verbs = {
config: "config",
renames: "renames",
} as const;
export const holderEvents = {
configChanged: "config-changed",
renamed: "renamed",
retiring: "retiring",
retired: "retired",
} as const;
export function configChangedHolderSubject(holder: string): string {
return "mesh.mod." + holder + ".event.config-changed";
}
export function renamedHolderSubject(holder: string): string {
return "mesh.mod." + holder + ".event.renamed";
}
export function retiringHolderSubject(holder: string): string {
return "mesh.mod." + holder + ".event.retiring";
}
export function retiredHolderSubject(holder: string): string {
return "mesh.mod." + holder + ".event.retired";
}
/** is what config takes. */
export interface ConfigInput {
/** list (when not given), set, clear or history */
"action"?: string;
/** who gave the value at the controller's terminal */
"by"?: string;
/** the config key */
"key"?: string;
/** for history: at most this many, newest */
"limit"?: number;
/** a module: its own value, with node */
"module"?: string;
/** a node */
"node"?: string;
/** for set: the value, of the key's type: a number, a string, a boolean, or for a trusted key an object or a list */
"value"?: unknown;
/** for set and clear: why */
"why"?: string;
}
/** is what config answers. */
export type ConfigAnswer = Record<string, unknown>;
/** is what renames takes. */
export interface RenamesInput {
/** one module (optional) */
"module"?: string;
}
export interface RenamesAnswerRenamesItem {
/** when it moved, RFC 3339 */
"at"?: string;
/** the old name */
"from": string;
/** the module */
"module": string;
/** the nodes still holding the old name open */
"open"?: string[];
/** the new name */
"to": string;
}
/** is what renames answers. */
export interface RenamesAnswer {
/** every open rename */
"renames": RenamesAnswerRenamesItem[];
}
/** is the body of the holder's event renamed. */
export interface RenamedHolderEvent {
/** when, RFC 3339 */
"at": string;
/** the old name */
"from": string;
/** the module */
"module": string;
/** the new name */
"to": string;
}
/** is the body of the holder's event retiring. */
export interface RetiringHolderEvent {
/** the ask's id */
"ask"?: string;
/** the value's or secret's name */
"key": string;
"kind": "value" | "secret";
/** the module */
"module": string;
/** since when, RFC 3339 */
"since": string;
}
/** is the body of the holder's event retired. */
export interface RetiredHolderEvent {
/** the ask's id */
"ask"?: string;
/** the module */
"module": string;
/** the name */
"name": string;
/** the node */
"node"?: string;
}