openvibe-sdk/inventory
Generated at from
openvibe-contracts v0.221.0 and
openvibe-sdk v0.65.0.
From types/inventory.d.ts (server only). Declarations are shown verbatim.
type Rarity
export type Rarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';interface Kind
export interface Kind { id: string; name?: string; slots: string[]; surfaces?: string[]; schema?: Record<string, unknown>; [k: string]: unknown }interface Definition
export interface Definition {
id: string; kind: string; name: string; description?: string | null; rarity: Rarity; issuer: string;
art?: { media_id?: string; token?: string; emoji?: string }; attributes?: Record<string, unknown>; supply_cap?: number | null;
status?: 'draft' | 'in_review' | 'published' | 'retired'; [k: string]: unknown;
}interface DefinitionRequest
export interface DefinitionRequest { kind: string; name: string; description?: string; rarity?: Rarity; art?: Definition['art']; attributes?: Record<string, unknown>; supply_cap?: number; [k: string]: unknown }interface Instance
export interface Instance { id: string; definition_id: string; owner_subject?: string; state?: 'owned' | 'consumed' | 'revoked'; serial?: number | null; [k: string]: unknown }interface EquippedSet
export interface EquippedSet { subject: string; slots: Record<string, { instance_id: string; definition_id: string; token?: string; media_id?: string }>; updated_at: string | null }interface InventoryClient
export interface InventoryClient {
kinds: { list(opts?: Opts): Promise<{ kinds: Kind[] }>; get(kindId: string, opts?: Opts): Promise<{ kind: Kind }> };
definitions: {
list(opts?: Opts & { kind?: string; issuer?: string; limit?: number }): Promise<{ definitions: Definition[] }>;
get(id: string, opts?: Opts): Promise<{ definition: Definition }>;
create(definition: DefinitionRequest, opts?: Opts): Promise<{ definition: Definition }>;
update(id: string, patch: Partial<DefinitionRequest>, opts?: Opts): Promise<{ definition: Definition }>;
};
people: {
items(subject: string, opts?: Opts & { kind?: string; cursor?: string; limit?: number }): Promise<{ items: Instance[]; next: string | null; [k: string]: unknown }>;
equipped(subject: string, opts?: Opts): Promise<EquippedSet>;
};
equipped(subjects: string[], opts?: Opts): Promise<{ equipped: EquippedSet[] }>;
me: {
items(opts?: Opts & { kind?: string; cursor?: string; limit?: number }): Promise<{ items: Instance[]; next: string | null; [k: string]: unknown }>;
equip(req: { kind: string; slot: string; instance_id: string | null }, opts?: Opts): Promise<EquippedSet>;
};
grants: { create(req: { definition_id: string; subject: string; idempotency_key: string; [k: string]: unknown }, opts?: Opts): Promise<{ instance: Instance; created: boolean }> };
instances: { consume(id: string, opts?: Opts): Promise<{ instance: Instance }>; revoke(id: string, opts?: Opts & { reason?: string }): Promise<{ instance: Instance }> };
/** The same client acting for one person (sends X-OV-Subject). */
forPerson(subject: string): InventoryClient;
}export export function createInventoryClient(client: { json(opts: R
export function createInventoryClient(client: { json(opts: Record<string, unknown>): Promise<any> }, options?: { baseUrl?: string; subject?: string }): InventoryClient;