@adeli/sdk 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/duration.ts","../src/core/errors.ts","../src/core/config.ts","../src/core/retry.ts","../src/core/transport.ts","../src/operations.ts","../src/resources/accounts.ts","../src/resources/profiles.ts","../src/uploads.ts","../src/resources/posts.ts","../src/resources/comments.ts","../src/resources/messages.ts","../src/resources/analytics.ts","../src/resources/ads.ts","../src/resources/usage.ts","../src/resources/webhooks.ts","../src/client.ts"],"names":["openAsBlob","descriptor","path","basename","record"],"mappings":"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","file":"index.cjs","sourcesContent":["/** Node timers clamp values above this signed 32-bit millisecond limit to 1ms. */\nexport const MAX_TIMER_DURATION_MS = 2_147_483_647;\n\nexport function isRepresentableTimerDuration(value: number): boolean {\n return Number.isFinite(value) && value > 0 && value <= MAX_TIMER_DURATION_MS;\n}\n","import type { components } from '../generated/api.js';\n\nexport type AdeliErrorCode = string;\nexport type PermissionRequiredDetails = NonNullable<components['schemas']['PermissionRequiredError']['error']['details']>;\n\nconst permissionProviders = new Set(['instagram', 'tiktok', 'facebook', 'whatsapp', 'youtube', 'x', 'bluesky']);\nconst permissionLists = ['requiredPermissions', 'missingPermissions', 'requiredResources', 'missingResources'] as const;\nfunction record(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\nfunction provider(value: unknown): boolean { return typeof value === 'string' && permissionProviders.has(value); }\nfunction descriptor(value: unknown): boolean { return record(value) && typeof value.code === 'string' && typeof value.label === 'string'; }\n\n/** Conservative recognition, not normalization or proof that a URL is safe to follow.\n * Sparse known fields are allowed; unknown-only objects and malformed known fields are not.\n */\nexport function isPermissionRequiredDetails(value: unknown): value is PermissionRequiredDetails {\n try {\n if (!record(value)) return false;\n const known = new Set<string>(['provider', 'accountId', 'profileId', 'capability', 'reconnect', ...permissionLists]);\n if (!Object.keys(value).some(key => known.has(key))) return false;\n for (const key of ['accountId', 'profileId', 'capability']) if (key in value && typeof value[key] !== 'string') return false;\n if ('provider' in value && !provider(value.provider)) return false;\n for (const key of permissionLists) {\n if (key in value) {\n const entries = value[key];\n if (!Array.isArray(entries)) return false;\n for (const entry of entries) if (!descriptor(entry)) return false;\n }\n }\n if ('reconnect' in value) {\n const reconnect = value.reconnect;\n if (!record(reconnect) || reconnect.action !== 'restart_oauth') return false;\n if ('method' in reconnect && reconnect.method !== 'POST') return false;\n if ('href' in reconnect && reconnect.href !== null && typeof reconnect.href !== 'string') return false;\n if ('provider' in reconnect && !provider(reconnect.provider)) return false;\n if ('message' in reconnect && typeof reconnect.message !== 'string') return false;\n }\n return true;\n } catch {\n return false;\n }\n}\n\nexport class AdeliError extends Error {\n override readonly name: string = 'AdeliError';\n constructor(message: string) { super(message); }\n}\n\nexport class ConfigurationError extends AdeliError { override readonly name = 'ConfigurationError'; }\nexport class NetworkError extends AdeliError { override readonly name: string = 'NetworkError'; }\n/** Redirects are refused and must never be retried with credentials. */\nexport class RedirectError extends NetworkError { override readonly name: string = 'RedirectError'; }\n/** A timeout only cancels this client request; a write may still have completed remotely. */\nexport class TimeoutError extends AdeliError { override readonly name = 'TimeoutError'; }\nexport class CancellationError extends AdeliError { override readonly name = 'CancellationError'; }\nexport class MalformedResponseError extends AdeliError { override readonly name = 'MalformedResponseError'; }\n\nexport interface AdeliApiErrorOptions { status: number; code?: string; details?: unknown; headers?: Headers; }\nexport class AdeliApiError extends AdeliError {\n override readonly name: string = 'AdeliApiError';\n readonly status: number;\n readonly code: string;\n readonly details: unknown;\n readonly headers: Headers;\n constructor(message: string, options: AdeliApiErrorOptions) {\n super(message);\n this.status = options.status;\n this.code = options.code ?? 'api_error';\n this.details = options.details;\n this.headers = options.headers ?? new Headers();\n }\n}\nexport class AuthenticationError extends AdeliApiError { override readonly name = 'AuthenticationError'; }\nexport class ValidationError extends AdeliApiError { override readonly name = 'ValidationError'; }\nexport class RateLimitError extends AdeliApiError { override readonly name = 'RateLimitError'; }\nexport class PermissionRequiredError extends AdeliApiError { override readonly name = 'PermissionRequiredError'; }\n\nexport function isAdeliApiError(error: unknown): error is AdeliApiError { return error instanceof AdeliApiError; }\n\nconst VALIDATION_CODES = new Set(['invalid_request', 'invalid_profile', 'invalid_redirect_uri']);\nconst PERMISSION_CODES = new Set(['permission_required']);\nconst RATE_LIMIT_CODES = new Set(['rate_limited', 'rate_limit_exceeded', 'quota_exhausted', 'daily_quota_exceeded']);\n\n/** Classify documented API codes, not broad status classes with unrelated semantics. */\nexport function apiError(message: string, options: AdeliApiErrorOptions): AdeliApiError {\n if (options.status === 401 || options.code === 'unauthorized') return new AuthenticationError(message, options);\n if (options.status === 429 || (options.code !== undefined && RATE_LIMIT_CODES.has(options.code))) return new RateLimitError(message, options);\n if (options.code !== undefined && PERMISSION_CODES.has(options.code)) return new PermissionRequiredError(message, options);\n if (options.code !== undefined && VALIDATION_CODES.has(options.code)) return new ValidationError(message, options);\n return new AdeliApiError(message, options);\n}\n","import { isRepresentableTimerDuration, MAX_TIMER_DURATION_MS } from './duration.js';\nimport { ConfigurationError } from './errors.js';\nimport type { ClientOptions, Fetch } from './types.js';\n\nexport interface ResolvedConfig { readonly apiKey: string; readonly baseURL: string; /** Undefined means use the operation's default, then 60 seconds. */ readonly timeoutMs: number | undefined; readonly maxRetries: number; readonly fetch: Fetch; }\nconst DEFAULT_BASE_URL = 'https://app.tryadeli.com';\nconst LOCAL_HOSTS = new Set(['localhost', '127.0.0.1', '[::1]', '::1']);\n\nexport function resolveConfig(options: ClientOptions = {}): ResolvedConfig {\n if (typeof window !== 'undefined') throw new ConfigurationError('Adeli is a server-side SDK and cannot run in a browser');\n const apiKey = options.apiKey ?? process.env.ADELI_API_KEY;\n if (!apiKey || apiKey.trim() === '') throw new ConfigurationError('An Adeli API key is required (pass apiKey or set ADELI_API_KEY)');\n if (/[\\u0000-\\u001f\\u007f]/.test(apiKey)) throw new ConfigurationError('The Adeli API key must not contain control characters');\n // Native Headers errors can echo invalid credential values (for example NUL).\n // Validate locally and discard the original exception rather than leaking it.\n try { new Headers({ authorization: `Bearer ${apiKey}` }); }\n catch { throw new ConfigurationError('The Adeli API key must be a valid HTTP header value'); }\n const baseURL = validateBaseURL(options.baseURL ?? DEFAULT_BASE_URL);\n const timeoutMs = options.timeoutMs;\n const maxRetries = options.maxRetries ?? 0;\n if (timeoutMs !== undefined && !isRepresentableTimerDuration(timeoutMs)) throw new ConfigurationError(`timeoutMs must be a positive finite number no greater than ${MAX_TIMER_DURATION_MS}ms`);\n if (!Number.isInteger(maxRetries) || maxRetries < 0) throw new ConfigurationError('maxRetries must be a non-negative integer');\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (!fetchImpl) throw new ConfigurationError('A fetch implementation is required');\n return { apiKey, baseURL, timeoutMs, maxRetries, fetch: fetchImpl };\n}\n\nexport function validateBaseURL(input: string): string {\n let url: URL;\n try { url = new URL(input); } catch { throw new ConfigurationError('baseURL must be an absolute URL origin'); }\n if (!['http:', 'https:'].includes(url.protocol)) throw new ConfigurationError('baseURL must use http or https');\n if (url.protocol !== 'https:' && !LOCAL_HOSTS.has(url.hostname)) throw new ConfigurationError('HTTPS is required except for local development');\n if (url.username || url.password || url.search || url.hash || (url.pathname !== '/' && url.pathname !== '')) throw new ConfigurationError('baseURL must be an origin without a path, query, fragment, or credentials');\n return url.origin;\n}\n","import { CancellationError, NetworkError, RedirectError } from './errors.js';\nimport type { OperationMetadata } from './types.js';\n\nconst TRANSIENT_STATUSES = new Set([408, 429, 500, 502, 503, 504]);\nexport function isRetryableStatus(status: number): boolean { return TRANSIENT_STATUSES.has(status); }\nexport function parseRetryAfter(value: string | null, now = Date.now()): number | undefined {\n if (!value) return undefined;\n const seconds = Number(value);\n if (Number.isFinite(seconds) && seconds >= 0) return seconds * 1_000;\n const date = Date.parse(value);\n return Number.isFinite(date) ? Math.max(0, date - now) : undefined;\n}\nexport function canRetry(operation: OperationMetadata, idempotencyKey: string | undefined): boolean {\n return operation.retry === 'safe-read'\n || (operation.retry === 'profile-create' && idempotencyKey !== undefined && idempotencyKey.trim() !== '');\n}\nexport function backoffMs(attempt: number, retryAfter?: number, random = Math.random()): number {\n if (retryAfter !== undefined) return retryAfter;\n return Math.min(30_000, 250 * (2 ** attempt)) + Math.floor(random * 100);\n}\nexport async function sleepWithSignal(ms: number, signal: AbortSignal): Promise<void> {\n if (signal.aborted) throw new CancellationError('The Adeli request was cancelled');\n await new Promise<void>((resolve, reject) => {\n let settled = false;\n const finish = (callback: () => void) => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n signal.removeEventListener('abort', onAbort);\n callback();\n };\n const onAbort = () => finish(() => reject(new CancellationError('The Adeli request was cancelled')));\n const timer = setTimeout(() => finish(resolve), ms);\n signal.addEventListener('abort', onAbort, { once: true });\n });\n}\n/** Only failures explicitly wrapped after fetch rejection are retryable network errors. */\nexport function retryableNetworkError(error: unknown): boolean {\n return error instanceof NetworkError && !(error instanceof RedirectError);\n}\nexport function isDailyQuotaExhausted(code: string): boolean {\n const normalized = code.toLowerCase().replace(/[-\\s]/g, '_');\n return normalized === 'quota_exhausted'\n || normalized === 'daily_quota_exceeded'\n || (normalized.includes('daily') && normalized.includes('quota'));\n}\n","import { isRepresentableTimerDuration, MAX_TIMER_DURATION_MS } from './duration.js';\nimport { apiError, CancellationError, MalformedResponseError, NetworkError, RedirectError, TimeoutError } from './errors.js';\nimport { backoffMs, canRetry, isDailyQuotaExhausted, isRetryableStatus, parseRetryAfter, retryableNetworkError, sleepWithSignal } from './retry.js';\nimport type { ResolvedConfig } from './config.js';\nimport type { ApiResponse, MultipartBody, PathParams, QueryParams, QueryValue, RequestOptions, TransportRequest } from './types.js';\n\nfunction isMultipartBody(value: unknown): value is MultipartBody {\n return value !== null && typeof value === 'object' && 'stream' in value && 'contentType' in value\n && typeof (value as { stream?: unknown }).stream === 'object'\n && typeof (value as { contentType?: unknown }).contentType === 'string';\n}\n\nfunction pathSegment(value: string | number, name: string): string {\n const segment = String(value);\n let decoded = segment;\n try { decoded = decodeURIComponent(segment); } catch { /* encode the literal malformed percent sequence */ }\n if (decoded === '.' || decoded === '..') throw new TypeError(`Invalid path parameter ${name}: dot segments are not allowed`);\n return encodeURIComponent(segment);\n}\n\nfunction buildURL(baseURL: string, template: string, path: PathParams | undefined, query: QueryParams | undefined): URL {\n const pathValues = path as Record<string, string | number> | undefined;\n const rendered = template.replace(/\\{([^}]+)\\}/g, (_whole, name: string) => {\n const value = pathValues?.[name];\n if (value === undefined) throw new TypeError(`Missing path parameter: ${name}`);\n return pathSegment(value, name);\n });\n const url = new URL(`/api/v1${rendered.startsWith('/') ? rendered : `/${rendered}`}`, `${baseURL}/`);\n if (query) for (const [key, value] of Object.entries(query as Record<string, QueryValue>)) {\n if (value === undefined || value === null) continue;\n if (/\\u0000|\\r|\\n/.test(key)) throw new TypeError('Invalid query parameter name');\n for (const item of Array.isArray(value) ? value : [value]) url.searchParams.append(key, String(item));\n }\n return url;\n}\n\nfunction redact(value: unknown, secret: string): unknown {\n if (typeof value === 'string') return value.split(secret).join('[REDACTED]');\n if (Array.isArray(value)) return value.map((item) => redact(item, secret));\n if (value !== null && typeof value === 'object') {\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [key.split(secret).join('[REDACTED]'), redact(item, secret)]));\n }\n return value;\n}\n\nasync function readResponseText(response: Response, signal: AbortSignal): Promise<string> {\n if (response.status === 204) return '';\n if (signal.aborted) throw new DOMException('aborted', 'AbortError');\n const body = response.body;\n if (!body) return '';\n const reader = body.getReader();\n const decoder = new TextDecoder();\n return new Promise<string>((resolve, reject) => {\n let settled = false;\n const chunks: string[] = [];\n const finish = (callback: () => void) => {\n if (settled) return;\n settled = true;\n signal.removeEventListener('abort', onAbort);\n callback();\n };\n const onAbort = () => {\n void reader.cancel().catch(() => undefined);\n finish(() => reject(new DOMException('aborted', 'AbortError')));\n };\n signal.addEventListener('abort', onAbort, { once: true });\n const read = async () => {\n try {\n while (!settled) {\n const chunk = await reader.read();\n if (settled) return;\n if (chunk.done) {\n finish(() => resolve(chunks.join('') + decoder.decode()));\n return;\n }\n chunks.push(decoder.decode(chunk.value, { stream: true }));\n }\n } catch (error) {\n finish(() => reject(error));\n }\n };\n void read();\n });\n}\n\nexport class Transport {\n constructor(private readonly config: ResolvedConfig) {}\n /** Prevent client configuration, especially apiKey, from leaking through JSON serialization. */\n toJSON(): Record<string, never> { return {}; }\n\n /** Send raw bytes to a one-object presigned URL without leaking the Adeli API key. */\n async upload(url: string, method: 'PUT', headers: Readonly<Record<string, string>>, body: Blob, options: RequestOptions = {}): Promise<void> {\n const timeoutMs = options.timeoutMs ?? this.config.timeoutMs ?? 60_000;\n if (!isRepresentableTimerDuration(timeoutMs)) throw new TypeError(`timeoutMs must be a positive finite number no greater than ${MAX_TIMER_DURATION_MS}ms`);\n if (options.signal?.aborted) throw new CancellationError('The media upload was cancelled');\n const controller = new AbortController();\n let timedOut = false;\n let cancelled = false;\n const onAbort = () => { cancelled = true; controller.abort(); };\n options.signal?.addEventListener('abort', onAbort, { once: true });\n const timer = setTimeout(() => { timedOut = true; controller.abort(); }, timeoutMs);\n try {\n for (let attempt = 0; ; attempt += 1) {\n try {\n const response = await this.config.fetch(url, { method, headers: new Headers(headers), body, signal: controller.signal, redirect: 'error' });\n if (response.redirected) throw new RedirectError('Adeli refused a media upload redirect');\n if (response.ok) return;\n if (attempt < this.config.maxRetries && response.status >= 500) {\n await sleepWithSignal(backoffMs(attempt, parseRetryAfter(response.headers.get('retry-after'))), controller.signal);\n continue;\n }\n throw new NetworkError(`Direct media upload failed with status ${response.status}`);\n } catch (error) {\n if (timedOut) throw new TimeoutError(`Media upload exceeded its ${timeoutMs}ms deadline`);\n if (cancelled || (error instanceof Error && error.name === 'AbortError')) throw new CancellationError('The media upload was cancelled');\n if (attempt < this.config.maxRetries && retryableNetworkError(error)) {\n await sleepWithSignal(backoffMs(attempt), controller.signal);\n continue;\n }\n throw error;\n }\n }\n } finally {\n clearTimeout(timer);\n options.signal?.removeEventListener('abort', onAbort);\n }\n }\n\n async request<T, B = unknown>(request: TransportRequest<B>): Promise<ApiResponse<T>> {\n const timeoutMs = request.timeoutMs ?? this.config.timeoutMs ?? request.operation.defaultTimeoutMs ?? 60_000;\n if (!isRepresentableTimerDuration(timeoutMs)) throw new TypeError(`timeoutMs must be a positive finite number no greater than ${MAX_TIMER_DURATION_MS}ms`);\n if (request.idempotencyKey !== undefined && (request.idempotencyKey.trim() === '' || /[\\u0000-\\u001f\\u007f\\r\\n]/.test(request.idempotencyKey))) {\n throw new TypeError('idempotencyKey must be a nonblank valid HTTP header value');\n }\n if (request.signal?.aborted) throw new CancellationError('The Adeli request was cancelled');\n const deadline = Date.now() + timeoutMs;\n const controller = new AbortController();\n let timedOut = false;\n let cancelled = false;\n const onAbort = () => { cancelled = true; controller.abort(); };\n request.signal?.addEventListener('abort', onAbort, { once: true });\n const timer = setTimeout(() => { timedOut = true; controller.abort(); }, timeoutMs);\n try {\n const maxAttempts = canRetry(request.operation, request.idempotencyKey) ? this.config.maxRetries + 1 : 1;\n let attempt = 0;\n while (true) {\n try {\n const response = await this.perform(request, controller.signal);\n if (response.ok) return { data: response.data as T, status: response.status, headers: response.headers };\n if (attempt + 1 < maxAttempts && isRetryableStatus(response.status) && !isDailyQuotaExhausted(response.error.code) && Date.now() < deadline) {\n const delay = backoffMs(attempt, parseRetryAfter(response.headers.get('retry-after')));\n if (Date.now() + delay >= deadline) throw response.error;\n await sleepWithSignal(delay, controller.signal);\n attempt++;\n continue;\n }\n throw response.error;\n } catch (error) {\n if (timedOut) throw new TimeoutError(`Adeli request exceeded its ${timeoutMs}ms deadline; the remote write outcome may be unknown`);\n if (cancelled) throw new CancellationError('The Adeli request was cancelled');\n if (error instanceof Error && error.name === 'AbortError') throw new CancellationError('The Adeli request was cancelled');\n if (attempt + 1 < maxAttempts && retryableNetworkError(error) && Date.now() < deadline) {\n const delay = backoffMs(attempt);\n if (Date.now() + delay >= deadline) throw error;\n await sleepWithSignal(delay, controller.signal);\n attempt++;\n continue;\n }\n throw error;\n }\n }\n } finally {\n clearTimeout(timer);\n request.signal?.removeEventListener('abort', onAbort);\n }\n }\n\n private async perform<B>(request: TransportRequest<B>, signal: AbortSignal): Promise<{ ok: true; data: unknown; status: number; headers: Headers } | { ok: false; data: undefined; status: number; headers: Headers; error: ReturnType<typeof apiError> }> {\n const url = buildURL(this.config.baseURL, request.operation.path, request.path, request.query);\n const headers = new Headers({ authorization: `Bearer ${this.config.apiKey}`, accept: 'application/json' });\n let encodedBody: BodyInit | undefined;\n let duplex: 'half' | undefined;\n if (request.body !== undefined) {\n if (isMultipartBody(request.body)) {\n encodedBody = request.body.stream;\n headers.set('content-type', request.body.contentType);\n duplex = 'half';\n } else if (typeof FormData !== 'undefined' && request.body instanceof FormData) encodedBody = request.body;\n else if (typeof Blob !== 'undefined' && request.body instanceof Blob) encodedBody = request.body;\n else {\n headers.set('content-type', 'application/json');\n encodedBody = JSON.stringify(request.body);\n }\n }\n if (request.idempotencyKey !== undefined) headers.set('idempotency-key', request.idempotencyKey);\n let response: Response;\n try {\n response = await this.config.fetch(url, { method: request.operation.method, headers, signal, redirect: 'error', ...(encodedBody === undefined ? {} : { body: encodedBody }), ...(duplex === undefined ? {} : { duplex }) });\n } catch (error) {\n if (signal.aborted || (error instanceof Error && error.name === 'AbortError')) throw error;\n throw new NetworkError('Unable to connect to Adeli');\n }\n if (response.redirected) throw new RedirectError('Adeli refused a redirect');\n let text: string;\n try {\n text = await readResponseText(response, signal);\n } catch (error) {\n if (signal.aborted || (error instanceof Error && error.name === 'AbortError')) throw error;\n throw new NetworkError('Unable to read the Adeli response');\n }\n let data: unknown;\n if (response.status !== 204) {\n if (text === '') {\n if (response.ok) throw new MalformedResponseError('Adeli returned an empty response where JSON was required');\n } else {\n try { data = JSON.parse(text); }\n catch {\n if (response.ok) throw new MalformedResponseError('Adeli returned malformed JSON');\n data = text;\n }\n }\n }\n if (!response.ok) {\n const envelope = data !== null && typeof data === 'object' && !Array.isArray(data) ? (data as Record<string, unknown>).error : undefined;\n const errorBody = envelope !== null && typeof envelope === 'object' && !Array.isArray(envelope) ? envelope as Record<string, unknown> : undefined;\n const code = typeof errorBody?.code === 'string' ? errorBody.code : undefined;\n const redactedCode = code === undefined ? undefined : String(redact(code, this.config.apiKey));\n const message = typeof errorBody?.message === 'string' ? errorBody.message : `Adeli request failed with status ${response.status}`;\n const hasDetails = errorBody !== undefined && Object.prototype.hasOwnProperty.call(errorBody, 'details');\n const details = hasDetails ? errorBody.details : redact(data, this.config.apiKey);\n return {\n ok: false, data: undefined, status: response.status, headers: response.headers,\n error: apiError(String(redact(message, this.config.apiKey)), { status: response.status, details: redact(details, this.config.apiKey), headers: response.headers, ...(redactedCode === undefined ? {} : { code: redactedCode }) }),\n };\n }\n return { ok: true, data: response.status === 204 ? undefined : data, status: response.status, headers: response.headers };\n }\n}\n","import type { OperationMetadata } from './core/types.js';\n\n/** Metadata mirrors every public route in the pinned OpenAPI document. Retry policy is deliberately conservative for provider writes and billed reads. */\nexport const operations = {\n getMe: { operationId: 'getMe', method: 'GET', path: '/me', retry: 'safe-read' },\n listProfiles: { operationId: 'listProfiles', method: 'GET', path: '/profiles', retry: 'safe-read' },\n createProfile: { operationId: 'createProfile', method: 'POST', path: '/profiles', retry: 'profile-create' },\n getProfile: { operationId: 'getProfile', method: 'GET', path: '/profiles/{profileId}', retry: 'safe-read' },\n updateProfile: { operationId: 'updateProfile', method: 'PUT', path: '/profiles/{profileId}', retry: 'never' },\n deleteProfile: { operationId: 'deleteProfile', method: 'DELETE', path: '/profiles/{profileId}', retry: 'never' },\n startConnection: { operationId: 'startConnection', method: 'POST', path: '/profiles/{profileId}/connect', retry: 'never' },\n getConnection: { operationId: 'getConnection', method: 'GET', path: '/profiles/{profileId}/connect/{connectionSessionId}', retry: 'safe-read' },\n listAccounts: { operationId: 'listAccounts', method: 'GET', path: '/accounts', retry: 'safe-read' },\n listProfileAccounts: { operationId: 'listProfileAccounts', method: 'GET', path: '/profiles/{profileId}/accounts', retry: 'safe-read' },\n getAccount: { operationId: 'getAccount', method: 'GET', path: '/profiles/{profileId}/accounts/{accountId}', retry: 'safe-read' },\n updateAccount: { operationId: 'updateAccount', method: 'PATCH', path: '/profiles/{profileId}/accounts/{accountId}', retry: 'never' },\n disconnectAccount: { operationId: 'disconnectAccount', method: 'DELETE', path: '/profiles/{profileId}/accounts/{accountId}', retry: 'never' },\n refreshAccounts: { operationId: 'refreshAccounts', method: 'POST', path: '/profiles/{profileId}/accounts/refresh', retry: 'never' },\n listPosts: { operationId: 'listPosts', method: 'GET', path: '/posts', retry: 'never' },\n createMediaUploads: { operationId: 'createMediaUploads', method: 'POST', path: '/media/uploads', retry: 'never' },\n createPost: { operationId: 'createPost', method: 'POST', path: '/posts', retry: 'never', defaultTimeoutMs: 300_000 },\n uploadYouTubeVideo: { operationId: 'uploadYouTubeVideo', method: 'POST', path: '/posts/youtube', retry: 'never', defaultTimeoutMs: 300_000 },\n deleteXPost: { operationId: 'deleteXPost', method: 'DELETE', path: '/posts/x/{postId}', retry: 'never' },\n deleteBlueskyPost: { operationId: 'deleteBlueskyPost', method: 'DELETE', path: '/posts/bluesky/{postId}', retry: 'never' },\n getInstagramPostStatus: { operationId: 'getInstagramPostStatus', method: 'GET', path: '/posts/instagram/status', retry: 'safe-read' },\n getFacebookPostStatus: { operationId: 'getFacebookPostStatus', method: 'GET', path: '/posts/facebook/status', retry: 'safe-read' },\n getTikTokPostStatus: { operationId: 'getTikTokPostStatus', method: 'GET', path: '/posts/tiktok/status', retry: 'safe-read' },\n getTikTokCreatorInfo: { operationId: 'getTikTokCreatorInfo', method: 'GET', path: '/posts/tiktok/creator-info', retry: 'safe-read' },\n getYouTubeVideoStatus: { operationId: 'getYouTubeVideoStatus', method: 'GET', path: '/posts/youtube/status', retry: 'safe-read' },\n listComments: { operationId: 'listComments', method: 'GET', path: '/comments', retry: 'safe-read' },\n createComment: { operationId: 'createComment', method: 'POST', path: '/comments', retry: 'never' },\n updateComment: { operationId: 'updateComment', method: 'PATCH', path: '/comments/{commentId}', retry: 'never' },\n deleteComment: { operationId: 'deleteComment', method: 'DELETE', path: '/comments/{commentId}', retry: 'never' },\n listMessages: { operationId: 'listMessages', method: 'GET', path: '/messages', retry: 'safe-read' },\n sendMessage: { operationId: 'sendMessage', method: 'POST', path: '/messages', retry: 'never' },\n sendInstagramMessage: { operationId: 'sendInstagramMessage', method: 'POST', path: '/messages/instagram', retry: 'never' },\n getInstagramAccountInsights: { operationId: 'getInstagramAccountInsights', method: 'GET', path: '/analytics/instagram/account-insights', retry: 'safe-read' },\n getFacebookPageMetrics: { operationId: 'getFacebookPageMetrics', method: 'GET', path: '/analytics/facebook/page-metrics', retry: 'safe-read' },\n getTikTokAccountAnalytics: { operationId: 'getTikTokAccountAnalytics', method: 'GET', path: '/analytics/tiktok/account-analytics', retry: 'safe-read' },\n getTikTokAccountInsights: { operationId: 'getTikTokAccountInsights', method: 'GET', path: '/analytics/tiktok/account-insights', retry: 'safe-read' },\n getTikTokVideoInsights: { operationId: 'getTikTokVideoInsights', method: 'GET', path: '/analytics/tiktok/video-insights', retry: 'safe-read' },\n getYouTubeChannelInsights: { operationId: 'getYouTubeChannelInsights', method: 'GET', path: '/analytics/youtube/channel-insights', retry: 'safe-read' },\n getYouTubeVideoInsights: { operationId: 'getYouTubeVideoInsights', method: 'GET', path: '/analytics/youtube/video-insights', retry: 'safe-read' },\n listAdBusinesses: { operationId: 'listAdBusinesses', method: 'GET', path: '/ads/businesses', retry: 'safe-read' },\n listAdAccounts: { operationId: 'listAdAccounts', method: 'GET', path: '/ads/accounts', retry: 'safe-read' },\n createAdAccount: { operationId: 'createAdAccount', method: 'POST', path: '/ads/accounts', retry: 'never' },\n getAdAccount: { operationId: 'getAdAccount', method: 'GET', path: '/ads/accounts/{adAccountId}', retry: 'safe-read' },\n updateAdAccount: { operationId: 'updateAdAccount', method: 'PATCH', path: '/ads/accounts/{adAccountId}', retry: 'never' },\n getAdTree: { operationId: 'getAdTree', method: 'GET', path: '/ads/tree', retry: 'safe-read' },\n getAdInsights: { operationId: 'getAdInsights', method: 'GET', path: '/ads/insights', retry: 'safe-read' },\n listAdLeads: { operationId: 'listAdLeads', method: 'GET', path: '/ads/leads', retry: 'safe-read' },\n createCampaign: { operationId: 'createCampaign', method: 'POST', path: '/ads/campaigns', retry: 'never' },\n deleteCampaign: { operationId: 'deleteCampaign', method: 'DELETE', path: '/ads/campaigns/{campaignId}', retry: 'never' },\n setAdStatus: { operationId: 'setAdStatus', method: 'PUT', path: '/ads/status', retry: 'never' },\n updateAdGroup: { operationId: 'updateAdGroup', method: 'PATCH', path: '/ads/ad-groups/{adGroupId}', retry: 'never' },\n listAdTargeting: { operationId: 'listAdTargeting', method: 'GET', path: '/ads/targeting', retry: 'safe-read' },\n listAdIdentities: { operationId: 'listAdIdentities', method: 'GET', path: '/ads/identities', retry: 'safe-read' },\n createAdIdentity: { operationId: 'createAdIdentity', method: 'POST', path: '/ads/identities', retry: 'never' },\n getXUsage: { operationId: 'getXUsage', method: 'GET', path: '/usage/x', retry: 'safe-read' },\n listWebhooks: { operationId: 'listWebhooks', method: 'GET', path: '/webhooks', retry: 'safe-read' },\n createWebhook: { operationId: 'createWebhook', method: 'POST', path: '/webhooks', retry: 'never' },\n deleteWebhook: { operationId: 'deleteWebhook', method: 'DELETE', path: '/webhooks/{webhookId}', retry: 'never' },\n} as const satisfies Record<string, OperationMetadata>;\nexport type OperationId = keyof typeof operations;\n","import type { components } from '../generated/api.js';\nimport type { OperationJsonBody, OperationPath, OperationQuery, OperationSuccessBody } from '../core/generated.js';\nimport type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\n\n/** Wire types for the account services and profile-scoped account handlers. */\ntype AccountSchema = components['schemas']['Account'];\nexport type CapabilityDescriptor = AccountSchema['recommendedPermissions'][number];\nexport type ReconnectGuidance = AccountSchema['reconnect'];\nexport type CapabilityRequirement = AccountSchema['capabilityRequirements'][string];\nexport type AccountPermissionState = Pick<AccountSchema, 'grantedPermissions' | 'recommendedPermissions' | 'missingRecommendedPermissions' | 'capabilities' | 'capabilityRequirements' | 'reconnect'>;\nexport interface XCapabilities { readonly analytics: boolean; readonly inbox: boolean; }\n/** Aggregate account responses include the full capability/scope state. */\nexport type Account = AccountSchema;\n/** Detail/update handlers additionally return X-specific capability toggles. */\nexport type AccountDetailResponse = OperationSuccessBody<'getAccount'> & { readonly xCapabilities?: XCapabilities };\nexport type AccountUpdateResponse = OperationSuccessBody<'updateAccount'> & { readonly xCapabilities?: XCapabilities };\nexport type ApiErrorRecord = components['schemas']['ApiErrorRecord'];\nexport type AccountsAggregateResponse = OperationSuccessBody<'listAccounts'>;\nexport type RefreshAccountsResponse = OperationSuccessBody<'refreshAccounts'>;\nexport type RefreshAccount = RefreshAccountsResponse extends { accounts: readonly (infer A)[] } ? A : never;\n/** At least one capability must be supplied; the API rejects an empty object. */\nexport type XCapabilitiesUpdate =\n | { readonly analytics: boolean; readonly inbox?: boolean }\n | { readonly analytics?: boolean; readonly inbox: boolean };\nexport type UpdateAccountBody = OperationJsonBody<'updateAccount'>;\nexport type ListAccountsQuery = OperationQuery<'listAccounts'>;\nexport type AccountPath = OperationPath<'getAccount'>;\nexport type DisconnectAccountResponse = OperationSuccessBody<'disconnectAccount'>;\n\nexport class AccountsResource {\n constructor(private readonly transport: Transport) {}\n listAccounts(args: { readonly query?: ListAccountsQuery } = {}, options: RequestOptions = {}): Promise<ApiResponse<AccountsAggregateResponse>> {\n return this.transport.request({ operation: operations.listAccounts, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n listProfileAccounts(args: { readonly path: { readonly profileId: string } }, options: RequestOptions = {}): Promise<ApiResponse<AccountsAggregateResponse>> {\n return this.transport.request({ operation: operations.listProfileAccounts, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getAccount(args: { readonly path: AccountPath }, options: RequestOptions = {}): Promise<ApiResponse<AccountDetailResponse>> {\n return this.transport.request({ operation: operations.getAccount, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n updateAccount(args: { readonly path: AccountPath; readonly body: UpdateAccountBody }, options: RequestOptions = {}): Promise<ApiResponse<AccountUpdateResponse>> {\n return this.transport.request({ operation: operations.updateAccount, path: args.path, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n disconnectAccount(args: { readonly path: AccountPath }, options: RequestOptions = {}): Promise<ApiResponse<DisconnectAccountResponse>> {\n return this.transport.request({ operation: operations.disconnectAccount, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n refreshAccounts(args: { readonly path: { readonly profileId: string } }, options: RequestOptions = {}): Promise<ApiResponse<RefreshAccountsResponse>> {\n return this.transport.request({ operation: operations.refreshAccounts, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n","import type { components } from '../generated/api.js';\nimport type { OperationJsonBody, OperationPath, OperationSuccessBody } from '../core/generated.js';\nimport type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\n\n/** Wire types for the profile and connection handlers in the public API. */\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | readonly JsonValue[] | { readonly [key: string]: JsonValue };\nexport type JsonObject = { readonly [key: string]: JsonValue };\nexport type PublicPlatform = components['schemas']['Account']['platform'];\nexport type ConnectPlatform = PublicPlatform;\n\nexport type Profile = components['schemas']['Profile'];\nexport type ConnectionSession = components['schemas']['ConnectionSession'];\nexport type ConnectionSessionError = NonNullable<ConnectionSession['error']>;\nexport type CreateProfileBody = OperationJsonBody<'createProfile'>;\nexport type UpdateProfileBody = OperationJsonBody<'updateProfile'>;\nexport type StartConnectionBody = OperationJsonBody<'startConnection'>;\nexport type DeleteProfileResponse = OperationSuccessBody<'deleteProfile'>;\nexport type ListProfilesResponse = OperationSuccessBody<'listProfiles'>;\nexport type ProfilePath = OperationPath<'getProfile'>;\nexport type EmptyArgs = Record<never, never>;\n\nexport class ProfilesResource {\n constructor(private readonly transport: Transport) {}\n listProfiles(_args: EmptyArgs = {}, options: RequestOptions = {}): Promise<ApiResponse<ListProfilesResponse>> {\n return this.transport.request({ operation: operations.listProfiles, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n createProfile(args: { readonly body: CreateProfileBody }, options: RequestOptions & { readonly idempotencyKey?: string } = {}): Promise<ApiResponse<Profile>> {\n return this.transport.request({ operation: operations.createProfile, body: args.body, idempotencyKey: options.idempotencyKey, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getProfile(args: { readonly path: ProfilePath }, options: RequestOptions = {}): Promise<ApiResponse<Profile>> {\n return this.transport.request({ operation: operations.getProfile, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n updateProfile(args: { readonly path: ProfilePath; readonly body: UpdateProfileBody }, options: RequestOptions = {}): Promise<ApiResponse<Profile>> {\n return this.transport.request({ operation: operations.updateProfile, path: args.path, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n deleteProfile(args: { readonly path: ProfilePath }, options: RequestOptions = {}): Promise<ApiResponse<DeleteProfileResponse>> {\n return this.transport.request({ operation: operations.deleteProfile, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n startConnection(args: { readonly path: ProfilePath; readonly body: StartConnectionBody }, options: RequestOptions = {}): Promise<ApiResponse<ConnectionSession>> {\n return this.transport.request({ operation: operations.startConnection, path: args.path, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getConnection(args: { readonly path: ProfilePath & { readonly connectionSessionId: string } }, options: RequestOptions = {}): Promise<ApiResponse<ConnectionSession>> {\n return this.transport.request({ operation: operations.getConnection, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n","import { basename } from 'node:path';\nimport { openAsBlob } from 'node:fs';\nimport type { RequestOptions } from './core/types.js';\nimport type { Transport } from './core/transport.js';\n\n/** Options for a file-backed upload. The bytes remain backed by the source file until consumed by fetch. */\nexport interface FileUploadOptions {\n readonly contentType?: string;\n readonly name?: string;\n}\n\n/** Open a local file as a native Blob without reading the media into memory. */\nexport async function blobFromPath(path: string, options: Pick<FileUploadOptions, 'contentType'> = {}): Promise<Blob> {\n return openAsBlob(path, options.contentType === undefined ? undefined : { type: options.contentType });\n}\n\nexport interface DirectUploadDescriptor {\n readonly clientId: string;\n readonly uploadId: string;\n readonly method: 'PUT';\n readonly url: string;\n readonly headers: Readonly<Record<string, string>>;\n readonly expiresAt: string;\n}\n\nexport interface DirectUploadProgress { readonly loaded: number; readonly total: number; readonly completedFiles: number; readonly totalFiles: number }\nexport interface DirectUploadOptions extends RequestOptions {\n readonly concurrency?: number;\n readonly onProgress?: (progress: DirectUploadProgress) => void;\n}\n\n/** PUT file/blob bodies with exact signed headers, bounded concurrency, cancellation, and stable result order. */\nexport async function putDirectUploads(\n transport: Transport,\n descriptors: readonly DirectUploadDescriptor[],\n files: readonly Blob[],\n options: DirectUploadOptions = {},\n): Promise<readonly string[]> {\n if (descriptors.length !== files.length) throw new TypeError('The media upload manifest was incomplete');\n const byId = new Map(descriptors.map((descriptor) => [descriptor.clientId, descriptor]));\n const concurrency = options.concurrency ?? 3;\n if (!Number.isSafeInteger(concurrency) || concurrency < 1 || concurrency > 10) throw new TypeError('concurrency must be an integer between 1 and 10');\n const total = files.reduce((sum, file) => sum + file.size, 0);\n let completedBytes = 0;\n let completedFiles = 0;\n const result: string[] = new Array(files.length);\n let next = 0;\n const worker = async () => {\n while (next < files.length) {\n const index = next++;\n const descriptor = byId.get(String(index));\n const file = files[index];\n if (!descriptor || !file) throw new TypeError('The media upload manifest was incomplete');\n await transport.upload(descriptor.url, descriptor.method, descriptor.headers, file, options);\n completedBytes += file.size;\n completedFiles += 1;\n options.onProgress?.({ loaded: completedBytes, total, completedFiles, totalFiles: files.length });\n result[index] = descriptor.uploadId;\n }\n };\n await Promise.all(Array.from({ length: Math.min(concurrency, files.length) }, () => worker()));\n return result;\n}\n\n/** Open a local file as a native File, retaining its filename and MIME type for direct upload. */\nexport async function fileFromPath(path: string, options: FileUploadOptions = {}): Promise<File> {\n const blob = await blobFromPath(path, options);\n return new File([blob], options.name ?? basename(path), options.contentType === undefined ? undefined : { type: options.contentType });\n}\n","import type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { OperationJsonBody as JsonBody, OperationPath as Path, OperationQuery as JsonQuery, OperationSuccessBody as SuccessBody } from '../core/generated.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\nimport { putDirectUploads, type DirectUploadOptions } from '../uploads.js';\n\nexport type PostsQuery = JsonQuery<'listPosts'>;\nexport type ListPostsQuery = PostsQuery;\nexport type CreatePostBody = JsonBody<'createPost'>;\nexport type CreateMediaUploadsBody = JsonBody<'createMediaUploads'>;\nexport type CreateMediaUploadsResponse = SuccessBody<'createMediaUploads'>;\nexport type PostListResponse = SuccessBody<'listPosts'>;\nexport type DeletePostResponse = SuccessBody<'deleteXPost'>;\nexport type InstagramPostStatusResponse = SuccessBody<'getInstagramPostStatus'>;\nexport type FacebookPostStatusResponse = SuccessBody<'getFacebookPostStatus'>;\nexport type TikTokPostStatusResponse = SuccessBody<'getTikTokPostStatus'>;\nexport type TikTokCreatorInfoResponse = SuccessBody<'getTikTokCreatorInfo'>;\nexport type YouTubeVideoStatusResponse = SuccessBody<'getYouTubeVideoStatus'>;\nexport type YouTubeUploadResponse = SuccessBody<'uploadYouTubeVideo'>;\nexport type YouTubeStagedUploadBody = JsonBody<'uploadYouTubeVideo'>;\n\n/** A Blob/File sent directly to private S3. File names are retained when provided by the Node adapter. */\nexport type BinaryUpload = Blob & { readonly name?: string };\nexport type UploadableMedia<T> = T | BinaryUpload | ({ readonly file: BinaryUpload } & (T extends object ? Partial<T> : object));\ntype MediaKey = 'image' | 'images' | 'reel' | 'story' | 'carousel' | 'video' | 'photos' | 'media' | 'thumbnail';\ntype UploadableValue<K, V> = K extends MediaKey\n ? V extends readonly (infer Item)[] ? readonly UploadableMedia<UploadableDeep<Item>>[] : UploadableMedia<UploadableDeep<V>>\n : UploadableDeep<V>;\ntype UploadableDeep<T> = T extends readonly (infer Item)[] ? readonly UploadableDeep<Item>[] : T extends object ? { readonly [K in keyof T]: UploadableValue<K, T[K]> } : T;\n/** Generated post union with Blob/File alternatives added at every media field, including thread parts. */\nexport type CreatePostWithFiles = UploadableDeep<CreatePostBody>;\n\n/** Backwards-compatible name for the existing high-level TikTok file body. */\nexport interface TikTokMultipartBody {\n readonly platform: 'tiktok';\n readonly accountId: string;\n readonly profileId?: string;\n readonly video?: BinaryUpload;\n readonly photos?: readonly BinaryUpload[];\n readonly post_mode?: 'DIRECT_POST' | 'MEDIA_UPLOAD';\n readonly tiktok_title?: string;\n readonly tiktok_description?: string;\n readonly privacy_level?: 'PUBLIC_TO_EVERYONE' | 'MUTUAL_FOLLOW_FRIENDS' | 'FOLLOWER_OF_CREATOR' | 'SELF_ONLY';\n readonly disable_comment?: boolean;\n readonly disable_duet?: boolean;\n readonly disable_stitch?: boolean;\n readonly cover_timestamp?: number;\n readonly photo_cover_index?: number;\n readonly auto_add_music?: boolean;\n readonly is_aigc?: boolean;\n readonly brand_content_toggle?: boolean;\n readonly brand_organic_toggle?: boolean;\n readonly music_usage_confirmed: true;\n}\nexport type DeletePostPath = Path<'deleteXPost'>;\nexport type DeletePostQuery = JsonQuery<'deleteXPost'>;\nexport type PostStatusQuery = JsonQuery<'getFacebookPostStatus'>;\nexport interface YouTubeUploadBody {\n readonly platform?: 'youtube';\n readonly accountId: string;\n readonly profileId?: string;\n readonly video: BinaryUpload;\n readonly thumbnail?: BinaryUpload;\n readonly title: string;\n readonly description?: string;\n readonly tags?: readonly string[];\n readonly category_id?: string;\n readonly privacy_status: 'public' | 'unlisted' | 'private';\n readonly made_for_kids: boolean;\n readonly contains_synthetic_media?: boolean;\n readonly publish_at?: string;\n readonly notify_subscribers?: boolean;\n}\nexport type UploadYouTubeVideoBody = YouTubeUploadBody;\n\ntype Platform = CreateMediaUploadsBody['platform'];\ntype MutableReference = { upload_id: string };\ntype CollectedFile = { file: BinaryUpload; reference: MutableReference; purpose: 'post_media' | 'youtube_thumbnail' };\n\nfunction isBlob(value: unknown): value is BinaryUpload { return typeof Blob !== 'undefined' && value instanceof Blob; }\nfunction collectFiles(value: unknown, key: string | undefined, collected: CollectedFile[]): unknown {\n if (isBlob(value)) {\n const reference: MutableReference = { upload_id: '' };\n collected.push({ file: value, reference, purpose: key === 'thumbnail' ? 'youtube_thumbnail' : 'post_media' });\n return reference;\n }\n if (Array.isArray(value)) return value.map((item) => collectFiles(item, key, collected));\n if (value !== null && typeof value === 'object') {\n const record = value as Record<string, unknown>;\n if (isBlob(record.file)) {\n const reference: MutableReference = { upload_id: '' };\n collected.push({ file: record.file, reference, purpose: key === 'thumbnail' ? 'youtube_thumbnail' : 'post_media' });\n const metadata = Object.fromEntries(Object.entries(record).filter(([name]) => name !== 'file'));\n return Object.assign(reference, metadata);\n }\n return Object.fromEntries(Object.entries(record).map(([name, item]) => [name, collectFiles(item, name, collected)]));\n }\n return value;\n}\n\nexport class PostsResource {\n constructor(private readonly transport: Transport) {}\n listPosts(args: { readonly query?: PostsQuery } = {}, options: RequestOptions = {}): Promise<ApiResponse<PostListResponse>> {\n return this.transport.request({ operation: operations.listPosts, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n createMediaUploads(args: { readonly body: CreateMediaUploadsBody }, options: RequestOptions = {}): Promise<ApiResponse<CreateMediaUploadsResponse>> {\n return this.transport.request({ operation: operations.createMediaUploads, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n private async profileIdFor(accountId: string, explicit: string | undefined, options: RequestOptions) {\n if (explicit) return explicit;\n const response = await this.transport.request<SuccessBody<'listAccounts'>>({ operation: operations.listAccounts, query: { accountId }, signal: options.signal, timeoutMs: options.timeoutMs });\n const account = (response.data as { accounts?: Array<{ profileId?: string }> }).accounts?.[0];\n if (!account?.profileId) throw new TypeError('A profileId is required to upload media for this account');\n return account.profileId;\n }\n private async stageBody(body: Record<string, unknown>, options: DirectUploadOptions): Promise<Record<string, unknown>> {\n const files: CollectedFile[] = [];\n const stagedBody = collectFiles(body, undefined, files) as Record<string, unknown>;\n if (!files.length) return stagedBody;\n const platform = body.platform as Platform;\n if (!['instagram', 'facebook', 'tiktok', 'youtube', 'x', 'bluesky'].includes(platform)) throw new TypeError('A supported platform is required for media upload');\n const accountId = body.accountId;\n if (typeof accountId !== 'string') throw new TypeError('accountId is required for media upload');\n const profileId = await this.profileIdFor(accountId, typeof body.profileId === 'string' ? body.profileId : undefined, options);\n const declaration = files.map(({ file, purpose }, index) => {\n if (!file.type) throw new TypeError('Every uploaded Blob needs a content type');\n return { clientId: String(index), purpose, contentType: file.type, size: file.size, ...('name' in file && typeof file.name === 'string' ? { filename: file.name } : {}) };\n });\n const initiated = await this.createMediaUploads({ body: { profileId, platform, files: declaration } }, options);\n const uploadIds = await putDirectUploads(this.transport, initiated.data.uploads, files.map(({ file }) => file), options);\n uploadIds.forEach((uploadId, index) => { files[index]!.reference.upload_id = uploadId; });\n return stagedBody;\n }\n async createPost(args: { readonly body: CreatePostWithFiles | TikTokMultipartBody }, options: DirectUploadOptions = {}): Promise<ApiResponse<SuccessBody<'createPost'>>> {\n const body = await this.stageBody(args.body as unknown as Record<string, unknown>, options);\n return this.transport.request({ operation: operations.createPost, body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n async uploadYouTubeVideo(args: { readonly body: YouTubeUploadBody | YouTubeStagedUploadBody }, options: DirectUploadOptions = {}): Promise<ApiResponse<YouTubeUploadResponse>> {\n const body = await this.stageBody({ ...args.body, platform: 'youtube' }, options);\n return this.transport.request({ operation: operations.uploadYouTubeVideo, body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n deleteXPost(args: { readonly path: Path<'deleteXPost'>; readonly query: JsonQuery<'deleteXPost'> }, options: RequestOptions = {}): Promise<ApiResponse<DeletePostResponse>> {\n return this.transport.request({ operation: operations.deleteXPost, path: args.path, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n deleteBlueskyPost(args: { readonly path: Path<'deleteBlueskyPost'>; readonly query: JsonQuery<'deleteBlueskyPost'> }, options: RequestOptions = {}): Promise<ApiResponse<SuccessBody<'deleteBlueskyPost'>>> {\n return this.transport.request({ operation: operations.deleteBlueskyPost, path: args.path, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getInstagramPostStatus(args: { readonly query: JsonQuery<'getInstagramPostStatus'> }, options: RequestOptions = {}): Promise<ApiResponse<InstagramPostStatusResponse>> {\n return this.transport.request({ operation: operations.getInstagramPostStatus, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getFacebookPostStatus(args: { readonly query: JsonQuery<'getFacebookPostStatus'> }, options: RequestOptions = {}): Promise<ApiResponse<FacebookPostStatusResponse>> {\n return this.transport.request({ operation: operations.getFacebookPostStatus, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getTikTokPostStatus(args: { readonly query: JsonQuery<'getTikTokPostStatus'> }, options: RequestOptions = {}): Promise<ApiResponse<TikTokPostStatusResponse>> {\n return this.transport.request({ operation: operations.getTikTokPostStatus, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getTikTokCreatorInfo(args: { readonly query: JsonQuery<'getTikTokCreatorInfo'> }, options: RequestOptions = {}): Promise<ApiResponse<TikTokCreatorInfoResponse>> {\n return this.transport.request({ operation: operations.getTikTokCreatorInfo, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n getYouTubeVideoStatus(args: { readonly query: JsonQuery<'getYouTubeVideoStatus'> }, options: RequestOptions = {}): Promise<ApiResponse<YouTubeVideoStatusResponse>> {\n return this.transport.request({ operation: operations.getYouTubeVideoStatus, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n","import type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { OperationJsonBody as JsonBody, OperationPath as Path, OperationQuery as JsonQuery, OperationSuccessBody as SuccessBody } from '../core/generated.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\n\nexport type CommentsQuery = JsonQuery<'listComments'>;\nexport type ListCommentsQuery = CommentsQuery;\nexport type CreateCommentBody = JsonBody<'createComment'>;\nexport type UpdateCommentBody = JsonBody<'updateComment'>;\nexport type CommentsResponse = SuccessBody<'listComments'>;\nexport type CommentMutationResponse = SuccessBody<'createComment'>;\nexport type UpdatedCommentResponse = SuccessBody<'updateComment'>;\n\nexport class CommentsResource {\n constructor(private readonly transport: Transport) {}\n listComments(args: { readonly query: CommentsQuery }, options: RequestOptions = {}): Promise<ApiResponse<CommentsResponse>> {\n return this.transport.request({ operation: operations.listComments, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n createComment(args: { readonly body: CreateCommentBody }, options: RequestOptions = {}): Promise<ApiResponse<CommentMutationResponse>> {\n return this.transport.request({ operation: operations.createComment, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n updateComment(args: { readonly path: Path<'updateComment'>; readonly body: UpdateCommentBody }, options: RequestOptions = {}): Promise<ApiResponse<UpdatedCommentResponse>> {\n return this.transport.request({ operation: operations.updateComment, path: args.path, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n deleteComment(args: { readonly path: Path<'deleteComment'>; readonly query: JsonQuery<'deleteComment'> }, options: RequestOptions = {}): Promise<ApiResponse<undefined>> {\n return this.transport.request({ operation: operations.deleteComment, path: args.path, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n","import type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { OperationJsonBody as JsonBody, OperationQuery as JsonQuery, OperationSuccessBody as SuccessBody } from '../core/generated.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\n\nexport type MessagesQuery = JsonQuery<'listMessages'>;\nexport type ListMessagesQuery = MessagesQuery;\nexport type SendMessageBody = JsonBody<'sendMessage'>;\nexport type MessagesResponse = SuccessBody<'listMessages'>;\nexport type SentMessage = SuccessBody<'sendMessage'>;\nexport type SendInstagramMessageBody = JsonBody<'sendInstagramMessage'>;\nexport type SentInstagramMessage = SuccessBody<'sendInstagramMessage'>;\n\nexport class MessagesResource {\n constructor(private readonly transport: Transport) {}\n listMessages(args: { readonly query?: MessagesQuery } = {}, options: RequestOptions = {}): Promise<ApiResponse<MessagesResponse>> {\n return this.transport.request({ operation: operations.listMessages, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n sendMessage(args: { readonly body: SendMessageBody }, options: RequestOptions = {}): Promise<ApiResponse<SentMessage>> {\n return this.transport.request({ operation: operations.sendMessage, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n sendInstagramMessage(args: { readonly body: SendInstagramMessageBody }, options: RequestOptions = {}): Promise<ApiResponse<SentInstagramMessage>> {\n return this.transport.request({ operation: operations.sendInstagramMessage, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n","import type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { OperationQuery as JsonQuery, OperationSuccessBody as SuccessBody } from '../core/generated.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\n\nexport type InstagramAccountInsightsQuery = JsonQuery<'getInstagramAccountInsights'>;\nexport type FacebookPageMetricsQuery = JsonQuery<'getFacebookPageMetrics'>;\nexport type TikTokAccountAnalyticsQuery = JsonQuery<'getTikTokAccountAnalytics'>;\nexport type TikTokAccountInsightsQuery = JsonQuery<'getTikTokAccountInsights'>;\nexport type TikTokVideoInsightsQuery = JsonQuery<'getTikTokVideoInsights'>;\nexport type YouTubeChannelInsightsQuery = JsonQuery<'getYouTubeChannelInsights'>;\nexport type YouTubeVideoInsightsQuery = JsonQuery<'getYouTubeVideoInsights'>;\nexport type InstagramAccountInsightsResponse = SuccessBody<'getInstagramAccountInsights'>;\nexport type FacebookPageMetricsResponse = SuccessBody<'getFacebookPageMetrics'>;\nexport type TikTokAccountAnalyticsResponse = SuccessBody<'getTikTokAccountAnalytics'>;\nexport type TikTokAccountInsightsResponse = SuccessBody<'getTikTokAccountInsights'>;\nexport type TikTokVideoInsightsResponse = SuccessBody<'getTikTokVideoInsights'>;\nexport type YouTubeChannelInsightsResponse = SuccessBody<'getYouTubeChannelInsights'>;\nexport type YouTubeVideoInsightsResponse = SuccessBody<'getYouTubeVideoInsights'>;\n\nexport class AnalyticsResource {\n constructor(private readonly transport: Transport) {}\n getInstagramAccountInsights(args: { readonly query: InstagramAccountInsightsQuery }, options: RequestOptions = {}): Promise<ApiResponse<InstagramAccountInsightsResponse>> { return this.transport.request({ operation: operations.getInstagramAccountInsights, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getFacebookPageMetrics(args: { readonly query?: FacebookPageMetricsQuery }, options: RequestOptions = {}): Promise<ApiResponse<FacebookPageMetricsResponse>> { return this.transport.request({ operation: operations.getFacebookPageMetrics, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getTikTokAccountAnalytics(args: { readonly query: TikTokAccountAnalyticsQuery }, options: RequestOptions = {}): Promise<ApiResponse<TikTokAccountAnalyticsResponse>> { return this.transport.request({ operation: operations.getTikTokAccountAnalytics, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getTikTokAccountInsights(args: { readonly query: TikTokAccountInsightsQuery }, options: RequestOptions = {}): Promise<ApiResponse<TikTokAccountInsightsResponse>> { return this.transport.request({ operation: operations.getTikTokAccountInsights, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getTikTokVideoInsights(args: { readonly query: TikTokVideoInsightsQuery }, options: RequestOptions = {}): Promise<ApiResponse<TikTokVideoInsightsResponse>> { return this.transport.request({ operation: operations.getTikTokVideoInsights, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getYouTubeChannelInsights(args: { readonly query: YouTubeChannelInsightsQuery }, options: RequestOptions = {}): Promise<ApiResponse<YouTubeChannelInsightsResponse>> { return this.transport.request({ operation: operations.getYouTubeChannelInsights, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getYouTubeVideoInsights(args: { readonly query: YouTubeVideoInsightsQuery }, options: RequestOptions = {}): Promise<ApiResponse<YouTubeVideoInsightsResponse>> { return this.transport.request({ operation: operations.getYouTubeVideoInsights, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n}\n","import type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { OperationJsonBody as JsonBody, OperationPath as Path, OperationQuery as JsonQuery, OperationSuccessBody as SuccessBody } from '../core/generated.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\n\ntype IdempotentOptions = RequestOptions & { readonly idempotencyKey: string };\nexport type AdBusinessesQuery = JsonQuery<'listAdBusinesses'>;\nexport type ListAdBusinessesQuery = AdBusinessesQuery;\nexport type AdAccountsQuery = JsonQuery<'listAdAccounts'>;\nexport type ListAdAccountsQuery = AdAccountsQuery;\nexport type CreateAdAccountQuery = JsonQuery<'createAdAccount'>;\nexport type AdAccountQuery = JsonQuery<'getAdAccount'>;\nexport type AdTreeQuery = JsonQuery<'getAdTree'>;\nexport type AdInsightsQuery = JsonQuery<'getAdInsights'>;\nexport type AdLeadsQuery = JsonQuery<'listAdLeads'>;\nexport type ListAdLeadsQuery = AdLeadsQuery;\nexport type CreateCampaignQuery = JsonQuery<'createCampaign'>;\nexport type CreateAdAccountBody = JsonBody<'createAdAccount'>;\nexport type UpdateAdAccountBody = JsonBody<'updateAdAccount'>;\nexport type CreateCampaignBody = JsonBody<'createCampaign'>;\nexport type SetAdStatusBody = JsonBody<'setAdStatus'>;\nexport type AdAccountPath = Path<'getAdAccount'>;\nexport type UpdateAdAccountPath = Path<'updateAdAccount'>;\nexport type DeleteCampaignPath = Path<'deleteCampaign'>;\nexport type ListAdBusinessesResponse = SuccessBody<'listAdBusinesses'>;\nexport type ListAdAccountsResponse = SuccessBody<'listAdAccounts'>;\nexport type CreateAdAccountResponse = SuccessBody<'createAdAccount'>;\nexport type AdAccountResponse = SuccessBody<'getAdAccount'>;\nexport type AdTreeResponse = SuccessBody<'getAdTree'>;\nexport type AdInsightsResponse = SuccessBody<'getAdInsights'>;\nexport type AdLeadsResponse = SuccessBody<'listAdLeads'>;\nexport type CampaignResponse = SuccessBody<'createCampaign'>;\nexport type AdStatusResponse = SuccessBody<'setAdStatus'>;\n/** TikTok Ads only: an ad group's budget, end date or name. */\nexport type UpdateAdGroupPath = Path<'updateAdGroup'>;\nexport type UpdateAdGroupQuery = JsonQuery<'updateAdGroup'>;\nexport type UpdateAdGroupBody = JsonBody<'updateAdGroup'>;\nexport type AdGroupResponse = SuccessBody<'updateAdGroup'>;\n/** TikTok Ads only: location, language and interest options. */\nexport type AdTargetingQuery = JsonQuery<'listAdTargeting'>;\nexport type AdTargetingResponse = SuccessBody<'listAdTargeting'>;\n/** TikTok Ads only: the brand identities an ad runs as. */\nexport type AdIdentitiesQuery = JsonQuery<'listAdIdentities'>;\nexport type AdIdentitiesResponse = SuccessBody<'listAdIdentities'>;\nexport type CreateAdIdentityQuery = JsonQuery<'createAdIdentity'>;\nexport type CreateAdIdentityBody = JsonBody<'createAdIdentity'>;\nexport type AdIdentityResponse = SuccessBody<'createAdIdentity'>;\n\nfunction requiredIdempotency(options: IdempotentOptions | undefined): string {\n const key = options?.idempotencyKey;\n if (typeof key !== 'string' || key.trim() === '' || /[\\u0000-\\u001f\\u007f\\r\\n]/.test(key)) throw new TypeError('idempotencyKey must be a nonblank valid HTTP header value');\n return key;\n}\n\nexport class AdsResource {\n constructor(private readonly transport: Transport) {}\n listAdBusinesses(args: { readonly query?: AdBusinessesQuery } = {}, options: RequestOptions = {}): Promise<ApiResponse<ListAdBusinessesResponse>> { return this.transport.request({ operation: operations.listAdBusinesses, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n listAdAccounts(args: { readonly query?: AdAccountsQuery } = {}, options: RequestOptions = {}): Promise<ApiResponse<ListAdAccountsResponse>> { return this.transport.request({ operation: operations.listAdAccounts, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n createAdAccount(args: { readonly query?: CreateAdAccountQuery; readonly body: CreateAdAccountBody }, options: IdempotentOptions): Promise<ApiResponse<CreateAdAccountResponse>> {\n const idempotencyKey = requiredIdempotency(options);\n return this.transport.request({ operation: operations.createAdAccount, query: args.query, body: args.body, idempotencyKey, signal: options?.signal, timeoutMs: options?.timeoutMs });\n }\n getAdAccount(args: { readonly path: AdAccountPath; readonly query?: AdAccountQuery }, options: RequestOptions = {}): Promise<ApiResponse<AdAccountResponse>> { return this.transport.request({ operation: operations.getAdAccount, path: args.path, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n updateAdAccount(args: { readonly path: UpdateAdAccountPath; readonly query?: AdAccountQuery; readonly body: UpdateAdAccountBody }, options: RequestOptions = {}): Promise<ApiResponse<AdAccountResponse>> { return this.transport.request({ operation: operations.updateAdAccount, path: args.path, query: args.query, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getAdTree(args: { readonly query: AdTreeQuery }, options: RequestOptions = {}): Promise<ApiResponse<AdTreeResponse>> { return this.transport.request({ operation: operations.getAdTree, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n getAdInsights(args: { readonly query: AdInsightsQuery }, options: RequestOptions = {}): Promise<ApiResponse<AdInsightsResponse>> { return this.transport.request({ operation: operations.getAdInsights, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n listAdLeads(args: { readonly query?: AdLeadsQuery } = {}, options: RequestOptions = {}): Promise<ApiResponse<AdLeadsResponse>> { return this.transport.request({ operation: operations.listAdLeads, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n createCampaign(args: { readonly query?: CreateCampaignQuery; readonly body: CreateCampaignBody }, options: IdempotentOptions): Promise<ApiResponse<CampaignResponse>> {\n const idempotencyKey = requiredIdempotency(options);\n return this.transport.request({ operation: operations.createCampaign, query: args.query, body: args.body, idempotencyKey, signal: options?.signal, timeoutMs: options?.timeoutMs });\n }\n deleteCampaign(args: { readonly path: DeleteCampaignPath; readonly query: JsonQuery<'deleteCampaign'> }, options: RequestOptions = {}): Promise<ApiResponse<undefined>> { return this.transport.request({ operation: operations.deleteCampaign, path: args.path, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n setAdStatus(args: { readonly query?: JsonQuery<'setAdStatus'>; readonly body: SetAdStatusBody }, options: RequestOptions = {}): Promise<ApiResponse<AdStatusResponse>> { return this.transport.request({ operation: operations.setAdStatus, query: args.query, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs }); }\n updateAdGroup(args: { readonly path: UpdateAdGroupPath; readonly query?: UpdateAdGroupQuery; readonly body: UpdateAdGroupBody }, options: RequestOptions = {}): Promise<ApiResponse<AdGroupResponse>> { return this.transport.request({ operation: operations.updateAdGroup, path: args.path, query: args.query, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs }); }\n listAdTargeting(args: { readonly query: AdTargetingQuery }, options: RequestOptions = {}): Promise<ApiResponse<AdTargetingResponse>> { return this.transport.request({ operation: operations.listAdTargeting, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n listAdIdentities(args: { readonly query: AdIdentitiesQuery }, options: RequestOptions = {}): Promise<ApiResponse<AdIdentitiesResponse>> { return this.transport.request({ operation: operations.listAdIdentities, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs }); }\n createAdIdentity(args: { readonly query?: CreateAdIdentityQuery; readonly body: CreateAdIdentityBody }, options: RequestOptions = {}): Promise<ApiResponse<AdIdentityResponse>> { return this.transport.request({ operation: operations.createAdIdentity, query: args.query, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs }); }\n}\n","import type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { OperationSuccessBody as SuccessBody } from '../core/generated.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\nexport type XUsageResponse = SuccessBody<'getXUsage'>;\n\nexport class UsageResource {\n constructor(private readonly transport: Transport) {}\n getXUsage(_args: Record<never, never> = {}, options: RequestOptions = {}): Promise<ApiResponse<XUsageResponse>> {\n return this.transport.request({ operation: operations.getXUsage, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n","import type { ApiResponse, RequestOptions } from '../core/types.js';\nimport type { OperationJsonBody as JsonBody, OperationPath as Path, OperationQuery as JsonQuery, OperationSuccessBody as SuccessBody } from '../core/generated.js';\nimport type { Transport } from '../core/transport.js';\nimport { operations } from '../operations.js';\n\nexport type ListWebhooksQuery = JsonQuery<'listWebhooks'>;\nexport type CreateWebhookBody = JsonBody<'createWebhook'>;\nexport type WebhooksResponse = SuccessBody<'listWebhooks'>;\nexport type Webhook = WebhooksResponse['webhooks'][number];\n/** The created webhook and its signing secret. The secret is returned only here. */\nexport type CreatedWebhook = SuccessBody<'createWebhook'>;\n\nexport class WebhooksResource {\n constructor(private readonly transport: Transport) {}\n listWebhooks(args: { readonly query: ListWebhooksQuery }, options: RequestOptions = {}): Promise<ApiResponse<WebhooksResponse>> {\n return this.transport.request({ operation: operations.listWebhooks, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n createWebhook(args: { readonly body: CreateWebhookBody }, options: RequestOptions = {}): Promise<ApiResponse<CreatedWebhook>> {\n return this.transport.request({ operation: operations.createWebhook, body: args.body, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n deleteWebhook(args: { readonly path: Path<'deleteWebhook'> }, options: RequestOptions = {}): Promise<ApiResponse<undefined>> {\n return this.transport.request({ operation: operations.deleteWebhook, path: args.path, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n","import { resolveConfig } from './core/config.js';\nimport type { ApiResponse, ClientOptions, RequestOptions } from './core/types.js';\nimport { Transport } from './core/transport.js';\nimport { AccountsResource } from './resources/accounts.js';\nimport { ProfilesResource, type PublicPlatform } from './resources/profiles.js';\nimport { operations } from './operations.js';\nimport { PostsResource } from './resources/posts.js';\nimport { CommentsResource } from './resources/comments.js';\nimport { MessagesResource } from './resources/messages.js';\nimport { AnalyticsResource } from './resources/analytics.js';\nimport { AdsResource } from './resources/ads.js';\nimport { UsageResource } from './resources/usage.js';\nimport { WebhooksResource } from './resources/webhooks.js';\n\n/** Wire alias for the object serialized by apps/web/lib/public-api/me.ts. */\nexport interface Identity {\n readonly message: string;\n readonly you: {\n readonly name: string | null;\n readonly organization: string | null;\n readonly profile: { readonly id: string; readonly name: string };\n };\n readonly apiKey: { readonly label: string | null; readonly prefix: string; readonly createdAt: string };\n readonly accountsConnected: readonly { readonly accountId: string; readonly platform: PublicPlatform; readonly username: string | null }[];\n readonly docs: string;\n}\nexport interface GetMeQuery { readonly profileId?: string; }\n\nexport class Adeli {\n readonly profiles: ProfilesResource;\n readonly accounts: AccountsResource;\n readonly posts: PostsResource;\n readonly comments: CommentsResource;\n readonly messages: MessagesResource;\n readonly analytics: AnalyticsResource;\n readonly ads: AdsResource;\n readonly usage: UsageResource;\n readonly webhooks: WebhooksResource;\n private readonly transport: Transport;\n constructor(options: ClientOptions = {}) {\n this.transport = new Transport(resolveConfig(options));\n this.profiles = new ProfilesResource(this.transport);\n this.accounts = new AccountsResource(this.transport);\n this.posts = new PostsResource(this.transport);\n this.comments = new CommentsResource(this.transport);\n this.messages = new MessagesResource(this.transport);\n this.analytics = new AnalyticsResource(this.transport);\n this.ads = new AdsResource(this.transport);\n this.usage = new UsageResource(this.transport);\n this.webhooks = new WebhooksResource(this.transport);\n }\n /** Do not serialize client internals or its API key. */\n toJSON(): Record<string, never> { return {}; }\n getMe(args: { readonly query?: GetMeQuery } = {}, options: RequestOptions = {}): Promise<ApiResponse<Identity>> {\n return this.transport.request({ operation: operations.getMe, query: args.query, signal: options.signal, timeoutMs: options.timeoutMs });\n }\n}\n"]}