openvibe-sdk/vibes
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
From types/vibes.d.ts (server only). Declarations are shown verbatim.
class VibesError
Vibes Pay for developer apps (server only). Money is whole Vibes; a float is refused.
export declare class VibesError extends Error {
constructor(message: string, init?: { status?: number | null; code?: string | null; body?: unknown });
status: number | null;
code: string | null;
body: unknown;
/** No status, 5xx, 429 or 401. */
readonly retryable: boolean;
}type VibesTokenContext
export type VibesTokenContext = { service: 'billing'; audience: 'openvibe.billing' };type VibesToken
export type VibesToken = string | Record<string, string>;type VibesTokenProvider
export type VibesTokenProvider =
| ((ctx: VibesTokenContext) => VibesToken | Promise<VibesToken>)
| {
getToken?(ctx: VibesTokenContext): VibesToken | Promise<VibesToken>;
authHeaders?(ctx: VibesTokenContext): VibesToken | Promise<VibesToken>;
invalidate?(ctx?: VibesTokenContext): void | Promise<void>;
};type VibesOptions
export type VibesOptions = {
/** The app's token (capability billing.vibes.charge). One of appToken or tokenProvider. */
appToken?: string;
/** A function, or an SDK token client (getToken / invalidate), for a token that expires. */
tokenProvider?: VibesTokenProvider;
/** Billing's origin, e.g. https://billing.openvibe.network. */
billingUrl: string;
fetchImpl?: typeof fetch;
/** Per request, default 10000. */
timeoutMs?: number;
};type VibesChargeCreate
export type VibesChargeCreate = {
/** A positive whole number of Vibes. */
amount: number;
description: string;
/** The app's order id; also the idempotency key, so a retry never charges twice. */
reference: string;
/** Where the pay sheet sends the person afterwards (http or https). */
return_url?: string;
};type VibesCharge
export type VibesCharge = {
id: string;
pay_url: string;
status: 'pending' | 'paid' | 'refunded' | 'cancelled' | 'expired' | string;
expires_at?: string;
amount?: number;
description?: string;
reference?: string;
[field: string]: unknown;
};type VibesClient
export type VibesClient = {
charges: {
create(input: VibesChargeCreate): Promise<VibesCharge>;
get(chargeId: string): Promise<VibesCharge>;
refund(chargeId: string, opts?: { reason?: string }): Promise<VibesCharge>;
};
webhooks: {
/** Constant-time check of the RAW body against X-OpenVibe-Signature-V2 (or a legacy sha256= header). */
verify(rawBody: string | Uint8Array | ArrayBufferView, signatureHeader: string, secret: string, opts?: { toleranceSec?: number; now?: number }): boolean;
};
baseUrl(): string;
};function createVibesClient
export declare function createVibesClient(options: VibesOptions): VibesClient;function verifyWebhook
The same check as vibes.webhooks.verify, for a receiver that only verifies webhooks.
export declare function verifyWebhook(rawBody: string | Uint8Array | ArrayBufferView, signatureHeader: string, secret: string, opts?: { toleranceSec?: number; now?: number }): boolean;const SIGNATURE_TOLERANCE_SEC
export declare const SIGNATURE_TOLERANCE_SEC: number;