UNPKG

@veltdev/types

Version:

Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.

63 lines (62 loc) 2.4 kB
import { CommentResolverSaveEvent } from "../../utils/enums"; export interface ResolverEndpointConfig { url: string; /** * Request headers. Either a static object (captured once) OR an async function * resolved on EVERY request — use the function form to forward a short-lived * per-user token (re-evaluated per retry attempt, so each retry gets a fresh token). */ headers?: Record<string, string> | (() => Promise<Record<string, string>>); /** * Forwarded to `fetch()` so cookie/session auth works for resolver endpoints. * When unset the `credentials` key is omitted from the request, so `fetch` keeps * its browser default of `'same-origin'` — byte-identical to the prior behavior * (same-origin cookies are still sent). Set `'include'` for cross-origin cookie/ * session auth, or `'omit'` to explicitly suppress credentials. */ credentials?: 'include' | 'same-origin' | 'omit'; } export interface ResolverConfig { resolveTimeout?: number; saveRetryConfig?: RetryConfig; deleteRetryConfig?: RetryConfig; getRetryConfig?: RetryConfig; resolveUsersConfig?: ResolveUsersConfig; fieldsToRemove?: string[]; additionalFields?: string[]; /** * Opt-in list of additional (non-core) annotation-level save events the customer * wants delivered to the existing save endpoint, beyond the 4 core PII events * (add/update/delete). Each entry's `event` is a `CommentResolverSaveEvent`. * Array-of-objects for forward-extensibility. Absent/empty ⇒ iteration-1 behavior * (no extra events) — see specs/comment-resolver iteration-2. */ additionalSaveEvents?: AdditionalSaveEventConfig[]; getConfig?: ResolverEndpointConfig; saveConfig?: ResolverEndpointConfig; deleteConfig?: ResolverEndpointConfig; } export interface AdditionalSaveEventConfig { event: CommentResolverSaveEvent; } export interface ResolveUsersConfig { organization?: boolean; folder?: boolean; document?: boolean; } export interface ResolverResponse<T> { data?: T; success: boolean; message?: string; timestamp?: number; statusCode: number; } export interface RetryConfig { retryCount?: number; retryDelay?: number; revertOnFailure?: boolean; } export interface ResolverResponseConfig { revertOnFailure?: boolean; isSuccess?: boolean; }