@rixl/sdk 0.6.1 → 0.7.2

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/generated/core/bodySerializer.gen.ts","../src/generated/core/params.gen.ts","../src/generated/core/serverSentEvents.gen.ts","../src/generated/core/pathSerializer.gen.ts","../src/generated/core/utils.gen.ts","../src/generated/core/auth.gen.ts","../src/generated/client/utils.gen.ts","../src/generated/client/client.gen.ts","../src/generated/client.gen.ts","../src/generated/sdk.gen.ts","../src/connect.ts","../src/auth/api/refresh-tokens.ts","../src/auth/initialization.ts","../src/auth/cookie/util.ts","../src/auth/cookie/index.ts","../src/auth/userStore.ts","../src/auth/utils/jwt.ts","../src/auth/authStore.ts","../src/auth/auth/logout.ts","../src/auth/api/types.ts","../src/auth/api-url.ts","../src/auth/api/sdk-client.ts","../src/auth/social/socialState.ts","../src/auth/api/error-handlers.ts","../src/auth/api/utils.ts","../src/auth/validation/base.ts","../src/auth/validation/auth.ts","../src/auth/social/socialConnections.ts","../src/auth/api/client-core.ts","../src/auth/authConfig.ts","../src/auth/init.ts","../src/auth/membership/types.ts","../src/auth/membership/list.ts","../src/auth/validation/membership.ts","../src/auth/membership/invite.ts","../src/auth/membership/manage.ts","../src/auth/validation/user.ts","../src/auth/user.ts","../src/auth/organization.ts","../src/auth/auth/login.ts","../src/auth/auth/register.ts","../src/auth/auth/password.ts","../src/auth/auth/email.ts","../src/auth/validation/domain.ts","../src/auth/domain/types.ts","../src/auth/domain/index.ts","../src/auth/blog/index.ts","../src/auth/passkey.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ntype Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n | {\n in: Exclude<Slot, 'body'>;\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If omitted, we use the same value as `key`.\n */\n map?: string;\n }\n | {\n in: Extract<Slot, 'body'>;\n /**\n * Key isn't required for bodies.\n */\n key?: string;\n map?: string;\n }\n | {\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If `in` is omitted, `map` aliases `key` to the transport layer.\n */\n map: Slot;\n };\n\nexport interface Fields {\n allowExtra?: Partial<Record<Slot, boolean>>;\n args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n $body_: 'body',\n $headers_: 'headers',\n $path_: 'path',\n $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n string,\n | {\n in: Slot;\n map?: string;\n }\n | {\n in?: never;\n map: Slot;\n }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n if (!map) {\n map = new Map();\n }\n\n for (const config of fields) {\n if ('in' in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n } else if ('key' in config) {\n map.set(config.key, {\n map: config.map,\n });\n } else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n\n return map;\n};\n\ninterface Params {\n body: unknown;\n headers: Record<string, unknown>;\n path: Record<string, unknown>;\n query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === 'object' && !Array.isArray(value) && !Object.keys(value).length) {\n delete params[slot as Slot];\n }\n }\n};\n\nexport const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {\n const params: Params = {\n body: {},\n headers: {},\n path: {},\n query: {},\n };\n\n const map = buildKeyMap(fields);\n\n let config: FieldsConfig[number] | undefined;\n\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n\n if (!config) {\n continue;\n }\n\n if ('in' in config) {\n if (config.key) {\n const field = map.get(config.key)!;\n const name = field.map || config.key;\n if (field.in) {\n (params[field.in] as Record<string, unknown>)[name] = arg;\n }\n } else {\n params.body = arg;\n }\n } else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n\n if (field) {\n if (field.in) {\n const name = field.map || key;\n (params[field.in] as Record<string, unknown>)[name] = value;\n } else {\n params[field.map] = value;\n }\n } else {\n const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix));\n\n if (extra) {\n const [prefix, slot] = extra;\n (params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value;\n } else if ('allowExtra' in config && config.allowExtra) {\n for (const [slot, allowed] of Object.entries(config.allowExtra)) {\n if (allowed) {\n (params[slot as Slot] as Record<string, unknown>)[key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n\n stripEmptySlots(params);\n\n return params;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport function createSseClient<TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n buffer = buffer.replace(/\\r\\n?/g, '\\n'); // normalize line endings\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}) {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e., client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen';\nimport { getUrl } from '../core/utils.gen';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e., their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n /** response may be undefined due to a network error where no response object is produced */\n response: Res | undefined,\n /** request may be undefined, because error may be from building the request object itself */\n request: Req | undefined,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async <\n TData = unknown,\n TResponseStyle extends 'data' | 'fields' = 'fields',\n ThrowOnError extends boolean = boolean,\n Url extends string = string,\n >(\n options: RequestOptions<TData, TResponseStyle, ThrowOnError, Url>,\n ) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const resolvedOpts = opts as typeof opts &\n ResolvedRequestOptions<TResponseStyle, ThrowOnError, Url>;\n const url = buildUrl(resolvedOpts);\n\n return { opts: resolvedOpts, url };\n };\n\n const request: Client['request'] = async (options) => {\n const throwOnError = options.throwOnError ?? _config.throwOnError;\n const responseStyle = options.responseStyle ?? _config.responseStyle;\n\n let request: Request | undefined;\n let response: Response | undefined;\n\n try {\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n\n response = await _fetch(request);\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n throw jsonError ?? textError;\n } catch (error) {\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(finalError, response, request, options as ResolvedRequestOptions);\n }\n }\n\n finalError = finalError || {};\n\n if (throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response,\n };\n }\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>());\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type Client, formDataBodySerializer, type Options as Options2, type TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { CompletePostUploadData, CompletePostUploadResponses, CreateApiKeyByOrgidData, CreateApiKeyByOrgidResponses, CreateCredentialByOrgidData, CreateCredentialByOrgidResponses, CreateFeedData, CreateFeedResponses, CreateMoveByProjectidData, CreateMoveByProjectidResponses, CreatePostData, CreatePostResponses, CreateProjectsByOrgidData, CreateProjectsByOrgidResponses, CreateTokenData, CreateTokenResponses, DeleteApiKeyByKeyidData, DeleteApiKeyByKeyidResponses, DeleteAuthV1MembershipsByOrgIdDomainData, DeleteAuthV1MembershipsByOrgIdDomainResponses, DeleteAuthV1MembershipsByOrgIdLeaveData, DeleteAuthV1MembershipsByOrgIdLeaveResponses, DeleteAuthV1MembershipsByOrgIdMembersByUserIdData, DeleteAuthV1MembershipsByOrgIdMembersByUserIdResponses, DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsByAttachmentIdData, DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsByAttachmentIdResponses, DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdData, DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdResponses, DeleteAuthV1ProvidersByProviderData, DeleteAuthV1ProvidersByProviderResponses, DeleteAuthV1UsersCurrentPasskeysByIdData, DeleteAuthV1UsersCurrentPasskeysByIdResponses, DeleteAuthV1UsersCurrentTotpDeleteData, DeleteAuthV1UsersCurrentTotpDeleteResponses, DeleteBillingV1PaymentMethodsByPaymentMethodIdData, DeleteBillingV1PaymentMethodsByPaymentMethodIdResponses, DeleteCustomDomainByProjectidData, DeleteCustomDomainByProjectidResponses, DeleteFeedData, DeleteFeedResponses, DeleteMediaV1ProjectsByProjectIdImagesByImageIdData, DeleteMediaV1ProjectsByProjectIdImagesByImageIdResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksByTrackIdData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksByTrackIdResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksLanguageByLangData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksLanguageByLangResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersByStartTimeSecData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersByStartTimeSecResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesBySubtitleIdData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesBySubtitleIdResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesLanguageByLangData, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesLanguageByLangResponses, DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesResponses, DeletePostData, DeletePostResponses, DeleteProjectsData, DeleteProjectsResponses, GetAnalyticsV1DashboardData, GetAnalyticsV1DashboardResponses, GetAnalyticsV1FeedsByFeedIdStatsData, GetAnalyticsV1FeedsByFeedIdStatsResponses, GetAnalyticsV1PostsByPostIdStatsData, GetAnalyticsV1PostsByPostIdStatsResponses, GetAnalyticsV1RealtimeData, GetAnalyticsV1RealtimeResponses, GetAnalyticsV1RetentionData, GetAnalyticsV1RetentionResponses, GetAnalyticsV1TopFeedsData, GetAnalyticsV1TopFeedsResponses, GetAnalyticsV1TopPostsData, GetAnalyticsV1TopPostsResponses, GetAnalyticsV1TopVideosData, GetAnalyticsV1TopVideosResponses, GetAnalyticsV1VideosByVideoIdHeatmapData, GetAnalyticsV1VideosByVideoIdHeatmapResponses, GetAnalyticsV1VideosByVideoIdHotSegmentsData, GetAnalyticsV1VideosByVideoIdHotSegmentsResponses, GetAnalyticsV1VideosByVideoIdStatsData, GetAnalyticsV1VideosByVideoIdStatsResponses, GetAuthV1BlogSubscriptionData, GetAuthV1BlogSubscriptionResponses, GetAuthV1MembershipsActiveData, GetAuthV1MembershipsActiveResponses, GetAuthV1MembershipsByOrgIdCheckData, GetAuthV1MembershipsByOrgIdCheckResponses, GetAuthV1MembershipsByOrgIdDomainAutoJoinData, GetAuthV1MembershipsByOrgIdDomainAutoJoinResponses, GetAuthV1MembershipsByOrgIdDomainData, GetAuthV1MembershipsByOrgIdDomainResponses, GetAuthV1MembershipsByOrgIdInfoData, GetAuthV1MembershipsByOrgIdInfoResponses, GetAuthV1MembershipsByOrgIdMembersByUserIdPoliciesData, GetAuthV1MembershipsByOrgIdMembersByUserIdPoliciesResponses, GetAuthV1MembershipsByOrgIdMembersData, GetAuthV1MembershipsByOrgIdMembersResponses, GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsData, GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsResponses, GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdData, GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdResponses, GetAuthV1MembershipsByOrgIdPoliciesData, GetAuthV1MembershipsByOrgIdPoliciesResponses, GetAuthV1MembershipsPendingData, GetAuthV1MembershipsPendingResponses, GetAuthV1PoliciesPermissionsData, GetAuthV1PoliciesPermissionsResponses, GetAuthV1ProvidersData, GetAuthV1ProvidersResponses, GetAuthV1UserinfoData, GetAuthV1UserinfoResponses, GetAuthV1UsersCurrentData, GetAuthV1UsersCurrentEmailsStatusData, GetAuthV1UsersCurrentEmailsStatusResponses, GetAuthV1UsersCurrentPasskeysData, GetAuthV1UsersCurrentPasskeysResponses, GetAuthV1UsersCurrentResponses, GetAuthV1UsersCurrentTotpStatusData, GetAuthV1UsersCurrentTotpStatusResponses, GetBillingV1AddressData, GetBillingV1AddressResponses, GetBillingV1BandwidthUsageData, GetBillingV1BandwidthUsageHistoryData, GetBillingV1BandwidthUsageHistoryResponses, GetBillingV1BandwidthUsageResponses, GetBillingV1InvoicesData, GetBillingV1InvoicesResponses, GetBillingV1PaymentMethodsData, GetBillingV1PaymentMethodsFromPaymentIntentData, GetBillingV1PaymentMethodsFromPaymentIntentResponses, GetBillingV1PaymentMethodsFromSetupIntentData, GetBillingV1PaymentMethodsFromSetupIntentResponses, GetBillingV1PaymentMethodsResponses, GetBillingV1PlansByPlanIdData, GetBillingV1PlansByPlanIdResponses, GetBillingV1PlansData, GetBillingV1PlansResponses, GetBillingV1StorageUsageData, GetBillingV1StorageUsageHistoryData, GetBillingV1StorageUsageHistoryResponses, GetBillingV1StorageUsageResponses, GetBillingV1SubscriptionData, GetBillingV1SubscriptionHistoryData, GetBillingV1SubscriptionHistoryResponses, GetBillingV1SubscriptionResponses, GetFeedData, GetFeedResponses, GetMediaV1ImagesByImageIdData, GetMediaV1ImagesByImageIdResponses, GetMediaV1LanguagesData, GetMediaV1LanguagesResponses, GetMediaV1ProjectsByProjectIdImagesByImageIdData, GetMediaV1ProjectsByProjectIdImagesByImageIdResponses, GetMediaV1ProjectsByProjectIdImagesData, GetMediaV1ProjectsByProjectIdImagesResponses, GetMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksData, GetMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksResponses, GetMediaV1ProjectsByProjectIdVideosByVideoIdChaptersData, GetMediaV1ProjectsByProjectIdVideosByVideoIdChaptersResponses, GetMediaV1ProjectsByProjectIdVideosByVideoIdData, GetMediaV1ProjectsByProjectIdVideosByVideoIdResponses, GetMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesData, GetMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesResponses, GetMediaV1ProjectsByProjectIdVideosData, GetMediaV1ProjectsByProjectIdVideosResponses, GetMediaV1VideosByVideoIdAudioTracksData, GetMediaV1VideosByVideoIdAudioTracksResponses, GetMediaV1VideosByVideoIdData, GetMediaV1VideosByVideoIdResponses, GetMediaV1VideosByVideoIdSubtitlesData, GetMediaV1VideosByVideoIdSubtitlesResponses, GetPostData, GetPostResponses, GetProjectsData, GetProjectsResponses, GetPublicPostData, GetPublicPostResponses, InitPostUploadData, InitPostUploadResponses, ListApiKeysByOrgidData, ListApiKeysByOrgidResponses, ListCredentialsByOrgidData, ListCredentialsByOrgidResponses, ListFeedsData, ListFeedsResponses, ListPostsByCreatorData, ListPostsByCreatorResponses, ListPostsData, ListPostsResponses, ListProjectsByOrgidData, ListProjectsByOrgidResponses, ListPublicPostsByCreatorData, ListPublicPostsByCreatorResponses, ListPublicPostsData, ListPublicPostsResponses, PatchAuthV1UsersCurrentNameData, PatchAuthV1UsersCurrentNameResponses, PatchAuthV1UsersCurrentPasskeysByIdData, PatchAuthV1UsersCurrentPasskeysByIdResponses, PatchAuthV1UsersCurrentUsernameData, PatchAuthV1UsersCurrentUsernameResponses, PatchNameByProjectidData, PatchNameByProjectidResponses, PatchVideoQualityByProjectidData, PatchVideoQualityByProjectidResponses, PostAnalyticsV1EventsData, PostAnalyticsV1EventsResponses, PostAnalyticsV1FunnelsData, PostAnalyticsV1FunnelsResponses, PostAuthV1BlogSubscribeData, PostAuthV1BlogSubscribeResponses, PostAuthV1BlogUnsubscribeData, PostAuthV1BlogUnsubscribeEmailData, PostAuthV1BlogUnsubscribeEmailResponses, PostAuthV1BlogUnsubscribeResponses, PostAuthV1EmailVerifyData, PostAuthV1EmailVerifyResendData, PostAuthV1EmailVerifyResendResponses, PostAuthV1EmailVerifyResponses, PostAuthV1InvitationsByTokenAcceptData, PostAuthV1InvitationsByTokenAcceptResponses, PostAuthV1InvitationsByTokenDeclineData, PostAuthV1InvitationsByTokenDeclineResponses, PostAuthV1LoginData, PostAuthV1LoginResponses, PostAuthV1LogoutData, PostAuthV1LogoutResponses, PostAuthV1MembershipsByOrgIdDomainData, PostAuthV1MembershipsByOrgIdDomainResponses, PostAuthV1MembershipsByOrgIdDomainVerificationData, PostAuthV1MembershipsByOrgIdDomainVerificationResponses, PostAuthV1MembershipsByOrgIdMembersInviteData, PostAuthV1MembershipsByOrgIdMembersInviteResendData, PostAuthV1MembershipsByOrgIdMembersInviteResendResponses, PostAuthV1MembershipsByOrgIdMembersInviteResponses, PostAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsData, PostAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsResponses, PostAuthV1MembershipsByOrgIdPoliciesData, PostAuthV1MembershipsByOrgIdPoliciesResponses, PostAuthV1PasskeyLoginBeginData, PostAuthV1PasskeyLoginBeginResponses, PostAuthV1PasskeyLoginFinishData, PostAuthV1PasskeyLoginFinishResponses, PostAuthV1PasswordResetConfirmData, PostAuthV1PasswordResetConfirmResponses, PostAuthV1PasswordResetData, PostAuthV1PasswordResetResponses, PostAuthV1ProvidersConnectData, PostAuthV1ProvidersConnectResponses, PostAuthV1RegisterData, PostAuthV1RegisterResponses, PostAuthV1TokenData, PostAuthV1TokenResponses, PostAuthV1UsersCurrentEmailsData, PostAuthV1UsersCurrentEmailsResponses, PostAuthV1UsersCurrentPasskeysRegisterBeginData, PostAuthV1UsersCurrentPasskeysRegisterBeginResponses, PostAuthV1UsersCurrentPasskeysRegisterFinishData, PostAuthV1UsersCurrentPasskeysRegisterFinishResponses, PostAuthV1UsersCurrentTotpSetupData, PostAuthV1UsersCurrentTotpSetupResponses, PostAuthV1UsersCurrentTotpVerifyData, PostAuthV1UsersCurrentTotpVerifyResponses, PostAuthV1VerifyPasskeyData, PostAuthV1VerifyPasskeyResponses, PostAuthV1VerifyTotpData, PostAuthV1VerifyTotpResponses, PostBillingV1AddressData, PostBillingV1AddressResponses, PostBillingV1BandwidthUsageRefreshData, PostBillingV1BandwidthUsageRefreshResponses, PostBillingV1CheckoutData, PostBillingV1CheckoutResponses, PostBillingV1ContactSalesData, PostBillingV1ContactSalesResponses, PostBillingV1JobsCleanupBandwidthSnapshotsData, PostBillingV1JobsCleanupBandwidthSnapshotsResponses, PostBillingV1JobsDailyBandwidthCalculationData, PostBillingV1JobsDailyBandwidthCalculationResponses, PostBillingV1JobsMonthlyBandwidthCalculationData, PostBillingV1JobsMonthlyBandwidthCalculationResponses, PostBillingV1PaymentMethodsData, PostBillingV1PaymentMethodsResponses, PostBillingV1SetupIntentData, PostBillingV1SetupIntentResponses, PostBillingV1StorageUsageRefreshData, PostBillingV1StorageUsageRefreshResponses, PostBillingV1SubscriptionData, PostBillingV1SubscriptionResponses, PostBillingV1SubscriptionUpgradeData, PostBillingV1SubscriptionUpgradeResponses, PostBillingV1TaxCalculateData, PostBillingV1TaxCalculateResponses, PostBillingWebhooksStripeData, PostBillingWebhooksStripeResponses, PostMediaV1ProjectsByProjectIdImagesByImageIdUploadCompleteData, PostMediaV1ProjectsByProjectIdImagesByImageIdUploadCompleteResponses, PostMediaV1ProjectsByProjectIdImagesUploadData, PostMediaV1ProjectsByProjectIdImagesUploadResponses, PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadCompleteData, PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadCompleteResponses, PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadData, PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadResponses, PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadCompleteData, PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadCompleteResponses, PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadData, PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadResponses, PostMediaV1ProjectsByProjectIdVideosByVideoIdUploadCompleteData, PostMediaV1ProjectsByProjectIdVideosByVideoIdUploadCompleteResponses, PostMediaV1ProjectsByProjectIdVideosUploadData, PostMediaV1ProjectsByProjectIdVideosUploadResponses, PostPlatformAuthRefreshData, PostPlatformAuthRefreshResponses, PostPlatformAuthTokenData, PostPlatformAuthTokenResponses, PutAuthV1MembershipsByOrgIdActiveData, PutAuthV1MembershipsByOrgIdActiveResponses, PutAuthV1MembershipsByOrgIdDomainAutoJoinData, PutAuthV1MembershipsByOrgIdDomainAutoJoinResponses, PutAuthV1MembershipsByOrgIdMembersByUserIdRoleData, PutAuthV1MembershipsByOrgIdMembersByUserIdRoleResponses, PutAuthV1MembershipsByOrgIdMembershipStateData, PutAuthV1MembershipsByOrgIdMembershipStateResponses, PutAuthV1MembershipsByOrgIdNameData, PutAuthV1MembershipsByOrgIdNameResponses, PutAuthV1MembershipsByOrgIdPoliciesByPolicyIdData, PutAuthV1MembershipsByOrgIdPoliciesByPolicyIdResponses, PutAuthV1MembershipsByOrgIdUsernameData, PutAuthV1MembershipsByOrgIdUsernameResponses, PutAuthV1UsersCurrentEmailsChangeData, PutAuthV1UsersCurrentEmailsChangeResponses, PutBillingV1InvoicesByInvoiceIdStatusData, PutBillingV1InvoicesByInvoiceIdStatusResponses, PutBillingV1SubscriptionCancelData, PutBillingV1SubscriptionCancelResponses, PutBillingV1SubscriptionReactivateData, PutBillingV1SubscriptionReactivateResponses, PutMediaV1ProjectsByProjectIdImagesByImageIdVisibilityData, PutMediaV1ProjectsByProjectIdImagesByImageIdVisibilityResponses, PutMediaV1ProjectsByProjectIdVideosByVideoIdChaptersData, PutMediaV1ProjectsByProjectIdVideosByVideoIdChaptersResponses, PutMediaV1ProjectsByProjectIdVideosByVideoIdThumbnailData, PutMediaV1ProjectsByProjectIdVideosByVideoIdThumbnailResponses, PutMediaV1ProjectsByProjectIdVideosByVideoIdVisibilityData, PutMediaV1ProjectsByProjectIdVideosByVideoIdVisibilityResponses, RevokeCredentialByCredentialidData, RevokeCredentialByCredentialidResponses, RotateApiKeyByKeyidData, RotateApiKeyByKeyidResponses, UpdateCustomDomainByProjectidData, UpdateCustomDomainByProjectidResponses, UpdateFeedData, UpdateFeedResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Dashboard analytics\n *\n * Returns time-bucketed dashboard statistics\n */\nexport const getAnalyticsV1Dashboard = <ThrowOnError extends boolean = false>(options: Options<GetAnalyticsV1DashboardData, ThrowOnError>) => (options.client ?? client).get<GetAnalyticsV1DashboardResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/dashboard',\n ...options\n});\n\n/**\n * Track analytics events\n *\n * Ingest a batch of analytics events for the authenticated organization\n */\nexport const postAnalyticsV1Events = <ThrowOnError extends boolean = false>(options: Options<PostAnalyticsV1EventsData, ThrowOnError>) => (options.client ?? client).post<PostAnalyticsV1EventsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/events',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get feed statistics\n *\n * Returns aggregated statistics for a feed over a date range\n */\nexport const getAnalyticsV1FeedsByFeedIdStats = <ThrowOnError extends boolean = false>(options: Options<GetAnalyticsV1FeedsByFeedIdStatsData, ThrowOnError>) => (options.client ?? client).get<GetAnalyticsV1FeedsByFeedIdStatsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/feeds/{feedId}/stats',\n ...options\n});\n\n/**\n * Funnel analytics\n *\n * Calculate funnel conversion across a sequence of steps\n */\nexport const postAnalyticsV1Funnels = <ThrowOnError extends boolean = false>(options: Options<PostAnalyticsV1FunnelsData, ThrowOnError>) => (options.client ?? client).post<PostAnalyticsV1FunnelsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/funnels',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get post statistics\n *\n * Returns aggregated statistics for a post\n */\nexport const getAnalyticsV1PostsByPostIdStats = <ThrowOnError extends boolean = false>(options: Options<GetAnalyticsV1PostsByPostIdStatsData, ThrowOnError>) => (options.client ?? client).get<GetAnalyticsV1PostsByPostIdStatsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/posts/{postId}/stats',\n ...options\n});\n\n/**\n * Realtime analytics\n *\n * Returns real-time analytics snapshot\n */\nexport const getAnalyticsV1Realtime = <ThrowOnError extends boolean = false>(options?: Options<GetAnalyticsV1RealtimeData, ThrowOnError>) => (options?.client ?? client).get<GetAnalyticsV1RealtimeResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/realtime',\n ...options\n});\n\n/**\n * Retention analytics\n *\n * Returns retention cohorts over a date range\n */\nexport const getAnalyticsV1Retention = <ThrowOnError extends boolean = false>(options?: Options<GetAnalyticsV1RetentionData, ThrowOnError>) => (options?.client ?? client).get<GetAnalyticsV1RetentionResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/retention',\n ...options\n});\n\n/**\n * Get top feeds\n *\n * Returns the top feeds over a date range\n */\nexport const getAnalyticsV1TopFeeds = <ThrowOnError extends boolean = false>(options?: Options<GetAnalyticsV1TopFeedsData, ThrowOnError>) => (options?.client ?? client).get<GetAnalyticsV1TopFeedsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/top/feeds',\n ...options\n});\n\n/**\n * Get top posts\n *\n * Returns the top posts over a date range\n */\nexport const getAnalyticsV1TopPosts = <ThrowOnError extends boolean = false>(options?: Options<GetAnalyticsV1TopPostsData, ThrowOnError>) => (options?.client ?? client).get<GetAnalyticsV1TopPostsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/top/posts',\n ...options\n});\n\n/**\n * Get top videos\n *\n * Returns the top videos over a date range\n */\nexport const getAnalyticsV1TopVideos = <ThrowOnError extends boolean = false>(options?: Options<GetAnalyticsV1TopVideosData, ThrowOnError>) => (options?.client ?? client).get<GetAnalyticsV1TopVideosResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/top/videos',\n ...options\n});\n\n/**\n * Get video heatmap\n *\n * Returns the engagement heatmap for a video\n */\nexport const getAnalyticsV1VideosByVideoIdHeatmap = <ThrowOnError extends boolean = false>(options: Options<GetAnalyticsV1VideosByVideoIdHeatmapData, ThrowOnError>) => (options.client ?? client).get<GetAnalyticsV1VideosByVideoIdHeatmapResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/videos/{videoId}/heatmap',\n ...options\n});\n\n/**\n * Get hot segments\n *\n * Returns the most engaging segments of a video\n */\nexport const getAnalyticsV1VideosByVideoIdHotSegments = <ThrowOnError extends boolean = false>(options: Options<GetAnalyticsV1VideosByVideoIdHotSegmentsData, ThrowOnError>) => (options.client ?? client).get<GetAnalyticsV1VideosByVideoIdHotSegmentsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/videos/{videoId}/hot-segments',\n ...options\n});\n\n/**\n * Get video statistics\n *\n * Returns aggregated statistics for a video over a date range\n */\nexport const getAnalyticsV1VideosByVideoIdStats = <ThrowOnError extends boolean = false>(options: Options<GetAnalyticsV1VideosByVideoIdStatsData, ThrowOnError>) => (options.client ?? client).get<GetAnalyticsV1VideosByVideoIdStatsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/analytics/v1/videos/{videoId}/stats',\n ...options\n});\n\n/**\n * Subscribe to the blog\n *\n * Subscribes the authenticated user to the blog newsletter.\n */\nexport const postAuthV1BlogSubscribe = <ThrowOnError extends boolean = false>(options?: Options<PostAuthV1BlogSubscribeData, ThrowOnError>) => (options?.client ?? client).post<PostAuthV1BlogSubscribeResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/blog/subscribe',\n ...options\n});\n\n/**\n * Get blog subscription status\n *\n * Returns whether the authenticated user is subscribed to the blog newsletter.\n */\nexport const getAuthV1BlogSubscription = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1BlogSubscriptionData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1BlogSubscriptionResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/blog/subscription',\n ...options\n});\n\n/**\n * Unsubscribe from the blog\n *\n * Unsubscribes the authenticated user from the blog newsletter.\n */\nexport const postAuthV1BlogUnsubscribe = <ThrowOnError extends boolean = false>(options?: Options<PostAuthV1BlogUnsubscribeData, ThrowOnError>) => (options?.client ?? client).post<PostAuthV1BlogUnsubscribeResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/blog/unsubscribe',\n ...options\n});\n\n/**\n * Unsubscribe from the blog by email\n *\n * Unsubscribes a recipient using the user id and email from an email-footer link. No authentication required.\n */\nexport const postAuthV1BlogUnsubscribeEmail = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1BlogUnsubscribeEmailData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1BlogUnsubscribeEmailResponses, unknown, ThrowOnError>({\n url: '/auth/v1/blog/unsubscribe/email',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Verify email with a code\n *\n * Verifies a user's email address using a verification id and the code sent to them.\n */\nexport const postAuthV1EmailVerify = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1EmailVerifyData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1EmailVerifyResponses, unknown, ThrowOnError>({\n url: '/auth/v1/email/verify',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Resend email verification\n *\n * Resends the email verification message to the given email address.\n */\nexport const postAuthV1EmailVerifyResend = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1EmailVerifyResendData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1EmailVerifyResendResponses, unknown, ThrowOnError>({\n url: '/auth/v1/email/verify/resend',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Accept an organization invitation\n *\n * Accepts the organization invitation identified by the provided token.\n */\nexport const postAuthV1InvitationsByTokenAccept = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1InvitationsByTokenAcceptData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1InvitationsByTokenAcceptResponses, unknown, ThrowOnError>({ url: '/auth/v1/invitations/{token}/accept', ...options });\n\n/**\n * Decline an organization invitation\n *\n * Declines the organization invitation identified by the provided token.\n */\nexport const postAuthV1InvitationsByTokenDecline = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1InvitationsByTokenDeclineData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1InvitationsByTokenDeclineResponses, unknown, ThrowOnError>({ url: '/auth/v1/invitations/{token}/decline', ...options });\n\n/**\n * Log in with email and password\n *\n * Authenticates a user by email and password and issues access and refresh tokens.\n */\nexport const postAuthV1Login = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1LoginData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1LoginResponses, unknown, ThrowOnError>({\n url: '/auth/v1/login',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Log out (revoke the current access token)\n *\n * Revokes the current access token so it can no longer be used.\n */\nexport const postAuthV1Logout = <ThrowOnError extends boolean = false>(options?: Options<PostAuthV1LogoutData, ThrowOnError>) => (options?.client ?? client).post<PostAuthV1LogoutResponses, unknown, ThrowOnError>({ url: '/auth/v1/logout', ...options });\n\n/**\n * Set the active membership\n *\n * Sets the specified membership as the authenticated user's currently active organization.\n */\nexport const putAuthV1MembershipsByOrgIdActive = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1MembershipsByOrgIdActiveData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1MembershipsByOrgIdActiveResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/active',\n ...options\n});\n\n/**\n * Check the current user's membership in an organization\n *\n * Checks whether the authenticated user is a member of the specified organization and returns their membership status.\n */\nexport const getAuthV1MembershipsByOrgIdCheck = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdCheckData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdCheckResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/check',\n ...options\n});\n\n/**\n * Remove a custom domain\n *\n * Removes the custom domain from the organization and clears its verification.\n */\nexport const deleteAuthV1MembershipsByOrgIdDomain = <ThrowOnError extends boolean = false>(options: Options<DeleteAuthV1MembershipsByOrgIdDomainData, ThrowOnError>) => (options.client ?? client).delete<DeleteAuthV1MembershipsByOrgIdDomainResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/domain',\n ...options\n});\n\n/**\n * Get custom domain status\n *\n * Returns the current custom domain and its verification status for the organization.\n */\nexport const getAuthV1MembershipsByOrgIdDomain = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdDomainData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdDomainResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/domain',\n ...options\n});\n\n/**\n * Create a custom domain verification\n *\n * Registers a custom domain for the organization and issues verification details to prove ownership.\n */\nexport const postAuthV1MembershipsByOrgIdDomain = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1MembershipsByOrgIdDomainData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1MembershipsByOrgIdDomainResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/domain',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get domain auto-join setting\n *\n * Returns whether users with a matching verified domain email are automatically added to the organization.\n */\nexport const getAuthV1MembershipsByOrgIdDomainAutoJoin = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdDomainAutoJoinData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdDomainAutoJoinResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/domain/auto-join',\n ...options\n});\n\n/**\n * Set domain auto-join setting\n *\n * Enables or disables automatically adding users with a matching verified domain email to the organization.\n */\nexport const putAuthV1MembershipsByOrgIdDomainAutoJoin = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1MembershipsByOrgIdDomainAutoJoinData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1MembershipsByOrgIdDomainAutoJoinResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/domain/auto-join',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Check a custom domain verification\n *\n * Verifies the organization's pending custom domain and returns its updated verification status.\n */\nexport const postAuthV1MembershipsByOrgIdDomainVerification = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1MembershipsByOrgIdDomainVerificationData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1MembershipsByOrgIdDomainVerificationResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/domain/verification',\n ...options\n});\n\n/**\n * Get the caller's membership info in an organization\n *\n * Returns the authenticated user's membership info (email) for an organization, with permission-denied when not a member.\n */\nexport const getAuthV1MembershipsByOrgIdInfo = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdInfoData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdInfoResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/info',\n ...options\n});\n\n/**\n * Leave an organization\n *\n * Removes the authenticated user's own membership from the organization.\n */\nexport const deleteAuthV1MembershipsByOrgIdLeave = <ThrowOnError extends boolean = false>(options: Options<DeleteAuthV1MembershipsByOrgIdLeaveData, ThrowOnError>) => (options.client ?? client).delete<DeleteAuthV1MembershipsByOrgIdLeaveResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/leave',\n ...options\n});\n\n/**\n * List members of an organization\n *\n * Returns a paginated list of the members belonging to the specified organization.\n */\nexport const getAuthV1MembershipsByOrgIdMembers = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdMembersData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdMembersResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/members',\n ...options\n});\n\n/**\n * Remove a member from an organization\n *\n * Removes the specified member from the organization.\n */\nexport const deleteAuthV1MembershipsByOrgIdMembersByUserId = <ThrowOnError extends boolean = false>(options: Options<DeleteAuthV1MembershipsByOrgIdMembersByUserIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteAuthV1MembershipsByOrgIdMembersByUserIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/members/{userId}',\n ...options\n});\n\n/**\n * List a member's policies\n *\n * Returns all authorization policies attached to the specified organization member.\n */\nexport const getAuthV1MembershipsByOrgIdMembersByUserIdPolicies = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdMembersByUserIdPoliciesData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdMembersByUserIdPoliciesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/members/{userId}/policies',\n ...options\n});\n\n/**\n * Update a member's role\n *\n * Updates the specified member's role within the organization.\n */\nexport const putAuthV1MembershipsByOrgIdMembersByUserIdRole = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1MembershipsByOrgIdMembersByUserIdRoleData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1MembershipsByOrgIdMembersByUserIdRoleResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/members/{userId}/role',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Invite a member to an organization\n *\n * Invites the user with the given username to the organization with the specified role.\n */\nexport const postAuthV1MembershipsByOrgIdMembersInvite = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1MembershipsByOrgIdMembersInviteData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1MembershipsByOrgIdMembersInviteResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/members/invite',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Resend an invitation\n *\n * Resends the pending organization invitation to the specified member.\n */\nexport const postAuthV1MembershipsByOrgIdMembersInviteResend = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1MembershipsByOrgIdMembersInviteResendData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1MembershipsByOrgIdMembersInviteResendResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/members/invite/resend',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Accept or decline a pending membership\n *\n * Accepts or declines the authenticated user's pending invitation to the organization. Used from inside the dashboard; the public token flow is /auth/v1/invitations/{token}/accept|decline.\n */\nexport const putAuthV1MembershipsByOrgIdMembershipState = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1MembershipsByOrgIdMembershipStateData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1MembershipsByOrgIdMembershipStateResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/membership/state',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update an organization's name\n *\n * Updates the display name of the specified organization.\n */\nexport const putAuthV1MembershipsByOrgIdName = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1MembershipsByOrgIdNameData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1MembershipsByOrgIdNameResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/name',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List policies\n *\n * Returns all authorization policies defined in the organization.\n */\nexport const getAuthV1MembershipsByOrgIdPolicies = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdPoliciesData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdPoliciesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies',\n ...options\n});\n\n/**\n * Create a policy\n *\n * Creates a new authorization policy in the organization with the given name, description, and permissions.\n */\nexport const postAuthV1MembershipsByOrgIdPolicies = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1MembershipsByOrgIdPoliciesData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1MembershipsByOrgIdPoliciesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a policy\n *\n * Deletes an authorization policy from the organization by its ID.\n */\nexport const deleteAuthV1MembershipsByOrgIdPoliciesByPolicyId = <ThrowOnError extends boolean = false>(options: Options<DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies/{policyId}',\n ...options\n});\n\n/**\n * Get a policy\n *\n * Returns the details of a single authorization policy in the organization by its ID.\n */\nexport const getAuthV1MembershipsByOrgIdPoliciesByPolicyId = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies/{policyId}',\n ...options\n});\n\n/**\n * Update a policy\n *\n * Updates an existing authorization policy's name, description, and permissions.\n */\nexport const putAuthV1MembershipsByOrgIdPoliciesByPolicyId = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1MembershipsByOrgIdPoliciesByPolicyIdData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1MembershipsByOrgIdPoliciesByPolicyIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies/{policyId}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List policy attachments\n *\n * Returns all identities that the given policy is attached to within the organization.\n */\nexport const getAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachments = <ThrowOnError extends boolean = false>(options: Options<GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsData, ThrowOnError>) => (options.client ?? client).get<GetAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies/{policyId}/attachments',\n ...options\n});\n\n/**\n * Attach a policy to an identity\n *\n * Attaches the given policy to an identity so the policy's permissions apply to that identity.\n */\nexport const postAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachments = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies/{policyId}/attachments',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Detach a policy\n *\n * Detaches a policy from an identity by removing the specified attachment.\n */\nexport const deleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsByAttachmentId = <ThrowOnError extends boolean = false>(options: Options<DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsByAttachmentIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteAuthV1MembershipsByOrgIdPoliciesByPolicyIdAttachmentsByAttachmentIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/policies/{policyId}/attachments/{attachmentId}',\n ...options\n});\n\n/**\n * Update an organization's username\n *\n * Updates the unique username handle of the specified organization.\n */\nexport const putAuthV1MembershipsByOrgIdUsername = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1MembershipsByOrgIdUsernameData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1MembershipsByOrgIdUsernameResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/{orgId}/username',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List the current user's active memberships\n *\n * Returns a paginated list of the organizations in which the authenticated user holds an active membership.\n */\nexport const getAuthV1MembershipsActive = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1MembershipsActiveData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1MembershipsActiveResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/active',\n ...options\n});\n\n/**\n * List the current user's pending memberships\n *\n * Returns a paginated list of the authenticated user's pending organization membership invitations that have not yet been accepted.\n */\nexport const getAuthV1MembershipsPending = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1MembershipsPendingData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1MembershipsPendingResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/memberships/pending',\n ...options\n});\n\n/**\n * Begin passkey login\n *\n * Begins a passkey login by returning a session_id and WebAuthn challenge options for the client to sign.\n */\nexport const postAuthV1PasskeyLoginBegin = <ThrowOnError extends boolean = false>(options?: Options<PostAuthV1PasskeyLoginBeginData, ThrowOnError>) => (options?.client ?? client).post<PostAuthV1PasskeyLoginBeginResponses, unknown, ThrowOnError>({ url: '/auth/v1/passkey/login/begin', ...options });\n\n/**\n * Finish passkey login\n *\n * Completes a passkey login by verifying the signed WebAuthn credential against the session and returning authentication tokens.\n */\nexport const postAuthV1PasskeyLoginFinish = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1PasskeyLoginFinishData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1PasskeyLoginFinishResponses, unknown, ThrowOnError>({\n url: '/auth/v1/passkey/login/finish',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Send a password reset email\n *\n * Sends a password reset email containing a reset token to the given email address.\n */\nexport const postAuthV1PasswordReset = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1PasswordResetData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1PasswordResetResponses, unknown, ThrowOnError>({\n url: '/auth/v1/password/reset',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Reset password with a token\n *\n * Resets the user's password using a valid reset token and the supplied new password.\n */\nexport const postAuthV1PasswordResetConfirm = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1PasswordResetConfirmData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1PasswordResetConfirmResponses, unknown, ThrowOnError>({\n url: '/auth/v1/password/reset/confirm',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List the permission registry\n *\n * Returns the registered permission names and their bit offsets.\n */\nexport const getAuthV1PoliciesPermissions = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1PoliciesPermissionsData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1PoliciesPermissionsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/policies/permissions',\n ...options\n});\n\n/**\n * List connected social providers\n *\n * Returns the list of social providers connected to the authenticated user's account.\n */\nexport const getAuthV1Providers = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1ProvidersData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1ProvidersResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/providers',\n ...options\n});\n\n/**\n * Disconnect a social provider\n *\n * Disconnects the named social provider from the authenticated user's account.\n */\nexport const deleteAuthV1ProvidersByProvider = <ThrowOnError extends boolean = false>(options: Options<DeleteAuthV1ProvidersByProviderData, ThrowOnError>) => (options.client ?? client).delete<DeleteAuthV1ProvidersByProviderResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/providers/{provider}',\n ...options\n});\n\n/**\n * Connect a social provider\n *\n * Connects a social provider to the authenticated user's account using the supplied provider token.\n */\nexport const postAuthV1ProvidersConnect = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1ProvidersConnectData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1ProvidersConnectResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/providers/connect',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Register with email and password\n *\n * Registers a new user account from an email and password and starts email verification.\n */\nexport const postAuthV1Register = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1RegisterData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1RegisterResponses, unknown, ThrowOnError>({\n url: '/auth/v1/register',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Refresh access token\n *\n * Exchanges a valid refresh token for a new access token.\n */\nexport const postAuthV1Token = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1TokenData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1TokenResponses, unknown, ThrowOnError>({ url: '/auth/v1/token', ...options });\n\n/**\n * Get current user info\n *\n * Returns the profile information of the authenticated user.\n */\nexport const getAuthV1Userinfo = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1UserinfoData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1UserinfoResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/userinfo',\n ...options\n});\n\n/**\n * Get current user info\n *\n * Returns the profile information of the authenticated user.\n */\nexport const getAuthV1UsersCurrent = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1UsersCurrentData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1UsersCurrentResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current',\n ...options\n});\n\n/**\n * Add an email address\n *\n * Adds an email address to the authenticated account and sends a verification\n * code to it. The address becomes active only once it has been verified via\n * `POST /auth/v1/email/verify`. Subject to rate limiting per account.\n */\nexport const postAuthV1UsersCurrentEmails = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1UsersCurrentEmailsData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1UsersCurrentEmailsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/emails',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Change the account email\n *\n * Starts changing the authenticated account's email address. A verification\n * code is sent to the new address; the change is applied only after the code\n * is confirmed via `POST /auth/v1/email/verify`. Subject to rate limiting per account.\n */\nexport const putAuthV1UsersCurrentEmailsChange = <ThrowOnError extends boolean = false>(options: Options<PutAuthV1UsersCurrentEmailsChangeData, ThrowOnError>) => (options.client ?? client).put<PutAuthV1UsersCurrentEmailsChangeResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/emails/change',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get email status\n *\n * Returns the authenticated account's current email address together with\n * whether an email is set and whether it has been verified.\n */\nexport const getAuthV1UsersCurrentEmailsStatus = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1UsersCurrentEmailsStatusData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1UsersCurrentEmailsStatusResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/emails/status',\n ...options\n});\n\n/**\n * Update the current user's name\n *\n * Updates the authenticated user's full name to the provided value.\n */\nexport const patchAuthV1UsersCurrentName = <ThrowOnError extends boolean = false>(options: Options<PatchAuthV1UsersCurrentNameData, ThrowOnError>) => (options.client ?? client).patch<PatchAuthV1UsersCurrentNameResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/name',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List the current user's passkeys\n *\n * Returns all passkeys registered to the authenticated user.\n */\nexport const getAuthV1UsersCurrentPasskeys = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1UsersCurrentPasskeysData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1UsersCurrentPasskeysResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/passkeys',\n ...options\n});\n\n/**\n * Delete a passkey\n *\n * Deletes the authenticated user's passkey identified by the path ID.\n */\nexport const deleteAuthV1UsersCurrentPasskeysById = <ThrowOnError extends boolean = false>(options: Options<DeleteAuthV1UsersCurrentPasskeysByIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteAuthV1UsersCurrentPasskeysByIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/passkeys/{id}',\n ...options\n});\n\n/**\n * Rename a passkey\n *\n * Renames the authenticated user's passkey identified by the path ID to the supplied name.\n */\nexport const patchAuthV1UsersCurrentPasskeysById = <ThrowOnError extends boolean = false>(options: Options<PatchAuthV1UsersCurrentPasskeysByIdData, ThrowOnError>) => (options.client ?? client).patch<PatchAuthV1UsersCurrentPasskeysByIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/passkeys/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Begin passkey registration\n *\n * Begins registering a new passkey for the authenticated user by returning a session_id and WebAuthn creation options.\n */\nexport const postAuthV1UsersCurrentPasskeysRegisterBegin = <ThrowOnError extends boolean = false>(options?: Options<PostAuthV1UsersCurrentPasskeysRegisterBeginData, ThrowOnError>) => (options?.client ?? client).post<PostAuthV1UsersCurrentPasskeysRegisterBeginResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/passkeys/register/begin',\n ...options\n});\n\n/**\n * Finish passkey registration\n *\n * Completes passkey registration by verifying the signed WebAuthn credential and storing it under the given name for the authenticated user.\n */\nexport const postAuthV1UsersCurrentPasskeysRegisterFinish = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1UsersCurrentPasskeysRegisterFinishData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1UsersCurrentPasskeysRegisterFinishResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/passkeys/register/finish',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Disable TOTP\n *\n * Disables TOTP two-factor authentication for the authenticated user and removes their stored TOTP secret.\n */\nexport const deleteAuthV1UsersCurrentTotpDelete = <ThrowOnError extends boolean = false>(options?: Options<DeleteAuthV1UsersCurrentTotpDeleteData, ThrowOnError>) => (options?.client ?? client).delete<DeleteAuthV1UsersCurrentTotpDeleteResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/totp/delete',\n ...options\n});\n\n/**\n * Begin TOTP setup\n *\n * Begins TOTP setup for the authenticated user by generating and returning a provisioning secret and QR code that have not yet been enabled.\n */\nexport const postAuthV1UsersCurrentTotpSetup = <ThrowOnError extends boolean = false>(options?: Options<PostAuthV1UsersCurrentTotpSetupData, ThrowOnError>) => (options?.client ?? client).post<PostAuthV1UsersCurrentTotpSetupResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/totp/setup',\n ...options\n});\n\n/**\n * Get TOTP status\n *\n * Returns whether the authenticated user currently has TOTP two-factor authentication enabled.\n */\nexport const getAuthV1UsersCurrentTotpStatus = <ThrowOnError extends boolean = false>(options?: Options<GetAuthV1UsersCurrentTotpStatusData, ThrowOnError>) => (options?.client ?? client).get<GetAuthV1UsersCurrentTotpStatusResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/totp/status',\n ...options\n});\n\n/**\n * Verify and enable TOTP\n *\n * Verifies the submitted TOTP code against the user's pending setup secret and, if valid, enables TOTP two-factor authentication and returns refreshed tokens.\n */\nexport const postAuthV1UsersCurrentTotpVerify = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1UsersCurrentTotpVerifyData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1UsersCurrentTotpVerifyResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/totp/verify',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update the current user's username\n *\n * Updates the authenticated user's username to the provided value.\n */\nexport const patchAuthV1UsersCurrentUsername = <ThrowOnError extends boolean = false>(options: Options<PatchAuthV1UsersCurrentUsernameData, ThrowOnError>) => (options.client ?? client).patch<PatchAuthV1UsersCurrentUsernameResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/auth/v1/users/current/username',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Verify passkey as 2FA after password login\n *\n * Completes the passkey step of a password login's 2FA challenge. Verifies the signed WebAuthn assertion against the challenge stored in the login session (from POST /auth/v1/login with status \"2fa_required\") and returns authentication tokens.\n */\nexport const postAuthV1VerifyPasskey = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1VerifyPasskeyData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1VerifyPasskeyResponses, unknown, ThrowOnError>({\n url: '/auth/v1/verify-passkey',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Verify TOTP during login\n *\n * Verifies the submitted TOTP code for a pending login session and, if valid, completes authentication and returns access tokens.\n */\nexport const postAuthV1VerifyTotp = <ThrowOnError extends boolean = false>(options: Options<PostAuthV1VerifyTotpData, ThrowOnError>) => (options.client ?? client).post<PostAuthV1VerifyTotpResponses, unknown, ThrowOnError>({\n url: '/auth/v1/verify-totp',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get billing address\n *\n * Returns the organization's billing address\n */\nexport const getBillingV1Address = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1AddressData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1AddressResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/address',\n ...options\n});\n\n/**\n * Set billing address\n *\n * Create or update the organization's billing address\n */\nexport const postBillingV1Address = <ThrowOnError extends boolean = false>(options: Options<PostBillingV1AddressData, ThrowOnError>) => (options.client ?? client).post<PostBillingV1AddressResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/address',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get bandwidth usage\n *\n * Returns the organization's bandwidth usage.\n */\nexport const getBillingV1BandwidthUsage = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1BandwidthUsageData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1BandwidthUsageResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/bandwidth-usage',\n ...options\n});\n\n/**\n * Bandwidth usage history\n *\n * Returns the organization's bandwidth usage history\n */\nexport const getBillingV1BandwidthUsageHistory = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1BandwidthUsageHistoryData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1BandwidthUsageHistoryResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/bandwidth-usage/history',\n ...options\n});\n\n/**\n * Refresh bandwidth usage\n *\n * Recalculate and persist the organization's bandwidth usage\n */\nexport const postBillingV1BandwidthUsageRefresh = <ThrowOnError extends boolean = false>(options?: Options<PostBillingV1BandwidthUsageRefreshData, ThrowOnError>) => (options?.client ?? client).post<PostBillingV1BandwidthUsageRefreshResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/bandwidth-usage/refresh',\n ...options\n});\n\n/**\n * Create checkout session\n *\n * Create a Stripe hosted checkout session\n */\nexport const postBillingV1Checkout = <ThrowOnError extends boolean = false>(options: Options<PostBillingV1CheckoutData, ThrowOnError>) => (options.client ?? client).post<PostBillingV1CheckoutResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/checkout',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Contact sales\n *\n * Submits a sales contact request for the organization.\n */\nexport const postBillingV1ContactSales = <ThrowOnError extends boolean = false>(options: Options<PostBillingV1ContactSalesData, ThrowOnError>) => (options.client ?? client).post<PostBillingV1ContactSalesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/contact-sales',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List invoices\n *\n * Returns the organization's invoices.\n */\nexport const getBillingV1Invoices = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1InvoicesData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1InvoicesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/invoices',\n ...options\n});\n\n/**\n * Update invoice status\n *\n * Updates the status of an invoice (admin).\n */\nexport const putBillingV1InvoicesByInvoiceIdStatus = <ThrowOnError extends boolean = false>(options: Options<PutBillingV1InvoicesByInvoiceIdStatusData, ThrowOnError>) => (options.client ?? client).put<PutBillingV1InvoicesByInvoiceIdStatusResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/invoices/{invoiceId}/status',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Cleanup old bandwidth snapshots\n *\n * Trigger the cleanup of old bandwidth usage records\n */\nexport const postBillingV1JobsCleanupBandwidthSnapshots = <ThrowOnError extends boolean = false>(options?: Options<PostBillingV1JobsCleanupBandwidthSnapshotsData, ThrowOnError>) => (options?.client ?? client).post<PostBillingV1JobsCleanupBandwidthSnapshotsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/jobs/cleanup-bandwidth-snapshots',\n ...options\n});\n\n/**\n * Run daily bandwidth calculation\n *\n * Trigger the daily bandwidth usage calculation job for all organizations\n */\nexport const postBillingV1JobsDailyBandwidthCalculation = <ThrowOnError extends boolean = false>(options?: Options<PostBillingV1JobsDailyBandwidthCalculationData, ThrowOnError>) => (options?.client ?? client).post<PostBillingV1JobsDailyBandwidthCalculationResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/jobs/daily-bandwidth-calculation',\n ...options\n});\n\n/**\n * Run monthly bandwidth calculation\n *\n * Trigger the monthly bandwidth usage calculation job for all organizations\n */\nexport const postBillingV1JobsMonthlyBandwidthCalculation = <ThrowOnError extends boolean = false>(options?: Options<PostBillingV1JobsMonthlyBandwidthCalculationData, ThrowOnError>) => (options?.client ?? client).post<PostBillingV1JobsMonthlyBandwidthCalculationResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/jobs/monthly-bandwidth-calculation',\n ...options\n});\n\n/**\n * List payment methods\n *\n * Returns the organization's payment methods.\n */\nexport const getBillingV1PaymentMethods = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1PaymentMethodsData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1PaymentMethodsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/payment-methods',\n ...options\n});\n\n/**\n * Add or update payment method\n *\n * Attach a payment method to the organization\n */\nexport const postBillingV1PaymentMethods = <ThrowOnError extends boolean = false>(options: Options<PostBillingV1PaymentMethodsData, ThrowOnError>) => (options.client ?? client).post<PostBillingV1PaymentMethodsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/payment-methods',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete payment method\n *\n * Remove a payment method from the organization\n */\nexport const deleteBillingV1PaymentMethodsByPaymentMethodId = <ThrowOnError extends boolean = false>(options: Options<DeleteBillingV1PaymentMethodsByPaymentMethodIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteBillingV1PaymentMethodsByPaymentMethodIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/payment-methods/{paymentMethodId}',\n ...options\n});\n\n/**\n * Resolve payment method from payment intent\n *\n * Returns the payment method ID associated with a payment intent\n */\nexport const getBillingV1PaymentMethodsFromPaymentIntent = <ThrowOnError extends boolean = false>(options: Options<GetBillingV1PaymentMethodsFromPaymentIntentData, ThrowOnError>) => (options.client ?? client).get<GetBillingV1PaymentMethodsFromPaymentIntentResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/payment-methods/from-payment-intent',\n ...options\n});\n\n/**\n * Resolve payment method from setup intent\n *\n * Returns the payment method ID associated with a setup intent\n */\nexport const getBillingV1PaymentMethodsFromSetupIntent = <ThrowOnError extends boolean = false>(options: Options<GetBillingV1PaymentMethodsFromSetupIntentData, ThrowOnError>) => (options.client ?? client).get<GetBillingV1PaymentMethodsFromSetupIntentResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/payment-methods/from-setup-intent',\n ...options\n});\n\n/**\n * List billing plans\n *\n * Returns the available billing plans.\n */\nexport const getBillingV1Plans = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1PlansData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1PlansResponses, unknown, ThrowOnError>({ url: '/billing/v1/plans', ...options });\n\n/**\n * Get a billing plan\n *\n * Returns a single billing plan by ID.\n */\nexport const getBillingV1PlansByPlanId = <ThrowOnError extends boolean = false>(options: Options<GetBillingV1PlansByPlanIdData, ThrowOnError>) => (options.client ?? client).get<GetBillingV1PlansByPlanIdResponses, unknown, ThrowOnError>({ url: '/billing/v1/plans/{planId}', ...options });\n\n/**\n * Create setup intent\n *\n * Create a Stripe setup intent for adding a payment method\n */\nexport const postBillingV1SetupIntent = <ThrowOnError extends boolean = false>(options?: Options<PostBillingV1SetupIntentData, ThrowOnError>) => (options?.client ?? client).post<PostBillingV1SetupIntentResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/setup-intent',\n ...options\n});\n\n/**\n * Get storage usage\n *\n * Returns the organization's storage usage.\n */\nexport const getBillingV1StorageUsage = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1StorageUsageData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1StorageUsageResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/storage-usage',\n ...options\n});\n\n/**\n * Storage usage history\n *\n * Returns the organization's storage usage history\n */\nexport const getBillingV1StorageUsageHistory = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1StorageUsageHistoryData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1StorageUsageHistoryResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/storage-usage/history',\n ...options\n});\n\n/**\n * Refresh storage usage\n *\n * Recalculate and persist the organization's storage usage\n */\nexport const postBillingV1StorageUsageRefresh = <ThrowOnError extends boolean = false>(options?: Options<PostBillingV1StorageUsageRefreshData, ThrowOnError>) => (options?.client ?? client).post<PostBillingV1StorageUsageRefreshResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/storage-usage/refresh',\n ...options\n});\n\n/**\n * Get current subscription\n *\n * Returns the current organization subscription.\n */\nexport const getBillingV1Subscription = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1SubscriptionData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1SubscriptionResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/subscription',\n ...options\n});\n\n/**\n * Create subscription\n *\n * Create a subscription for the authenticated organization\n */\nexport const postBillingV1Subscription = <ThrowOnError extends boolean = false>(options: Options<PostBillingV1SubscriptionData, ThrowOnError>) => (options.client ?? client).post<PostBillingV1SubscriptionResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/subscription',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Cancel subscription\n *\n * Cancel the organization's subscription at the end of the current period\n */\nexport const putBillingV1SubscriptionCancel = <ThrowOnError extends boolean = false>(options?: Options<PutBillingV1SubscriptionCancelData, ThrowOnError>) => (options?.client ?? client).put<PutBillingV1SubscriptionCancelResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/subscription/cancel',\n ...options\n});\n\n/**\n * Get subscription history\n *\n * Returns the organization's subscription history.\n */\nexport const getBillingV1SubscriptionHistory = <ThrowOnError extends boolean = false>(options?: Options<GetBillingV1SubscriptionHistoryData, ThrowOnError>) => (options?.client ?? client).get<GetBillingV1SubscriptionHistoryResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/subscription/history',\n ...options\n});\n\n/**\n * Reactivate subscription\n *\n * Reactivate a subscription scheduled for cancellation\n */\nexport const putBillingV1SubscriptionReactivate = <ThrowOnError extends boolean = false>(options?: Options<PutBillingV1SubscriptionReactivateData, ThrowOnError>) => (options?.client ?? client).put<PutBillingV1SubscriptionReactivateResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/subscription/reactivate',\n ...options\n});\n\n/**\n * Upgrade subscription\n *\n * Upgrade the organization's subscription to a new plan\n */\nexport const postBillingV1SubscriptionUpgrade = <ThrowOnError extends boolean = false>(options: Options<PostBillingV1SubscriptionUpgradeData, ThrowOnError>) => (options.client ?? client).post<PostBillingV1SubscriptionUpgradeResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/subscription/upgrade',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Calculate tax\n *\n * Calculate tax for a plan purchase\n */\nexport const postBillingV1TaxCalculate = <ThrowOnError extends boolean = false>(options: Options<PostBillingV1TaxCalculateData, ThrowOnError>) => (options.client ?? client).post<PostBillingV1TaxCalculateResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/billing/v1/tax/calculate',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Stripe webhook\n *\n * Receives Stripe webhook events. The raw payload and signature are forwarded to the billing service for verification and processing.\n */\nexport const postBillingWebhooksStripe = <ThrowOnError extends boolean = false>(options?: Options<PostBillingWebhooksStripeData, ThrowOnError>) => (options?.client ?? client).post<PostBillingWebhooksStripeResponses, unknown, ThrowOnError>({\n url: '/billing/webhooks/stripe',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get an image\n *\n * Returns a single image by ID.\n */\nexport const getMediaV1ImagesByImageId = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ImagesByImageIdData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ImagesByImageIdResponses, unknown, ThrowOnError>({ url: '/media/v1/images/{imageId}', ...options });\n\n/**\n * List supported languages\n *\n * Returns the language codes supported for audio tracks and subtitles.\n */\nexport const getMediaV1Languages = <ThrowOnError extends boolean = false>(options?: Options<GetMediaV1LanguagesData, ThrowOnError>) => (options?.client ?? client).get<GetMediaV1LanguagesResponses, unknown, ThrowOnError>({ url: '/media/v1/languages', ...options });\n\n/**\n * List images\n *\n * Returns the images in a project.\n */\nexport const getMediaV1ProjectsByProjectIdImages = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ProjectsByProjectIdImagesData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ProjectsByProjectIdImagesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/images',\n ...options\n});\n\n/**\n * Delete an image\n *\n * Deletes an image from a project.\n */\nexport const deleteMediaV1ProjectsByProjectIdImagesByImageId = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdImagesByImageIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdImagesByImageIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/images/{imageId}',\n ...options\n});\n\n/**\n * Get an image (project-scoped)\n *\n * Returns a single image within a project, including private media. Requires project access.\n */\nexport const getMediaV1ProjectsByProjectIdImagesByImageId = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ProjectsByProjectIdImagesByImageIdData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ProjectsByProjectIdImagesByImageIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/images/{imageId}',\n ...options\n});\n\n/**\n * Complete an image upload\n *\n * Finalizes a previously initiated image upload.\n */\nexport const postMediaV1ProjectsByProjectIdImagesByImageIdUploadComplete = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdImagesByImageIdUploadCompleteData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdImagesByImageIdUploadCompleteResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/images/{imageId}/upload/complete',\n ...options\n});\n\n/**\n * Set an image's visibility\n *\n * Updates an image's visibility (public, unlisted, or private). Requires project access.\n */\nexport const putMediaV1ProjectsByProjectIdImagesByImageIdVisibility = <ThrowOnError extends boolean = false>(options: Options<PutMediaV1ProjectsByProjectIdImagesByImageIdVisibilityData, ThrowOnError>) => (options.client ?? client).put<PutMediaV1ProjectsByProjectIdImagesByImageIdVisibilityResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/images/{imageId}/visibility',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create an image upload\n *\n * Initiates an image upload and returns upload details.\n */\nexport const postMediaV1ProjectsByProjectIdImagesUpload = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdImagesUploadData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdImagesUploadResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/images/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List videos in a project\n *\n * Returns the videos belonging to a project.\n */\nexport const getMediaV1ProjectsByProjectIdVideos = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ProjectsByProjectIdVideosData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ProjectsByProjectIdVideosResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos',\n ...options\n});\n\n/**\n * Delete a video\n *\n * Deletes a video from a project.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoId = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}',\n ...options\n});\n\n/**\n * Get a video (project-scoped)\n *\n * Returns a single video within a project, including private media. Requires project access.\n */\nexport const getMediaV1ProjectsByProjectIdVideosByVideoId = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ProjectsByProjectIdVideosByVideoIdData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ProjectsByProjectIdVideosByVideoIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}',\n ...options\n});\n\n/**\n * Delete all audio tracks\n *\n * Deletes all audio tracks for a video.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracks = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/audio-tracks',\n ...options\n});\n\n/**\n * List audio tracks (project-scoped)\n *\n * Returns a video's audio tracks within a project, including for private media. Requires project access.\n */\nexport const getMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracks = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/audio-tracks',\n ...options\n});\n\n/**\n * Delete an audio track\n *\n * Deletes a single audio track from a video.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksByTrackId = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksByTrackIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksByTrackIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/audio-tracks/{trackId}',\n ...options\n});\n\n/**\n * Delete audio tracks by language\n *\n * Deletes all audio tracks for a video in a given language.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksLanguageByLang = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksLanguageByLangData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksLanguageByLangResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/audio-tracks/language/{lang}',\n ...options\n});\n\n/**\n * Initiate audio track uploads\n *\n * Initiates one or more audio track uploads for a video.\n */\nexport const postMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUpload = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/audio-tracks/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Complete audio track uploads\n *\n * Finalizes previously initiated audio track uploads.\n */\nexport const postMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadComplete = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadCompleteData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdVideosByVideoIdAudioTracksUploadCompleteResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/audio-tracks/upload/complete',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete all video chapters\n *\n * Removes every chapter from a video.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdChapters = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/chapters',\n ...options\n});\n\n/**\n * Get video chapters\n *\n * Returns the chapters of a video.\n */\nexport const getMediaV1ProjectsByProjectIdVideosByVideoIdChapters = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ProjectsByProjectIdVideosByVideoIdChaptersData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ProjectsByProjectIdVideosByVideoIdChaptersResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/chapters',\n ...options\n});\n\n/**\n * Update video chapters\n *\n * Replaces the chapters of a video.\n */\nexport const putMediaV1ProjectsByProjectIdVideosByVideoIdChapters = <ThrowOnError extends boolean = false>(options: Options<PutMediaV1ProjectsByProjectIdVideosByVideoIdChaptersData, ThrowOnError>) => (options.client ?? client).put<PutMediaV1ProjectsByProjectIdVideosByVideoIdChaptersResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/chapters',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a single video chapter\n *\n * Removes one chapter identified by its start time (seconds).\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersByStartTimeSec = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersByStartTimeSecData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdChaptersByStartTimeSecResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/chapters/{startTimeSec}',\n ...options\n});\n\n/**\n * Delete all subtitles\n *\n * Deletes all subtitles for a video.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitles = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/subtitles',\n ...options\n});\n\n/**\n * List subtitles (project-scoped)\n *\n * Returns a video's subtitles within a project, including for private media. Requires project access.\n */\nexport const getMediaV1ProjectsByProjectIdVideosByVideoIdSubtitles = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/subtitles',\n ...options\n});\n\n/**\n * Delete a subtitle\n *\n * Deletes a single subtitle from a video.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesBySubtitleId = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesBySubtitleIdData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesBySubtitleIdResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/subtitles/{subtitleId}',\n ...options\n});\n\n/**\n * Delete subtitles by language\n *\n * Deletes all subtitles for a video in a given language.\n */\nexport const deleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesLanguageByLang = <ThrowOnError extends boolean = false>(options: Options<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesLanguageByLangData, ThrowOnError>) => (options.client ?? client).delete<DeleteMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesLanguageByLangResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/subtitles/language/{lang}',\n ...options\n});\n\n/**\n * Initiate subtitle uploads\n *\n * Initiates one or more subtitle uploads for a video.\n */\nexport const postMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUpload = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/subtitles/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Complete subtitle uploads\n *\n * Finalizes previously initiated subtitle uploads.\n */\nexport const postMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadComplete = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadCompleteData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdVideosByVideoIdSubtitlesUploadCompleteResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/subtitles/upload/complete',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update video thumbnail\n *\n * Replaces the thumbnail image for an existing video.\n */\nexport const putMediaV1ProjectsByProjectIdVideosByVideoIdThumbnail = <ThrowOnError extends boolean = false>(options: Options<PutMediaV1ProjectsByProjectIdVideosByVideoIdThumbnailData, ThrowOnError>) => (options.client ?? client).put<PutMediaV1ProjectsByProjectIdVideosByVideoIdThumbnailResponses, unknown, ThrowOnError>({\n ...formDataBodySerializer,\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/thumbnail',\n ...options,\n headers: {\n 'Content-Type': null,\n ...options.headers\n }\n});\n\n/**\n * Complete a video upload\n *\n * Finalizes a previously initiated video upload.\n */\nexport const postMediaV1ProjectsByProjectIdVideosByVideoIdUploadComplete = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdVideosByVideoIdUploadCompleteData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdVideosByVideoIdUploadCompleteResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/upload/complete',\n ...options\n});\n\n/**\n * Set a video's visibility\n *\n * Updates a video's visibility (public, unlisted, or private). Requires project access.\n */\nexport const putMediaV1ProjectsByProjectIdVideosByVideoIdVisibility = <ThrowOnError extends boolean = false>(options: Options<PutMediaV1ProjectsByProjectIdVideosByVideoIdVisibilityData, ThrowOnError>) => (options.client ?? client).put<PutMediaV1ProjectsByProjectIdVideosByVideoIdVisibilityResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/{videoId}/visibility',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a video upload\n *\n * Initiates a video upload and returns upload details.\n */\nexport const postMediaV1ProjectsByProjectIdVideosUpload = <ThrowOnError extends boolean = false>(options: Options<PostMediaV1ProjectsByProjectIdVideosUploadData, ThrowOnError>) => (options.client ?? client).post<PostMediaV1ProjectsByProjectIdVideosUploadResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/media/v1/projects/{projectId}/videos/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get a video\n *\n * Returns a single video by ID.\n */\nexport const getMediaV1VideosByVideoId = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1VideosByVideoIdData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1VideosByVideoIdResponses, unknown, ThrowOnError>({ url: '/media/v1/videos/{videoId}', ...options });\n\n/**\n * List audio tracks for a video\n *\n * Returns the audio tracks associated with a video.\n */\nexport const getMediaV1VideosByVideoIdAudioTracks = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1VideosByVideoIdAudioTracksData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1VideosByVideoIdAudioTracksResponses, unknown, ThrowOnError>({ url: '/media/v1/videos/{videoId}/audio-tracks', ...options });\n\n/**\n * List subtitles for a video\n *\n * Returns the subtitles associated with a video.\n */\nexport const getMediaV1VideosByVideoIdSubtitles = <ThrowOnError extends boolean = false>(options: Options<GetMediaV1VideosByVideoIdSubtitlesData, ThrowOnError>) => (options.client ?? client).get<GetMediaV1VideosByVideoIdSubtitlesResponses, unknown, ThrowOnError>({ url: '/media/v1/videos/{videoId}/subtitles', ...options });\n\n/**\n * List organization projects\n *\n * Get all projects for a specific organization\n */\nexport const listProjectsByOrgid = <ThrowOnError extends boolean = false>(options: Options<ListProjectsByOrgidData, ThrowOnError>) => (options.client ?? client).get<ListProjectsByOrgidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects',\n ...options\n});\n\n/**\n * Create project\n *\n * Create a new project under the given organization with specified video quality\n */\nexport const createProjectsByOrgid = <ThrowOnError extends boolean = false>(options: Options<CreateProjectsByOrgidData, ThrowOnError>) => (options.client ?? client).post<CreateProjectsByOrgidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete project (soft)\n *\n * Soft delete a project (marks it as deleted)\n */\nexport const deleteProjects = <ThrowOnError extends boolean = false>(options: Options<DeleteProjectsData, ThrowOnError>) => (options.client ?? client).delete<DeleteProjectsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects/{projectId}',\n ...options\n});\n\n/**\n * Get project\n *\n * Retrieve a specific project under an organization\n */\nexport const getProjects = <ThrowOnError extends boolean = false>(options: Options<GetProjectsData, ThrowOnError>) => (options.client ?? client).get<GetProjectsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects/{projectId}',\n ...options\n});\n\n/**\n * Remove custom domain\n *\n * Remove the custom domain from a specific project\n */\nexport const deleteCustomDomainByProjectid = <ThrowOnError extends boolean = false>(options: Options<DeleteCustomDomainByProjectidData, ThrowOnError>) => (options.client ?? client).delete<DeleteCustomDomainByProjectidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects/{projectId}/custom-domain',\n ...options\n});\n\n/**\n * Set or update custom domain\n *\n * Set or update a custom domain for a specific project\n */\nexport const updateCustomDomainByProjectid = <ThrowOnError extends boolean = false>(options: Options<UpdateCustomDomainByProjectidData, ThrowOnError>) => (options.client ?? client).put<UpdateCustomDomainByProjectidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects/{projectId}/custom-domain',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Move project to another organization\n *\n * Move a project from one organization to another (if user has access to both)\n */\nexport const createMoveByProjectid = <ThrowOnError extends boolean = false>(options: Options<CreateMoveByProjectidData, ThrowOnError>) => (options.client ?? client).post<CreateMoveByProjectidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects/{projectId}/move',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update project name\n *\n * Update the name of a specific project\n */\nexport const patchNameByProjectid = <ThrowOnError extends boolean = false>(options: Options<PatchNameByProjectidData, ThrowOnError>) => (options.client ?? client).patch<PatchNameByProjectidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects/{projectId}/name',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update project video quality\n *\n * Update the default video quality setting for a project\n */\nexport const patchVideoQualityByProjectid = <ThrowOnError extends boolean = false>(options: Options<PatchVideoQualityByProjectidData, ThrowOnError>) => (options.client ?? client).patch<PatchVideoQualityByProjectidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/organization/{orgId}/projects/{projectId}/video-quality',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List organization API keys\n *\n * Get all API keys for a specific organization\n */\nexport const listApiKeysByOrgid = <ThrowOnError extends boolean = false>(options?: Options<ListApiKeysByOrgidData, ThrowOnError>) => (options?.client ?? client).get<ListApiKeysByOrgidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/platform/api-keys',\n ...options\n});\n\n/**\n * Create API key\n *\n * Create a new API key for a project in the authenticated organization\n */\nexport const createApiKeyByOrgid = <ThrowOnError extends boolean = false>(options: Options<CreateApiKeyByOrgidData, ThrowOnError>) => (options.client ?? client).post<CreateApiKeyByOrgidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/platform/api-keys',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete API key\n *\n * Delete an API key owned by the authenticated organization\n */\nexport const deleteApiKeyByKeyid = <ThrowOnError extends boolean = false>(options: Options<DeleteApiKeyByKeyidData, ThrowOnError>) => (options.client ?? client).delete<DeleteApiKeyByKeyidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/platform/api-keys/{keyId}',\n ...options\n});\n\n/**\n * Rotate API key\n *\n * Rotate an API key, returning a new secret\n */\nexport const rotateApiKeyByKeyid = <ThrowOnError extends boolean = false>(options: Options<RotateApiKeyByKeyidData, ThrowOnError>) => (options.client ?? client).post<RotateApiKeyByKeyidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/platform/api-keys/{keyId}/rotate',\n ...options\n});\n\n/**\n * Refresh a platform access token\n *\n * Trades a refresh token for a fresh access/refresh pair.\n */\nexport const postPlatformAuthRefresh = <ThrowOnError extends boolean = false>(options: Options<PostPlatformAuthRefreshData, ThrowOnError>) => (options.client ?? client).post<PostPlatformAuthRefreshResponses, unknown, ThrowOnError>({\n url: '/platform/auth/refresh',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Exchange an API key for a platform access token\n *\n * Trades an API key (`<keyId>_<secret>`) for a short-lived platform access token plus a refresh token.\n */\nexport const postPlatformAuthToken = <ThrowOnError extends boolean = false>(options: Options<PostPlatformAuthTokenData, ThrowOnError>) => (options.client ?? client).post<PostPlatformAuthTokenResponses, unknown, ThrowOnError>({\n url: '/platform/auth/token',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List client credentials\n *\n * List client credentials for the specified organization\n */\nexport const listCredentialsByOrgid = <ThrowOnError extends boolean = false>(options?: Options<ListCredentialsByOrgidData, ThrowOnError>) => (options?.client ?? client).get<ListCredentialsByOrgidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/platform/clientauth/credentials',\n ...options\n});\n\n/**\n * Create client credential\n *\n * Create a new client credential for the authenticated organization\n */\nexport const createCredentialByOrgid = <ThrowOnError extends boolean = false>(options: Options<CreateCredentialByOrgidData, ThrowOnError>) => (options.client ?? client).post<CreateCredentialByOrgidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/platform/clientauth/credentials',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Revoke client credential\n *\n * Revoke a client credential owned by the authenticated organization\n */\nexport const revokeCredentialByCredentialid = <ThrowOnError extends boolean = false>(options: Options<RevokeCredentialByCredentialidData, ThrowOnError>) => (options.client ?? client).post<RevokeCredentialByCredentialidResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/platform/clientauth/credentials/{credentialId}/revoke',\n ...options\n});\n\n/**\n * Mint client access token\n *\n * Exchange client_id/client_secret for a short-lived access token. The request subject is an opaque client-defined label and is not treated as authoritative user identity for authorization.\n */\nexport const createToken = <ThrowOnError extends boolean = false>(options: Options<CreateTokenData, ThrowOnError>) => (options.client ?? client).post<CreateTokenResponses, unknown, ThrowOnError>({\n url: '/platform/clientauth/token',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List posts in a feed\n *\n * Public, unauthenticated listing of posts in a feed, with pagination.\n */\nexport const listPublicPosts = <ThrowOnError extends boolean = false>(options: Options<ListPublicPostsData, ThrowOnError>) => (options.client ?? client).get<ListPublicPostsResponses, unknown, ThrowOnError>({ url: '/posts/v1/feeds/{feedId}', ...options });\n\n/**\n * Get a post\n *\n * Public, unauthenticated retrieval of a single post by ID.\n */\nexport const getPublicPost = <ThrowOnError extends boolean = false>(options: Options<GetPublicPostData, ThrowOnError>) => (options.client ?? client).get<GetPublicPostResponses, unknown, ThrowOnError>({ url: '/posts/v1/feeds/{feedId}/{postId}', ...options });\n\n/**\n * List posts by creator\n *\n * Public, unauthenticated listing of posts in a feed by a specific creator, with pagination.\n */\nexport const listPublicPostsByCreator = <ThrowOnError extends boolean = false>(options: Options<ListPublicPostsByCreatorData, ThrowOnError>) => (options.client ?? client).get<ListPublicPostsByCreatorResponses, unknown, ThrowOnError>({ url: '/posts/v1/feeds/{feedId}/creators/{creatorId}', ...options });\n\n/**\n * List posts\n *\n * List posts in a feed\n */\nexport const listPosts = <ThrowOnError extends boolean = false>(options: Options<ListPostsData, ThrowOnError>) => (options.client ?? client).get<ListPostsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/posts/v1/projects/{projectId}/feeds/{feedId}/posts',\n ...options\n});\n\n/**\n * Create a post\n *\n * Create a new post in a feed\n */\nexport const createPost = <ThrowOnError extends boolean = false>(options: Options<CreatePostData, ThrowOnError>) => (options.client ?? client).post<CreatePostResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/posts/v1/projects/{projectId}/feeds/{feedId}/posts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a post\n *\n * Delete a post by ID\n */\nexport const deletePost = <ThrowOnError extends boolean = false>(options: Options<DeletePostData, ThrowOnError>) => (options.client ?? client).delete<DeletePostResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/posts/v1/projects/{projectId}/feeds/{feedId}/posts/{postId}',\n ...options\n});\n\n/**\n * Get a post\n *\n * Get a single post by ID\n */\nexport const getPost = <ThrowOnError extends boolean = false>(options: Options<GetPostData, ThrowOnError>) => (options.client ?? client).get<GetPostResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/posts/v1/projects/{projectId}/feeds/{feedId}/posts/{postId}',\n ...options\n});\n\n/**\n * List posts by creator\n *\n * List posts in a feed authored by a specific creator\n */\nexport const listPostsByCreator = <ThrowOnError extends boolean = false>(options: Options<ListPostsByCreatorData, ThrowOnError>) => (options.client ?? client).get<ListPostsByCreatorResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/posts/v1/projects/{projectId}/feeds/{feedId}/posts/creators/{creatorId}',\n ...options\n});\n\n/**\n * Complete a post upload\n *\n * Finalize a media upload and publish the post\n */\nexport const completePostUpload = <ThrowOnError extends boolean = false>(options: Options<CompletePostUploadData, ThrowOnError>) => (options.client ?? client).post<CompletePostUploadResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/posts/v1/projects/{projectId}/feeds/{feedId}/posts/upload/complete',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Initialize a post upload\n *\n * Begin a media upload and create a draft post\n */\nexport const initPostUpload = <ThrowOnError extends boolean = false>(options: Options<InitPostUploadData, ThrowOnError>) => (options.client ?? client).post<InitPostUploadResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/posts/v1/projects/{projectId}/feeds/{feedId}/posts/upload/init',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List feeds\n *\n * Lists all feeds for the active project with pagination.\n */\nexport const listFeeds = <ThrowOnError extends boolean = false>(options: Options<ListFeedsData, ThrowOnError>) => (options.client ?? client).get<ListFeedsResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/projects/{projectId}/feeds',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a feed\n *\n * Creates a new feed under the active project.\n */\nexport const createFeed = <ThrowOnError extends boolean = false>(options: Options<CreateFeedData, ThrowOnError>) => (options.client ?? client).post<CreateFeedResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/projects/{projectId}/feeds',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a feed\n *\n * Deletes a feed in the active project.\n */\nexport const deleteFeed = <ThrowOnError extends boolean = false>(options: Options<DeleteFeedData, ThrowOnError>) => (options.client ?? client).delete<DeleteFeedResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/projects/{projectId}/feeds/{feedId}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get a feed\n *\n * Retrieves a feed by ID under the active project.\n */\nexport const getFeed = <ThrowOnError extends boolean = false>(options: Options<GetFeedData, ThrowOnError>) => (options.client ?? client).get<GetFeedResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/projects/{projectId}/feeds/{feedId}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update a feed\n *\n * Updates an existing feed in the active project.\n */\nexport const updateFeed = <ThrowOnError extends boolean = false>(options: Options<UpdateFeedData, ThrowOnError>) => (options.client ?? client).put<UpdateFeedResponses, unknown, ThrowOnError>({\n security: [{ name: 'X-API-Key', type: 'apiKey' }],\n url: '/projects/{projectId}/feeds/{feedId}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n","import {client} from \"./generated/client.gen\";\nimport type {GoogleProviderConfig, AppleProviderConfig, MicrosoftProviderConfig, TelegramProviderConfig} from \"./auth/providers\";\n\nexport interface AuthConfig {\n loginRedirectUrl?: string;\n google?: GoogleProviderConfig;\n apple?: AppleProviderConfig;\n microsoft?: MicrosoftProviderConfig;\n telegram?: TelegramProviderConfig;\n}\n\nexport interface ConnectConfig {\n baseUrl: string;\n apiKey?: string;\n auth?: AuthConfig;\n}\n\nexport const connect = async (config: ConnectConfig): Promise<string | undefined> => {\n client.setConfig({baseUrl: config.baseUrl});\n\n if (config.apiKey) {\n client.interceptors.request.use(async (request) => {\n request.headers.set(\"X-API-Key\", config.apiKey!);\n return request;\n });\n }\n\n if (config.auth) {\n const {initClient} = await import(\"./auth/init\");\n return initClient({\n apiUrl: config.baseUrl,\n loginRedirectUrl: config.auth.loginRedirectUrl,\n googleProvider: config.auth.google,\n appleProvider: config.auth.apple,\n microsoftProvider: config.auth.microsoft,\n telegramProvider: config.auth.telegram,\n });\n }\n\n return undefined;\n};\n","import {postAuthV1Token} from \"../../generated/sdk.gen\";\nimport {AuthProvider} from \"../providers\";\nimport type {TokenResponse, LimitedScopeTokenResponse} from \"../types\";\n\nexport type {TokenResponse, LimitedScopeTokenResponse};\n\nexport const refreshTokens = async (provider: AuthProvider, token: string): Promise<TokenResponse | LimitedScopeTokenResponse> => {\n const {data} = await postAuthV1Token({\n headers: {Authorization: `${provider} ${token}`},\n throwOnError: true,\n });\n return data as TokenResponse | LimitedScopeTokenResponse;\n};\n","/**\n * Interface for a deferred promise that can be resolved or rejected externally\n */\nexport interface Deferred {\n promise: Promise<void>;\n resolve: () => void;\n reject: (reason?: unknown) => void;\n}\n\n/**\n * Creates a deferred promise that can be resolved or rejected externally\n * @returns A deferred promise object\n */\nexport function createDeferred(): Deferred {\n let resolve!: () => void;\n let reject!: (reason?: unknown) => void;\n\n const promise = new Promise<void>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return {promise, resolve, reject};\n}\n\n/**\n * Global deferred promise that tracks the initialization status of the auth library\n * This is resolved when initClient is called\n */\nexport const initDeferred: Deferred = createDeferred();\n","export const getAllCookiesStartWith = (startWithKey: string): Partial<Record<string, string>> => {\n // Check if document is available (not in test/SSR environment)\n if (typeof document === \"undefined\") {\n return {};\n }\n\n return document.cookie\n .split(\";\")\n .map((cv) => cv.split(\"=\").map((v) => v.trim()))\n .filter(([key]) => key && key !== startWithKey && key.startsWith(startWithKey))\n .reduce((ac, [key, value]) => Object.assign(ac, {[key!.slice(startWithKey.length + 1)]: value}), {});\n};\n\nimport type {CookieSameSite} from \"../types\";\n\ninterface CookieAttributes {\n expires?: number | Date | undefined;\n path?: string | undefined;\n domain?: string | undefined;\n secure?: boolean | undefined;\n sameSite?: CookieSameSite;\n}\n\nexport function setCookie(name: string, value: string, options?: CookieAttributes): void {\n // Check if document is available\n if (typeof document === \"undefined\") {\n return;\n }\n\n let cookieString = `${encodeName(name)}=${encodeValue(value)}`;\n\n if (options) {\n if (options.expires) {\n if (typeof options.expires === \"number\") {\n const date = new Date();\n date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000); // Convert days to milliseconds\n cookieString += `; expires=${date.toUTCString()}`;\n } else {\n cookieString += `; expires=${options.expires.toUTCString()}`;\n }\n }\n if (options.path) {\n cookieString += `; path=${options.path}`;\n }\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n if (options.secure) {\n cookieString += `; secure`;\n }\n if (options.sameSite) {\n cookieString += `; samesite=${options.sameSite}`;\n }\n }\n\n // Set the cookie\n document.cookie = cookieString;\n}\n\n// Function to delete a cookie\nexport function deleteCookie(name: string): void {\n // Check if document is available\n if (typeof document === \"undefined\") {\n return;\n }\n document.cookie = name + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n}\n\nconst encodeName = (name: string) => encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent);\n\nconst encodeValue = (value: string) =>\n encodeURIComponent(value as string).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);\n","import {deleteCookie, getAllCookiesStartWith, setCookie} from \"./util\";\nimport {GLOBAL_PREFIX, COOKIE_EXPIRY_DAYS} from \"../constants\";\n\nexport const initVals: Partial<Record<string, string>> = getAllCookiesStartWith(GLOBAL_PREFIX);\n\nexport const setStoreCookie = (key: string, value: unknown): void => {\n const expires = new Date();\n expires.setTime(expires.getTime() + COOKIE_EXPIRY_DAYS * 24 * 60 * 60 * 1000);\n\n const cookieKey = `${GLOBAL_PREFIX}_${key}`;\n\n if (!value || value === \"\") {\n deleteCookie(cookieKey);\n return;\n }\n\n const stringValue = typeof value === \"string\" ? value : JSON.stringify(value);\n setCookie(`${GLOBAL_PREFIX}_${key}`, stringValue, {\n expires,\n path: \"/\",\n sameSite: \"Lax\",\n });\n};\n","import {atom, type WritableAtom} from \"nanostores\";\nimport {GLOBAL_PREFIX} from \"./constants\";\nimport type {User} from \"./types\";\n\nconst userPath = GLOBAL_PREFIX + \"_user\";\nconst parseUser = (): User | undefined => {\n // Check if localStorage is available and has proper methods (e.g., in test environments)\n if (typeof localStorage === \"undefined\" || !localStorage || typeof localStorage.getItem !== \"function\") {\n return undefined;\n }\n\n const value = localStorage.getItem(userPath);\n if (value && value != \"undefined\") {\n try {\n return JSON.parse(value);\n } catch (err) {\n console.warn(\"Can't parse user data, error: \", err);\n return undefined;\n }\n }\n return undefined;\n};\n\nexport const user: WritableAtom<User | undefined> = atom<User | undefined>(parseUser());\nuser.subscribe((value) => {\n // Check if localStorage is available and has proper methods\n if (typeof localStorage === \"undefined\" || !localStorage || typeof localStorage.setItem !== \"function\") {\n return;\n }\n\n if (value) {\n localStorage.setItem(userPath, JSON.stringify(value));\n } else {\n localStorage.removeItem(userPath);\n }\n});\n","import {decodeJwt} from \"jose\";\nimport type {User} from \"../types\";\nimport {user} from \"../userStore\";\n\n/**\n * Decodes a JWT token and extracts user information\n * Uses jose library for modern, secure JWT handling\n * @param token The JWT token to decode\n * @returns The decoded user data or undefined if decoding fails\n */\nexport const decodeToken = (token: string): User | undefined => {\n try {\n const decodedUser = decodeJwt(token);\n return {\n id: decodedUser.id as string,\n email: decodedUser.email as string,\n first_name: decodedUser.first_name as string,\n last_name: decodedUser.last_name as string,\n username: decodedUser.username as string,\n image_url: decodedUser.image_url as string,\n language_code: decodedUser.language_code as string,\n org_id: decodedUser.org_id as string,\n };\n } catch (error) {\n // Only log in non-test environments to reduce test noise\n if (process.env.NODE_ENV !== \"test\") {\n console.warn(\"Failed to decode JWT token. Error: \", error);\n }\n return undefined;\n }\n};\n\n/**\n * Decodes a JWT token and sets the user in the store\n * @param token The JWT token to decode\n * @returns True if user was successfully decoded and set, false otherwise\n */\nexport const decodeAndSetUser = (token: string): boolean => {\n const userData = decodeToken(token);\n if (userData) {\n user.set(userData);\n return true;\n }\n return false;\n};\n\n/**\n * Checks if a token is expired based on the expiration timestamp\n * @param expireAt The expiration timestamp in milliseconds\n * @returns True if the token is expired, false otherwise\n */\nexport const isTokenExpired = (expireAt: number | undefined): boolean => {\n if (!expireAt) return true;\n return Date.now() >= expireAt;\n};\n","import {atom, type WritableAtom} from \"nanostores\";\nimport {refreshTokens} from \"./api/refresh-tokens\";\nimport {appleAuthUrl, AuthProvider, detectProvider, googleAuthUrl, telegramAuthUrl, microsoftAuthUrl} from \"./providers\";\nimport {initDeferred} from \"./initialization\";\nimport {initVals, setStoreCookie} from \"./cookie\";\nimport {user} from \"./userStore\";\nimport type {ProviderType} from \"./social/socialConnections\";\nimport {decodeAndSetUser, isTokenExpired} from \"./utils/jwt\";\nimport type {LoginErrorResponse} from \"./auth/types\";\nimport type {RequiresAction} from \"./types\";\n\n// Store for authentication state\nexport const isLogged: WritableAtom<boolean> = atom(initVals[\"isLogged\"] === \"true\" || detectProvider() !== undefined);\nexport const accessToken: WritableAtom<string | undefined> = atom(initVals[\"accessToken\"]);\nexport const refreshToken: WritableAtom<string | undefined> = atom(initVals[\"refreshToken\"]);\nexport const expireAt: WritableAtom<number> = atom(Number(initVals[\"expireAt\"]));\n\n// Store for OAuth/Telegram login errors (403, 409)\nexport const authError: WritableAtom<LoginErrorResponse | null> = atom<LoginErrorResponse | null>(null);\n\n// Store for limited access state (Telegram user without email)\nexport const requiresAction: WritableAtom<RequiresAction> = atom<RequiresAction>((initVals[\"requiresAction\"] as RequiresAction) || null);\nexport const limitedAccessToken: WritableAtom<string | null> = atom<string | null>(initVals[\"limitedAccessToken\"] || null);\n\n// Store the current getToken promise\nlet currentTokenPromise: Promise<string | undefined> | null = null;\n\n/**\n * Reset the current token promise (for testing purposes)\n * @internal\n */\nexport const resetTokenPromise = (): void => {\n currentTokenPromise = null;\n};\n\n// Map providers to their auth URL atoms\nconst PROVIDER_URL_MAP: Partial<Record<ProviderType, WritableAtom<string | null>>> = {\n google: googleAuthUrl,\n apple: appleAuthUrl,\n microsoft: microsoftAuthUrl,\n telegram: telegramAuthUrl,\n};\n\nexport const login = async (provider: ProviderType): Promise<void> => {\n await initDeferred.promise;\n\n const authUrlAtom = PROVIDER_URL_MAP[provider];\n if (!authUrlAtom) {\n throw new Error(`Unsupported provider: ${provider}`);\n }\n\n const authUrl = authUrlAtom.get();\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n throw new Error(`${provider} provider is not configured. Please check your initClient configuration.`);\n }\n};\n\nconst refreshAccessToken = async (refresh: string): Promise<void> => {\n const result = await refreshTokens(AuthProvider.BEARER, refresh);\n // Bearer refresh always returns full tokens (not limited scope)\n if (!(\"requires_action\" in result)) {\n setTokens(result.access_token, result.refresh_token, result.expires_in);\n }\n};\n\nconst ensureValidAccessToken = async (refresh: string): Promise<void> => {\n const currentAccessToken = accessToken.get();\n if (currentAccessToken && !isTokenExpired(expireAt.get())) {\n return;\n }\n\n try {\n await refreshAccessToken(refresh);\n } catch (refreshError) {\n // If refresh fails, we should consider the user logged out\n console.error(\"Token refresh failed in getToken:\", refreshError);\n removeTokens();\n throw refreshError;\n }\n};\n\nexport const getToken = async (): Promise<string | undefined> => {\n // If there's already a getToken operation in progress, return that promise\n if (currentTokenPromise) {\n return currentTokenPromise;\n }\n\n // Create a new promise for the getToken operation\n currentTokenPromise = (async () => {\n try {\n // Wait for the library to be initialized\n await initDeferred.promise;\n\n // Users in limited-access flows should not receive full-scope tokens for protected calls\n if (requiresAction.get()) return undefined;\n\n const currentRefreshToken = refreshToken.get();\n if (!currentRefreshToken) return undefined;\n\n await ensureValidAccessToken(currentRefreshToken);\n\n const token = accessToken.get();\n if (token) {\n decodeAndSetUser(token);\n }\n\n return token;\n } catch (error) {\n console.warn(\"Failed to getToken(). Error: \", error);\n throw error;\n } finally {\n // Clear the promise reference when done\n currentTokenPromise = null;\n }\n })();\n\n return currentTokenPromise;\n};\n/**\n * Sets authentication tokens in the store\n * @param access The access token\n * @param refresh The refresh token\n * @param expiresIn The token expiration time in seconds\n */\nexport const setTokens = (access: string, refresh: string, expiresIn: number): void => {\n accessToken.set(access);\n refreshToken.set(refresh);\n expireAt.set(Date.now() + expiresIn * 1000);\n isLogged.set(true);\n\n // Clear limited access state when full tokens are set\n limitedAccessToken.set(null);\n requiresAction.set(null);\n\n // Clear any previous authentication errors after successful token set\n authError.set(null);\n\n // Decode and set user information\n decodeAndSetUser(access);\n};\n\n/**\n * Removes authentication tokens from the store\n */\nexport const removeTokens = (): void => {\n accessToken.set(\"\");\n refreshToken.set(\"\");\n expireAt.set(0);\n isLogged.set(false);\n user.set(undefined);\n\n // Clear limited access state on logout\n limitedAccessToken.set(null);\n requiresAction.set(null);\n\n // Clear any existing auth errors to ensure a clean logout state\n authError.set(null);\n};\n\n/**\n * Clears the auth error from the store\n */\nexport const clearAuthError = (): void => {\n authError.set(null);\n};\n\n/**\n * Sets limited access state for users requiring additional action (e.g., Telegram users without email)\n * @param token The limited scope access token\n * @param action The required action (e.g., \"add_email\")\n */\nexport const setLimitedAccessState = (token: string, action: RequiresAction): void => {\n limitedAccessToken.set(token);\n requiresAction.set(action);\n authError.set(null); // Clear any previous auth errors\n isLogged.set(true); // User is logged in but with limited scope\n};\n\n/**\n * Clears the limited access state (after email verification completes or user logs out)\n */\nexport const clearLimitedAccessState = (): void => {\n limitedAccessToken.set(null);\n requiresAction.set(null);\n\n // If there are no full tokens, user should no longer be considered logged in\n const hasFullTokens = !!accessToken.get() && !!refreshToken.get();\n if (!hasFullTokens) {\n isLogged.set(false);\n }\n};\n\n// Persist state changes to cookies\nisLogged.subscribe((value) => setStoreCookie(\"isLogged\", value));\naccessToken.subscribe((value) => setStoreCookie(\"accessToken\", value));\nrefreshToken.subscribe((value) => setStoreCookie(\"refreshToken\", value));\nexpireAt.subscribe((value) => setStoreCookie(\"expireAt\", value));\nrequiresAction.subscribe((value) => setStoreCookie(\"requiresAction\", value));\nlimitedAccessToken.subscribe((value) => setStoreCookie(\"limitedAccessToken\", value));\n","import {postAuthV1Logout} from \"../../generated/sdk.gen\";\nimport {removeTokens} from \"../authStore\";\n\nexport const logout = async (): Promise<void> => {\n try {\n await postAuthV1Logout({throwOnError: true});\n } catch {\n // Revocation failed — still clear local state\n } finally {\n removeTokens();\n }\n};\n","import type {HttpMethod} from \"../types\";\n\n/**\n * Configuration for API requests\n */\nexport interface ApiRequestConfig {\n method?: HttpMethod;\n body?: Record<string, unknown> | string;\n headers?: Record<string, string>;\n skipAuth?: boolean;\n retry?: number;\n signal?: AbortSignal;\n}\n\nexport interface ApiErrorContext {\n status: number;\n endpoint: string;\n data?: unknown;\n}\n\n/**\n * Generic API error class - wraps ky's HTTPError for consistency\n */\nexport class ApiError extends Error {\n public status: number;\n public endpoint: string;\n public data?: unknown;\n\n constructor(message: string, ...rest: [number, string?, unknown?] | [ApiErrorContext]) {\n super(message);\n this.name = \"ApiError\";\n\n const firstArg = rest[0];\n if (typeof firstArg === \"number\") {\n this.status = firstArg;\n this.endpoint = rest[1] ?? \"\";\n this.data = rest[2];\n return;\n }\n\n this.status = firstArg.status;\n this.endpoint = firstArg.endpoint;\n this.data = firstArg.data;\n }\n}\n","import {atom, type WritableAtom} from \"nanostores\";\n\n/**\n * Global API base URL store\n */\nexport const apiURL: WritableAtom<string> = atom(\"\");\n","import {client} from \"../../generated/client.gen\";\nimport {apiURL} from \"../api-url\";\nimport {getToken} from \"../authStore\";\n\nlet configured = false;\n\nexport function configureSdkClient(): void {\n if (configured) return;\n configured = true;\n\n client.setConfig({baseUrl: apiURL.get()});\n\n apiURL.subscribe((url) => {\n client.setConfig({baseUrl: url});\n });\n\n client.interceptors.request.use(async (request) => {\n if (request.headers.has(\"Authorization\")) {\n return request;\n }\n const token = await getToken();\n if (token) {\n request.headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return request;\n });\n}\n","import {SOCIAL_CONNECT_KEY_PREFIX} from \"../constants\";\n\nconst socialStoragePath = (provider: string) => SOCIAL_CONNECT_KEY_PREFIX + provider;\n\n/**\n * Sets a flag indicating that a social provider connection is being attempted\n * @param provider The provider identifier\n */\nexport function setSocialConnectAttempt(provider: string): void {\n sessionStorage.setItem(socialStoragePath(provider), \"true\");\n}\n\n/**\n * Checks if there's a pending social provider connection attempt\n * @param provider The provider identifier\n * @returns True if there's a pending connection attempt, false otherwise\n */\nexport function hasSocialConnectAttempt(provider: string): boolean {\n return sessionStorage.getItem(socialStoragePath(provider)) === \"true\";\n}\n\n/**\n * Clears the social provider connection attempt flag\n * @param provider The provider identifier\n */\nexport function clearSocialConnectAttempt(provider: string): void {\n sessionStorage.removeItem(socialStoragePath(provider));\n}\n","import {ApiError} from \"./types\";\nexport {ApiError};\n\n/**\n * Helper to create error functions - reduces bundle size by reusing error creation logic\n */\nexport const err =\n (message: string): (() => Error) =>\n () =>\n new Error(message);\n\ntype CommonErrors = {\n unauthorized: () => Error;\n badRequest: () => Error;\n notFound: () => Error;\n conflict: () => Error;\n forbidden: () => Error;\n tooManyRequests: () => Error;\n};\n\n/** Reusable error handlers for common cases - reduces repetitive error messages */\nexport const commonErrors: CommonErrors = {\n unauthorized: err(\"User is not authorized\"),\n badRequest: err(\"Bad request\"),\n notFound: err(\"Not found\"),\n conflict: err(\"Resource already exists\"),\n forbidden: err(\"Forbidden\"),\n tooManyRequests: err(\"Too many requests\"),\n};\n\n/**\n * Standard error handler for API errors with custom status code handling\n */\nexport const handleApiError = (error: unknown, statusHandlers: Record<number, () => Error>): never => {\n if (error instanceof ApiError) {\n const handler = statusHandlers[error.status];\n if (handler) {\n throw new ApiError(handler().message, error.status, error.endpoint, error.data);\n }\n throw error;\n }\n throw error;\n};\n","import {initDeferred} from \"../initialization\";\nimport {handleApiError} from \"./error-handlers\";\n\n/**\n * Generic helper for API calls to handle initialization and error handling\n * @param fn The async function to execute\n * @param errorMap A map of status codes to error functions\n * @returns The result of the function execution\n */\nexport const apiCall = async <T>(fn: () => Promise<T>, errorMap: Record<number, () => Error> = {}): Promise<T> => {\n await initDeferred.promise;\n\n try {\n return await fn();\n } catch (error) {\n return handleApiError(error, errorMap);\n }\n};\n","import * as v from \"valibot\";\n\n/**\n * 🛡️ INPUT VALIDATION UTILITY\n * Validates data before API calls and throws user-friendly errors\n */\nexport const validateInput = <T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, data: unknown): T => {\n try {\n return v.parse(schema, data);\n } catch (error) {\n if (error instanceof v.ValiError) {\n const firstError = error.issues[0];\n throw new Error(firstError.message);\n }\n throw error;\n }\n};\n\nexport const EmailSchema = v.pipe(\n v.string(\"Email must be text\"),\n v.email(\"Please enter a valid email address\"),\n v.minLength(1, \"Email is required\")\n);\n\nexport const PasswordSchema = v.pipe(\n v.string(\"Password must be text\"),\n v.minLength(8, \"Password must be at least 8 characters long\"),\n v.regex(/[A-Z]/, \"Password must contain at least one uppercase letter\"),\n v.regex(/[a-z]/, \"Password must contain at least one lowercase letter\"),\n v.regex(/[0-9]/, \"Password must contain at least one number\")\n);\n\n/**\n * Username validation schema\n * - Must be 4-24 characters\n * - Only letters, numbers, underscores, and periods\n */\nexport const UsernameSchema = v.pipe(\n v.string(\"Username must be text\"),\n v.minLength(4, \"Username must be 4-24 characters long\"),\n v.maxLength(24, \"Username must be 4-24 characters long\"),\n v.regex(/^[a-z0-9_.]+$/, \"Username can only contain lowercase letters, numbers, dots and underscores\")\n);\n\n/**\n * Name validation schema\n * - Must be 1-30 characters\n */\nexport const NameSchema = v.pipe(\n v.string(\"Name must be text\"),\n v.minLength(1, \"Name must be 1-30 characters long\"),\n v.maxLength(30, \"Name must be 1-30 characters long\")\n);\n\n/**\n * Domain validation schema\n * - Must be lowercase\n * - Must contain at least one dot\n * - Only alphanumeric characters, hyphens, and dots\n * - Cannot start or end with hyphen in any part\n */\nexport const DomainSchema = v.pipe(\n v.string(\"Domain must be text\"),\n v.trim(),\n v.toLowerCase(),\n v.minLength(1, \"Domain is required\"),\n v.regex(\n /^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,\n \"Invalid domain format. Please enter a valid domain like company.com\"\n )\n);\n","import * as v from \"valibot\";\nimport {EmailSchema, PasswordSchema} from \"./base\";\n\nexport const EmailAuthRequestSchema = v.object({\n email: EmailSchema,\n password: PasswordSchema,\n subscribe_to_blog: v.optional(v.boolean()),\n});\n\nexport const ResetPasswordRequestSchema = v.object({\n token: v.string(),\n new_password: PasswordSchema,\n});\n\nexport const LoginOTPVerifyRequestSchema = v.object({\n code: v.pipe(\n v.string(\"OTP code must be text\"),\n v.maxLength(8, \"OTP code must be at most 6 characters\"),\n v.regex(/^\\d+$/, \"OTP code must contain only numbers\")\n ),\n session_id: v.pipe(v.string(\"Session ID must be text\"), v.minLength(1, \"Session ID is required\")),\n});\n\nexport const ResendEmailRequestSchema = v.object({\n email: EmailSchema,\n});\n\nexport const ChangeEmailRequestSchema = v.object({\n new_email: EmailSchema,\n});\n\nexport const verifyEmailChangeRequestSchema = v.object({\n code: v.pipe(\n v.string(\"OTP code must be text\"),\n v.minLength(6, \"OTP code must be at least 6 characters\"),\n v.maxLength(8, \"OTP code must be at most 8 characters\"),\n v.regex(/^\\d+$/, \"OTP code must contain only numbers\")\n ),\n new_email: v.optional(EmailSchema),\n type: v.union([v.literal(\"verification\"), v.literal(\"email_change\")]),\n verification_id: v.string(\"Verification ID is required\"),\n});\n\n/**\n * Social provider schemas\n */\nexport const ConnectProviderSchema = v.object({\n provider: v.pipe(v.string(\"Provider must be text\"), v.minLength(1, \"Provider is required\")),\n token: v.pipe(v.string(\"Token must be text\"), v.minLength(1, \"Token is required\")),\n});\n\n/**\n * OTP verification schema (for user OTP operations)\n */\nexport const VerifyOTPCodeSchema = v.object({\n code: v.pipe(\n v.string(\"OTP code must be text\"),\n v.minLength(6, \"OTP code must be at least 6 characters\"),\n v.regex(/^\\d+$/, \"OTP code must contain only numbers\")\n ),\n});\n","import {getAuthV1Providers, postAuthV1ProvidersConnect, deleteAuthV1ProvidersByProvider} from \"../../generated/sdk.gen\";\nimport {login, setTokens} from \"../authStore\";\nimport {setSocialConnectAttempt} from \"./socialState\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport {validateInput} from \"../validation/base\";\nimport {ConnectProviderSchema} from \"../validation/auth\";\n\nexport type ProviderType = \"google\" | \"apple\" | \"microsoft\" | \"facebook\" | \"telegram\";\n\nexport interface ConnectedProvider {\n provider: ProviderType;\n username?: string;\n first_name?: string;\n last_name?: string;\n email_address?: string;\n image_url?: string;\n}\n\nexport const listSocials = async (): Promise<ConnectedProvider[]> => {\n return apiCall(\n async () => {\n const {data} = await getAuthV1Providers({\n throwOnError: true,\n });\n return (data.providers ?? []) as unknown as ConnectedProvider[];\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list providers!\"),\n }\n );\n};\n\nexport const connectSocialInternal = async (provider: string, token: string): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(ConnectProviderSchema, {provider, token}) as {\n provider: \"google\" | \"apple\" | \"microsoft\" | \"tgAuthResult\";\n token: string;\n };\n const {data} = await postAuthV1ProvidersConnect({\n body: requestBody,\n throwOnError: true,\n });\n if (data.access_token && data.refresh_token && data.expires_in) {\n setTokens(data.access_token, data.refresh_token, data.expires_in);\n }\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to connect provider!\"),\n }\n );\n};\n\nexport const disconnectSocial = async (providerId: string): Promise<void> => {\n return apiCall(\n async () => {\n await deleteAuthV1ProvidersByProvider({\n path: {provider: providerId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to disconnect provider!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Provider not found!\"),\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Cannot disconnect the last social provider!\"),\n }\n );\n};\n\nexport const connectSocial = (provider: ProviderType): void => {\n setSocialConnectAttempt(provider);\n login(provider);\n};\n","import ky, {type KyInstance} from \"ky\";\nimport {apiURL} from \"../api-url\";\n\n/**\n * Token refresh function type - will be set during initialization\n */\nexport type TokenRefreshFn = () => Promise<string | undefined>;\nlet tokenRefreshFunction: TokenRefreshFn | null = null;\n\n/**\n * Mutex to prevent multiple simultaneous token refreshes\n */\nlet tokenRefreshPromise: Promise<string | undefined> | null = null;\n\n/**\n * Resets the API client state - primarily for testing\n */\nexport const resetApiClient = (): void => {\n tokenRefreshFunction = null;\n tokenRefreshPromise = null;\n};\n\n/**\n * Sets the token refresh function used by the API client\n * This should be called during initialization\n */\nexport const setTokenRefreshFunction = (fn?: TokenRefreshFn): void => {\n tokenRefreshFunction = fn ?? null;\n};\n\n/**\n * Refreshes the token with mutex locking to prevent race conditions\n */\nexport const refreshTokenWithLock = async (): Promise<string | undefined> => {\n // If a refresh is already in progress, wait for it\n if (tokenRefreshPromise) {\n return tokenRefreshPromise;\n }\n\n // Start a new refresh\n tokenRefreshPromise = (async () => {\n try {\n if (!tokenRefreshFunction) {\n throw new Error(\"Token refresh function not initialized\");\n }\n return await tokenRefreshFunction();\n } finally {\n // Clear the promise when done\n tokenRefreshPromise = null;\n }\n })();\n\n return tokenRefreshPromise;\n};\n\n/**\n * Creates a ky instance with proper auth handling and retry logic\n */\nexport const createKyInstance = (getTokenFn: () => Promise<string | undefined>, skipAuth = false): KyInstance => {\n return ky.create({\n prefix: apiURL.get(),\n retry: {\n limit: 2,\n methods: [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"],\n // Removed 413 (Payload Too Large) as retrying won't fix it\n statusCodes: [408, 429, 500, 502, 503, 504],\n // Don't retry 401 automatically - we handle it in hooks\n },\n hooks: {\n beforeRequest: [\n async ({request}) => {\n if (!skipAuth) {\n const token = await getTokenFn();\n if (token) {\n request.headers.set(\"Authorization\", `Bearer ${token}`);\n }\n }\n },\n ],\n afterResponse: [\n async ({request, response}) => {\n // Handle 401 Unauthorized - attempt token refresh and retry\n if (response.status === 401 && !skipAuth) {\n try {\n // Refresh the token (with mutex lock)\n const newToken = await refreshTokenWithLock();\n\n if (newToken) {\n // Update the request with new token\n request.headers.set(\"Authorization\", `Bearer ${newToken}`);\n // Retry the request with ky's built-in retry mechanism\n return ky(request);\n }\n } catch (error) {\n // If refresh fails, let the 401 propagate\n console.warn(\"Token refresh failed:\", error);\n }\n }\n\n return response;\n },\n ],\n },\n });\n};\n","let loginRedirectUrl: string | undefined;\n\nexport const setLoginRedirectUrl = (url?: string): void => {\n loginRedirectUrl = url;\n};\n\nexport const redirectToLogin = (): void => {\n if (!loginRedirectUrl) return;\n if (typeof window === \"undefined\") return;\n\n window.location.href = loginRedirectUrl;\n};\n","import {getToken, refreshToken, authError, setTokens, setLimitedAccessState, clearLimitedAccessState} from \"./authStore\";\nimport {ApiError} from \"./api/types\";\nimport {HTTP_STATUS} from \"./constants\";\nimport type {TokenResponse, LimitedScopeTokenResponse, RequiresAction} from \"./types\";\nimport type {LoginErrorCode} from \"./auth/types\";\nimport {apiURL} from \"./api-url\";\nimport {refreshTokens} from \"./api/refresh-tokens\";\nimport {initDeferred} from \"./initialization\";\nimport {configureSdkClient} from \"./api/sdk-client\";\nimport {\n type GoogleProviderConfig,\n type TelegramProviderConfig,\n type AppleProviderConfig,\n type MicrosoftProviderConfig,\n googleConfig,\n telegramConfig,\n appleConfig,\n microsoftConfig,\n updateGoogleAuthUrl,\n updateAppleAuthUrl,\n updateMicrosoftAuthUrl,\n updateTelegramAuthUrl,\n getProviderToken,\n detectProvider,\n AuthProvider,\n} from \"./providers\";\nimport {clearSocialConnectAttempt, hasSocialConnectAttempt} from \"./social/socialState\";\nimport {connectSocialInternal} from \"./social/socialConnections\";\nimport {setTokenRefreshFunction} from \"./api/client-core\";\nimport {setLoginRedirectUrl} from \"./authConfig\";\n\n/**\n * Configuration options for the authentication client\n */\nexport interface AuthClientConfig {\n /** The base URL of the authentication API */\n apiUrl: string;\n /** Optional login redirect URL used when auth expires */\n loginRedirectUrl?: string;\n /** Google authentication provider configuration (optional) */\n googleProvider?: GoogleProviderConfig;\n /** Apple authentication provider configuration (optional) */\n appleProvider?: AppleProviderConfig;\n /** Microsoft authentication provider configuration (optional) */\n microsoftProvider?: MicrosoftProviderConfig;\n /** Telegram authentication provider configuration (optional) */\n telegramProvider?: TelegramProviderConfig;\n}\n\n/**\n * Initializes the authentication client with the provided configuration\n * @param config The authentication client configuration\n * @returns A promise that resolves to the current access token (if available)\n */\nexport const initClient = async (config: AuthClientConfig): Promise<string | undefined> => {\n await initConfig(config);\n await initPage();\n initDeferred.resolve();\n await initSocials();\n return getToken();\n};\n\nconst initConfig = async (config: AuthClientConfig) => {\n // Set the API URL\n apiURL.set(config.apiUrl);\n configureSdkClient();\n setLoginRedirectUrl(config.loginRedirectUrl);\n\n // Initialize the token refresh function for ky client\n // This enables automatic 401 retry with token refresh\n setTokenRefreshFunction(async () => {\n const currentRefreshToken = refreshToken.get();\n if (currentRefreshToken) {\n const {AuthProvider} = await import(\"./providers\");\n const result = await refreshTokens(AuthProvider.BEARER, currentRefreshToken);\n // Store new tokens if full response (not limited scope)\n if (result && !(\"requires_action\" in result)) {\n setTokens(result.access_token, result.refresh_token, result.expires_in);\n }\n return getToken();\n }\n return undefined;\n });\n\n // Set provider configurations and update auth URLs\n if (config.googleProvider) {\n googleConfig.set(config.googleProvider);\n updateGoogleAuthUrl();\n }\n\n if (config.appleProvider) {\n appleConfig.set(config.appleProvider);\n updateAppleAuthUrl();\n }\n\n if (config.microsoftProvider) {\n microsoftConfig.set(config.microsoftProvider);\n updateMicrosoftAuthUrl();\n }\n\n if (config.telegramProvider) {\n telegramConfig.set(config.telegramProvider);\n updateTelegramAuthUrl();\n }\n};\n\nconst isLimitedScopeTokenResponse = (result: TokenResponse | LimitedScopeTokenResponse): result is LimitedScopeTokenResponse => {\n return \"requires_action\" in result;\n};\n\nconst applyTokenExchangeResult = (result: TokenResponse | LimitedScopeTokenResponse): void => {\n if (isLimitedScopeTokenResponse(result)) {\n setLimitedAccessState(result.access_token, result.requires_action as RequiresAction);\n return;\n }\n\n const fullResult = result as TokenResponse;\n setTokens(fullResult.access_token, fullResult.refresh_token, fullResult.expires_in);\n};\n\nconst setAuthErrorAndClear = (error_code: LoginErrorCode, message: string, email: string): true => {\n clearLimitedAccessState();\n authError.set({error_code, message, email});\n return true;\n};\n\nconst extractAuthErrorInfo = (error: ApiError): {error: string; description: string; email: string} => {\n const data = error.data as {error?: string; error_description?: string; email?: string} | undefined;\n return {\n error: data?.error ?? \"\",\n description: data?.error_description ?? error.message ?? \"\",\n email: data?.email ?? \"\",\n };\n};\n\nconst handleInitPageApiError = (error: ApiError): boolean => {\n const info = extractAuthErrorInfo(error);\n\n if (error.status === HTTP_STATUS.BAD_REQUEST && info.error === \"invalid_grant\") {\n return setAuthErrorAndClear(\"email_not_verified\", info.description, info.email);\n }\n\n if (error.status === HTTP_STATUS.CONFLICT) {\n return setAuthErrorAndClear(\"provider_conflict\", info.description, info.email);\n }\n\n return false;\n};\n\nconst exchangeProviderToken = async (provider: AuthProvider, token: string): Promise<void> => {\n const result = await refreshTokens(provider, token);\n applyTokenExchangeResult(result);\n};\n\nconst initPage = async () => {\n const provider = detectProvider();\n if (!provider) return undefined;\n\n const token = getProviderToken(provider);\n if (!token) return undefined;\n\n // TODO check when refresh token expires\n if (refreshToken.get()) return undefined;\n\n try {\n await exchangeProviderToken(provider, token);\n } catch (error) {\n if (error instanceof ApiError && handleInitPageApiError(error)) {\n return;\n }\n throw error;\n }\n};\n\nconst initSocials = async () => {\n const provider = detectProvider();\n if (!provider) return undefined;\n\n const token = getProviderToken(provider);\n if (!token) return undefined;\n\n // Check if this is a social connection attempt\n try {\n if (hasSocialConnectAttempt(provider)) {\n await connectSocialInternal(provider, token);\n }\n } finally {\n clearSocialConnectAttempt(provider);\n }\n};\n","// Membership role and state types\nexport enum MembershipRole {\n OWNER = \"owner\",\n ADMIN = \"admin\",\n MEMBER = \"member\",\n}\n\nexport type AssignableRole = MembershipRole.ADMIN | MembershipRole.MEMBER;\n\nexport enum MembershipState {\n ACCEPTED = \"accepted\",\n PENDING = \"pending\",\n DECLINED = \"declined\",\n ACCEPT = \"accept\",\n DECLINE = \"decline\",\n}\n\nexport interface Common {\n id: string;\n user_id: string;\n org_id: string;\n role: MembershipRole;\n state: MembershipState;\n joined_at?: string;\n}\n\nexport interface Membership extends Common {\n organization_username: string;\n organization_first_name: string;\n organization_last_name: string;\n}\n\nexport interface Member extends Common {\n username: string;\n first_name: string;\n last_name: string;\n invitation_expires_at?: string;\n}\n\n// Invite member request\nexport interface InviteMemberRequest {\n username: string;\n role: AssignableRole;\n}\n\n// Resend Invite member request\nexport interface ResendInviteMemberRequest {\n user_id: string;\n}\n\n// Update member role request\nexport interface UpdateMemberRoleRequest {\n role: AssignableRole;\n}\n","import {getAuthV1MembershipsActive, getAuthV1MembershipsPending, getAuthV1MembershipsByOrgIdMembers} from \"../../generated/sdk.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {PaginationParams} from \"../pagination-utils\";\nimport type {Membership, Member} from \"./types\";\n\nexport const listActiveMemberships = async (paginationParams?: PaginationParams): Promise<Membership[]> => {\n return apiCall(\n async () => {\n const {data} = await getAuthV1MembershipsActive({\n query: paginationParams,\n throwOnError: true,\n });\n\n return (data.memberships || []) as unknown as Membership[];\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list memberships!\"),\n }\n );\n};\n\nexport const listPendingMemberships = async (paginationParams?: PaginationParams): Promise<Membership[]> => {\n return apiCall(\n async () => {\n const {data} = await getAuthV1MembershipsPending({\n query: paginationParams,\n throwOnError: true,\n });\n\n return (data.memberships || []) as unknown as Membership[];\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list memberships!\"),\n }\n );\n};\n\nexport const listOrganizationMembers = async (orgId: string, paginationParams?: PaginationParams): Promise<Member[]> => {\n return apiCall(\n async () => {\n const {data} = await getAuthV1MembershipsByOrgIdMembers({\n path: {orgId},\n query: paginationParams,\n throwOnError: true,\n });\n\n return (data.members || []) as unknown as Member[];\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list organization members!\"),\n }\n );\n};\n","import * as v from \"valibot\";\nimport {UsernameSchema} from \"./base\";\n\n/**\n * Membership state schemas\n */\nexport const AcceptDeclineMembershipSchema = v.object({\n state: v.union([v.literal(\"accepted\"), v.literal(\"declined\")]),\n});\n\nexport const PublicInviteResponseSchema = v.object({\n state: v.union([v.literal(\"accept\"), v.literal(\"decline\")]),\n});\n\n/**\n * Membership management schemas\n */\nexport const InviteMemberSchema = v.object({\n username: UsernameSchema,\n role: v.union([v.literal(\"admin\"), v.literal(\"member\")]),\n});\n\nexport const UpdateMemberRoleSchema = v.object({\n role: v.union([v.literal(\"admin\"), v.literal(\"member\")]),\n});\n\nexport const ResendInviteSchema = v.object({\n user_id: v.pipe(v.string(\"User ID must be text\"), v.minLength(1, \"User ID is required\")),\n});\n","import {\n postAuthV1MembershipsByOrgIdMembersInvite,\n postAuthV1MembershipsByOrgIdMembersInviteResend,\n postAuthV1InvitationsByTokenAccept,\n postAuthV1InvitationsByTokenDecline,\n putAuthV1MembershipsByOrgIdMembershipState,\n} from \"../../generated/sdk.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport {MembershipState, type AssignableRole} from \"./types\";\nimport {validateInput} from \"../validation/base\";\nimport {AcceptDeclineMembershipSchema, PublicInviteResponseSchema, InviteMemberSchema, ResendInviteSchema} from \"../validation/membership\";\n\nexport const inviteMember = async (orgId: string, username: string, role: AssignableRole): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(InviteMemberSchema, {username, role});\n await postAuthV1MembershipsByOrgIdMembersInvite({\n path: {orgId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to invite members!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(`User with username ${username} not found!`),\n [HTTP_STATUS.CONFLICT]: () => new Error(`User with username ${username} already exists!`),\n }\n );\n};\n\nexport const resendMemberInvite = async (orgId: string, userId: string): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(ResendInviteSchema, {user_id: userId});\n await postAuthV1MembershipsByOrgIdMembersInviteResend({\n path: {orgId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to invite members!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(`User with ID ${userId} not found!`),\n [HTTP_STATUS.CONFLICT]: () => new Error(`User with ID ${userId} already exists!`),\n }\n );\n};\n\nexport const respondToInvitation = async (orgId: string, state: MembershipState.ACCEPTED | MembershipState.DECLINED): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(AcceptDeclineMembershipSchema, {state}) as {state: \"accepted\" | \"declined\"};\n\n await putAuthV1MembershipsByOrgIdMembershipState({\n path: {orgId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to accept/decline an Invite!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Invite not found!\"),\n }\n );\n};\n\nexport const publicRespondToInvitation = async (token: string, state: MembershipState.ACCEPT | MembershipState.DECLINE): Promise<void> => {\n return apiCall(\n async () => {\n validateInput(PublicInviteResponseSchema, {state});\n\n if (state === MembershipState.ACCEPT) {\n await postAuthV1InvitationsByTokenAccept({\n path: {token},\n throwOnError: true,\n });\n } else {\n await postAuthV1InvitationsByTokenDecline({\n path: {token},\n throwOnError: true,\n });\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid invitation token!\"),\n }\n );\n};\n","import {\n putAuthV1MembershipsByOrgIdActive,\n putAuthV1MembershipsByOrgIdMembersByUserIdRole,\n deleteAuthV1MembershipsByOrgIdMembersByUserId,\n deleteAuthV1MembershipsByOrgIdLeave,\n} from \"../../generated/sdk.gen\";\nimport {accessToken, expireAt, getToken} from \"../authStore\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {AssignableRole} from \"./types\";\nimport {validateInput} from \"../validation/base\";\nimport {UpdateMemberRoleSchema} from \"../validation/membership\";\n\nexport const updateActiveMembership = async (orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n await putAuthV1MembershipsByOrgIdActive({\n path: {orgId},\n throwOnError: true,\n });\n accessToken.set(undefined);\n expireAt.set(0);\n await getToken();\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update active membership!\"),\n }\n );\n};\n\nexport const updateMemberRole = async (orgId: string, userId: string, role: AssignableRole): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(UpdateMemberRoleSchema, {role});\n await putAuthV1MembershipsByOrgIdMembersByUserIdRole({\n path: {orgId, userId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update member roles!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Member not found!\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Cannot change role of organization owner!\"),\n }\n );\n};\n\nexport const deleteMember = async (orgId: string, userId: string): Promise<void> => {\n return apiCall(\n async () => {\n await deleteAuthV1MembershipsByOrgIdMembersByUserId({\n path: {orgId, userId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to delete members!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Member not found!\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Cannot remove organization owner!\"),\n }\n );\n};\n\nexport const leaveOrganization = async (orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n await deleteAuthV1MembershipsByOrgIdLeave({\n path: {orgId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to leave an organization!\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Cannot leave organization as you are the last member!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Organization not found!\"),\n }\n );\n};\n","import * as v from \"valibot\";\nimport {UsernameSchema, NameSchema} from \"./base\";\n\n/**\n * Update username request schema\n */\nexport const UpdateUsernameSchema = v.object({\n username: UsernameSchema,\n});\n\n/**\n * Update name request schema\n */\nexport const UpdateNameSchema = v.object({\n full_name: NameSchema,\n});\n","import {\n patchAuthV1UsersCurrentName,\n patchAuthV1UsersCurrentUsername,\n getAuthV1UsersCurrentTotpStatus,\n postAuthV1UsersCurrentTotpSetup,\n postAuthV1UsersCurrentTotpVerify,\n deleteAuthV1UsersCurrentTotpDelete,\n} from \"../generated/sdk.gen\";\nimport {setTokens} from \"./authStore\";\nimport {validateInput} from \"./validation/base\";\nimport {UpdateNameSchema, UpdateUsernameSchema} from \"./validation/user\";\nimport {VerifyOTPCodeSchema} from \"./validation/auth\";\nimport {apiCall} from \"./api/utils\";\nimport {HTTP_STATUS} from \"./constants\";\n\nexport interface OTPSetup {\n qrCodeUrl: string;\n secret: string;\n}\n\nexport interface OTPStatusResponse {\n is_setup: boolean;\n created_at?: string;\n message?: string;\n}\n\nexport interface OTPVerification {\n access_token?: string;\n refresh_token?: string;\n expires_in?: number;\n}\n\nexport const updateFullName = async (fullName: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(UpdateNameSchema, {full_name: fullName});\n await patchAuthV1UsersCurrentName({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid name format\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update name\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Name can only be changed once every 7 days.\"),\n }\n );\n};\n\nexport const updateUsername = async (username: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(UpdateUsernameSchema, {username});\n await patchAuthV1UsersCurrentUsername({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid username format\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update username\"),\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Username is not unique. Choose another one!\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Username can only be changed once every 30 days.\"),\n }\n );\n};\n\nexport const getOTPStatus = async (): Promise<OTPStatusResponse> => {\n return apiCall(\n async () => {\n const {data} = await getAuthV1UsersCurrentTotpStatus({\n throwOnError: true,\n });\n\n return {\n is_setup: data.is_setup ?? false,\n created_at: data.created_at,\n message: data.message,\n };\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const setupUserOTP = async (): Promise<OTPSetup> => {\n return apiCall(\n async () => {\n const {data} = await postAuthV1UsersCurrentTotpSetup({\n throwOnError: true,\n });\n\n return {\n qrCodeUrl: data.qr_code_url || \"\",\n secret: data.secret || \"\",\n };\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const verifyUserOTP = async (code: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedBody = validateInput(VerifyOTPCodeSchema, {code});\n const {data} = await postAuthV1UsersCurrentTotpVerify({\n body: validatedBody,\n throwOnError: true,\n });\n\n if (data.access_token && data.refresh_token && data.expires_in) {\n setTokens(data.access_token, data.refresh_token, data.expires_in);\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid request format\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const deleteUserOTP = async (): Promise<void> => {\n return apiCall(\n async () => {\n await deleteAuthV1UsersCurrentTotpDelete({\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n","import {putAuthV1MembershipsByOrgIdName, putAuthV1MembershipsByOrgIdUsername} from \"../generated/sdk.gen\";\nimport {apiCall} from \"./api/utils\";\nimport {HTTP_STATUS} from \"./constants\";\nimport {validateInput} from \"./validation/base\";\nimport {UpdateNameSchema, UpdateUsernameSchema} from \"./validation/user\";\n\nexport const updateOrgName = async (fullName: string, orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(UpdateNameSchema, {full_name: fullName});\n await putAuthV1MembershipsByOrgIdName({\n path: {orgId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Only owners and admins can update name\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Name can only be changed once every 7 days.\"),\n }\n );\n};\n\nexport const updateOrgUsername = async (username: string, orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(UpdateUsernameSchema, {username});\n await putAuthV1MembershipsByOrgIdUsername({\n path: {orgId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Only owners and admins can update username\"),\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Username is not unique. Choose another one!\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Username can only be changed once every 30 days.\"),\n }\n );\n};\n","import {postAuthV1Login, postAuthV1VerifyTotp} from \"../../generated/sdk.gen\";\nimport {setTokens} from \"../authStore\";\nimport {EmailAuthRequestSchema, LoginOTPVerifyRequestSchema} from \"../validation/auth\";\nimport {validateInput} from \"../validation/base\";\nimport {ApiError} from \"../api/error-handlers\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {LoginErrorResponse, TwoFactorResponse} from \"./types\";\nimport type {Authv1LoginResponse} from \"../../generated/types.gen\";\n\nexport const loginWithEmail = async (email: string, password: string): Promise<void | TwoFactorResponse | LoginErrorResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(EmailAuthRequestSchema, {email, password});\n try {\n const {data} = await postAuthV1Login({\n body: validatedInput,\n throwOnError: true,\n });\n\n return handleLoginResponse(data, email);\n } catch (error) {\n return handleLoginError(error, email);\n }\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Incorrect email or password\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Account access is restricted\"),\n }\n );\n};\n\nexport const verifyTOTPForLogin = async (code: string, session_id: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(LoginOTPVerifyRequestSchema, {code, session_id});\n const {data} = await postAuthV1VerifyTotp({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.access_token && data.refresh_token && data.expires_in) {\n setTokens(data.access_token, data.refresh_token, data.expires_in);\n }\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Invalid or expired TOTP code\"),\n }\n );\n};\n\nfunction handleLoginResponse(data: Authv1LoginResponse, email: string): void | TwoFactorResponse | LoginErrorResponse {\n switch (data.status) {\n case \"ok\":\n if (data.access_token && data.refresh_token && data.expires_in) {\n setTokens(data.access_token, data.refresh_token, data.expires_in);\n }\n return;\n case \"2fa_required\": {\n const response = data as unknown as {\n session_id: string;\n authentication: string[];\n passkey_options?: object;\n };\n return {\n session_id: response.session_id,\n email: email,\n authentication: response.authentication as TwoFactorResponse[\"authentication\"],\n passkey_options: response.passkey_options,\n };\n }\n case \"otp_required\":\n return {\n session_id: data.session_id!,\n email: email,\n authentication: [\"totp\"],\n } satisfies TwoFactorResponse;\n case \"email_not_verified\":\n return {\n error_code: \"email_not_verified\",\n message: \"Email not verified\",\n email: data.email || email,\n };\n default:\n return;\n }\n}\n\ninterface ApiErrorBody {\n error?: string;\n details?: string;\n code?: number;\n}\n\nfunction handleLoginError(error: unknown, email: string): TwoFactorResponse | LoginErrorResponse | never {\n if (isApiErrorBody(error)) {\n if (error.error === \"email_not_verified\") {\n return {\n error_code: \"email_not_verified\",\n message: error.details || \"Email not verified\",\n email,\n };\n }\n if (error.error === \"provider_conflict\") {\n return {\n error_code: \"provider_conflict\",\n message: error.details || \"Email registered with different provider\",\n email,\n };\n }\n throw new ApiError(error.error || \"Login failed\", error.code || 500, \"/auth/v1/login\", error);\n }\n throw error;\n}\n\nfunction isApiErrorBody(error: unknown): error is ApiErrorBody {\n return typeof error === \"object\" && error !== null && \"error\" in error;\n}\n","import {postAuthV1Register, postAuthV1EmailVerifyResend} from \"../../generated/sdk.gen\";\nimport {validateInput} from \"../validation/base\";\nimport {EmailAuthRequestSchema, ResendEmailRequestSchema} from \"../validation/auth\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {RegistrationResponse, VerificationSentResponse} from \"./types\";\n\nexport const registerWithEmail = async (\n email: string,\n password: string,\n subscribeToBlog?: boolean\n): Promise<void | RegistrationResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(EmailAuthRequestSchema, {\n email,\n password,\n subscribe_to_blog: subscribeToBlog,\n });\n const {data} = await postAuthV1Register({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Registration successful\",\n verification_id: data.verification_id,\n email_verification_sent: data.email_verification_sent,\n user_id: data.user_id,\n };\n }\n },\n {\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Email address is already registered\"),\n }\n );\n};\n\nexport const resendEmailVerificationCode = async (email: string): Promise<void | VerificationSentResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResendEmailRequestSchema, {email});\n const {data} = await postAuthV1EmailVerifyResend({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Verification code resent\",\n verification_id: data.verification_id,\n code_sent: data.code_sent,\n };\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid email or validation error\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - rate limit exceeded\"),\n }\n );\n};\n","import {postAuthV1PasswordReset, postAuthV1PasswordResetConfirm} from \"../../generated/sdk.gen\";\nimport {ResendEmailRequestSchema, ResetPasswordRequestSchema} from \"../validation/auth\";\nimport {validateInput} from \"../validation/base\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\n\nexport const sendPasswordResetEmail = async (email: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResendEmailRequestSchema, {email});\n await postAuthV1PasswordReset({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Bad request - invalid email or validation error\"),\n }\n );\n};\n\nexport const confirmPasswordReset = async (token: string, password: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResetPasswordRequestSchema, {\n token: token,\n new_password: password,\n });\n await postAuthV1PasswordResetConfirm({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Bad request - invalid token or password\"),\n }\n );\n};\n","import {\n putAuthV1UsersCurrentEmailsChange,\n postAuthV1UsersCurrentEmails,\n postAuthV1EmailVerify,\n getAuthV1UsersCurrentEmailsStatus,\n} from \"../../generated/sdk.gen\";\nimport {setTokens} from \"../authStore\";\nimport {ChangeEmailRequestSchema, ResendEmailRequestSchema, verifyEmailChangeRequestSchema} from \"../validation/auth\";\nimport {validateInput} from \"../validation/base\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {VerificationSentResponse, VerifyEmailResponse, VerifyStatusResponse} from \"./types\";\nimport type {EmailVerificationType} from \"../types\";\n\nexport const initiateEmailChange = async (email: string): Promise<void | VerificationSentResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ChangeEmailRequestSchema, {new_email: email});\n const {data} = await putAuthV1UsersCurrentEmailsChange({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Verification code sent\",\n verification_id: data.verification_id,\n can_resend_at: data.can_resend_at,\n code_sent: data.code_sent,\n };\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid email or email already in use\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Unauthorized - invalid or missing token\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - please try again later\"),\n }\n );\n};\n\nexport const addEmail = async (email: string): Promise<void | VerificationSentResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResendEmailRequestSchema, {email});\n const {data} = await postAuthV1UsersCurrentEmails({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Verification code sent\",\n verification_id: data.verification_id,\n can_resend_at: data.can_resend_at,\n code_sent: data.code_sent,\n };\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid email address\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Session expired - please login again\"),\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Email address is already in use\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - please try again later\"),\n }\n );\n};\n\nexport interface VerifyEmailWithCodeParams {\n code: string;\n type: EmailVerificationType;\n verification_id: string;\n new_email: string;\n}\n\nconst normalizeVerifyEmailArgs = (\n args: [VerifyEmailWithCodeParams] | [string, EmailVerificationType, string, string]\n): VerifyEmailWithCodeParams => {\n if (isLegacyVerifyEmailArgs(args)) {\n const [code, type, verification_id, new_email] = args;\n return {code, type, verification_id, new_email};\n }\n\n return args[0];\n};\n\nconst isLegacyVerifyEmailArgs = (\n args: [VerifyEmailWithCodeParams] | [string, EmailVerificationType, string, string]\n): args is [string, EmailVerificationType, string, string] => typeof args[0] === \"string\";\n\nexport const verifyEmailWithCode = async (\n ...args: [VerifyEmailWithCodeParams] | [string, EmailVerificationType, string, string]\n): Promise<void | VerifyEmailResponse> => {\n return apiCall(\n async () => {\n const payload = normalizeVerifyEmailArgs(args);\n\n validateInput(verifyEmailChangeRequestSchema, payload);\n const {data} = await postAuthV1EmailVerify({\n body: {code: payload.code, verification_id: payload.verification_id},\n throwOnError: true,\n });\n\n if (data.tokens?.access_token && data.tokens?.refresh_token && data.tokens?.expires_in) {\n setTokens(data.tokens.access_token, data.tokens.refresh_token, data.tokens.expires_in);\n }\n\n return {\n email: data.email || \"\",\n message: data.message || \"Email verified\",\n verified: data.verified || false,\n tokens: data.tokens\n ? {\n access_token: data.tokens.access_token!,\n refresh_token: data.tokens.refresh_token!,\n expires_in: data.tokens.expires_in!,\n }\n : undefined,\n };\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid code or verification ID\"),\n }\n );\n};\n\nexport const getEmailVerificationStatus = async (): Promise<void | VerifyStatusResponse> => {\n return apiCall(\n async () => {\n const {data} = await getAuthV1UsersCurrentEmailsStatus({\n throwOnError: true,\n });\n\n return {\n email: data.email || \"\",\n has_email: data.has_email ?? false,\n verified: data.verified || false,\n };\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Unauthorized - invalid or missing token\"),\n }\n );\n};\n","import * as v from \"valibot\";\nimport {DomainSchema} from \"./base\";\n\n/**\n * Add domain request schema\n */\nexport const AddDomainSchema = v.object({\n domain: DomainSchema,\n});\n\n/**\n * Update auto-join setting schema\n */\nexport const UpdateAutoJoinSchema = v.object({\n enabled: v.boolean(\"Auto-join setting must be a boolean\"),\n});\n","export enum DomainStatus {\n PENDING = \"pending\",\n VERIFIED = \"verified\",\n EXPIRED = \"expired\",\n}\n\nexport interface DomainResponse {\n id: string;\n domain: string;\n status: string;\n verification_token?: string;\n verified_at?: string;\n expires_at?: string;\n auto_join?: boolean;\n message?: string;\n present?: boolean;\n}\n\nexport interface AddDomainRequest {\n domain: string;\n}\n\nexport interface UpdateAutoJoinRequest {\n enabled: boolean;\n}\n\nexport interface AutoJoinSetting {\n enabled: boolean;\n present?: boolean;\n}\n","import {\n getAuthV1MembershipsByOrgIdDomain,\n postAuthV1MembershipsByOrgIdDomain,\n postAuthV1MembershipsByOrgIdDomainVerification,\n putAuthV1MembershipsByOrgIdDomainAutoJoin,\n deleteAuthV1MembershipsByOrgIdDomain,\n} from \"../../generated/sdk.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport {validateInput} from \"../validation/base\";\nimport {AddDomainSchema, UpdateAutoJoinSchema} from \"../validation/domain\";\nimport type {DomainResponse, AutoJoinSetting} from \"./types\";\n\nexport * from \"./types\";\n\nexport const getDomainStatus = async (orgId: string): Promise<DomainResponse | null> => {\n return apiCall(\n async () => {\n try {\n const {data} = await getAuthV1MembershipsByOrgIdDomain({\n path: {orgId},\n throwOnError: true,\n });\n return data as unknown as DomainResponse;\n } catch (error: any) {\n if (error?.code === HTTP_STATUS.NOT_FOUND) {\n return null;\n }\n throw error;\n }\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to view domain settings\"),\n }\n );\n};\n\nexport const initiateDomainVerification = async (orgId: string, domain: string): Promise<DomainResponse> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(AddDomainSchema, {domain});\n const {data} = await postAuthV1MembershipsByOrgIdDomain({\n path: {orgId},\n body: requestBody,\n throwOnError: true,\n });\n return data as unknown as DomainResponse;\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid domain format or public domains like gmail.com are not allowed\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to configure domain settings\"),\n }\n );\n};\n\nexport const checkDomainVerification = async (orgId: string): Promise<DomainResponse> => {\n return apiCall(\n async () => {\n const {data} = await postAuthV1MembershipsByOrgIdDomainVerification({\n path: {orgId},\n throwOnError: true,\n });\n return data as unknown as DomainResponse;\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to check domain verification\"),\n }\n );\n};\n\nexport const updateAutoJoin = async (orgId: string, enabled: boolean): Promise<AutoJoinSetting> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(UpdateAutoJoinSchema, {enabled});\n const {data} = await putAuthV1MembershipsByOrgIdDomainAutoJoin({\n path: {orgId},\n body: requestBody,\n throwOnError: true,\n });\n return data as unknown as AutoJoinSetting;\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to update auto-join settings\"),\n }\n );\n};\n\nexport const removeDomain = async (orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n await deleteAuthV1MembershipsByOrgIdDomain({\n path: {orgId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to remove domain\"),\n }\n );\n};\n","import {getAuthV1BlogSubscription, postAuthV1BlogSubscribe, postAuthV1BlogUnsubscribe} from \"../../generated/sdk.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\n\nexport interface BlogSubscriptionStatus {\n subscribed: boolean;\n subscribed_at?: string;\n}\n\nconst BLOG_SUBSCRIPTION_ERRORS = {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to manage blog subscription\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Account is inactive\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - please try again later\"),\n};\n\nexport const getBlogSubscriptionStatus = async (): Promise<BlogSubscriptionStatus> => {\n return apiCall(async () => {\n const {data} = await getAuthV1BlogSubscription({\n throwOnError: true,\n });\n return data as unknown as BlogSubscriptionStatus;\n }, BLOG_SUBSCRIPTION_ERRORS);\n};\n\nexport const subscribeToBlog = async (): Promise<void> => {\n return apiCall(\n async () => {\n await postAuthV1BlogSubscribe({\n throwOnError: true,\n });\n },\n {\n ...BLOG_SUBSCRIPTION_ERRORS,\n [HTTP_STATUS.INTERNAL_SERVER_ERROR]: () => new Error(\"Failed to subscribe to blog updates\"),\n }\n );\n};\n\nexport const unsubscribeFromBlog = async (): Promise<void> => {\n return apiCall(\n async () => {\n await postAuthV1BlogUnsubscribe({\n throwOnError: true,\n });\n },\n {\n ...BLOG_SUBSCRIPTION_ERRORS,\n [HTTP_STATUS.INTERNAL_SERVER_ERROR]: () => new Error(\"Failed to unsubscribe from blog updates\"),\n }\n );\n};\n","import {\n deleteAuthV1UsersCurrentPasskeysById,\n getAuthV1UsersCurrentPasskeys,\n patchAuthV1UsersCurrentPasskeysById,\n postAuthV1PasskeyLoginBegin,\n postAuthV1PasskeyLoginFinish,\n postAuthV1UsersCurrentPasskeysRegisterBegin,\n postAuthV1UsersCurrentPasskeysRegisterFinish,\n postAuthV1VerifyPasskey,\n} from \"../generated/sdk.gen\";\nimport {setTokens} from \"./authStore\";\nimport {apiCall} from \"./api/utils\";\nimport {HTTP_STATUS} from \"./constants\";\n\nfunction base64urlToBuffer(base64url: string): ArrayBuffer {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(base64.length + ((4 - (base64.length % 4)) % 4), \"=\");\n const binary = atob(padded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n return bytes.buffer;\n}\n\nfunction bufferToBase64url(buffer: ArrayBuffer): string {\n const bytes = new Uint8Array(buffer);\n let binary = \"\";\n for (let i = 0; i < bytes.length; i++) binary += String.fromCharCode(bytes[i]);\n return btoa(binary).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction decodeCreationOptions(raw: any): PublicKeyCredentialCreationOptions {\n const pk = raw.publicKey ?? raw;\n return {\n ...pk,\n challenge: base64urlToBuffer(pk.challenge),\n user: {...pk.user, id: base64urlToBuffer(pk.user.id)},\n excludeCredentials: (pk.excludeCredentials ?? []).map((c: any) => ({\n ...c,\n id: base64urlToBuffer(c.id),\n })),\n };\n}\n\nexport function decodeRequestOptions(raw: any): PublicKeyCredentialRequestOptions {\n const pk = raw.publicKey ?? raw;\n return {\n ...pk,\n challenge: base64urlToBuffer(pk.challenge),\n allowCredentials: (pk.allowCredentials ?? []).map((c: any) => ({\n ...c,\n id: base64urlToBuffer(c.id),\n })),\n };\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport interface PasskeyBeginLogin {\n session_id: string;\n options: PublicKeyCredentialRequestOptions;\n}\n\nexport interface PasskeyBeginRegistration {\n session_id: string;\n options: PublicKeyCredentialCreationOptions;\n}\n\nexport interface PasskeyRegistrationResult {\n passkey_id: string;\n name: string;\n}\n\nexport interface Passkey {\n id: string;\n name: string;\n credential_id: string;\n aaguid: string;\n backup_state: boolean;\n created_at: string;\n last_used_at: string;\n transports: string[];\n}\n\nfunction serializeLoginCredential(cred: PublicKeyCredential): object {\n const response = cred.response as AuthenticatorAssertionResponse;\n return {\n id: cred.id,\n rawId: bufferToBase64url(cred.rawId),\n type: cred.type,\n response: {\n authenticatorData: bufferToBase64url(response.authenticatorData),\n clientDataJSON: bufferToBase64url(response.clientDataJSON),\n signature: bufferToBase64url(response.signature),\n userHandle: response.userHandle ? bufferToBase64url(response.userHandle) : null,\n },\n };\n}\n\nfunction serializeRegistrationCredential(cred: PublicKeyCredential): object {\n const response = cred.response as AuthenticatorAttestationResponse;\n return {\n id: cred.id,\n rawId: bufferToBase64url(cred.rawId),\n type: cred.type,\n response: {\n attestationObject: bufferToBase64url(response.attestationObject),\n clientDataJSON: bufferToBase64url(response.clientDataJSON),\n },\n };\n}\n\nexport const finishPasskeyLogin = async (session_id: string, credential: PublicKeyCredential): Promise<void> => {\n return apiCall(\n async () => {\n const serialized = serializeLoginCredential(credential);\n\n const {data} = await postAuthV1PasskeyLoginFinish({\n // @ts-expect-error credential is json.RawMessage on server, not Array<number>\n body: {session_id, credential: serialized},\n throwOnError: true,\n });\n\n if (data.access_token && data.refresh_token && data.expires_in) {\n setTokens(data.access_token, data.refresh_token, data.expires_in);\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid passkey credential\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Passkey authentication failed\"),\n }\n );\n};\n\nexport const beginPasskeyLogin = async (): Promise<PasskeyBeginLogin> => {\n return apiCall(async () => {\n const {data} = await postAuthV1PasskeyLoginBegin({\n throwOnError: true,\n });\n\n if (!data.session_id || !data.options) {\n throw new Error(\"No passkeys available for this account\");\n }\n\n const options = decodeRequestOptions(data.options);\n return {session_id: data.session_id, options};\n }, {});\n};\n\nexport const beginPasskeyRegistration = async (): Promise<PasskeyBeginRegistration> => {\n return apiCall(\n async () => {\n const {data} = await postAuthV1UsersCurrentPasskeysRegisterBegin({\n throwOnError: true,\n });\n\n if (!data.session_id || !data.options) {\n throw new Error(\"Invalid response from server\");\n }\n\n const options = decodeCreationOptions(data.options);\n return {session_id: data.session_id, options};\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const finishPasskeyRegistration = async (\n session_id: string,\n name: string,\n credential: PublicKeyCredential\n): Promise<PasskeyRegistrationResult> => {\n return apiCall(\n async () => {\n const serialized = serializeRegistrationCredential(credential);\n\n const {data} = await postAuthV1UsersCurrentPasskeysRegisterFinish({\n // @ts-expect-error credential is json.RawMessage on server, not Array<number>\n body: {session_id, name, credential: serialized},\n throwOnError: true,\n });\n\n return {\n passkey_id: data.passkey_id ?? \"\",\n name: data.name ?? \"\",\n };\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid passkey credential\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const renamePasskey = async (id: string, name: string): Promise<void> => {\n return apiCall(\n async () => {\n await patchAuthV1UsersCurrentPasskeysById({\n path: {id},\n body: {name},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Passkey not found\"),\n }\n );\n};\n\nexport const deletePasskey = async (id: string): Promise<void> => {\n return apiCall(\n async () => {\n await deleteAuthV1UsersCurrentPasskeysById({\n path: {id},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Passkey not found\"),\n }\n );\n};\n\nexport const listPasskeys = async (): Promise<Passkey[]> => {\n return apiCall(\n async () => {\n const {data} = await getAuthV1UsersCurrentPasskeys({\n throwOnError: true,\n });\n\n return (data.passkeys ?? []).map((p) => ({\n id: p.id ?? \"\",\n name: p.name ?? \"\",\n credential_id: p.credential_id ?? \"\",\n aaguid: p.aaguid ?? \"\",\n backup_state: p.backup_state ?? false,\n created_at: p.created_at ?? \"\",\n last_used_at: p.last_used_at ?? \"\",\n transports: p.transports ?? [],\n }));\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const verifyPasskeyForLogin = async (session_id: string, credential: PublicKeyCredential): Promise<void> => {\n return apiCall(\n async () => {\n const serialized = serializeLoginCredential(credential);\n\n const {data} = await postAuthV1VerifyPasskey({\n // @ts-expect-error credential is json.RawMessage on server, not Array<number>\n body: {session_id, credential: serialized},\n throwOnError: true,\n });\n\n if (data.access_token && data.refresh_token && data.expires_in) {\n setTokens(data.access_token, data.refresh_token, data.expires_in);\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid passkey credential\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Passkey verification failed\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Session not found\"),\n }\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["ROLE_TO_PROTO"],"sources":["../src/generated/core/bodySerializer.gen.ts","../src/generated/core/params.gen.ts","../src/generated/core/serverSentEvents.gen.ts","../src/generated/core/pathSerializer.gen.ts","../src/generated/core/utils.gen.ts","../src/generated/core/auth.gen.ts","../src/generated/client/utils.gen.ts","../src/generated/client/client.gen.ts","../src/generated/client.gen.ts","../src/generated/sdk.gen.ts","../src/auth/constants.ts","../src/auth/state.ts","../src/auth/providers/oauth.ts","../src/auth/providers/google.ts","../src/auth/providers/microsoft.ts","../src/auth/providers/apple.ts","../src/auth/providers/telegram.ts","../src/auth/url.ts","../src/auth/providers/utils.ts","../src/auth/api/refresh-tokens.ts","../src/auth/initialization.ts","../src/auth/cookie/util.ts","../src/auth/cookie/index.ts","../src/auth/userStore.ts","../src/auth/utils/jwt.ts","../src/auth/authStore.ts","../src/auth/api/types.ts","../src/auth/api-url.ts","../src/auth/api/sdk-client.ts","../src/auth/social/socialState.ts","../src/auth/api/error-handlers.ts","../src/auth/api/utils.ts","../src/auth/api/tokens.ts","../src/auth/validation/base.ts","../src/auth/validation/auth.ts","../src/auth/social/socialConnections.ts","../src/auth/api/client-core.ts","../src/auth/authConfig.ts","../src/auth/init.ts","../src/connect.ts","../src/auth/auth/logout.ts","../src/auth/membership/types.ts","../src/auth/membership/mappers.ts","../src/auth/membership/list.ts","../src/auth/validation/membership.ts","../src/auth/membership/invite.ts","../src/auth/membership/manage.ts","../src/auth/validation/user.ts","../src/auth/user.ts","../src/auth/organization.ts","../src/auth/auth/login.ts","../src/auth/auth/register.ts","../src/auth/auth/password.ts","../src/auth/auth/email.ts","../src/auth/validation/domain.ts","../src/auth/domain/types.ts","../src/auth/domain/mappers.ts","../src/auth/domain/index.ts","../src/auth/blog/index.ts","../src/auth/passkey.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ntype Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n | {\n in: Exclude<Slot, 'body'>;\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If omitted, we use the same value as `key`.\n */\n map?: string;\n }\n | {\n in: Extract<Slot, 'body'>;\n /**\n * Key isn't required for bodies.\n */\n key?: string;\n map?: string;\n }\n | {\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If `in` is omitted, `map` aliases `key` to the transport layer.\n */\n map: Slot;\n };\n\nexport interface Fields {\n allowExtra?: Partial<Record<Slot, boolean>>;\n args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n $body_: 'body',\n $headers_: 'headers',\n $path_: 'path',\n $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n string,\n | {\n in: Slot;\n map?: string;\n }\n | {\n in?: never;\n map: Slot;\n }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n if (!map) {\n map = new Map();\n }\n\n for (const config of fields) {\n if ('in' in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n } else if ('key' in config) {\n map.set(config.key, {\n map: config.map,\n });\n } else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n\n return map;\n};\n\ninterface Params {\n body: unknown;\n headers: Record<string, unknown>;\n path: Record<string, unknown>;\n query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === 'object' && !Array.isArray(value) && !Object.keys(value).length) {\n delete params[slot as Slot];\n }\n }\n};\n\nexport const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {\n const params: Params = {\n body: {},\n headers: {},\n path: {},\n query: {},\n };\n\n const map = buildKeyMap(fields);\n\n let config: FieldsConfig[number] | undefined;\n\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n\n if (!config) {\n continue;\n }\n\n if ('in' in config) {\n if (config.key) {\n const field = map.get(config.key)!;\n const name = field.map || config.key;\n if (field.in) {\n (params[field.in] as Record<string, unknown>)[name] = arg;\n }\n } else {\n params.body = arg;\n }\n } else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n\n if (field) {\n if (field.in) {\n const name = field.map || key;\n (params[field.in] as Record<string, unknown>)[name] = value;\n } else {\n params[field.map] = value;\n }\n } else {\n const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix));\n\n if (extra) {\n const [prefix, slot] = extra;\n (params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value;\n } else if ('allowExtra' in config && config.allowExtra) {\n for (const [slot, allowed] of Object.entries(config.allowExtra)) {\n if (allowed) {\n (params[slot as Slot] as Record<string, unknown>)[key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n\n stripEmptySlots(params);\n\n return params;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport function createSseClient<TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n buffer = buffer.replace(/\\r\\n?/g, '\\n'); // normalize line endings\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}) {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e., client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen';\nimport { getUrl } from '../core/utils.gen';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e., their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n /** response may be undefined due to a network error where no response object is produced */\n response: Res | undefined,\n /** request may be undefined, because error may be from building the request object itself */\n request: Req | undefined,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async <\n TData = unknown,\n TResponseStyle extends 'data' | 'fields' = 'fields',\n ThrowOnError extends boolean = boolean,\n Url extends string = string,\n >(\n options: RequestOptions<TData, TResponseStyle, ThrowOnError, Url>,\n ) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const resolvedOpts = opts as typeof opts &\n ResolvedRequestOptions<TResponseStyle, ThrowOnError, Url>;\n const url = buildUrl(resolvedOpts);\n\n return { opts: resolvedOpts, url };\n };\n\n const request: Client['request'] = async (options) => {\n const throwOnError = options.throwOnError ?? _config.throwOnError;\n const responseStyle = options.responseStyle ?? _config.responseStyle;\n\n let request: Request | undefined;\n let response: Response | undefined;\n\n try {\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n\n response = await _fetch(request);\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n throw jsonError ?? textError;\n } catch (error) {\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(finalError, response, request, options as ResolvedRequestOptions);\n }\n }\n\n finalError = finalError || {};\n\n if (throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response,\n };\n }\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://raw.githubusercontent.com' }));\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { AnalyticsV1DashboardServiceGetDashboardStatsData, AnalyticsV1DashboardServiceGetDashboardStatsResponses, AnalyticsV1EventsServiceTrackEventsData, AnalyticsV1EventsServiceTrackEventsResponses, AnalyticsV1FeedsServiceGetFeedStatsData, AnalyticsV1FeedsServiceGetFeedStatsResponses, AnalyticsV1FeedsServiceGetTopFeedsData, AnalyticsV1FeedsServiceGetTopFeedsResponses, AnalyticsV1FunnelsServiceGetFunnelAnalyticsData, AnalyticsV1FunnelsServiceGetFunnelAnalyticsResponses, AnalyticsV1FunnelsServiceGetRetentionAnalyticsData, AnalyticsV1FunnelsServiceGetRetentionAnalyticsResponses, AnalyticsV1HeatmapServiceGetHotSegmentsData, AnalyticsV1HeatmapServiceGetHotSegmentsResponses, AnalyticsV1HeatmapServiceGetVideoHeatmapData, AnalyticsV1HeatmapServiceGetVideoHeatmapResponses, AnalyticsV1PostsServiceGetPostStatsData, AnalyticsV1PostsServiceGetPostStatsResponses, AnalyticsV1PostsServiceGetTopPostsData, AnalyticsV1PostsServiceGetTopPostsResponses, AnalyticsV1RealtimeServiceGetRealtimeStatsData, AnalyticsV1RealtimeServiceGetRealtimeStatsResponses, AnalyticsV1VideosServiceGetTopVideosData, AnalyticsV1VideosServiceGetTopVideosResponses, AnalyticsV1VideosServiceGetVideoStatsData, AnalyticsV1VideosServiceGetVideoStatsResponses, ApikeysV1ApiKeyServiceCreateApiKeyData, ApikeysV1ApiKeyServiceCreateApiKeyResponses, ApikeysV1ApiKeyServiceDeleteApiKeyData, ApikeysV1ApiKeyServiceDeleteApiKeyResponses, ApikeysV1ApiKeyServiceListApiKeysData, ApikeysV1ApiKeyServiceListApiKeysResponses, ApikeysV1ApiKeyServiceRotateApiKeyData, ApikeysV1ApiKeyServiceRotateApiKeyResponses, AuthV1BlogServiceGetBlogSubscriptionData, AuthV1BlogServiceGetBlogSubscriptionResponses, AuthV1BlogServiceSendBlogBroadcastData, AuthV1BlogServiceSendBlogBroadcastResponses, AuthV1BlogServiceSubscribeBlogData, AuthV1BlogServiceSubscribeBlogResponses, AuthV1BlogServiceUnsubscribeBlogByEmailData, AuthV1BlogServiceUnsubscribeBlogByEmailResponses, AuthV1BlogServiceUnsubscribeBlogData, AuthV1BlogServiceUnsubscribeBlogResponses, AuthV1DomainServiceCheckDomainVerificationData, AuthV1DomainServiceCheckDomainVerificationResponses, AuthV1DomainServiceCreateDomainVerificationData, AuthV1DomainServiceCreateDomainVerificationResponses, AuthV1DomainServiceGetDomainAutoJoinData, AuthV1DomainServiceGetDomainAutoJoinResponses, AuthV1DomainServiceGetDomainStatusData, AuthV1DomainServiceGetDomainStatusResponses, AuthV1DomainServiceRemoveDomainData, AuthV1DomainServiceRemoveDomainResponses, AuthV1DomainServiceSetDomainAutoJoinData, AuthV1DomainServiceSetDomainAutoJoinResponses, AuthV1EmailServiceAddEmailData, AuthV1EmailServiceAddEmailResponses, AuthV1EmailServiceGetUserEmailStatusData, AuthV1EmailServiceGetUserEmailStatusResponses, AuthV1EmailServiceInitiateEmailChangeData, AuthV1EmailServiceInitiateEmailChangeResponses, AuthV1EmailServiceLoginData, AuthV1EmailServiceLoginResponses, AuthV1EmailServiceRegisterData, AuthV1EmailServiceRegisterResponses, AuthV1EmailServiceResendVerificationData, AuthV1EmailServiceResendVerificationResponses, AuthV1EmailServiceResetPasswordData, AuthV1EmailServiceResetPasswordResponses, AuthV1EmailServiceSendPasswordResetData, AuthV1EmailServiceSendPasswordResetResponses, AuthV1EmailServiceVerifyEmailData, AuthV1EmailServiceVerifyEmailResponses, AuthV1MembershipServiceAcceptInvitationData, AuthV1MembershipServiceAcceptInvitationResponses, AuthV1MembershipServiceCancelInvitationData, AuthV1MembershipServiceCancelInvitationResponses, AuthV1MembershipServiceCheckMembershipData, AuthV1MembershipServiceCheckMembershipResponses, AuthV1MembershipServiceDeclineInvitationData, AuthV1MembershipServiceDeclineInvitationResponses, AuthV1MembershipServiceGetInternalMembershipInfoData, AuthV1MembershipServiceGetInternalMembershipInfoResponses, AuthV1MembershipServiceInviteMemberData, AuthV1MembershipServiceInviteMemberResponses, AuthV1MembershipServiceLeaveOrganizationData, AuthV1MembershipServiceLeaveOrganizationResponses, AuthV1MembershipServiceListMembershipApplicationsData, AuthV1MembershipServiceListMembershipApplicationsResponses, AuthV1MembershipServiceListMembershipsData, AuthV1MembershipServiceListMembershipsResponses, AuthV1MembershipServiceListOrganizationMembersData, AuthV1MembershipServiceListOrganizationMembersResponses, AuthV1MembershipServiceReactivateMemberData, AuthV1MembershipServiceReactivateMemberResponses, AuthV1MembershipServiceRemoveMemberData, AuthV1MembershipServiceRemoveMemberResponses, AuthV1MembershipServiceResendInvitationData, AuthV1MembershipServiceResendInvitationResponses, AuthV1MembershipServiceSuspendMemberData, AuthV1MembershipServiceSuspendMemberResponses, AuthV1MembershipServiceUpdateActiveMembershipData, AuthV1MembershipServiceUpdateActiveMembershipResponses, AuthV1MembershipServiceUpdateMemberRoleData, AuthV1MembershipServiceUpdateMemberRoleResponses, AuthV1MembershipServiceUpdateMembershipStateData, AuthV1MembershipServiceUpdateMembershipStateResponses, AuthV1MembershipServiceUpdateOrgNameData, AuthV1MembershipServiceUpdateOrgNameResponses, AuthV1MembershipServiceUpdateOrgUsernameData, AuthV1MembershipServiceUpdateOrgUsernameResponses, AuthV1OtpServiceDeleteOtpData, AuthV1OtpServiceDeleteOtpResponses, AuthV1OtpServiceGetOtpStatusData, AuthV1OtpServiceGetOtpStatusResponses, AuthV1OtpServiceSetupOtpData, AuthV1OtpServiceSetupOtpResponses, AuthV1OtpServiceVerifyOtpData, AuthV1OtpServiceVerifyOtpResponses, AuthV1OtpServiceVerifyTotpForLoginData, AuthV1OtpServiceVerifyTotpForLoginResponses, AuthV1PasskeyServiceDeletePasskeyData, AuthV1PasskeyServiceDeletePasskeyResponses, AuthV1PasskeyServiceListPasskeysData, AuthV1PasskeyServiceListPasskeysResponses, AuthV1PasskeyServicePasskeyLoginBeginData, AuthV1PasskeyServicePasskeyLoginBeginResponses, AuthV1PasskeyServicePasskeyLoginFinishData, AuthV1PasskeyServicePasskeyLoginFinishResponses, AuthV1PasskeyServicePasskeyRegisterBeginData, AuthV1PasskeyServicePasskeyRegisterBeginResponses, AuthV1PasskeyServicePasskeyRegisterFinishData, AuthV1PasskeyServicePasskeyRegisterFinishResponses, AuthV1PasskeyServiceRenamePasskeyData, AuthV1PasskeyServiceRenamePasskeyResponses, AuthV1PasskeyServiceVerifyPasskeyForLoginData, AuthV1PasskeyServiceVerifyPasskeyForLoginResponses, AuthV1PolicyServiceAttachPolicyData, AuthV1PolicyServiceAttachPolicyResponses, AuthV1PolicyServiceCreatePolicyData, AuthV1PolicyServiceCreatePolicyResponses, AuthV1PolicyServiceDeletePolicyData, AuthV1PolicyServiceDeletePolicyResponses, AuthV1PolicyServiceDetachPolicyData, AuthV1PolicyServiceDetachPolicyResponses, AuthV1PolicyServiceGetPolicyData, AuthV1PolicyServiceGetPolicyResponses, AuthV1PolicyServiceListPermissionRegistryData, AuthV1PolicyServiceListPermissionRegistryResponses, AuthV1PolicyServiceListPoliciesData, AuthV1PolicyServiceListPoliciesResponses, AuthV1PolicyServiceListPolicyAttachmentsData, AuthV1PolicyServiceListPolicyAttachmentsResponses, AuthV1PolicyServiceListUserPoliciesData, AuthV1PolicyServiceListUserPoliciesResponses, AuthV1PolicyServiceUpdatePolicyData, AuthV1PolicyServiceUpdatePolicyResponses, AuthV1ProvidersServiceConnectProviderData, AuthV1ProvidersServiceConnectProviderResponses, AuthV1ProvidersServiceDisconnectProviderData, AuthV1ProvidersServiceDisconnectProviderResponses, AuthV1ProvidersServiceListProvidersData, AuthV1ProvidersServiceListProvidersResponses, AuthV1TokenServiceLogoutData, AuthV1TokenServiceLogoutResponses, AuthV1TokenServiceRefreshTokenData, AuthV1TokenServiceRefreshTokenResponses, AuthV1UserServiceGetUserData, AuthV1UserServiceGetUserInfoData, AuthV1UserServiceGetUserInfoResponses, AuthV1UserServiceGetUserResponses, AuthV1UserServiceUpdateNameData, AuthV1UserServiceUpdateNameResponses, AuthV1UserServiceUpdateUsernameData, AuthV1UserServiceUpdateUsernameResponses, BillingV1InvoiceServiceListInvoicesData, BillingV1InvoiceServiceListInvoicesResponses, BillingV1InvoiceServiceUpdateInvoiceStatusData, BillingV1InvoiceServiceUpdateInvoiceStatusResponses, BillingV1PaymentServiceCalculateGenericTaxData, BillingV1PaymentServiceCalculateGenericTaxResponses, BillingV1PaymentServiceCalculateTaxData, BillingV1PaymentServiceCalculateTaxResponses, BillingV1PaymentServiceCreateCheckoutSessionData, BillingV1PaymentServiceCreateCheckoutSessionResponses, BillingV1PaymentServiceCreateSetupIntentData, BillingV1PaymentServiceCreateSetupIntentResponses, BillingV1PaymentServiceDeletePaymentMethodData, BillingV1PaymentServiceDeletePaymentMethodResponses, BillingV1PaymentServiceGetBillingAddressData, BillingV1PaymentServiceGetBillingAddressResponses, BillingV1PaymentServiceGetPaymentMethodFromPaymentIntentData, BillingV1PaymentServiceGetPaymentMethodFromPaymentIntentResponses, BillingV1PaymentServiceGetPaymentMethodFromSetupIntentData, BillingV1PaymentServiceGetPaymentMethodFromSetupIntentResponses, BillingV1PaymentServiceListPaymentMethodsData, BillingV1PaymentServiceListPaymentMethodsResponses, BillingV1PaymentServiceUpgradeSubscriptionData, BillingV1PaymentServiceUpgradeSubscriptionResponses, BillingV1PaymentServiceUpsertBillingAddressData, BillingV1PaymentServiceUpsertBillingAddressResponses, BillingV1PaymentServiceUpsertPaymentMethodData, BillingV1PaymentServiceUpsertPaymentMethodResponses, BillingV1PlanServiceGetPlanData, BillingV1PlanServiceGetPlanResponses, BillingV1PlanServiceListPlansData, BillingV1PlanServiceListPlansResponses, BillingV1SalesServiceContactSalesData, BillingV1SalesServiceContactSalesResponses, BillingV1SubscriptionServiceCancelSubscriptionData, BillingV1SubscriptionServiceCancelSubscriptionResponses, BillingV1SubscriptionServiceCreateSubscriptionData, BillingV1SubscriptionServiceCreateSubscriptionResponses, BillingV1SubscriptionServiceGetSubscriptionData, BillingV1SubscriptionServiceGetSubscriptionHistoryData, BillingV1SubscriptionServiceGetSubscriptionHistoryResponses, BillingV1SubscriptionServiceGetSubscriptionResponses, BillingV1SubscriptionServiceReactivateSubscriptionData, BillingV1SubscriptionServiceReactivateSubscriptionResponses, BillingV1UsageServiceGetBandwidthUsageData, BillingV1UsageServiceGetBandwidthUsageHistoryData, BillingV1UsageServiceGetBandwidthUsageHistoryResponses, BillingV1UsageServiceGetBandwidthUsageResponses, BillingV1UsageServiceGetStorageUsageData, BillingV1UsageServiceGetStorageUsageHistoryData, BillingV1UsageServiceGetStorageUsageHistoryResponses, BillingV1UsageServiceGetStorageUsageResponses, BillingV1UsageServiceRefreshBandwidthUsageData, BillingV1UsageServiceRefreshBandwidthUsageResponses, BillingV1UsageServiceRefreshStorageUsageData, BillingV1UsageServiceRefreshStorageUsageResponses, ClientauthV1ClientCredentialServiceCreateClientCredentialData, ClientauthV1ClientCredentialServiceCreateClientCredentialResponses, ClientauthV1ClientCredentialServiceListClientCredentialsData, ClientauthV1ClientCredentialServiceListClientCredentialsResponses, ClientauthV1ClientCredentialServiceMintClientTokenData, ClientauthV1ClientCredentialServiceMintClientTokenResponses, ClientauthV1ClientCredentialServiceRevokeClientCredentialData, ClientauthV1ClientCredentialServiceRevokeClientCredentialResponses, FeedsV1FeedServiceCreateFeedData, FeedsV1FeedServiceCreateFeedResponses, FeedsV1FeedServiceDeleteFeedData, FeedsV1FeedServiceDeleteFeedResponses, FeedsV1FeedServiceGetFeedData, FeedsV1FeedServiceGetFeedResponses, FeedsV1FeedServiceListFeedsData, FeedsV1FeedServiceListFeedsResponses, FeedsV1FeedServiceUpdateFeedData, FeedsV1FeedServiceUpdateFeedResponses, ImagesV1ImageConversionServiceMarkImageFailedData, ImagesV1ImageConversionServiceMarkImageFailedResponses, ImagesV1ImageConversionServiceMarkImageProcessedData, ImagesV1ImageConversionServiceMarkImageProcessedResponses, ImagesV1ImageConversionServiceTakeUnprocessedImageData, ImagesV1ImageConversionServiceTakeUnprocessedImageResponses, ImagesV1ImageServiceCreateImageUploadData, ImagesV1ImageServiceCreateImageUploadResponses, ImagesV1ImageServiceDeleteImageData, ImagesV1ImageServiceDeleteImageResponses, ImagesV1ImageServiceGetImageData, ImagesV1ImageServiceGetImageResponses, ImagesV1ImageServiceListImagesData, ImagesV1ImageServiceListImagesResponses, ImagesV1ImageServiceUpdateImageVisibilityData, ImagesV1ImageServiceUpdateImageVisibilityResponses, PlatformauthV1PlatformAuthServiceExchangeApiKeyData, PlatformauthV1PlatformAuthServiceExchangeApiKeyResponses, PlatformauthV1PlatformAuthServiceRefreshPlatformTokenData, PlatformauthV1PlatformAuthServiceRefreshPlatformTokenResponses, PostsV1PostServiceCreatePostData, PostsV1PostServiceCreatePostResponses, PostsV1PostServiceCreatePostUploadData, PostsV1PostServiceCreatePostUploadResponses, PostsV1PostServiceDeletePost2Data, PostsV1PostServiceDeletePost2Responses, PostsV1PostServiceDeletePostData, PostsV1PostServiceDeletePostResponses, PostsV1PostServiceGetPost2Data, PostsV1PostServiceGetPost2Responses, PostsV1PostServiceGetPost3Data, PostsV1PostServiceGetPost3Responses, PostsV1PostServiceGetPostData, PostsV1PostServiceGetPostResponses, PostsV1PostServiceListPosts2Data, PostsV1PostServiceListPosts2Responses, PostsV1PostServiceListPosts3Data, PostsV1PostServiceListPosts3Responses, PostsV1PostServiceListPosts4Data, PostsV1PostServiceListPosts4Responses, PostsV1PostServiceListPostsData, PostsV1PostServiceListPostsResponses, ProjectV1ProjectServiceCreateProjectData, ProjectV1ProjectServiceCreateProjectResponses, ProjectV1ProjectServiceDeleteProjectData, ProjectV1ProjectServiceDeleteProjectResponses, ProjectV1ProjectServiceGetProjectData, ProjectV1ProjectServiceGetProjectResponses, ProjectV1ProjectServiceListProjectsData, ProjectV1ProjectServiceListProjectsResponses, ProjectV1ProjectServiceMoveProjectData, ProjectV1ProjectServiceMoveProjectResponses, ProjectV1ProjectServiceRemoveCustomDomainData, ProjectV1ProjectServiceRemoveCustomDomainResponses, ProjectV1ProjectServiceSetCustomDomainData, ProjectV1ProjectServiceSetCustomDomainResponses, ProjectV1ProjectServiceUpdateProjectNameData, ProjectV1ProjectServiceUpdateProjectNameResponses, ProjectV1ProjectServiceUpdateVideoQualityData, ProjectV1ProjectServiceUpdateVideoQualityResponses, VideosV1AudioTrackServiceCreateAudioTrackUploadData, VideosV1AudioTrackServiceCreateAudioTrackUploadResponses, VideosV1AudioTrackServiceDeleteAllAudioTracksData, VideosV1AudioTrackServiceDeleteAllAudioTracksResponses, VideosV1AudioTrackServiceDeleteAudioTrackData, VideosV1AudioTrackServiceDeleteAudioTrackResponses, VideosV1AudioTrackServiceDeleteAudioTracksByLanguageData, VideosV1AudioTrackServiceDeleteAudioTracksByLanguageResponses, VideosV1AudioTrackServiceListAudioTracksData, VideosV1AudioTrackServiceListAudioTracksResponses, VideosV1ChapterServiceDeleteVideoChapterData, VideosV1ChapterServiceDeleteVideoChapterResponses, VideosV1ChapterServiceGetVideoChaptersData, VideosV1ChapterServiceGetVideoChaptersResponses, VideosV1ChapterServiceUpdateVideoChaptersData, VideosV1ChapterServiceUpdateVideoChaptersResponses, VideosV1LanguageServiceListLanguagesData, VideosV1LanguageServiceListLanguagesResponses, VideosV1SubtitleServiceCreateSubtitleUploadData, VideosV1SubtitleServiceCreateSubtitleUploadResponses, VideosV1SubtitleServiceDeleteAllSubtitlesData, VideosV1SubtitleServiceDeleteAllSubtitlesResponses, VideosV1SubtitleServiceDeleteSubtitleData, VideosV1SubtitleServiceDeleteSubtitleResponses, VideosV1SubtitleServiceDeleteSubtitlesByLanguageData, VideosV1SubtitleServiceDeleteSubtitlesByLanguageResponses, VideosV1SubtitleServiceListSubtitlesData, VideosV1SubtitleServiceListSubtitlesResponses, VideosV1VideoConversionServiceMarkVideoFailedData, VideosV1VideoConversionServiceMarkVideoFailedResponses, VideosV1VideoConversionServiceMarkVideoProcessedData, VideosV1VideoConversionServiceMarkVideoProcessedResponses, VideosV1VideoServiceCreateVideoUploadData, VideosV1VideoServiceCreateVideoUploadResponses, VideosV1VideoServiceDeleteVideoData, VideosV1VideoServiceDeleteVideoResponses, VideosV1VideoServiceGetVideoData, VideosV1VideoServiceGetVideoResponses, VideosV1VideoServiceListVideosData, VideosV1VideoServiceListVideosResponses, VideosV1VideoServiceUpdateVideoVisibilityData, VideosV1VideoServiceUpdateVideoVisibilityResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * GetDashboardStats\n */\nexport const analyticsV1DashboardServiceGetDashboardStats = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1DashboardServiceGetDashboardStatsData, ThrowOnError>) => (options.client ?? client).get<AnalyticsV1DashboardServiceGetDashboardStatsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/dashboard', ...options });\n\n/**\n * TrackEvents\n */\nexport const analyticsV1EventsServiceTrackEvents = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1EventsServiceTrackEventsData, ThrowOnError>) => (options.client ?? client).post<AnalyticsV1EventsServiceTrackEventsResponses, unknown, ThrowOnError>({\n url: '/analytics/v1/events',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetFeedStats\n */\nexport const analyticsV1FeedsServiceGetFeedStats = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1FeedsServiceGetFeedStatsData, ThrowOnError>) => (options.client ?? client).get<AnalyticsV1FeedsServiceGetFeedStatsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/feeds/{feed_id}/stats', ...options });\n\n/**\n * GetTopFeeds\n */\nexport const analyticsV1FeedsServiceGetTopFeeds = <ThrowOnError extends boolean = false>(options?: Options<AnalyticsV1FeedsServiceGetTopFeedsData, ThrowOnError>) => (options?.client ?? client).get<AnalyticsV1FeedsServiceGetTopFeedsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/top/feeds', ...options });\n\n/**\n * GetFunnelAnalytics\n */\nexport const analyticsV1FunnelsServiceGetFunnelAnalytics = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1FunnelsServiceGetFunnelAnalyticsData, ThrowOnError>) => (options.client ?? client).post<AnalyticsV1FunnelsServiceGetFunnelAnalyticsResponses, unknown, ThrowOnError>({\n url: '/analytics/v1/funnels',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetRetentionAnalytics\n */\nexport const analyticsV1FunnelsServiceGetRetentionAnalytics = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1FunnelsServiceGetRetentionAnalyticsData, ThrowOnError>) => (options.client ?? client).post<AnalyticsV1FunnelsServiceGetRetentionAnalyticsResponses, unknown, ThrowOnError>({\n url: '/analytics/v1/retention',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetVideoHeatmap\n */\nexport const analyticsV1HeatmapServiceGetVideoHeatmap = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1HeatmapServiceGetVideoHeatmapData, ThrowOnError>) => (options.client ?? client).get<AnalyticsV1HeatmapServiceGetVideoHeatmapResponses, unknown, ThrowOnError>({ url: '/analytics/v1/videos/{video_id}/heatmap', ...options });\n\n/**\n * GetHotSegments\n */\nexport const analyticsV1HeatmapServiceGetHotSegments = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1HeatmapServiceGetHotSegmentsData, ThrowOnError>) => (options.client ?? client).get<AnalyticsV1HeatmapServiceGetHotSegmentsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/videos/{video_id}/hot-segments', ...options });\n\n/**\n * GetPostStats\n */\nexport const analyticsV1PostsServiceGetPostStats = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1PostsServiceGetPostStatsData, ThrowOnError>) => (options.client ?? client).get<AnalyticsV1PostsServiceGetPostStatsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/posts/{post_id}/stats', ...options });\n\n/**\n * GetTopPosts\n */\nexport const analyticsV1PostsServiceGetTopPosts = <ThrowOnError extends boolean = false>(options?: Options<AnalyticsV1PostsServiceGetTopPostsData, ThrowOnError>) => (options?.client ?? client).get<AnalyticsV1PostsServiceGetTopPostsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/top/posts', ...options });\n\n/**\n * GetRealtimeStats\n */\nexport const analyticsV1RealtimeServiceGetRealtimeStats = <ThrowOnError extends boolean = false>(options?: Options<AnalyticsV1RealtimeServiceGetRealtimeStatsData, ThrowOnError>) => (options?.client ?? client).get<AnalyticsV1RealtimeServiceGetRealtimeStatsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/realtime', ...options });\n\n/**\n * GetTopVideos\n */\nexport const analyticsV1VideosServiceGetTopVideos = <ThrowOnError extends boolean = false>(options?: Options<AnalyticsV1VideosServiceGetTopVideosData, ThrowOnError>) => (options?.client ?? client).get<AnalyticsV1VideosServiceGetTopVideosResponses, unknown, ThrowOnError>({ url: '/analytics/v1/top/videos', ...options });\n\n/**\n * GetVideoStats\n */\nexport const analyticsV1VideosServiceGetVideoStats = <ThrowOnError extends boolean = false>(options: Options<AnalyticsV1VideosServiceGetVideoStatsData, ThrowOnError>) => (options.client ?? client).get<AnalyticsV1VideosServiceGetVideoStatsResponses, unknown, ThrowOnError>({ url: '/analytics/v1/videos/{video_id}/stats', ...options });\n\n/**\n * ListApiKeys\n */\nexport const apikeysV1ApiKeyServiceListApiKeys = <ThrowOnError extends boolean = false>(options: Options<ApikeysV1ApiKeyServiceListApiKeysData, ThrowOnError>) => (options.client ?? client).get<ApikeysV1ApiKeyServiceListApiKeysResponses, unknown, ThrowOnError>({ url: '/organizations/{org_id}/api-keys/v1', ...options });\n\n/**\n * CreateApiKey\n */\nexport const apikeysV1ApiKeyServiceCreateApiKey = <ThrowOnError extends boolean = false>(options: Options<ApikeysV1ApiKeyServiceCreateApiKeyData, ThrowOnError>) => (options.client ?? client).post<ApikeysV1ApiKeyServiceCreateApiKeyResponses, unknown, ThrowOnError>({\n url: '/organizations/{org_id}/api-keys/v1',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteApiKey\n */\nexport const apikeysV1ApiKeyServiceDeleteApiKey = <ThrowOnError extends boolean = false>(options: Options<ApikeysV1ApiKeyServiceDeleteApiKeyData, ThrowOnError>) => (options.client ?? client).delete<ApikeysV1ApiKeyServiceDeleteApiKeyResponses, unknown, ThrowOnError>({ url: '/organizations/{org_id}/api-keys/v1/{key_id}', ...options });\n\n/**\n * RotateApiKey\n */\nexport const apikeysV1ApiKeyServiceRotateApiKey = <ThrowOnError extends boolean = false>(options: Options<ApikeysV1ApiKeyServiceRotateApiKeyData, ThrowOnError>) => (options.client ?? client).post<ApikeysV1ApiKeyServiceRotateApiKeyResponses, unknown, ThrowOnError>({ url: '/organizations/{org_id}/api-keys/v1/{key_id}/rotate', ...options });\n\n/**\n * SendBlogBroadcast\n */\nexport const authV1BlogServiceSendBlogBroadcast = <ThrowOnError extends boolean = false>(options: Options<AuthV1BlogServiceSendBlogBroadcastData, ThrowOnError>) => (options.client ?? client).post<AuthV1BlogServiceSendBlogBroadcastResponses, unknown, ThrowOnError>({\n url: '/auth/v1/blog/broadcast',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * SubscribeBlog\n */\nexport const authV1BlogServiceSubscribeBlog = <ThrowOnError extends boolean = false>(options?: Options<AuthV1BlogServiceSubscribeBlogData, ThrowOnError>) => (options?.client ?? client).post<AuthV1BlogServiceSubscribeBlogResponses, unknown, ThrowOnError>({ url: '/auth/v1/blog/subscribe', ...options });\n\n/**\n * GetBlogSubscription\n */\nexport const authV1BlogServiceGetBlogSubscription = <ThrowOnError extends boolean = false>(options?: Options<AuthV1BlogServiceGetBlogSubscriptionData, ThrowOnError>) => (options?.client ?? client).get<AuthV1BlogServiceGetBlogSubscriptionResponses, unknown, ThrowOnError>({ url: '/auth/v1/blog/subscription', ...options });\n\n/**\n * UnsubscribeBlog\n */\nexport const authV1BlogServiceUnsubscribeBlog = <ThrowOnError extends boolean = false>(options?: Options<AuthV1BlogServiceUnsubscribeBlogData, ThrowOnError>) => (options?.client ?? client).post<AuthV1BlogServiceUnsubscribeBlogResponses, unknown, ThrowOnError>({ url: '/auth/v1/blog/unsubscribe', ...options });\n\n/**\n * UnsubscribeBlogByEmail\n */\nexport const authV1BlogServiceUnsubscribeBlogByEmail = <ThrowOnError extends boolean = false>(options: Options<AuthV1BlogServiceUnsubscribeBlogByEmailData, ThrowOnError>) => (options.client ?? client).post<AuthV1BlogServiceUnsubscribeBlogByEmailResponses, unknown, ThrowOnError>({\n url: '/auth/v1/blog/unsubscribe/email',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * RemoveDomain\n */\nexport const authV1DomainServiceRemoveDomain = <ThrowOnError extends boolean = false>(options: Options<AuthV1DomainServiceRemoveDomainData, ThrowOnError>) => (options.client ?? client).delete<AuthV1DomainServiceRemoveDomainResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/domain', ...options });\n\n/**\n * GetDomainStatus\n */\nexport const authV1DomainServiceGetDomainStatus = <ThrowOnError extends boolean = false>(options: Options<AuthV1DomainServiceGetDomainStatusData, ThrowOnError>) => (options.client ?? client).get<AuthV1DomainServiceGetDomainStatusResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/domain', ...options });\n\n/**\n * GetDomainAutoJoin\n */\nexport const authV1DomainServiceGetDomainAutoJoin = <ThrowOnError extends boolean = false>(options: Options<AuthV1DomainServiceGetDomainAutoJoinData, ThrowOnError>) => (options.client ?? client).get<AuthV1DomainServiceGetDomainAutoJoinResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/domain/auto-join', ...options });\n\n/**\n * CheckDomainVerification\n */\nexport const authV1DomainServiceCheckDomainVerification = <ThrowOnError extends boolean = false>(options: Options<AuthV1DomainServiceCheckDomainVerificationData, ThrowOnError>) => (options.client ?? client).post<AuthV1DomainServiceCheckDomainVerificationResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/domain/verify', ...options });\n\n/**\n * CreateDomainVerification\n */\nexport const authV1DomainServiceCreateDomainVerification = <ThrowOnError extends boolean = false>(options: Options<AuthV1DomainServiceCreateDomainVerificationData, ThrowOnError>) => (options.client ?? client).post<AuthV1DomainServiceCreateDomainVerificationResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/domain',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * SetDomainAutoJoin\n */\nexport const authV1DomainServiceSetDomainAutoJoin = <ThrowOnError extends boolean = false>(options: Options<AuthV1DomainServiceSetDomainAutoJoinData, ThrowOnError>) => (options.client ?? client).put<AuthV1DomainServiceSetDomainAutoJoinResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/domain/auto-join',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * AcceptInvitation\n */\nexport const authV1MembershipServiceAcceptInvitation = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceAcceptInvitationData, ThrowOnError>) => (options.client ?? client).post<AuthV1MembershipServiceAcceptInvitationResponses, unknown, ThrowOnError>({ url: '/auth/v1/invitations/{token}/accept', ...options });\n\n/**\n * DeclineInvitation\n */\nexport const authV1MembershipServiceDeclineInvitation = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceDeclineInvitationData, ThrowOnError>) => (options.client ?? client).post<AuthV1MembershipServiceDeclineInvitationResponses, unknown, ThrowOnError>({ url: '/auth/v1/invitations/{token}/decline', ...options });\n\n/**\n * ListMembershipApplications\n */\nexport const authV1MembershipServiceListMembershipApplications = <ThrowOnError extends boolean = false>(options?: Options<AuthV1MembershipServiceListMembershipApplicationsData, ThrowOnError>) => (options?.client ?? client).get<AuthV1MembershipServiceListMembershipApplicationsResponses, unknown, ThrowOnError>({ url: '/auth/v1/membership-applications', ...options });\n\n/**\n * ListMemberships\n */\nexport const authV1MembershipServiceListMemberships = <ThrowOnError extends boolean = false>(options?: Options<AuthV1MembershipServiceListMembershipsData, ThrowOnError>) => (options?.client ?? client).get<AuthV1MembershipServiceListMembershipsResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships', ...options });\n\n/**\n * UpdateActiveMembership\n */\nexport const authV1MembershipServiceUpdateActiveMembership = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceUpdateActiveMembershipData, ThrowOnError>) => (options.client ?? client).patch<AuthV1MembershipServiceUpdateActiveMembershipResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/active',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * CheckMembership\n */\nexport const authV1MembershipServiceCheckMembership = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceCheckMembershipData, ThrowOnError>) => (options.client ?? client).get<AuthV1MembershipServiceCheckMembershipResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/check', ...options });\n\n/**\n * GetInternalMembershipInfo\n */\nexport const authV1MembershipServiceGetInternalMembershipInfo = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceGetInternalMembershipInfoData, ThrowOnError>) => (options.client ?? client).get<AuthV1MembershipServiceGetInternalMembershipInfoResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/info', ...options });\n\n/**\n * LeaveOrganization\n */\nexport const authV1MembershipServiceLeaveOrganization = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceLeaveOrganizationData, ThrowOnError>) => (options.client ?? client).post<AuthV1MembershipServiceLeaveOrganizationResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/leave', ...options });\n\n/**\n * InviteMember\n */\nexport const authV1MembershipServiceInviteMember = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceInviteMemberData, ThrowOnError>) => (options.client ?? client).post<AuthV1MembershipServiceInviteMemberResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/invite',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ResendInvitation\n */\nexport const authV1MembershipServiceResendInvitation = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceResendInvitationData, ThrowOnError>) => (options.client ?? client).post<AuthV1MembershipServiceResendInvitationResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/invite/resend',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * CancelInvitation\n */\nexport const authV1MembershipServiceCancelInvitation = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceCancelInvitationData, ThrowOnError>) => (options.client ?? client).delete<AuthV1MembershipServiceCancelInvitationResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/invite/{user_id}', ...options });\n\n/**\n * ListOrganizationMembers\n */\nexport const authV1MembershipServiceListOrganizationMembers = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceListOrganizationMembersData, ThrowOnError>) => (options.client ?? client).get<AuthV1MembershipServiceListOrganizationMembersResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/members', ...options });\n\n/**\n * RemoveMember\n */\nexport const authV1MembershipServiceRemoveMember = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceRemoveMemberData, ThrowOnError>) => (options.client ?? client).delete<AuthV1MembershipServiceRemoveMemberResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/members/{user_id}', ...options });\n\n/**\n * ReactivateMember\n */\nexport const authV1MembershipServiceReactivateMember = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceReactivateMemberData, ThrowOnError>) => (options.client ?? client).patch<AuthV1MembershipServiceReactivateMemberResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/members/{user_id}/reactivate', ...options });\n\n/**\n * UpdateMemberRole\n */\nexport const authV1MembershipServiceUpdateMemberRole = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceUpdateMemberRoleData, ThrowOnError>) => (options.client ?? client).patch<AuthV1MembershipServiceUpdateMemberRoleResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/members/{user_id}/role',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * SuspendMember\n */\nexport const authV1MembershipServiceSuspendMember = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceSuspendMemberData, ThrowOnError>) => (options.client ?? client).patch<AuthV1MembershipServiceSuspendMemberResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/members/{user_id}/suspend', ...options });\n\n/**\n * UpdateOrgName\n */\nexport const authV1MembershipServiceUpdateOrgName = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceUpdateOrgNameData, ThrowOnError>) => (options.client ?? client).patch<AuthV1MembershipServiceUpdateOrgNameResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/name',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * UpdateMembershipState\n */\nexport const authV1MembershipServiceUpdateMembershipState = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceUpdateMembershipStateData, ThrowOnError>) => (options.client ?? client).patch<AuthV1MembershipServiceUpdateMembershipStateResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/state',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * UpdateOrgUsername\n */\nexport const authV1MembershipServiceUpdateOrgUsername = <ThrowOnError extends boolean = false>(options: Options<AuthV1MembershipServiceUpdateOrgUsernameData, ThrowOnError>) => (options.client ?? client).patch<AuthV1MembershipServiceUpdateOrgUsernameResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/username',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteOTP\n */\nexport const authV1OtpServiceDeleteOtp = <ThrowOnError extends boolean = false>(options?: Options<AuthV1OtpServiceDeleteOtpData, ThrowOnError>) => (options?.client ?? client).delete<AuthV1OtpServiceDeleteOtpResponses, unknown, ThrowOnError>({ url: '/auth/v1/users/current/totp/delete', ...options });\n\n/**\n * SetupOTP\n */\nexport const authV1OtpServiceSetupOtp = <ThrowOnError extends boolean = false>(options?: Options<AuthV1OtpServiceSetupOtpData, ThrowOnError>) => (options?.client ?? client).post<AuthV1OtpServiceSetupOtpResponses, unknown, ThrowOnError>({ url: '/auth/v1/users/current/totp/setup', ...options });\n\n/**\n * GetOTPStatus\n */\nexport const authV1OtpServiceGetOtpStatus = <ThrowOnError extends boolean = false>(options?: Options<AuthV1OtpServiceGetOtpStatusData, ThrowOnError>) => (options?.client ?? client).get<AuthV1OtpServiceGetOtpStatusResponses, unknown, ThrowOnError>({ url: '/auth/v1/users/current/totp/status', ...options });\n\n/**\n * VerifyOTP\n */\nexport const authV1OtpServiceVerifyOtp = <ThrowOnError extends boolean = false>(options: Options<AuthV1OtpServiceVerifyOtpData, ThrowOnError>) => (options.client ?? client).post<AuthV1OtpServiceVerifyOtpResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/totp/verify',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * VerifyTOTPForLogin\n */\nexport const authV1OtpServiceVerifyTotpForLogin = <ThrowOnError extends boolean = false>(options: Options<AuthV1OtpServiceVerifyTotpForLoginData, ThrowOnError>) => (options.client ?? client).post<AuthV1OtpServiceVerifyTotpForLoginResponses, unknown, ThrowOnError>({\n url: '/auth/v1/verify-totp',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * PasskeyLoginBegin\n */\nexport const authV1PasskeyServicePasskeyLoginBegin = <ThrowOnError extends boolean = false>(options: Options<AuthV1PasskeyServicePasskeyLoginBeginData, ThrowOnError>) => (options.client ?? client).post<AuthV1PasskeyServicePasskeyLoginBeginResponses, unknown, ThrowOnError>({\n url: '/auth/v1/passkey/login/begin',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * PasskeyLoginFinish\n */\nexport const authV1PasskeyServicePasskeyLoginFinish = <ThrowOnError extends boolean = false>(options: Options<AuthV1PasskeyServicePasskeyLoginFinishData, ThrowOnError>) => (options.client ?? client).post<AuthV1PasskeyServicePasskeyLoginFinishResponses, unknown, ThrowOnError>({\n url: '/auth/v1/passkey/login/finish',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPasskeys\n */\nexport const authV1PasskeyServiceListPasskeys = <ThrowOnError extends boolean = false>(options?: Options<AuthV1PasskeyServiceListPasskeysData, ThrowOnError>) => (options?.client ?? client).get<AuthV1PasskeyServiceListPasskeysResponses, unknown, ThrowOnError>({ url: '/auth/v1/users/current/passkeys', ...options });\n\n/**\n * PasskeyRegisterBegin\n */\nexport const authV1PasskeyServicePasskeyRegisterBegin = <ThrowOnError extends boolean = false>(options: Options<AuthV1PasskeyServicePasskeyRegisterBeginData, ThrowOnError>) => (options.client ?? client).post<AuthV1PasskeyServicePasskeyRegisterBeginResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/passkeys/register/begin',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * PasskeyRegisterFinish\n */\nexport const authV1PasskeyServicePasskeyRegisterFinish = <ThrowOnError extends boolean = false>(options: Options<AuthV1PasskeyServicePasskeyRegisterFinishData, ThrowOnError>) => (options.client ?? client).post<AuthV1PasskeyServicePasskeyRegisterFinishResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/passkeys/register/finish',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeletePasskey\n */\nexport const authV1PasskeyServiceDeletePasskey = <ThrowOnError extends boolean = false>(options: Options<AuthV1PasskeyServiceDeletePasskeyData, ThrowOnError>) => (options.client ?? client).delete<AuthV1PasskeyServiceDeletePasskeyResponses, unknown, ThrowOnError>({ url: '/auth/v1/users/current/passkeys/{id}', ...options });\n\n/**\n * RenamePasskey\n */\nexport const authV1PasskeyServiceRenamePasskey = <ThrowOnError extends boolean = false>(options: Options<AuthV1PasskeyServiceRenamePasskeyData, ThrowOnError>) => (options.client ?? client).patch<AuthV1PasskeyServiceRenamePasskeyResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/passkeys/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * VerifyPasskeyForLogin\n */\nexport const authV1PasskeyServiceVerifyPasskeyForLogin = <ThrowOnError extends boolean = false>(options: Options<AuthV1PasskeyServiceVerifyPasskeyForLoginData, ThrowOnError>) => (options.client ?? client).post<AuthV1PasskeyServiceVerifyPasskeyForLoginResponses, unknown, ThrowOnError>({\n url: '/auth/v1/verify-passkey',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPolicies\n */\nexport const authV1PolicyServiceListPolicies = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceListPoliciesData, ThrowOnError>) => (options.client ?? client).get<AuthV1PolicyServiceListPoliciesResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{org_id}/policies', ...options });\n\n/**\n * ListUserPolicies\n */\nexport const authV1PolicyServiceListUserPolicies = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceListUserPoliciesData, ThrowOnError>) => (options.client ?? client).get<AuthV1PolicyServiceListUserPoliciesResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/members/{member_id}/policies', ...options });\n\n/**\n * CreatePolicy\n */\nexport const authV1PolicyServiceCreatePolicy = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceCreatePolicyData, ThrowOnError>) => (options.client ?? client).post<AuthV1PolicyServiceCreatePolicyResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/policies',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DetachPolicy\n */\nexport const authV1PolicyServiceDetachPolicy = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceDetachPolicyData, ThrowOnError>) => (options.client ?? client).delete<AuthV1PolicyServiceDetachPolicyResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/policies/attachments/{attachment_id}', ...options });\n\n/**\n * DeletePolicy\n */\nexport const authV1PolicyServiceDeletePolicy = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceDeletePolicyData, ThrowOnError>) => (options.client ?? client).delete<AuthV1PolicyServiceDeletePolicyResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/policies/{policy_id}', ...options });\n\n/**\n * GetPolicy\n */\nexport const authV1PolicyServiceGetPolicy = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceGetPolicyData, ThrowOnError>) => (options.client ?? client).get<AuthV1PolicyServiceGetPolicyResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/policies/{policy_id}', ...options });\n\n/**\n * UpdatePolicy\n */\nexport const authV1PolicyServiceUpdatePolicy = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceUpdatePolicyData, ThrowOnError>) => (options.client ?? client).put<AuthV1PolicyServiceUpdatePolicyResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/policies/{policy_id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPolicyAttachments\n */\nexport const authV1PolicyServiceListPolicyAttachments = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceListPolicyAttachmentsData, ThrowOnError>) => (options.client ?? client).get<AuthV1PolicyServiceListPolicyAttachmentsResponses, unknown, ThrowOnError>({ url: '/auth/v1/memberships/{user.org_id}/policies/{policy_id}/attachments', ...options });\n\n/**\n * AttachPolicy\n */\nexport const authV1PolicyServiceAttachPolicy = <ThrowOnError extends boolean = false>(options: Options<AuthV1PolicyServiceAttachPolicyData, ThrowOnError>) => (options.client ?? client).post<AuthV1PolicyServiceAttachPolicyResponses, unknown, ThrowOnError>({\n url: '/auth/v1/memberships/{user.org_id}/policies/{policy_id}/attachments',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPermissionRegistry\n */\nexport const authV1PolicyServiceListPermissionRegistry = <ThrowOnError extends boolean = false>(options?: Options<AuthV1PolicyServiceListPermissionRegistryData, ThrowOnError>) => (options?.client ?? client).get<AuthV1PolicyServiceListPermissionRegistryResponses, unknown, ThrowOnError>({ url: '/auth/v1/policies/permissions', ...options });\n\n/**\n * ListProviders\n */\nexport const authV1ProvidersServiceListProviders = <ThrowOnError extends boolean = false>(options?: Options<AuthV1ProvidersServiceListProvidersData, ThrowOnError>) => (options?.client ?? client).get<AuthV1ProvidersServiceListProvidersResponses, unknown, ThrowOnError>({ url: '/auth/v1/providers', ...options });\n\n/**\n * ConnectProvider\n */\nexport const authV1ProvidersServiceConnectProvider = <ThrowOnError extends boolean = false>(options: Options<AuthV1ProvidersServiceConnectProviderData, ThrowOnError>) => (options.client ?? client).post<AuthV1ProvidersServiceConnectProviderResponses, unknown, ThrowOnError>({\n url: '/auth/v1/providers/connect',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DisconnectProvider\n */\nexport const authV1ProvidersServiceDisconnectProvider = <ThrowOnError extends boolean = false>(options: Options<AuthV1ProvidersServiceDisconnectProviderData, ThrowOnError>) => (options.client ?? client).delete<AuthV1ProvidersServiceDisconnectProviderResponses, unknown, ThrowOnError>({ url: '/auth/v1/providers/{provider}', ...options });\n\n/**\n * VerifyEmail\n */\nexport const authV1EmailServiceVerifyEmail = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceVerifyEmailData, ThrowOnError>) => (options.client ?? client).post<AuthV1EmailServiceVerifyEmailResponses, unknown, ThrowOnError>({\n url: '/auth/v1/email/verify',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ResendVerification\n */\nexport const authV1EmailServiceResendVerification = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceResendVerificationData, ThrowOnError>) => (options.client ?? client).post<AuthV1EmailServiceResendVerificationResponses, unknown, ThrowOnError>({\n url: '/auth/v1/email/verify/resend',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Login\n */\nexport const authV1EmailServiceLogin = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceLoginData, ThrowOnError>) => (options.client ?? client).post<AuthV1EmailServiceLoginResponses, unknown, ThrowOnError>({\n url: '/auth/v1/login',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Logout\n */\nexport const authV1TokenServiceLogout = <ThrowOnError extends boolean = false>(options: Options<AuthV1TokenServiceLogoutData, ThrowOnError>) => (options.client ?? client).post<AuthV1TokenServiceLogoutResponses, unknown, ThrowOnError>({\n url: '/auth/v1/logout',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * SendPasswordReset\n */\nexport const authV1EmailServiceSendPasswordReset = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceSendPasswordResetData, ThrowOnError>) => (options.client ?? client).post<AuthV1EmailServiceSendPasswordResetResponses, unknown, ThrowOnError>({\n url: '/auth/v1/password/reset',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ResetPassword\n */\nexport const authV1EmailServiceResetPassword = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceResetPasswordData, ThrowOnError>) => (options.client ?? client).post<AuthV1EmailServiceResetPasswordResponses, unknown, ThrowOnError>({\n url: '/auth/v1/password/reset/confirm',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Register\n */\nexport const authV1EmailServiceRegister = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceRegisterData, ThrowOnError>) => (options.client ?? client).post<AuthV1EmailServiceRegisterResponses, unknown, ThrowOnError>({\n url: '/auth/v1/register',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * RefreshToken\n */\nexport const authV1TokenServiceRefreshToken = <ThrowOnError extends boolean = false>(options: Options<AuthV1TokenServiceRefreshTokenData, ThrowOnError>) => (options.client ?? client).post<AuthV1TokenServiceRefreshTokenResponses, unknown, ThrowOnError>({\n url: '/auth/v1/token',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * AddEmail\n */\nexport const authV1EmailServiceAddEmail = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceAddEmailData, ThrowOnError>) => (options.client ?? client).post<AuthV1EmailServiceAddEmailResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/emails',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * InitiateEmailChange\n */\nexport const authV1EmailServiceInitiateEmailChange = <ThrowOnError extends boolean = false>(options: Options<AuthV1EmailServiceInitiateEmailChangeData, ThrowOnError>) => (options.client ?? client).put<AuthV1EmailServiceInitiateEmailChangeResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/emails/change',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetUserEmailStatus\n */\nexport const authV1EmailServiceGetUserEmailStatus = <ThrowOnError extends boolean = false>(options?: Options<AuthV1EmailServiceGetUserEmailStatusData, ThrowOnError>) => (options?.client ?? client).get<AuthV1EmailServiceGetUserEmailStatusResponses, unknown, ThrowOnError>({ url: '/auth/v1/users/current/emails/status', ...options });\n\n/**\n * GetUserInfo\n */\nexport const authV1UserServiceGetUserInfo = <ThrowOnError extends boolean = false>(options?: Options<AuthV1UserServiceGetUserInfoData, ThrowOnError>) => (options?.client ?? client).get<AuthV1UserServiceGetUserInfoResponses, unknown, ThrowOnError>({ url: '/auth/v1/userinfo', ...options });\n\n/**\n * GetUser\n */\nexport const authV1UserServiceGetUser = <ThrowOnError extends boolean = false>(options?: Options<AuthV1UserServiceGetUserData, ThrowOnError>) => (options?.client ?? client).get<AuthV1UserServiceGetUserResponses, unknown, ThrowOnError>({ url: '/auth/v1/users/current', ...options });\n\n/**\n * UpdateName\n */\nexport const authV1UserServiceUpdateName = <ThrowOnError extends boolean = false>(options: Options<AuthV1UserServiceUpdateNameData, ThrowOnError>) => (options.client ?? client).patch<AuthV1UserServiceUpdateNameResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/name',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * UpdateUsername\n */\nexport const authV1UserServiceUpdateUsername = <ThrowOnError extends boolean = false>(options: Options<AuthV1UserServiceUpdateUsernameData, ThrowOnError>) => (options.client ?? client).patch<AuthV1UserServiceUpdateUsernameResponses, unknown, ThrowOnError>({\n url: '/auth/v1/users/current/username',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListInvoices\n */\nexport const billingV1InvoiceServiceListInvoices = <ThrowOnError extends boolean = false>(options?: Options<BillingV1InvoiceServiceListInvoicesData, ThrowOnError>) => (options?.client ?? client).get<BillingV1InvoiceServiceListInvoicesResponses, unknown, ThrowOnError>({ url: '/billing/v1/invoices', ...options });\n\n/**\n * UpdateInvoiceStatus\n */\nexport const billingV1InvoiceServiceUpdateInvoiceStatus = <ThrowOnError extends boolean = false>(options: Options<BillingV1InvoiceServiceUpdateInvoiceStatusData, ThrowOnError>) => (options.client ?? client).patch<BillingV1InvoiceServiceUpdateInvoiceStatusResponses, unknown, ThrowOnError>({\n url: '/billing/v1/invoices/{invoice_id}/status',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetBillingAddress\n */\nexport const billingV1PaymentServiceGetBillingAddress = <ThrowOnError extends boolean = false>(options?: Options<BillingV1PaymentServiceGetBillingAddressData, ThrowOnError>) => (options?.client ?? client).get<BillingV1PaymentServiceGetBillingAddressResponses, unknown, ThrowOnError>({ url: '/billing/v1/address', ...options });\n\n/**\n * UpsertBillingAddress\n */\nexport const billingV1PaymentServiceUpsertBillingAddress = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceUpsertBillingAddressData, ThrowOnError>) => (options.client ?? client).put<BillingV1PaymentServiceUpsertBillingAddressResponses, unknown, ThrowOnError>({\n url: '/billing/v1/address',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * CreateCheckoutSession\n */\nexport const billingV1PaymentServiceCreateCheckoutSession = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceCreateCheckoutSessionData, ThrowOnError>) => (options.client ?? client).post<BillingV1PaymentServiceCreateCheckoutSessionResponses, unknown, ThrowOnError>({\n url: '/billing/v1/checkout',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPaymentMethods\n */\nexport const billingV1PaymentServiceListPaymentMethods = <ThrowOnError extends boolean = false>(options?: Options<BillingV1PaymentServiceListPaymentMethodsData, ThrowOnError>) => (options?.client ?? client).get<BillingV1PaymentServiceListPaymentMethodsResponses, unknown, ThrowOnError>({ url: '/billing/v1/payment-methods', ...options });\n\n/**\n * UpsertPaymentMethod\n */\nexport const billingV1PaymentServiceUpsertPaymentMethod = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceUpsertPaymentMethodData, ThrowOnError>) => (options.client ?? client).put<BillingV1PaymentServiceUpsertPaymentMethodResponses, unknown, ThrowOnError>({\n url: '/billing/v1/payment-methods',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetPaymentMethodFromPaymentIntent\n */\nexport const billingV1PaymentServiceGetPaymentMethodFromPaymentIntent = <ThrowOnError extends boolean = false>(options?: Options<BillingV1PaymentServiceGetPaymentMethodFromPaymentIntentData, ThrowOnError>) => (options?.client ?? client).get<BillingV1PaymentServiceGetPaymentMethodFromPaymentIntentResponses, unknown, ThrowOnError>({ url: '/billing/v1/payment-methods/from-payment-intent', ...options });\n\n/**\n * GetPaymentMethodFromSetupIntent\n */\nexport const billingV1PaymentServiceGetPaymentMethodFromSetupIntent = <ThrowOnError extends boolean = false>(options?: Options<BillingV1PaymentServiceGetPaymentMethodFromSetupIntentData, ThrowOnError>) => (options?.client ?? client).get<BillingV1PaymentServiceGetPaymentMethodFromSetupIntentResponses, unknown, ThrowOnError>({ url: '/billing/v1/payment-methods/from-setup-intent', ...options });\n\n/**\n * DeletePaymentMethod\n */\nexport const billingV1PaymentServiceDeletePaymentMethod = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceDeletePaymentMethodData, ThrowOnError>) => (options.client ?? client).delete<BillingV1PaymentServiceDeletePaymentMethodResponses, unknown, ThrowOnError>({ url: '/billing/v1/payment-methods/{payment_method_id}', ...options });\n\n/**\n * CreateSetupIntent\n */\nexport const billingV1PaymentServiceCreateSetupIntent = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceCreateSetupIntentData, ThrowOnError>) => (options.client ?? client).post<BillingV1PaymentServiceCreateSetupIntentResponses, unknown, ThrowOnError>({\n url: '/billing/v1/setup-intent',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * UpgradeSubscription\n */\nexport const billingV1PaymentServiceUpgradeSubscription = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceUpgradeSubscriptionData, ThrowOnError>) => (options.client ?? client).post<BillingV1PaymentServiceUpgradeSubscriptionResponses, unknown, ThrowOnError>({\n url: '/billing/v1/subscription/upgrade',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * CalculateTax\n */\nexport const billingV1PaymentServiceCalculateTax = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceCalculateTaxData, ThrowOnError>) => (options.client ?? client).post<BillingV1PaymentServiceCalculateTaxResponses, unknown, ThrowOnError>({\n url: '/billing/v1/tax/calculate',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * CalculateGenericTax\n */\nexport const billingV1PaymentServiceCalculateGenericTax = <ThrowOnError extends boolean = false>(options: Options<BillingV1PaymentServiceCalculateGenericTaxData, ThrowOnError>) => (options.client ?? client).post<BillingV1PaymentServiceCalculateGenericTaxResponses, unknown, ThrowOnError>({\n url: '/billing/v1/tax/calculate-generic',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPlans\n */\nexport const billingV1PlanServiceListPlans = <ThrowOnError extends boolean = false>(options?: Options<BillingV1PlanServiceListPlansData, ThrowOnError>) => (options?.client ?? client).get<BillingV1PlanServiceListPlansResponses, unknown, ThrowOnError>({ url: '/billing/v1/plans', ...options });\n\n/**\n * GetPlan\n */\nexport const billingV1PlanServiceGetPlan = <ThrowOnError extends boolean = false>(options: Options<BillingV1PlanServiceGetPlanData, ThrowOnError>) => (options.client ?? client).get<BillingV1PlanServiceGetPlanResponses, unknown, ThrowOnError>({ url: '/billing/v1/plans/{plan_id}', ...options });\n\n/**\n * ContactSales\n */\nexport const billingV1SalesServiceContactSales = <ThrowOnError extends boolean = false>(options: Options<BillingV1SalesServiceContactSalesData, ThrowOnError>) => (options.client ?? client).post<BillingV1SalesServiceContactSalesResponses, unknown, ThrowOnError>({\n url: '/billing/v1/contact-sales',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetSubscription\n */\nexport const billingV1SubscriptionServiceGetSubscription = <ThrowOnError extends boolean = false>(options?: Options<BillingV1SubscriptionServiceGetSubscriptionData, ThrowOnError>) => (options?.client ?? client).get<BillingV1SubscriptionServiceGetSubscriptionResponses, unknown, ThrowOnError>({ url: '/billing/v1/subscription', ...options });\n\n/**\n * CreateSubscription\n */\nexport const billingV1SubscriptionServiceCreateSubscription = <ThrowOnError extends boolean = false>(options: Options<BillingV1SubscriptionServiceCreateSubscriptionData, ThrowOnError>) => (options.client ?? client).post<BillingV1SubscriptionServiceCreateSubscriptionResponses, unknown, ThrowOnError>({\n url: '/billing/v1/subscription',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * CancelSubscription\n */\nexport const billingV1SubscriptionServiceCancelSubscription = <ThrowOnError extends boolean = false>(options?: Options<BillingV1SubscriptionServiceCancelSubscriptionData, ThrowOnError>) => (options?.client ?? client).post<BillingV1SubscriptionServiceCancelSubscriptionResponses, unknown, ThrowOnError>({ url: '/billing/v1/subscription/cancel', ...options });\n\n/**\n * GetSubscriptionHistory\n */\nexport const billingV1SubscriptionServiceGetSubscriptionHistory = <ThrowOnError extends boolean = false>(options?: Options<BillingV1SubscriptionServiceGetSubscriptionHistoryData, ThrowOnError>) => (options?.client ?? client).get<BillingV1SubscriptionServiceGetSubscriptionHistoryResponses, unknown, ThrowOnError>({ url: '/billing/v1/subscription/history', ...options });\n\n/**\n * ReactivateSubscription\n */\nexport const billingV1SubscriptionServiceReactivateSubscription = <ThrowOnError extends boolean = false>(options?: Options<BillingV1SubscriptionServiceReactivateSubscriptionData, ThrowOnError>) => (options?.client ?? client).post<BillingV1SubscriptionServiceReactivateSubscriptionResponses, unknown, ThrowOnError>({ url: '/billing/v1/subscription/reactivate', ...options });\n\n/**\n * GetBandwidthUsage\n */\nexport const billingV1UsageServiceGetBandwidthUsage = <ThrowOnError extends boolean = false>(options?: Options<BillingV1UsageServiceGetBandwidthUsageData, ThrowOnError>) => (options?.client ?? client).get<BillingV1UsageServiceGetBandwidthUsageResponses, unknown, ThrowOnError>({ url: '/billing/v1/bandwidth-usage', ...options });\n\n/**\n * GetBandwidthUsageHistory\n */\nexport const billingV1UsageServiceGetBandwidthUsageHistory = <ThrowOnError extends boolean = false>(options?: Options<BillingV1UsageServiceGetBandwidthUsageHistoryData, ThrowOnError>) => (options?.client ?? client).get<BillingV1UsageServiceGetBandwidthUsageHistoryResponses, unknown, ThrowOnError>({ url: '/billing/v1/bandwidth-usage/history', ...options });\n\n/**\n * RefreshBandwidthUsage\n */\nexport const billingV1UsageServiceRefreshBandwidthUsage = <ThrowOnError extends boolean = false>(options?: Options<BillingV1UsageServiceRefreshBandwidthUsageData, ThrowOnError>) => (options?.client ?? client).post<BillingV1UsageServiceRefreshBandwidthUsageResponses, unknown, ThrowOnError>({ url: '/billing/v1/bandwidth-usage/refresh', ...options });\n\n/**\n * GetStorageUsage\n */\nexport const billingV1UsageServiceGetStorageUsage = <ThrowOnError extends boolean = false>(options?: Options<BillingV1UsageServiceGetStorageUsageData, ThrowOnError>) => (options?.client ?? client).get<BillingV1UsageServiceGetStorageUsageResponses, unknown, ThrowOnError>({ url: '/billing/v1/storage-usage', ...options });\n\n/**\n * GetStorageUsageHistory\n */\nexport const billingV1UsageServiceGetStorageUsageHistory = <ThrowOnError extends boolean = false>(options?: Options<BillingV1UsageServiceGetStorageUsageHistoryData, ThrowOnError>) => (options?.client ?? client).get<BillingV1UsageServiceGetStorageUsageHistoryResponses, unknown, ThrowOnError>({ url: '/billing/v1/storage-usage/history', ...options });\n\n/**\n * RefreshStorageUsage\n */\nexport const billingV1UsageServiceRefreshStorageUsage = <ThrowOnError extends boolean = false>(options?: Options<BillingV1UsageServiceRefreshStorageUsageData, ThrowOnError>) => (options?.client ?? client).post<BillingV1UsageServiceRefreshStorageUsageResponses, unknown, ThrowOnError>({ url: '/billing/v1/storage-usage/refresh', ...options });\n\n/**\n * ListClientCredentials\n */\nexport const clientauthV1ClientCredentialServiceListClientCredentials = <ThrowOnError extends boolean = false>(options?: Options<ClientauthV1ClientCredentialServiceListClientCredentialsData, ThrowOnError>) => (options?.client ?? client).get<ClientauthV1ClientCredentialServiceListClientCredentialsResponses, unknown, ThrowOnError>({ url: '/platform/clientauth/v1/credentials', ...options });\n\n/**\n * CreateClientCredential\n */\nexport const clientauthV1ClientCredentialServiceCreateClientCredential = <ThrowOnError extends boolean = false>(options: Options<ClientauthV1ClientCredentialServiceCreateClientCredentialData, ThrowOnError>) => (options.client ?? client).post<ClientauthV1ClientCredentialServiceCreateClientCredentialResponses, unknown, ThrowOnError>({\n url: '/platform/clientauth/v1/credentials',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * RevokeClientCredential\n */\nexport const clientauthV1ClientCredentialServiceRevokeClientCredential = <ThrowOnError extends boolean = false>(options: Options<ClientauthV1ClientCredentialServiceRevokeClientCredentialData, ThrowOnError>) => (options.client ?? client).post<ClientauthV1ClientCredentialServiceRevokeClientCredentialResponses, unknown, ThrowOnError>({ url: '/platform/clientauth/v1/credentials/{credential_id}/revoke', ...options });\n\n/**\n * MintClientToken\n */\nexport const clientauthV1ClientCredentialServiceMintClientToken = <ThrowOnError extends boolean = false>(options: Options<ClientauthV1ClientCredentialServiceMintClientTokenData, ThrowOnError>) => (options.client ?? client).post<ClientauthV1ClientCredentialServiceMintClientTokenResponses, unknown, ThrowOnError>({\n url: '/platform/clientauth/v1/token',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListFeeds\n */\nexport const feedsV1FeedServiceListFeeds = <ThrowOnError extends boolean = false>(options: Options<FeedsV1FeedServiceListFeedsData, ThrowOnError>) => (options.client ?? client).get<FeedsV1FeedServiceListFeedsResponses, unknown, ThrowOnError>({ url: '/feeds/v1/projects/{project_id}/feeds', ...options });\n\n/**\n * CreateFeed\n */\nexport const feedsV1FeedServiceCreateFeed = <ThrowOnError extends boolean = false>(options: Options<FeedsV1FeedServiceCreateFeedData, ThrowOnError>) => (options.client ?? client).post<FeedsV1FeedServiceCreateFeedResponses, unknown, ThrowOnError>({\n url: '/feeds/v1/projects/{project_id}/feeds',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteFeed\n */\nexport const feedsV1FeedServiceDeleteFeed = <ThrowOnError extends boolean = false>(options: Options<FeedsV1FeedServiceDeleteFeedData, ThrowOnError>) => (options.client ?? client).delete<FeedsV1FeedServiceDeleteFeedResponses, unknown, ThrowOnError>({ url: '/feeds/v1/projects/{project_id}/feeds/{feed_id}', ...options });\n\n/**\n * GetFeed\n */\nexport const feedsV1FeedServiceGetFeed = <ThrowOnError extends boolean = false>(options: Options<FeedsV1FeedServiceGetFeedData, ThrowOnError>) => (options.client ?? client).get<FeedsV1FeedServiceGetFeedResponses, unknown, ThrowOnError>({ url: '/feeds/v1/projects/{project_id}/feeds/{feed_id}', ...options });\n\n/**\n * UpdateFeed\n */\nexport const feedsV1FeedServiceUpdateFeed = <ThrowOnError extends boolean = false>(options: Options<FeedsV1FeedServiceUpdateFeedData, ThrowOnError>) => (options.client ?? client).put<FeedsV1FeedServiceUpdateFeedResponses, unknown, ThrowOnError>({\n url: '/feeds/v1/projects/{project_id}/feeds/{feed_id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * MarkImageFailed\n */\nexport const imagesV1ImageConversionServiceMarkImageFailed = <ThrowOnError extends boolean = false>(options: Options<ImagesV1ImageConversionServiceMarkImageFailedData, ThrowOnError>) => (options.client ?? client).post<ImagesV1ImageConversionServiceMarkImageFailedResponses, unknown, ThrowOnError>({\n url: '/internal/images/mark-failed',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * MarkImageProcessed\n */\nexport const imagesV1ImageConversionServiceMarkImageProcessed = <ThrowOnError extends boolean = false>(options: Options<ImagesV1ImageConversionServiceMarkImageProcessedData, ThrowOnError>) => (options.client ?? client).post<ImagesV1ImageConversionServiceMarkImageProcessedResponses, unknown, ThrowOnError>({\n url: '/internal/images/mark-processed',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * TakeUnprocessedImage\n */\nexport const imagesV1ImageConversionServiceTakeUnprocessedImage = <ThrowOnError extends boolean = false>(options?: Options<ImagesV1ImageConversionServiceTakeUnprocessedImageData, ThrowOnError>) => (options?.client ?? client).post<ImagesV1ImageConversionServiceTakeUnprocessedImageResponses, unknown, ThrowOnError>({ url: '/internal/images/take', ...options });\n\n/**\n * GetImage\n */\nexport const imagesV1ImageServiceGetImage = <ThrowOnError extends boolean = false>(options: Options<ImagesV1ImageServiceGetImageData, ThrowOnError>) => (options.client ?? client).get<ImagesV1ImageServiceGetImageResponses, unknown, ThrowOnError>({ url: '/media/v1/images/{image_id}', ...options });\n\n/**\n * ListImages\n */\nexport const imagesV1ImageServiceListImages = <ThrowOnError extends boolean = false>(options: Options<ImagesV1ImageServiceListImagesData, ThrowOnError>) => (options.client ?? client).get<ImagesV1ImageServiceListImagesResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/images', ...options });\n\n/**\n * CreateImageUpload\n */\nexport const imagesV1ImageServiceCreateImageUpload = <ThrowOnError extends boolean = false>(options: Options<ImagesV1ImageServiceCreateImageUploadData, ThrowOnError>) => (options.client ?? client).post<ImagesV1ImageServiceCreateImageUploadResponses, unknown, ThrowOnError>({\n url: '/media/v1/projects/{project_id}/images/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteImage\n */\nexport const imagesV1ImageServiceDeleteImage = <ThrowOnError extends boolean = false>(options: Options<ImagesV1ImageServiceDeleteImageData, ThrowOnError>) => (options.client ?? client).delete<ImagesV1ImageServiceDeleteImageResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/images/{image_id}', ...options });\n\n/**\n * UpdateImageVisibility\n */\nexport const imagesV1ImageServiceUpdateImageVisibility = <ThrowOnError extends boolean = false>(options: Options<ImagesV1ImageServiceUpdateImageVisibilityData, ThrowOnError>) => (options.client ?? client).patch<ImagesV1ImageServiceUpdateImageVisibilityResponses, unknown, ThrowOnError>({\n url: '/media/v1/projects/{project_id}/images/{image_id}/visibility',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * RefreshPlatformToken\n */\nexport const platformauthV1PlatformAuthServiceRefreshPlatformToken = <ThrowOnError extends boolean = false>(options: Options<PlatformauthV1PlatformAuthServiceRefreshPlatformTokenData, ThrowOnError>) => (options.client ?? client).post<PlatformauthV1PlatformAuthServiceRefreshPlatformTokenResponses, unknown, ThrowOnError>({\n url: '/platform/auth/v1/refresh',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ExchangeAPIKey\n */\nexport const platformauthV1PlatformAuthServiceExchangeApiKey = <ThrowOnError extends boolean = false>(options: Options<PlatformauthV1PlatformAuthServiceExchangeApiKeyData, ThrowOnError>) => (options.client ?? client).post<PlatformauthV1PlatformAuthServiceExchangeApiKeyResponses, unknown, ThrowOnError>({\n url: '/platform/auth/v1/token',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPosts\n */\nexport const postsV1PostServiceListPosts3 = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceListPosts3Data, ThrowOnError>) => (options.client ?? client).get<PostsV1PostServiceListPosts3Responses, unknown, ThrowOnError>({ url: '/posts/v1/feeds/{feed_id}', ...options });\n\n/**\n * ListPosts\n */\nexport const postsV1PostServiceListPosts4 = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceListPosts4Data, ThrowOnError>) => (options.client ?? client).get<PostsV1PostServiceListPosts4Responses, unknown, ThrowOnError>({ url: '/posts/v1/feeds/{feed_id}/creators/{creator_id}', ...options });\n\n/**\n * GetPost\n */\nexport const postsV1PostServiceGetPost3 = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceGetPost3Data, ThrowOnError>) => (options.client ?? client).get<PostsV1PostServiceGetPost3Responses, unknown, ThrowOnError>({ url: '/posts/v1/feeds/{feed_id}/{post_id}', ...options });\n\n/**\n * ListPosts\n */\nexport const postsV1PostServiceListPosts = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceListPostsData, ThrowOnError>) => (options.client ?? client).get<PostsV1PostServiceListPostsResponses, unknown, ThrowOnError>({ url: '/posts/v1/projects/{project_id}/feeds/{feed_id}/posts', ...options });\n\n/**\n * CreatePost\n */\nexport const postsV1PostServiceCreatePost = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceCreatePostData, ThrowOnError>) => (options.client ?? client).post<PostsV1PostServiceCreatePostResponses, unknown, ThrowOnError>({\n url: '/posts/v1/projects/{project_id}/feeds/{feed_id}/posts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListPosts\n */\nexport const postsV1PostServiceListPosts2 = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceListPosts2Data, ThrowOnError>) => (options.client ?? client).get<PostsV1PostServiceListPosts2Responses, unknown, ThrowOnError>({ url: '/posts/v1/projects/{project_id}/feeds/{feed_id}/posts/creators/{creator_id}', ...options });\n\n/**\n * CreatePostUpload\n */\nexport const postsV1PostServiceCreatePostUpload = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceCreatePostUploadData, ThrowOnError>) => (options.client ?? client).post<PostsV1PostServiceCreatePostUploadResponses, unknown, ThrowOnError>({\n url: '/posts/v1/projects/{project_id}/feeds/{feed_id}/posts/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeletePost\n */\nexport const postsV1PostServiceDeletePost2 = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceDeletePost2Data, ThrowOnError>) => (options.client ?? client).delete<PostsV1PostServiceDeletePost2Responses, unknown, ThrowOnError>({ url: '/posts/v1/projects/{project_id}/feeds/{feed_id}/posts/{post_id}', ...options });\n\n/**\n * GetPost\n */\nexport const postsV1PostServiceGetPost2 = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceGetPost2Data, ThrowOnError>) => (options.client ?? client).get<PostsV1PostServiceGetPost2Responses, unknown, ThrowOnError>({ url: '/posts/v1/projects/{project_id}/feeds/{feed_id}/posts/{post_id}', ...options });\n\n/**\n * DeletePost\n */\nexport const postsV1PostServiceDeletePost = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceDeletePostData, ThrowOnError>) => (options.client ?? client).delete<PostsV1PostServiceDeletePostResponses, unknown, ThrowOnError>({ url: '/posts/v1/projects/{project_id}/posts/{post_id}', ...options });\n\n/**\n * GetPost\n */\nexport const postsV1PostServiceGetPost = <ThrowOnError extends boolean = false>(options: Options<PostsV1PostServiceGetPostData, ThrowOnError>) => (options.client ?? client).get<PostsV1PostServiceGetPostResponses, unknown, ThrowOnError>({ url: '/posts/v1/projects/{project_id}/posts/{post_id}', ...options });\n\n/**\n * ListProjects\n */\nexport const projectV1ProjectServiceListProjects = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceListProjectsData, ThrowOnError>) => (options.client ?? client).get<ProjectV1ProjectServiceListProjectsResponses, unknown, ThrowOnError>({ url: '/organizations/{org_id}/projects/v1', ...options });\n\n/**\n * CreateProject\n */\nexport const projectV1ProjectServiceCreateProject = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceCreateProjectData, ThrowOnError>) => (options.client ?? client).post<ProjectV1ProjectServiceCreateProjectResponses, unknown, ThrowOnError>({\n url: '/organizations/{org_id}/projects/v1',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteProject\n */\nexport const projectV1ProjectServiceDeleteProject = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceDeleteProjectData, ThrowOnError>) => (options.client ?? client).delete<ProjectV1ProjectServiceDeleteProjectResponses, unknown, ThrowOnError>({ url: '/organizations/{org_id}/projects/v1/{project_id}', ...options });\n\n/**\n * GetProject\n */\nexport const projectV1ProjectServiceGetProject = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceGetProjectData, ThrowOnError>) => (options.client ?? client).get<ProjectV1ProjectServiceGetProjectResponses, unknown, ThrowOnError>({ url: '/organizations/{org_id}/projects/v1/{project_id}', ...options });\n\n/**\n * RemoveCustomDomain\n */\nexport const projectV1ProjectServiceRemoveCustomDomain = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceRemoveCustomDomainData, ThrowOnError>) => (options.client ?? client).delete<ProjectV1ProjectServiceRemoveCustomDomainResponses, unknown, ThrowOnError>({ url: '/organizations/{org_id}/projects/v1/{project_id}/custom-domain', ...options });\n\n/**\n * SetCustomDomain\n */\nexport const projectV1ProjectServiceSetCustomDomain = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceSetCustomDomainData, ThrowOnError>) => (options.client ?? client).put<ProjectV1ProjectServiceSetCustomDomainResponses, unknown, ThrowOnError>({\n url: '/organizations/{org_id}/projects/v1/{project_id}/custom-domain',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * MoveProject\n */\nexport const projectV1ProjectServiceMoveProject = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceMoveProjectData, ThrowOnError>) => (options.client ?? client).post<ProjectV1ProjectServiceMoveProjectResponses, unknown, ThrowOnError>({\n url: '/organizations/{org_id}/projects/v1/{project_id}/move',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * UpdateProjectName\n */\nexport const projectV1ProjectServiceUpdateProjectName = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceUpdateProjectNameData, ThrowOnError>) => (options.client ?? client).patch<ProjectV1ProjectServiceUpdateProjectNameResponses, unknown, ThrowOnError>({\n url: '/organizations/{org_id}/projects/v1/{project_id}/name',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * UpdateVideoQuality\n */\nexport const projectV1ProjectServiceUpdateVideoQuality = <ThrowOnError extends boolean = false>(options: Options<ProjectV1ProjectServiceUpdateVideoQualityData, ThrowOnError>) => (options.client ?? client).patch<ProjectV1ProjectServiceUpdateVideoQualityResponses, unknown, ThrowOnError>({\n url: '/organizations/{org_id}/projects/v1/{project_id}/video-quality',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteAllAudioTracks\n */\nexport const videosV1AudioTrackServiceDeleteAllAudioTracks = <ThrowOnError extends boolean = false>(options: Options<VideosV1AudioTrackServiceDeleteAllAudioTracksData, ThrowOnError>) => (options.client ?? client).delete<VideosV1AudioTrackServiceDeleteAllAudioTracksResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/audio-tracks', ...options });\n\n/**\n * DeleteAudioTracksByLanguage\n */\nexport const videosV1AudioTrackServiceDeleteAudioTracksByLanguage = <ThrowOnError extends boolean = false>(options: Options<VideosV1AudioTrackServiceDeleteAudioTracksByLanguageData, ThrowOnError>) => (options.client ?? client).delete<VideosV1AudioTrackServiceDeleteAudioTracksByLanguageResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/audio-tracks/language/{language_code}', ...options });\n\n/**\n * CreateAudioTrackUpload\n */\nexport const videosV1AudioTrackServiceCreateAudioTrackUpload = <ThrowOnError extends boolean = false>(options: Options<VideosV1AudioTrackServiceCreateAudioTrackUploadData, ThrowOnError>) => (options.client ?? client).post<VideosV1AudioTrackServiceCreateAudioTrackUploadResponses, unknown, ThrowOnError>({\n url: '/media/v1/projects/{project_id}/videos/{video_id}/audio-tracks/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteAudioTrack\n */\nexport const videosV1AudioTrackServiceDeleteAudioTrack = <ThrowOnError extends boolean = false>(options: Options<VideosV1AudioTrackServiceDeleteAudioTrackData, ThrowOnError>) => (options.client ?? client).delete<VideosV1AudioTrackServiceDeleteAudioTrackResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/audio-tracks/{track_id}', ...options });\n\n/**\n * ListAudioTracks\n */\nexport const videosV1AudioTrackServiceListAudioTracks = <ThrowOnError extends boolean = false>(options: Options<VideosV1AudioTrackServiceListAudioTracksData, ThrowOnError>) => (options.client ?? client).get<VideosV1AudioTrackServiceListAudioTracksResponses, unknown, ThrowOnError>({ url: '/media/v1/videos/{video_id}/audio-tracks', ...options });\n\n/**\n * UpdateVideoChapters\n */\nexport const videosV1ChapterServiceUpdateVideoChapters = <ThrowOnError extends boolean = false>(options: Options<VideosV1ChapterServiceUpdateVideoChaptersData, ThrowOnError>) => (options.client ?? client).delete<VideosV1ChapterServiceUpdateVideoChaptersResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/chapters', ...options });\n\n/**\n * GetVideoChapters\n */\nexport const videosV1ChapterServiceGetVideoChapters = <ThrowOnError extends boolean = false>(options: Options<VideosV1ChapterServiceGetVideoChaptersData, ThrowOnError>) => (options.client ?? client).get<VideosV1ChapterServiceGetVideoChaptersResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/chapters', ...options });\n\n/**\n * DeleteVideoChapter\n */\nexport const videosV1ChapterServiceDeleteVideoChapter = <ThrowOnError extends boolean = false>(options: Options<VideosV1ChapterServiceDeleteVideoChapterData, ThrowOnError>) => (options.client ?? client).delete<VideosV1ChapterServiceDeleteVideoChapterResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/chapters/{start_time_sec}', ...options });\n\n/**\n * MarkVideoFailed\n */\nexport const videosV1VideoConversionServiceMarkVideoFailed = <ThrowOnError extends boolean = false>(options: Options<VideosV1VideoConversionServiceMarkVideoFailedData, ThrowOnError>) => (options.client ?? client).post<VideosV1VideoConversionServiceMarkVideoFailedResponses, unknown, ThrowOnError>({\n url: '/internal/videos/mark-failed',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * MarkVideoProcessed\n */\nexport const videosV1VideoConversionServiceMarkVideoProcessed = <ThrowOnError extends boolean = false>(options: Options<VideosV1VideoConversionServiceMarkVideoProcessedData, ThrowOnError>) => (options.client ?? client).post<VideosV1VideoConversionServiceMarkVideoProcessedResponses, unknown, ThrowOnError>({\n url: '/internal/videos/mark-processed',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * ListLanguages\n */\nexport const videosV1LanguageServiceListLanguages = <ThrowOnError extends boolean = false>(options?: Options<VideosV1LanguageServiceListLanguagesData, ThrowOnError>) => (options?.client ?? client).get<VideosV1LanguageServiceListLanguagesResponses, unknown, ThrowOnError>({ url: '/media/v1/languages', ...options });\n\n/**\n * DeleteAllSubtitles\n */\nexport const videosV1SubtitleServiceDeleteAllSubtitles = <ThrowOnError extends boolean = false>(options: Options<VideosV1SubtitleServiceDeleteAllSubtitlesData, ThrowOnError>) => (options.client ?? client).delete<VideosV1SubtitleServiceDeleteAllSubtitlesResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/subtitles', ...options });\n\n/**\n * DeleteSubtitlesByLanguage\n */\nexport const videosV1SubtitleServiceDeleteSubtitlesByLanguage = <ThrowOnError extends boolean = false>(options: Options<VideosV1SubtitleServiceDeleteSubtitlesByLanguageData, ThrowOnError>) => (options.client ?? client).delete<VideosV1SubtitleServiceDeleteSubtitlesByLanguageResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/subtitles/language/{language_code}', ...options });\n\n/**\n * CreateSubtitleUpload\n */\nexport const videosV1SubtitleServiceCreateSubtitleUpload = <ThrowOnError extends boolean = false>(options: Options<VideosV1SubtitleServiceCreateSubtitleUploadData, ThrowOnError>) => (options.client ?? client).post<VideosV1SubtitleServiceCreateSubtitleUploadResponses, unknown, ThrowOnError>({\n url: '/media/v1/projects/{project_id}/videos/{video_id}/subtitles/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteSubtitle\n */\nexport const videosV1SubtitleServiceDeleteSubtitle = <ThrowOnError extends boolean = false>(options: Options<VideosV1SubtitleServiceDeleteSubtitleData, ThrowOnError>) => (options.client ?? client).delete<VideosV1SubtitleServiceDeleteSubtitleResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}/subtitles/{subtitle_id}', ...options });\n\n/**\n * ListSubtitles\n */\nexport const videosV1SubtitleServiceListSubtitles = <ThrowOnError extends boolean = false>(options: Options<VideosV1SubtitleServiceListSubtitlesData, ThrowOnError>) => (options.client ?? client).get<VideosV1SubtitleServiceListSubtitlesResponses, unknown, ThrowOnError>({ url: '/media/v1/videos/{video_id}/subtitles', ...options });\n\n/**\n * ListVideos\n */\nexport const videosV1VideoServiceListVideos = <ThrowOnError extends boolean = false>(options: Options<VideosV1VideoServiceListVideosData, ThrowOnError>) => (options.client ?? client).get<VideosV1VideoServiceListVideosResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos', ...options });\n\n/**\n * CreateVideoUpload\n */\nexport const videosV1VideoServiceCreateVideoUpload = <ThrowOnError extends boolean = false>(options: Options<VideosV1VideoServiceCreateVideoUploadData, ThrowOnError>) => (options.client ?? client).post<VideosV1VideoServiceCreateVideoUploadResponses, unknown, ThrowOnError>({\n url: '/media/v1/projects/{project_id}/videos/upload',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * DeleteVideo\n */\nexport const videosV1VideoServiceDeleteVideo = <ThrowOnError extends boolean = false>(options: Options<VideosV1VideoServiceDeleteVideoData, ThrowOnError>) => (options.client ?? client).delete<VideosV1VideoServiceDeleteVideoResponses, unknown, ThrowOnError>({ url: '/media/v1/projects/{project_id}/videos/{video_id}', ...options });\n\n/**\n * UpdateVideoVisibility\n */\nexport const videosV1VideoServiceUpdateVideoVisibility = <ThrowOnError extends boolean = false>(options: Options<VideosV1VideoServiceUpdateVideoVisibilityData, ThrowOnError>) => (options.client ?? client).patch<VideosV1VideoServiceUpdateVideoVisibilityResponses, unknown, ThrowOnError>({\n url: '/media/v1/projects/{project_id}/videos/{video_id}/visibility',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * GetVideo\n */\nexport const videosV1VideoServiceGetVideo = <ThrowOnError extends boolean = false>(options: Options<VideosV1VideoServiceGetVideoData, ThrowOnError>) => (options.client ?? client).get<VideosV1VideoServiceGetVideoResponses, unknown, ThrowOnError>({ url: '/media/v1/videos/{video_id}', ...options });\n","/**\n * Global constants for the auth library\n */\n\n/** Prefix for all cookies and storage keys */\nexport const GLOBAL_PREFIX: string = \"__rixl_auth\";\n\n/** Cookie expiry in days */\nexport const COOKIE_EXPIRY_DAYS: number = 30;\n\n/** OAuth state storage key prefix */\nexport const STATE_STORAGE_KEY_PREFIX: string = GLOBAL_PREFIX + \"_state_\";\n\n/** Social connect storage key prefix */\nexport const SOCIAL_CONNECT_KEY_PREFIX: string = GLOBAL_PREFIX + \"_social_connect_\";\n\ntype HttpStatusMap = Readonly<{\n ACCEPTED: number;\n BAD_REQUEST: number;\n UNAUTHORIZED: number;\n FORBIDDEN: number;\n NOT_FOUND: number;\n CONFLICT: number;\n TOO_MANY_REQUESTS: number;\n INTERNAL_SERVER_ERROR: number;\n}>;\n\n/** HTTP Status codes - only codes actually used in the library */\nexport const HTTP_STATUS: HttpStatusMap = {\n ACCEPTED: 202,\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n CONFLICT: 409,\n TOO_MANY_REQUESTS: 429,\n INTERNAL_SERVER_ERROR: 500,\n} as const;\n","import {STATE_STORAGE_KEY_PREFIX} from \"./constants\";\n\nconst storagePath = (provider: string) => STATE_STORAGE_KEY_PREFIX + provider;\n\n/**\n * Retrieves and validates the OAuth state from session storage\n * @param provider The provider identifier\n * @param state The state value to validate\n * @returns True if the state is valid, false otherwise\n */\nexport function validateOAuthState(provider: string, state: string): boolean {\n const storedState = sessionStorage.getItem(storagePath(provider));\n return storedState === state;\n}\n\n/**\n * Gets or Generates a complete state parameter for OAuth requests\n * @param provider The identifier for the provider (e.g., 'google', 'apple')\n * @returns A state string containing the provider identifier and random data\n */\nexport function getOauthState(provider: string): string {\n return sessionStorage.getItem(storagePath(provider)) ?? generateOauthState(provider);\n}\n\nfunction generateOauthState(provider: string): string {\n const randomPart = crypto.randomUUID();\n const state = `${provider}_${randomPart}`;\n sessionStorage.setItem(storagePath(provider), state);\n return state;\n}\n","/**\n * Generic OAuth provider configuration and utilities\n * This file contains shared logic for all OAuth providers to reduce duplication\n */\n\nimport {atom, type WritableAtom} from \"nanostores\";\nimport {getOauthState} from \"../state\";\nimport {AuthProvider} from \"./types\";\n\n/**\n * Base configuration for OAuth providers\n */\nexport interface OAuthProviderConfig {\n clientId: string;\n scope?: string;\n}\n\n/**\n * OAuth provider metadata\n */\nexport interface OAuthProviderMetadata {\n name: string;\n authBaseUrl: string;\n defaultScopes: string[];\n responseType: string;\n responseMode?: string;\n additionalParams?: Record<string, string>;\n}\n\n/**\n * Configuration for creating an OAuth provider\n */\nexport interface CreateOAuthProviderConfig {\n provider: AuthProvider;\n metadata: OAuthProviderMetadata;\n}\n\n/**\n * Result of creating an OAuth provider\n */\nexport interface OAuthProviderResult {\n config: WritableAtom<OAuthProviderConfig | null>;\n authUrl: WritableAtom<string | null>;\n updateAuthUrl: () => void;\n}\n\n/**\n * Builds an OAuth URL from configuration and metadata\n */\nexport const buildOAuthUrl = (config: OAuthProviderConfig, metadata: OAuthProviderMetadata, state: string): string => {\n const params = new URLSearchParams({\n client_id: config.clientId,\n redirect_uri: window.location.origin,\n response_type: metadata.responseType,\n scope: [...metadata.defaultScopes, ...(config.scope ? [config.scope] : [])].join(\" \"),\n state: state,\n });\n\n // Add nonce for providers that require it\n if (metadata.responseType.includes(\"id_token\")) {\n params.set(\"nonce\", state);\n }\n\n // Add response mode if specified\n if (metadata.responseMode) {\n params.set(\"response_mode\", metadata.responseMode);\n }\n\n // Add any additional provider-specific params\n if (metadata.additionalParams) {\n Object.entries(metadata.additionalParams).forEach(([key, value]) => {\n params.set(key, value);\n });\n }\n\n return `${metadata.authBaseUrl}?${params.toString()}`;\n};\n\n/**\n * Warning helper for unconfigured providers\n */\nexport const warnProviderNotConfigured = (providerName: string): void => {\n console.warn(`${providerName} provider not configured. Check initClient method.`);\n};\n\n/**\n * Creates a reusable OAuth provider with configuration and URL management\n * This factory reduces code duplication across OAuth providers\n */\nexport const createOAuthProvider = ({provider, metadata}: CreateOAuthProviderConfig): OAuthProviderResult => {\n const config = atom<OAuthProviderConfig | null>(null);\n const authUrl = atom<string | null>(null);\n\n const updateAuthUrl = () => {\n const currentConfig = config.get();\n if (!currentConfig) {\n warnProviderNotConfigured(metadata.name);\n authUrl.set(null);\n return;\n }\n\n const state = getOauthState(provider);\n const url = buildOAuthUrl(currentConfig, metadata, state);\n authUrl.set(url);\n };\n\n return {config, authUrl, updateAuthUrl};\n};\n","import {AuthProvider} from \"./types\";\nimport {createOAuthProvider, type OAuthProviderConfig} from \"./oauth\";\nimport type {WritableAtom} from \"nanostores\";\n\n// Provider configuration interface\nexport interface GoogleProviderConfig extends OAuthProviderConfig {}\n\n// Create the Google provider using the factory\nconst googleProvider = createOAuthProvider({\n provider: AuthProvider.GOOGLE,\n metadata: {\n name: \"Google\",\n authBaseUrl: \"https://accounts.google.com/o/oauth2/v2/auth\",\n defaultScopes: [\"openid\", \"https://www.googleapis.com/auth/userinfo.email\", \"https://www.googleapis.com/auth/userinfo.profile\"],\n responseType: \"id_token\",\n },\n});\n\n// Export the configuration atom, auth URL atom, and update function\nexport const googleConfig: WritableAtom<OAuthProviderConfig | null> = googleProvider.config;\nexport const googleAuthUrl: WritableAtom<string | null> = googleProvider.authUrl;\nexport const updateGoogleAuthUrl: () => void = googleProvider.updateAuthUrl;\n","import {AuthProvider} from \"./types\";\nimport {createOAuthProvider, type OAuthProviderConfig} from \"./oauth\";\nimport type {WritableAtom} from \"nanostores\";\n\n// Provider configuration interface\nexport interface MicrosoftProviderConfig extends OAuthProviderConfig {}\n\n// Create the Microsoft provider using the factory\nconst microsoftProvider = createOAuthProvider({\n provider: AuthProvider.MICROSOFT,\n metadata: {\n name: \"Microsoft\",\n authBaseUrl: \"https://login.microsoftonline.com/common/oauth2/v2.0/authorize\",\n defaultScopes: [\"openid\", \"profile\", \"email\"],\n responseType: \"id_token\",\n responseMode: \"fragment\",\n },\n});\n\n// Export the configuration atom, auth URL atom, and update function\nexport const microsoftConfig: WritableAtom<OAuthProviderConfig | null> = microsoftProvider.config;\nexport const microsoftAuthUrl: WritableAtom<string | null> = microsoftProvider.authUrl;\nexport const updateMicrosoftAuthUrl: () => void = microsoftProvider.updateAuthUrl;\n","import {AuthProvider} from \"./types\";\nimport {createOAuthProvider, type OAuthProviderConfig} from \"./oauth\";\nimport type {WritableAtom} from \"nanostores\";\n\n// Provider configuration interface\nexport interface AppleProviderConfig extends OAuthProviderConfig {}\n\n// Create the Apple provider using the factory\nconst appleProvider = createOAuthProvider({\n provider: AuthProvider.APPLE,\n metadata: {\n name: \"Apple\",\n authBaseUrl: \"https://appleid.apple.com/auth/authorize\",\n defaultScopes: [\"openid\"],\n responseType: \"code id_token\",\n responseMode: \"fragment\",\n },\n});\n\n// Export the configuration atom, auth URL atom, and update function\nexport const appleConfig: WritableAtom<OAuthProviderConfig | null> = appleProvider.config;\nexport const appleAuthUrl: WritableAtom<string | null> = appleProvider.authUrl;\nexport const updateAppleAuthUrl: () => void = appleProvider.updateAuthUrl;\n","import {atom, type WritableAtom} from \"nanostores\";\nimport {warnProviderNotConfigured} from \"./oauth\";\n\n// Provider configuration interface\nexport interface TelegramProviderConfig {\n botId: string;\n}\n\n// Store provider configuration\nexport const telegramConfig: WritableAtom<TelegramProviderConfig | null> = atom<TelegramProviderConfig | null>(null);\n\n// Store for Telegram auth URL\nexport const telegramAuthUrl: WritableAtom<string | null> = atom<string | null>(null);\n\n/**\n * Updates the Telegram authentication URL using the configured settings\n */\nexport function updateTelegramAuthUrl(): void {\n const config = telegramConfig.get();\n if (!config) {\n warnProviderNotConfigured(\"Telegram\");\n telegramAuthUrl.set(null);\n return;\n }\n\n const url =\n \"https://oauth.telegram.org/auth?\" +\n `bot_id=${encodeURIComponent(config.botId)}` +\n `&origin=${encodeURIComponent(window.location.origin)}` +\n `&return_to=${encodeURIComponent(window.location.origin + location.pathname)}`;\n\n telegramAuthUrl.set(url);\n}\n","// Initialize urlParams lazily to avoid accessing window during module import\n// This is important for test environments and SSR\nexport const urlParams: URLSearchParams = new URLSearchParams(typeof window !== \"undefined\" ? fromURL(window.location.href) : \"\");\n\nfunction fromURL(urlString: string): string {\n return (\n urlString\n // Replace everything before this first hashtag or question sign.\n .replace(/^[^?#]*[?#]/, \"\")\n // Replace all hashtags and question signs to make it look like some search params.\n .replace(/[?#]/g, \"&\")\n );\n}\n","import {urlParams} from \"../url\";\nimport {validateOAuthState} from \"../state\";\nimport {AuthProvider} from \"./types\";\n\n/**\n * Extracts the provider identifier from a state parameter\n * @param state The state parameter from the OAuth redirect\n * @returns The provider identifier or undefined if not found\n */\nexport function extractProviderFromState(state: string): string | undefined {\n const parts = state.split(\"_\");\n if (parts.length >= 1) {\n return parts[0];\n }\n return undefined;\n}\n\nconst OAUTH_PROVIDERS = [AuthProvider.GOOGLE, AuthProvider.APPLE, AuthProvider.MICROSOFT] as const;\n\n/**\n * Detects the authentication provider from URL parameters\n * @returns The detected authentication provider or undefined if none detected\n */\nexport function detectProvider(): AuthProvider | undefined {\n // Check for Telegram providers first (they have specific parameters)\n if (urlParams.has(AuthProvider.TELEGRAM_MINI_APP)) {\n return AuthProvider.TELEGRAM_MINI_APP;\n }\n if (urlParams.has(AuthProvider.TELEGRAM_WEB)) {\n return AuthProvider.TELEGRAM_WEB;\n }\n\n // Check for OAuth providers via id_token + state\n const id_token = urlParams.get(\"id_token\");\n const state = urlParams.get(\"state\");\n\n if (id_token && state) {\n const providerFromState = extractProviderFromState(state);\n return OAUTH_PROVIDERS.find((p) => providerFromState === p && validateOAuthState(p, state));\n }\n\n return undefined;\n}\n\n/**\n * Gets the authentication token or code from the URL based on the provider\n * @param provider The authentication provider\n * @returns The token or code, or undefined if not found\n */\nexport function getProviderToken(provider: AuthProvider): string | undefined {\n // For Telegram, the token is in a parameter named after the provider\n if (provider === AuthProvider.TELEGRAM_MINI_APP || provider === AuthProvider.TELEGRAM_WEB) {\n return urlParams.get(provider) || undefined;\n }\n\n // For OAuth providers (Google, Apple, Microsoft), the token is in the 'id_token' parameter\n if (provider === AuthProvider.GOOGLE || provider === AuthProvider.APPLE || provider === AuthProvider.MICROSOFT) {\n return urlParams.get(\"id_token\") || undefined;\n }\n\n return undefined;\n}\n","import {authV1TokenServiceRefreshToken} from \"../../generated/sdk.gen\";\nimport {AuthProvider} from \"../providers\";\nimport type {TokenResponse, LimitedScopeTokenResponse} from \"../types\";\n\nexport type {TokenResponse, LimitedScopeTokenResponse};\n\nexport interface RefreshTokenOptions {\n countryCode?: string;\n origin?: string;\n}\n\nexport const refreshTokens = async (\n provider: AuthProvider,\n token: string,\n options?: RefreshTokenOptions\n): Promise<TokenResponse | LimitedScopeTokenResponse> => {\n const {data} = await authV1TokenServiceRefreshToken({\n body: {\n token_type: provider,\n refresh_token: token,\n country_code: options?.countryCode,\n origin: options?.origin,\n },\n throwOnError: true,\n });\n return data as TokenResponse | LimitedScopeTokenResponse;\n};\n","/**\n * Interface for a deferred promise that can be resolved or rejected externally\n */\nexport interface Deferred {\n promise: Promise<void>;\n resolve: () => void;\n reject: (reason?: unknown) => void;\n}\n\n/**\n * Creates a deferred promise that can be resolved or rejected externally\n * @returns A deferred promise object\n */\nexport function createDeferred(): Deferred {\n let resolve!: () => void;\n let reject!: (reason?: unknown) => void;\n\n const promise = new Promise<void>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n return {promise, resolve, reject};\n}\n\n/**\n * Global deferred promise that tracks the initialization status of the auth library\n * This is resolved when initClient is called\n */\nexport const initDeferred: Deferred = createDeferred();\n","export const getAllCookiesStartWith = (startWithKey: string): Partial<Record<string, string>> => {\n // Check if document is available (not in test/SSR environment)\n if (typeof document === \"undefined\") {\n return {};\n }\n\n return document.cookie\n .split(\";\")\n .map((cv) => cv.split(\"=\").map((v) => v.trim()))\n .filter(([key]) => key && key !== startWithKey && key.startsWith(startWithKey))\n .reduce((ac, [key, value]) => Object.assign(ac, {[key!.slice(startWithKey.length + 1)]: value}), {});\n};\n\nimport type {CookieSameSite} from \"../types\";\n\ninterface CookieAttributes {\n expires?: number | Date | undefined;\n path?: string | undefined;\n domain?: string | undefined;\n secure?: boolean | undefined;\n sameSite?: CookieSameSite;\n}\n\nexport function setCookie(name: string, value: string, options?: CookieAttributes): void {\n // Check if document is available\n if (typeof document === \"undefined\") {\n return;\n }\n\n let cookieString = `${encodeName(name)}=${encodeValue(value)}`;\n\n if (options) {\n if (options.expires) {\n if (typeof options.expires === \"number\") {\n const date = new Date();\n date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000); // Convert days to milliseconds\n cookieString += `; expires=${date.toUTCString()}`;\n } else {\n cookieString += `; expires=${options.expires.toUTCString()}`;\n }\n }\n if (options.path) {\n cookieString += `; path=${options.path}`;\n }\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n if (options.secure) {\n cookieString += `; secure`;\n }\n if (options.sameSite) {\n cookieString += `; samesite=${options.sameSite}`;\n }\n }\n\n // Set the cookie\n document.cookie = cookieString;\n}\n\n// Function to delete a cookie\nexport function deleteCookie(name: string): void {\n // Check if document is available\n if (typeof document === \"undefined\") {\n return;\n }\n document.cookie = name + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n}\n\nconst encodeName = (name: string) => encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent);\n\nconst encodeValue = (value: string) =>\n encodeURIComponent(value as string).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);\n","import {deleteCookie, getAllCookiesStartWith, setCookie} from \"./util\";\nimport {GLOBAL_PREFIX, COOKIE_EXPIRY_DAYS} from \"../constants\";\n\nexport const initVals: Partial<Record<string, string>> = getAllCookiesStartWith(GLOBAL_PREFIX);\n\nexport const setStoreCookie = (key: string, value: unknown): void => {\n const expires = new Date();\n expires.setTime(expires.getTime() + COOKIE_EXPIRY_DAYS * 24 * 60 * 60 * 1000);\n\n const cookieKey = `${GLOBAL_PREFIX}_${key}`;\n\n if (!value || value === \"\") {\n deleteCookie(cookieKey);\n return;\n }\n\n const stringValue = typeof value === \"string\" ? value : JSON.stringify(value);\n setCookie(`${GLOBAL_PREFIX}_${key}`, stringValue, {\n expires,\n path: \"/\",\n sameSite: \"Lax\",\n });\n};\n","import {atom, type WritableAtom} from \"nanostores\";\nimport {GLOBAL_PREFIX} from \"./constants\";\nimport type {User} from \"./types\";\n\nconst userPath = GLOBAL_PREFIX + \"_user\";\nconst parseUser = (): User | undefined => {\n // Check if localStorage is available and has proper methods (e.g., in test environments)\n if (typeof localStorage === \"undefined\" || !localStorage || typeof localStorage.getItem !== \"function\") {\n return undefined;\n }\n\n const value = localStorage.getItem(userPath);\n if (value && value != \"undefined\") {\n try {\n return JSON.parse(value);\n } catch (err) {\n console.warn(\"Can't parse user data, error: \", err);\n return undefined;\n }\n }\n return undefined;\n};\n\nexport const user: WritableAtom<User | undefined> = atom<User | undefined>(parseUser());\nuser.subscribe((value) => {\n // Check if localStorage is available and has proper methods\n if (typeof localStorage === \"undefined\" || !localStorage || typeof localStorage.setItem !== \"function\") {\n return;\n }\n\n if (value) {\n localStorage.setItem(userPath, JSON.stringify(value));\n } else {\n localStorage.removeItem(userPath);\n }\n});\n","import {decodeJwt} from \"jose\";\nimport type {User} from \"../types\";\nimport {user} from \"../userStore\";\n\n/**\n * Decodes a JWT token and extracts user information\n * Uses jose library for modern, secure JWT handling\n * @param token The JWT token to decode\n * @returns The decoded user data or undefined if decoding fails\n */\nexport const decodeToken = (token: string): User | undefined => {\n try {\n const decodedUser = decodeJwt(token);\n return {\n id: decodedUser.id as string,\n email: decodedUser.email as string,\n first_name: decodedUser.first_name as string,\n last_name: decodedUser.last_name as string,\n username: decodedUser.username as string,\n image_url: decodedUser.image_url as string,\n language_code: decodedUser.language_code as string,\n org_id: decodedUser.org_id as string,\n };\n } catch (error) {\n // Only log in non-test environments to reduce test noise\n if (process.env.NODE_ENV !== \"test\") {\n console.warn(\"Failed to decode JWT token. Error: \", error);\n }\n return undefined;\n }\n};\n\n/**\n * Decodes a JWT token and sets the user in the store\n * @param token The JWT token to decode\n * @returns True if user was successfully decoded and set, false otherwise\n */\nexport const decodeAndSetUser = (token: string): boolean => {\n const userData = decodeToken(token);\n if (userData) {\n user.set(userData);\n return true;\n }\n return false;\n};\n\n/**\n * Checks if a token is expired based on the expiration timestamp\n * @param expireAt The expiration timestamp in milliseconds\n * @returns True if the token is expired, false otherwise\n */\nexport const isTokenExpired = (expireAt: number | undefined): boolean => {\n if (!expireAt) return true;\n return Date.now() >= expireAt;\n};\n","import {atom, type WritableAtom} from \"nanostores\";\nimport {refreshTokens} from \"./api/refresh-tokens\";\nimport {appleAuthUrl, AuthProvider, detectProvider, googleAuthUrl, telegramAuthUrl, microsoftAuthUrl} from \"./providers\";\nimport {initDeferred} from \"./initialization\";\nimport {initVals, setStoreCookie} from \"./cookie\";\nimport {user} from \"./userStore\";\nimport type {ProviderType} from \"./social/socialConnections\";\nimport {decodeAndSetUser, isTokenExpired} from \"./utils/jwt\";\nimport type {LoginErrorResponse} from \"./auth/types\";\nimport type {RequiresAction} from \"./types\";\n\n// Store for authentication state\nexport const isLogged: WritableAtom<boolean> = atom(initVals[\"isLogged\"] === \"true\" || detectProvider() !== undefined);\nexport const accessToken: WritableAtom<string | undefined> = atom(initVals[\"accessToken\"]);\nexport const refreshToken: WritableAtom<string | undefined> = atom(initVals[\"refreshToken\"]);\nexport const expireAt: WritableAtom<number> = atom(Number(initVals[\"expireAt\"]));\n\n// Store for OAuth/Telegram login errors (403, 409)\nexport const authError: WritableAtom<LoginErrorResponse | null> = atom<LoginErrorResponse | null>(null);\n\n// Store for limited access state (Telegram user without email)\nexport const requiresAction: WritableAtom<RequiresAction> = atom<RequiresAction>((initVals[\"requiresAction\"] as RequiresAction) || null);\nexport const limitedAccessToken: WritableAtom<string | null> = atom<string | null>(initVals[\"limitedAccessToken\"] || null);\n\n// Store the current getToken promise\nlet currentTokenPromise: Promise<string | undefined> | null = null;\n\n/**\n * Reset the current token promise (for testing purposes)\n * @internal\n */\nexport const resetTokenPromise = (): void => {\n currentTokenPromise = null;\n};\n\n// Map providers to their auth URL atoms\nconst PROVIDER_URL_MAP: Partial<Record<ProviderType, WritableAtom<string | null>>> = {\n google: googleAuthUrl,\n apple: appleAuthUrl,\n microsoft: microsoftAuthUrl,\n telegram: telegramAuthUrl,\n};\n\nexport const login = async (provider: ProviderType): Promise<void> => {\n await initDeferred.promise;\n\n const authUrlAtom = PROVIDER_URL_MAP[provider];\n if (!authUrlAtom) {\n throw new Error(`Unsupported provider: ${provider}`);\n }\n\n const authUrl = authUrlAtom.get();\n if (authUrl) {\n window.location.href = authUrl;\n } else {\n throw new Error(`${provider} provider is not configured. Please check your initClient configuration.`);\n }\n};\n\nconst refreshAccessToken = async (refresh: string): Promise<void> => {\n const result = await refreshTokens(AuthProvider.BEARER, refresh);\n // Bearer refresh always returns full tokens (not limited scope)\n if (!(\"requires_action\" in result)) {\n setTokens(result.access_token, result.refresh_token, result.expires_in);\n }\n};\n\nconst ensureValidAccessToken = async (refresh: string): Promise<void> => {\n const currentAccessToken = accessToken.get();\n if (currentAccessToken && !isTokenExpired(expireAt.get())) {\n return;\n }\n\n try {\n await refreshAccessToken(refresh);\n } catch (refreshError) {\n // If refresh fails, we should consider the user logged out\n console.error(\"Token refresh failed in getToken:\", refreshError);\n removeTokens();\n throw refreshError;\n }\n};\n\nexport const getToken = async (): Promise<string | undefined> => {\n // If there's already a getToken operation in progress, return that promise\n if (currentTokenPromise) {\n return currentTokenPromise;\n }\n\n // Create a new promise for the getToken operation\n currentTokenPromise = (async () => {\n try {\n // Wait for the library to be initialized\n await initDeferred.promise;\n\n // Users in limited-access flows should not receive full-scope tokens for protected calls\n if (requiresAction.get()) return undefined;\n\n const currentRefreshToken = refreshToken.get();\n if (!currentRefreshToken) return undefined;\n\n await ensureValidAccessToken(currentRefreshToken);\n\n const token = accessToken.get();\n if (token) {\n decodeAndSetUser(token);\n }\n\n return token;\n } catch (error) {\n console.warn(\"Failed to getToken(). Error: \", error);\n throw error;\n } finally {\n // Clear the promise reference when done\n currentTokenPromise = null;\n }\n })();\n\n return currentTokenPromise;\n};\n/**\n * Sets authentication tokens in the store\n * @param access The access token\n * @param refresh The refresh token\n * @param expiresIn The token expiration time in seconds\n */\nexport const setTokens = (access: string, refresh: string, expiresIn: number): void => {\n accessToken.set(access);\n refreshToken.set(refresh);\n expireAt.set(Date.now() + expiresIn * 1000);\n isLogged.set(true);\n\n // Clear limited access state when full tokens are set\n limitedAccessToken.set(null);\n requiresAction.set(null);\n\n // Clear any previous authentication errors after successful token set\n authError.set(null);\n\n // Decode and set user information\n decodeAndSetUser(access);\n};\n\n/**\n * Removes authentication tokens from the store\n */\nexport const removeTokens = (): void => {\n accessToken.set(\"\");\n refreshToken.set(\"\");\n expireAt.set(0);\n isLogged.set(false);\n user.set(undefined);\n\n // Clear limited access state on logout\n limitedAccessToken.set(null);\n requiresAction.set(null);\n\n // Clear any existing auth errors to ensure a clean logout state\n authError.set(null);\n};\n\n/**\n * Clears the auth error from the store\n */\nexport const clearAuthError = (): void => {\n authError.set(null);\n};\n\n/**\n * Sets limited access state for users requiring additional action (e.g., Telegram users without email)\n * @param token The limited scope access token\n * @param action The required action (e.g., \"add_email\")\n */\nexport const setLimitedAccessState = (token: string, action: RequiresAction): void => {\n limitedAccessToken.set(token);\n requiresAction.set(action);\n authError.set(null); // Clear any previous auth errors\n isLogged.set(true); // User is logged in but with limited scope\n};\n\n/**\n * Clears the limited access state (after email verification completes or user logs out)\n */\nexport const clearLimitedAccessState = (): void => {\n limitedAccessToken.set(null);\n requiresAction.set(null);\n\n // If there are no full tokens, user should no longer be considered logged in\n const hasFullTokens = !!accessToken.get() && !!refreshToken.get();\n if (!hasFullTokens) {\n isLogged.set(false);\n }\n};\n\n// Persist state changes to cookies\nisLogged.subscribe((value) => setStoreCookie(\"isLogged\", value));\naccessToken.subscribe((value) => setStoreCookie(\"accessToken\", value));\nrefreshToken.subscribe((value) => setStoreCookie(\"refreshToken\", value));\nexpireAt.subscribe((value) => setStoreCookie(\"expireAt\", value));\nrequiresAction.subscribe((value) => setStoreCookie(\"requiresAction\", value));\nlimitedAccessToken.subscribe((value) => setStoreCookie(\"limitedAccessToken\", value));\n","import type {HttpMethod} from \"../types\";\n\n/**\n * Configuration for API requests\n */\nexport interface ApiRequestConfig {\n method?: HttpMethod;\n body?: Record<string, unknown> | string;\n headers?: Record<string, string>;\n skipAuth?: boolean;\n retry?: number;\n signal?: AbortSignal;\n}\n\nexport interface ApiErrorContext {\n status: number;\n endpoint: string;\n data?: unknown;\n}\n\n/**\n * Generic API error class - wraps ky's HTTPError for consistency\n */\nexport class ApiError extends Error {\n public status: number;\n public endpoint: string;\n public data?: unknown;\n\n constructor(message: string, ...rest: [number, string?, unknown?] | [ApiErrorContext]) {\n super(message);\n this.name = \"ApiError\";\n\n const firstArg = rest[0];\n if (typeof firstArg === \"number\") {\n this.status = firstArg;\n this.endpoint = rest[1] ?? \"\";\n this.data = rest[2];\n return;\n }\n\n this.status = firstArg.status;\n this.endpoint = firstArg.endpoint;\n this.data = firstArg.data;\n }\n}\n","import {atom, type WritableAtom} from \"nanostores\";\n\n/**\n * Global API base URL store\n */\nexport const apiURL: WritableAtom<string> = atom(\"\");\n","import {client} from \"../../generated/client.gen\";\nimport {apiURL} from \"../api-url\";\nimport {getToken} from \"../authStore\";\nimport {ApiError} from \"./types\";\n\ninterface WireErrorBody {\n error?: string;\n details?: string;\n code?: number;\n}\n\nfunction isWireErrorBody(error: unknown): error is WireErrorBody {\n return typeof error === \"object\" && error !== null;\n}\n\nlet configured = false;\n\nexport function configureSdkClient(): void {\n if (configured) return;\n configured = true;\n\n client.setConfig({baseUrl: apiURL.get()});\n\n apiURL.subscribe((url) => {\n client.setConfig({baseUrl: url});\n });\n\n client.interceptors.request.use(async (request) => {\n if (request.headers.has(\"Authorization\")) {\n return request;\n }\n // The token endpoint authenticates via the refresh token in its body;\n // calling getToken() here would await the very refresh request being sent.\n if (new URL(request.url).pathname.endsWith(\"/auth/v1/token\")) {\n return request;\n }\n const token = await getToken();\n if (token) {\n request.headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return request;\n });\n\n // The generated client throws the parsed error body (a plain object or string),\n // which defeats every instanceof-based status mapping downstream. Wrap it into\n // an ApiError carrying the HTTP status so apiCall error maps and consumers can\n // handle errors by code.\n client.interceptors.error.use((error, response, request) => {\n if (error instanceof Error) {\n return error;\n }\n const body = isWireErrorBody(error) ? error : undefined;\n const status = response?.status ?? body?.code ?? 0;\n const message = body?.error || body?.details || (typeof error === \"string\" ? error : \"Request failed\");\n const endpoint = request ? new URL(request.url).pathname : \"\";\n return new ApiError(message, status, endpoint, error);\n });\n}\n","import {SOCIAL_CONNECT_KEY_PREFIX} from \"../constants\";\n\nconst socialStoragePath = (provider: string) => SOCIAL_CONNECT_KEY_PREFIX + provider;\n\n/**\n * Sets a flag indicating that a social provider connection is being attempted\n * @param provider The provider identifier\n */\nexport function setSocialConnectAttempt(provider: string): void {\n sessionStorage.setItem(socialStoragePath(provider), \"true\");\n}\n\n/**\n * Checks if there's a pending social provider connection attempt\n * @param provider The provider identifier\n * @returns True if there's a pending connection attempt, false otherwise\n */\nexport function hasSocialConnectAttempt(provider: string): boolean {\n return sessionStorage.getItem(socialStoragePath(provider)) === \"true\";\n}\n\n/**\n * Clears the social provider connection attempt flag\n * @param provider The provider identifier\n */\nexport function clearSocialConnectAttempt(provider: string): void {\n sessionStorage.removeItem(socialStoragePath(provider));\n}\n","import {ApiError} from \"./types\";\nexport {ApiError};\n\n/**\n * Helper to create error functions - reduces bundle size by reusing error creation logic\n */\nexport const err =\n (message: string): (() => Error) =>\n () =>\n new Error(message);\n\ntype CommonErrors = {\n unauthorized: () => Error;\n badRequest: () => Error;\n notFound: () => Error;\n conflict: () => Error;\n forbidden: () => Error;\n tooManyRequests: () => Error;\n};\n\n/** Reusable error handlers for common cases - reduces repetitive error messages */\nexport const commonErrors: CommonErrors = {\n unauthorized: err(\"User is not authorized\"),\n badRequest: err(\"Bad request\"),\n notFound: err(\"Not found\"),\n conflict: err(\"Resource already exists\"),\n forbidden: err(\"Forbidden\"),\n tooManyRequests: err(\"Too many requests\"),\n};\n\n/**\n * Standard error handler for API errors with custom status code handling\n */\nexport const handleApiError = (error: unknown, statusHandlers: Record<number, () => Error>): never => {\n if (error instanceof ApiError) {\n const handler = statusHandlers[error.status];\n if (handler) {\n throw new ApiError(handler().message, error.status, error.endpoint, error.data);\n }\n throw error;\n }\n throw error;\n};\n","import {initDeferred} from \"../initialization\";\nimport {handleApiError} from \"./error-handlers\";\n\n/**\n * Generic helper for API calls to handle initialization and error handling\n * @param fn The async function to execute\n * @param errorMap A map of status codes to error functions\n * @returns The result of the function execution\n */\nexport const apiCall = async <T>(fn: () => Promise<T>, errorMap: Record<number, () => Error> = {}): Promise<T> => {\n await initDeferred.promise;\n\n try {\n return await fn();\n } catch (error) {\n return handleApiError(error, errorMap);\n }\n};\n","import {setTokens} from \"../authStore\";\n\ninterface TokenFields {\n access_token?: string;\n refresh_token?: string;\n expires_in?: number | string;\n}\n\n// Persists tokens when a response carries all three fields.\nexport function persistTokens(data: TokenFields | null | undefined): boolean {\n const tokens = data ?? {};\n if (tokens.access_token && tokens.refresh_token && tokens.expires_in) {\n setTokens(tokens.access_token, tokens.refresh_token, Number(tokens.expires_in));\n return true;\n }\n return false;\n}\n","import * as v from \"valibot\";\n\n/**\n * 🛡️ INPUT VALIDATION UTILITY\n * Validates data before API calls and throws user-friendly errors\n */\nexport const validateInput = <T>(schema: v.BaseSchema<unknown, T, v.BaseIssue<unknown>>, data: unknown): T => {\n try {\n return v.parse(schema, data);\n } catch (error) {\n if (error instanceof v.ValiError) {\n const firstError = error.issues[0];\n throw new Error(firstError.message);\n }\n throw error;\n }\n};\n\nexport const EmailSchema = v.pipe(\n v.string(\"Email must be text\"),\n v.email(\"Please enter a valid email address\"),\n v.minLength(1, \"Email is required\")\n);\n\nexport const PasswordSchema = v.pipe(\n v.string(\"Password must be text\"),\n v.minLength(8, \"Password must be at least 8 characters long\"),\n v.regex(/[A-Z]/, \"Password must contain at least one uppercase letter\"),\n v.regex(/[a-z]/, \"Password must contain at least one lowercase letter\"),\n v.regex(/[0-9]/, \"Password must contain at least one number\")\n);\n\n/**\n * Username validation schema\n * - Must be 4-24 characters\n * - Only letters, numbers, underscores, and periods\n */\nexport const UsernameSchema = v.pipe(\n v.string(\"Username must be text\"),\n v.minLength(4, \"Username must be 4-24 characters long\"),\n v.maxLength(24, \"Username must be 4-24 characters long\"),\n v.regex(/^[a-z0-9_.]+$/, \"Username can only contain lowercase letters, numbers, dots and underscores\")\n);\n\n/**\n * Name validation schema\n * - Must be 1-30 characters\n */\nexport const NameSchema = v.pipe(\n v.string(\"Name must be text\"),\n v.minLength(1, \"Name must be 1-30 characters long\"),\n v.maxLength(30, \"Name must be 1-30 characters long\")\n);\n\n/**\n * Domain validation schema\n * - Must be lowercase\n * - Must contain at least one dot\n * - Only alphanumeric characters, hyphens, and dots\n * - Cannot start or end with hyphen in any part\n */\nexport const DomainSchema = v.pipe(\n v.string(\"Domain must be text\"),\n v.trim(),\n v.toLowerCase(),\n v.minLength(1, \"Domain is required\"),\n v.regex(\n /^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,\n \"Invalid domain format. Please enter a valid domain like company.com\"\n )\n);\n","import * as v from \"valibot\";\nimport {EmailSchema, PasswordSchema} from \"./base\";\n\nexport const EmailAuthRequestSchema = v.object({\n email: EmailSchema,\n password: PasswordSchema,\n});\n\n// Matches auth.v1.RegisterRequest: email, password, country_code?, subscribe_to_blog?\nexport const RegisterRequestSchema = v.object({\n email: EmailSchema,\n password: PasswordSchema,\n country_code: v.optional(v.string()),\n subscribe_to_blog: v.optional(v.boolean()),\n});\n\nexport const ResetPasswordRequestSchema = v.object({\n token: v.string(),\n new_password: PasswordSchema,\n});\n\nexport const LoginOTPVerifyRequestSchema = v.object({\n code: v.pipe(\n v.string(\"OTP code must be text\"),\n v.maxLength(8, \"OTP code must be at most 6 characters\"),\n v.regex(/^\\d+$/, \"OTP code must contain only numbers\")\n ),\n session_id: v.pipe(v.string(\"Session ID must be text\"), v.minLength(1, \"Session ID is required\")),\n});\n\nexport const ResendEmailRequestSchema = v.object({\n email: EmailSchema,\n});\n\nexport const ChangeEmailRequestSchema = v.object({\n new_email: EmailSchema,\n});\n\nexport const verifyEmailChangeRequestSchema = v.object({\n code: v.pipe(\n v.string(\"OTP code must be text\"),\n v.minLength(6, \"OTP code must be at least 6 characters\"),\n v.maxLength(8, \"OTP code must be at most 8 characters\"),\n v.regex(/^\\d+$/, \"OTP code must contain only numbers\")\n ),\n new_email: v.optional(EmailSchema),\n type: v.union([v.literal(\"verification\"), v.literal(\"email_change\")]),\n verification_id: v.string(\"Verification ID is required\"),\n});\n\n/**\n * Social provider schemas\n */\nexport const ConnectProviderSchema = v.object({\n provider: v.pipe(v.string(\"Provider must be text\"), v.minLength(1, \"Provider is required\")),\n token: v.pipe(v.string(\"Token must be text\"), v.minLength(1, \"Token is required\")),\n});\n\n/**\n * OTP verification schema (for user OTP operations)\n */\nexport const VerifyOTPCodeSchema = v.object({\n code: v.pipe(\n v.string(\"OTP code must be text\"),\n v.minLength(6, \"OTP code must be at least 6 characters\"),\n v.regex(/^\\d+$/, \"OTP code must contain only numbers\")\n ),\n});\n","import {\n authV1ProvidersServiceListProviders,\n authV1ProvidersServiceConnectProvider,\n authV1ProvidersServiceDisconnectProvider,\n} from \"../../generated/sdk.gen\";\nimport type {AuthV1ExternalAccountProvider} from \"../../generated/types.gen\";\nimport {login} from \"../authStore\";\nimport {AuthProvider} from \"../providers/types\";\nimport {setSocialConnectAttempt} from \"./socialState\";\nimport {apiCall} from \"../api/utils\";\nimport {persistTokens} from \"../api/tokens\";\nimport {HTTP_STATUS} from \"../constants\";\nimport {validateInput} from \"../validation/base\";\nimport {ConnectProviderSchema} from \"../validation/auth\";\n\nexport type ProviderType = \"google\" | \"apple\" | \"microsoft\" | \"facebook\" | \"telegram\";\n\nexport interface ConnectedProvider {\n provider: ProviderType;\n username?: string;\n first_name?: string;\n last_name?: string;\n email_address?: string;\n image_url?: string;\n}\n\nconst PROVIDER_TO_PROTO: Record<ProviderType, AuthV1ExternalAccountProvider> = {\n google: \"EXTERNAL_ACCOUNT_PROVIDER_GOOGLE\",\n apple: \"EXTERNAL_ACCOUNT_PROVIDER_APPLE\",\n microsoft: \"EXTERNAL_ACCOUNT_PROVIDER_MICROSOFT\",\n facebook: \"EXTERNAL_ACCOUNT_PROVIDER_FACEBOOK\",\n telegram: \"EXTERNAL_ACCOUNT_PROVIDER_TELEGRAM\",\n};\n\nconst PROVIDER_FROM_PROTO: Partial<Record<AuthV1ExternalAccountProvider, ProviderType>> = {\n EXTERNAL_ACCOUNT_PROVIDER_GOOGLE: \"google\",\n EXTERNAL_ACCOUNT_PROVIDER_APPLE: \"apple\",\n EXTERNAL_ACCOUNT_PROVIDER_MICROSOFT: \"microsoft\",\n EXTERNAL_ACCOUNT_PROVIDER_FACEBOOK: \"facebook\",\n EXTERNAL_ACCOUNT_PROVIDER_TELEGRAM: \"telegram\",\n};\n\n// Both Telegram login flavors connect the same external account.\nconst normalizeProviderType = (provider: string): ProviderType =>\n provider === AuthProvider.TELEGRAM_WEB || provider === AuthProvider.TELEGRAM_MINI_APP ? \"telegram\" : (provider as ProviderType);\n\nconst toProtoProvider = (provider: ProviderType): AuthV1ExternalAccountProvider => {\n const proto = PROVIDER_TO_PROTO[provider];\n if (!proto) {\n throw new Error(`Unknown provider: ${provider}`);\n }\n return proto;\n};\n\nexport const listSocials = async (): Promise<ConnectedProvider[]> => {\n return apiCall(\n async () => {\n const {data} = await authV1ProvidersServiceListProviders({\n throwOnError: true,\n });\n return (data.providers ?? []).flatMap((p) => {\n const provider = p.provider ? PROVIDER_FROM_PROTO[p.provider] : undefined;\n if (!provider) return [];\n return [\n {\n provider,\n username: p.username,\n first_name: p.first_name,\n last_name: p.last_name,\n email_address: p.email_address,\n image_url: p.image_url,\n },\n ];\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list providers!\"),\n }\n );\n};\n\nexport const connectSocialInternal = async (provider: string, token: string): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(ConnectProviderSchema, {provider, token});\n const {data} = await authV1ProvidersServiceConnectProvider({\n body: {\n provider: toProtoProvider(normalizeProviderType(requestBody.provider)),\n token: requestBody.token,\n },\n throwOnError: true,\n });\n persistTokens(data);\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to connect provider!\"),\n }\n );\n};\n\nexport const disconnectSocial = async (provider: ProviderType): Promise<void> => {\n return apiCall(\n async () => {\n await authV1ProvidersServiceDisconnectProvider({\n path: {provider: toProtoProvider(provider)},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to disconnect provider!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Provider not found!\"),\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Cannot disconnect the last social provider!\"),\n }\n );\n};\n\nexport const connectSocial = (provider: ProviderType): void => {\n setSocialConnectAttempt(provider);\n login(provider);\n};\n","import ky, {type KyInstance} from \"ky\";\nimport {apiURL} from \"../api-url\";\n\n/**\n * Token refresh function type - will be set during initialization\n */\nexport type TokenRefreshFn = () => Promise<string | undefined>;\nlet tokenRefreshFunction: TokenRefreshFn | null = null;\n\n/**\n * Mutex to prevent multiple simultaneous token refreshes\n */\nlet tokenRefreshPromise: Promise<string | undefined> | null = null;\n\n/**\n * Resets the API client state - primarily for testing\n */\nexport const resetApiClient = (): void => {\n tokenRefreshFunction = null;\n tokenRefreshPromise = null;\n};\n\n/**\n * Sets the token refresh function used by the API client\n * This should be called during initialization\n */\nexport const setTokenRefreshFunction = (fn?: TokenRefreshFn): void => {\n tokenRefreshFunction = fn ?? null;\n};\n\n/**\n * Refreshes the token with mutex locking to prevent race conditions\n */\nexport const refreshTokenWithLock = async (): Promise<string | undefined> => {\n // If a refresh is already in progress, wait for it\n if (tokenRefreshPromise) {\n return tokenRefreshPromise;\n }\n\n // Start a new refresh\n tokenRefreshPromise = (async () => {\n try {\n if (!tokenRefreshFunction) {\n throw new Error(\"Token refresh function not initialized\");\n }\n return await tokenRefreshFunction();\n } finally {\n // Clear the promise when done\n tokenRefreshPromise = null;\n }\n })();\n\n return tokenRefreshPromise;\n};\n\n/**\n * Creates a ky instance with proper auth handling and retry logic\n */\nexport const createKyInstance = (getTokenFn: () => Promise<string | undefined>, skipAuth = false): KyInstance => {\n return ky.create({\n prefix: apiURL.get(),\n retry: {\n limit: 2,\n methods: [\"get\", \"put\", \"head\", \"delete\", \"options\", \"trace\"],\n // Removed 413 (Payload Too Large) as retrying won't fix it\n statusCodes: [408, 429, 500, 502, 503, 504],\n // Don't retry 401 automatically - we handle it in hooks\n },\n hooks: {\n beforeRequest: [\n async ({request}) => {\n if (!skipAuth) {\n const token = await getTokenFn();\n if (token) {\n request.headers.set(\"Authorization\", `Bearer ${token}`);\n }\n }\n },\n ],\n afterResponse: [\n async ({request, response}) => {\n // Handle 401 Unauthorized - attempt token refresh and retry\n if (response.status === 401 && !skipAuth) {\n try {\n // Refresh the token (with mutex lock)\n const newToken = await refreshTokenWithLock();\n\n if (newToken) {\n // Update the request with new token\n request.headers.set(\"Authorization\", `Bearer ${newToken}`);\n // Retry the request with ky's built-in retry mechanism\n return ky(request);\n }\n } catch (error) {\n // If refresh fails, let the 401 propagate\n console.warn(\"Token refresh failed:\", error);\n }\n }\n\n return response;\n },\n ],\n },\n });\n};\n","let loginRedirectUrl: string | undefined;\n\nexport const setLoginRedirectUrl = (url?: string): void => {\n loginRedirectUrl = url;\n};\n\nexport const redirectToLogin = (): void => {\n if (!loginRedirectUrl) return;\n if (typeof window === \"undefined\") return;\n\n window.location.href = loginRedirectUrl;\n};\n","import {getToken, refreshToken, authError, setTokens, setLimitedAccessState, clearLimitedAccessState} from \"./authStore\";\nimport {ApiError} from \"./api/types\";\nimport {HTTP_STATUS} from \"./constants\";\nimport type {TokenResponse, LimitedScopeTokenResponse, RequiresAction} from \"./types\";\nimport type {LoginErrorCode} from \"./auth/types\";\nimport {apiURL} from \"./api-url\";\nimport {refreshTokens} from \"./api/refresh-tokens\";\nimport {initDeferred} from \"./initialization\";\nimport {configureSdkClient} from \"./api/sdk-client\";\nimport {\n type GoogleProviderConfig,\n type TelegramProviderConfig,\n type AppleProviderConfig,\n type MicrosoftProviderConfig,\n googleConfig,\n telegramConfig,\n appleConfig,\n microsoftConfig,\n updateGoogleAuthUrl,\n updateAppleAuthUrl,\n updateMicrosoftAuthUrl,\n updateTelegramAuthUrl,\n getProviderToken,\n detectProvider,\n AuthProvider,\n} from \"./providers\";\nimport {clearSocialConnectAttempt, hasSocialConnectAttempt} from \"./social/socialState\";\nimport {connectSocialInternal} from \"./social/socialConnections\";\nimport {setTokenRefreshFunction} from \"./api/client-core\";\nimport {setLoginRedirectUrl} from \"./authConfig\";\n\n/**\n * Configuration options for the authentication client\n */\nexport interface AuthClientConfig {\n /** The base URL of the authentication API */\n apiUrl: string;\n /** Optional login redirect URL used when auth expires */\n loginRedirectUrl?: string;\n /** Google authentication provider configuration (optional) */\n googleProvider?: GoogleProviderConfig;\n /** Apple authentication provider configuration (optional) */\n appleProvider?: AppleProviderConfig;\n /** Microsoft authentication provider configuration (optional) */\n microsoftProvider?: MicrosoftProviderConfig;\n /** Telegram authentication provider configuration (optional) */\n telegramProvider?: TelegramProviderConfig;\n}\n\n/**\n * Initializes the authentication client with the provided configuration\n * @param config The authentication client configuration\n * @returns A promise that resolves to the current access token (if available)\n */\nexport const initClient = async (config: AuthClientConfig): Promise<string | undefined> => {\n await initConfig(config);\n await initPage();\n initDeferred.resolve();\n await initSocials();\n return getToken();\n};\n\nconst initConfig = async (config: AuthClientConfig) => {\n // Set the API URL\n apiURL.set(config.apiUrl);\n configureSdkClient();\n setLoginRedirectUrl(config.loginRedirectUrl);\n\n // Initialize the token refresh function for ky client\n // This enables automatic 401 retry with token refresh\n setTokenRefreshFunction(async () => {\n const currentRefreshToken = refreshToken.get();\n if (currentRefreshToken) {\n const result = await refreshTokens(AuthProvider.BEARER, currentRefreshToken);\n // Store new tokens if full response (not limited scope)\n if (result && !(\"requires_action\" in result)) {\n setTokens(result.access_token, result.refresh_token, result.expires_in);\n }\n return getToken();\n }\n return undefined;\n });\n\n // Set provider configurations and update auth URLs\n if (config.googleProvider) {\n googleConfig.set(config.googleProvider);\n updateGoogleAuthUrl();\n }\n\n if (config.appleProvider) {\n appleConfig.set(config.appleProvider);\n updateAppleAuthUrl();\n }\n\n if (config.microsoftProvider) {\n microsoftConfig.set(config.microsoftProvider);\n updateMicrosoftAuthUrl();\n }\n\n if (config.telegramProvider) {\n telegramConfig.set(config.telegramProvider);\n updateTelegramAuthUrl();\n }\n};\n\nconst isLimitedScopeTokenResponse = (result: TokenResponse | LimitedScopeTokenResponse): result is LimitedScopeTokenResponse => {\n return \"requires_action\" in result;\n};\n\nconst applyTokenExchangeResult = (result: TokenResponse | LimitedScopeTokenResponse): void => {\n if (isLimitedScopeTokenResponse(result)) {\n setLimitedAccessState(result.access_token, result.requires_action as RequiresAction);\n return;\n }\n\n const fullResult = result as TokenResponse;\n setTokens(fullResult.access_token, fullResult.refresh_token, fullResult.expires_in);\n};\n\nconst setAuthErrorAndClear = (error_code: LoginErrorCode, message: string, email: string): true => {\n clearLimitedAccessState();\n authError.set({error_code, message, email});\n return true;\n};\n\nconst extractAuthErrorInfo = (error: ApiError): {error: string; description: string; email: string} => {\n const data = error.data as {error?: string; error_description?: string; email?: string} | undefined;\n return {\n error: data?.error ?? \"\",\n description: data?.error_description ?? error.message ?? \"\",\n email: data?.email ?? \"\",\n };\n};\n\nconst handleInitPageApiError = (error: ApiError): boolean => {\n const info = extractAuthErrorInfo(error);\n\n if (error.status === HTTP_STATUS.BAD_REQUEST && info.error === \"invalid_grant\") {\n return setAuthErrorAndClear(\"email_not_verified\", info.description, info.email);\n }\n\n if (error.status === HTTP_STATUS.CONFLICT) {\n return setAuthErrorAndClear(\"provider_conflict\", info.description, info.email);\n }\n\n return false;\n};\n\nconst exchangeProviderToken = async (provider: AuthProvider, token: string): Promise<void> => {\n const result = await refreshTokens(provider, token);\n applyTokenExchangeResult(result);\n};\n\nconst initPage = async () => {\n const provider = detectProvider();\n if (!provider) return undefined;\n\n const token = getProviderToken(provider);\n if (!token) return undefined;\n\n try {\n await exchangeProviderToken(provider, token);\n } catch (error) {\n if (error instanceof ApiError && handleInitPageApiError(error)) {\n return;\n }\n throw error;\n }\n};\n\nconst initSocials = async () => {\n const provider = detectProvider();\n if (!provider) return undefined;\n\n const token = getProviderToken(provider);\n if (!token) return undefined;\n\n // Check if this is a social connection attempt\n try {\n if (hasSocialConnectAttempt(provider)) {\n await connectSocialInternal(provider, token);\n }\n } finally {\n clearSocialConnectAttempt(provider);\n }\n};\n","import {client} from \"./generated/client.gen\";\nimport {initClient} from \"./auth/init\";\nimport type {GoogleProviderConfig, AppleProviderConfig, MicrosoftProviderConfig, TelegramProviderConfig} from \"./auth/providers\";\n\nexport interface AuthConfig {\n loginRedirectUrl?: string;\n google?: GoogleProviderConfig;\n apple?: AppleProviderConfig;\n microsoft?: MicrosoftProviderConfig;\n telegram?: TelegramProviderConfig;\n}\n\nexport interface ConnectConfig {\n baseUrl: string;\n apiKey?: string;\n auth?: AuthConfig;\n}\n\nexport const connect = async (config: ConnectConfig): Promise<string | undefined> => {\n client.setConfig({baseUrl: config.baseUrl});\n\n if (config.apiKey) {\n client.interceptors.request.use(async (request) => {\n request.headers.set(\"X-API-Key\", config.apiKey!);\n return request;\n });\n }\n\n if (config.auth) {\n return initClient({\n apiUrl: config.baseUrl,\n loginRedirectUrl: config.auth.loginRedirectUrl,\n googleProvider: config.auth.google,\n appleProvider: config.auth.apple,\n microsoftProvider: config.auth.microsoft,\n telegramProvider: config.auth.telegram,\n });\n }\n\n return undefined;\n};\n","import {authV1TokenServiceLogout} from \"../../generated/sdk.gen\";\nimport {refreshToken, removeTokens} from \"../authStore\";\n\nexport const logout = async (): Promise<void> => {\n try {\n await authV1TokenServiceLogout({body: {token: refreshToken.get()}, throwOnError: true});\n } catch {\n // Revocation failed — still clear local state\n } finally {\n removeTokens();\n }\n};\n","// Membership role and state types\nexport enum MembershipRole {\n OWNER = \"owner\",\n ADMIN = \"admin\",\n MEMBER = \"member\",\n}\n\nexport type AssignableRole = MembershipRole.ADMIN | MembershipRole.MEMBER;\n\nexport enum MembershipState {\n ACCEPTED = \"accepted\",\n PENDING = \"pending\",\n DECLINED = \"declined\",\n ACCEPT = \"accept\",\n DECLINE = \"decline\",\n}\n\nexport interface Common {\n id: string;\n user_id: string;\n org_id: string;\n role: MembershipRole;\n state: MembershipState;\n joined_at?: string;\n}\n\nexport interface Membership extends Common {\n organization_username: string;\n organization_first_name: string;\n organization_last_name: string;\n}\n\nexport interface Member extends Common {\n username: string;\n first_name: string;\n last_name: string;\n invitation_expires_at?: string;\n}\n\nexport interface MembershipApplication extends Common {\n organization_username: string;\n organization_first_name: string;\n organization_last_name: string;\n created_at?: string;\n decided_at?: string;\n invitation_expires_at?: string;\n}\n\n// Invite member request\nexport interface InviteMemberRequest {\n username: string;\n role: AssignableRole;\n}\n\n// Resend Invite member request\nexport interface ResendInviteMemberRequest {\n user_id: string;\n}\n\n// Update member role request\nexport interface UpdateMemberRoleRequest {\n role: AssignableRole;\n}\n","import type {\n AuthV1Membership,\n AuthV1MembershipApplication,\n AuthV1MembershipApplicationState,\n AuthV1OrgMember,\n AuthV1MembershipRole,\n AuthV1MembershipState,\n} from \"../../generated/types.gen\";\nimport {MembershipRole, MembershipState, type Membership, type Member, type MembershipApplication} from \"./types\";\n\nconst ROLE_FROM_PROTO: Record<AuthV1MembershipRole, MembershipRole> = {\n MEMBERSHIP_ROLE_UNSPECIFIED: MembershipRole.MEMBER,\n MEMBERSHIP_ROLE_OWNER: MembershipRole.OWNER,\n MEMBERSHIP_ROLE_ADMIN: MembershipRole.ADMIN,\n MEMBERSHIP_ROLE_MEMBER: MembershipRole.MEMBER,\n};\n\nconst STATE_FROM_PROTO: Record<AuthV1MembershipState, MembershipState> = {\n MEMBERSHIP_STATE_UNSPECIFIED: MembershipState.PENDING,\n MEMBERSHIP_STATE_ACTIVE: MembershipState.ACCEPTED,\n MEMBERSHIP_STATE_SUSPENDED: MembershipState.PENDING,\n MEMBERSHIP_STATE_LEFT: MembershipState.DECLINED,\n MEMBERSHIP_STATE_REMOVED: MembershipState.DECLINED,\n};\n\nconst APPLICATION_STATE_FROM_PROTO: Record<AuthV1MembershipApplicationState, MembershipState> = {\n MEMBERSHIP_APPLICATION_STATE_UNSPECIFIED: MembershipState.PENDING,\n MEMBERSHIP_APPLICATION_STATE_PENDING: MembershipState.PENDING,\n MEMBERSHIP_APPLICATION_STATE_APPROVED: MembershipState.ACCEPTED,\n MEMBERSHIP_APPLICATION_STATE_DECLINED: MembershipState.DECLINED,\n MEMBERSHIP_APPLICATION_STATE_CANCELLED: MembershipState.DECLINED,\n};\n\nfunction toRole(role?: AuthV1MembershipRole): MembershipRole {\n return ROLE_FROM_PROTO[role ?? \"MEMBERSHIP_ROLE_UNSPECIFIED\"];\n}\n\nfunction toState(state?: AuthV1MembershipState): MembershipState {\n return STATE_FROM_PROTO[state ?? \"MEMBERSHIP_STATE_UNSPECIFIED\"];\n}\n\nfunction toApplicationState(state?: AuthV1MembershipApplicationState): MembershipState {\n return APPLICATION_STATE_FROM_PROTO[state ?? \"MEMBERSHIP_APPLICATION_STATE_UNSPECIFIED\"];\n}\n\nexport function toMembership(m: AuthV1Membership): Membership {\n return {\n id: m.id ?? \"\",\n user_id: m.user_id ?? \"\",\n org_id: m.org_id ?? \"\",\n role: toRole(m.role),\n state: toState(m.state),\n joined_at: m.joined_at,\n organization_username: m.organization_username ?? \"\",\n organization_first_name: m.organization_first_name ?? \"\",\n organization_last_name: m.organization_last_name ?? \"\",\n };\n}\n\nexport function toMembershipApplication(m: AuthV1MembershipApplication): MembershipApplication {\n return {\n id: m.id ?? \"\",\n user_id: m.user_id ?? \"\",\n org_id: m.org_id ?? \"\",\n role: toRole(m.role),\n state: toApplicationState(m.state),\n organization_username: m.organization_username ?? \"\",\n organization_first_name: m.organization_first_name ?? \"\",\n organization_last_name: m.organization_last_name ?? \"\",\n created_at: m.created_at,\n decided_at: m.decided_at,\n invitation_expires_at: m.invitation_expires_at,\n };\n}\n\nexport function toMember(m: AuthV1OrgMember): Member {\n return {\n id: m.id ?? \"\",\n user_id: m.user_id ?? \"\",\n org_id: m.org_id ?? \"\",\n role: toRole(m.role),\n state: toState(m.state),\n joined_at: m.joined_at,\n username: m.username ?? \"\",\n first_name: m.first_name ?? \"\",\n last_name: m.last_name ?? \"\",\n invitation_expires_at: m.invitation_expires_at,\n };\n}\n","import {\n authV1MembershipServiceListMemberships,\n authV1MembershipServiceListMembershipApplications,\n authV1MembershipServiceListOrganizationMembers,\n} from \"../../generated/sdk.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport {toMembership, toMembershipApplication, toMember} from \"./mappers\";\nimport type {PaginationParams} from \"../pagination-utils\";\nimport type {Membership, MembershipApplication, Member} from \"./types\";\n\nexport const listActiveMemberships = async (paginationParams?: PaginationParams): Promise<Membership[]> => {\n return apiCall(\n async () => {\n const {data} = await authV1MembershipServiceListMemberships({\n query: {state: \"MEMBERSHIP_STATE_ACTIVE\", limit: 25, ...paginationParams},\n throwOnError: true,\n });\n\n return (data.memberships || []).map(toMembership);\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list memberships!\"),\n }\n );\n};\n\nexport const listPendingMemberships = async (paginationParams?: PaginationParams): Promise<MembershipApplication[]> => {\n return apiCall(\n async () => {\n const {data} = await authV1MembershipServiceListMembershipApplications({\n query: {state: \"MEMBERSHIP_APPLICATION_STATE_PENDING\", limit: 25, ...paginationParams},\n throwOnError: true,\n });\n\n return (data.applications || []).map(toMembershipApplication);\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list membership applications!\"),\n }\n );\n};\n\nexport const listOrganizationMembers = async (orgId: string, paginationParams?: PaginationParams): Promise<Member[]> => {\n return apiCall(\n async () => {\n const {data} = await authV1MembershipServiceListOrganizationMembers({\n path: {\"user.org_id\": orgId},\n query: paginationParams,\n throwOnError: true,\n });\n\n return (data.members || []).map(toMember);\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to list organization members!\"),\n }\n );\n};\n","import * as v from \"valibot\";\nimport {UsernameSchema} from \"./base\";\n\n/**\n * Membership state schemas\n */\nexport const AcceptDeclineMembershipSchema = v.object({\n state: v.union([v.literal(\"accepted\"), v.literal(\"declined\")]),\n});\n\nexport const PublicInviteResponseSchema = v.object({\n state: v.union([v.literal(\"accept\"), v.literal(\"decline\")]),\n});\n\n/**\n * Membership management schemas\n */\nexport const InviteMemberSchema = v.object({\n username: UsernameSchema,\n role: v.union([v.literal(\"admin\"), v.literal(\"member\")]),\n});\n\nexport const UpdateMemberRoleSchema = v.object({\n role: v.union([v.literal(\"admin\"), v.literal(\"member\")]),\n});\n\nexport const ResendInviteSchema = v.object({\n user_id: v.pipe(v.string(\"User ID must be text\"), v.minLength(1, \"User ID is required\")),\n});\n","import {\n authV1MembershipServiceInviteMember,\n authV1MembershipServiceResendInvitation,\n authV1MembershipServiceAcceptInvitation,\n authV1MembershipServiceDeclineInvitation,\n authV1MembershipServiceUpdateMembershipState,\n} from \"../../generated/sdk.gen\";\nimport type {AuthV1MembershipRole, AuthV1MembershipApplicationState} from \"../../generated/types.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport {MembershipState, type AssignableRole} from \"./types\";\nimport {validateInput} from \"../validation/base\";\nimport {AcceptDeclineMembershipSchema, PublicInviteResponseSchema, InviteMemberSchema, ResendInviteSchema} from \"../validation/membership\";\n\nconst ROLE_TO_PROTO: Record<AssignableRole, AuthV1MembershipRole> = {\n admin: \"MEMBERSHIP_ROLE_ADMIN\",\n member: \"MEMBERSHIP_ROLE_MEMBER\",\n};\n\nconst STATE_TO_PROTO: Record<\"accepted\" | \"declined\", AuthV1MembershipApplicationState> = {\n accepted: \"MEMBERSHIP_APPLICATION_STATE_APPROVED\",\n declined: \"MEMBERSHIP_APPLICATION_STATE_DECLINED\",\n};\n\nexport const inviteMember = async (orgId: string, username: string, role: AssignableRole): Promise<void> => {\n return apiCall(\n async () => {\n const validated = validateInput(InviteMemberSchema, {username, role});\n await authV1MembershipServiceInviteMember({\n path: {\"user.org_id\": orgId},\n body: {username: validated.username, role: ROLE_TO_PROTO[validated.role]},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to invite members!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(`User with username ${username} not found!`),\n [HTTP_STATUS.CONFLICT]: () => new Error(`User with username ${username} already exists!`),\n }\n );\n};\n\nexport const resendMemberInvite = async (orgId: string, userId: string): Promise<void> => {\n return apiCall(\n async () => {\n validateInput(ResendInviteSchema, {user_id: userId});\n await authV1MembershipServiceResendInvitation({\n path: {\"user.org_id\": orgId},\n body: {user_id: userId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to invite members!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(`User with ID ${userId} not found!`),\n [HTTP_STATUS.CONFLICT]: () => new Error(`User with ID ${userId} already exists!`),\n }\n );\n};\n\nexport const respondToInvitation = async (orgId: string, state: MembershipState.ACCEPTED | MembershipState.DECLINED): Promise<void> => {\n return apiCall(\n async () => {\n const validated = validateInput(AcceptDeclineMembershipSchema, {state}) as {state: \"accepted\" | \"declined\"};\n\n await authV1MembershipServiceUpdateMembershipState({\n path: {\"user.org_id\": orgId},\n body: {state: STATE_TO_PROTO[validated.state]},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to accept/decline an Invite!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Invite not found!\"),\n }\n );\n};\n\nexport const publicRespondToInvitation = async (token: string, state: MembershipState.ACCEPT | MembershipState.DECLINE): Promise<void> => {\n return apiCall(\n async () => {\n validateInput(PublicInviteResponseSchema, {state});\n\n if (state === MembershipState.ACCEPT) {\n await authV1MembershipServiceAcceptInvitation({\n path: {token},\n throwOnError: true,\n });\n } else {\n await authV1MembershipServiceDeclineInvitation({\n path: {token},\n throwOnError: true,\n });\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid invitation token!\"),\n }\n );\n};\n","import {\n authV1MembershipServiceUpdateActiveMembership,\n authV1MembershipServiceUpdateMemberRole,\n authV1MembershipServiceRemoveMember,\n authV1MembershipServiceLeaveOrganization,\n} from \"../../generated/sdk.gen\";\nimport type {AuthV1MembershipRole} from \"../../generated/types.gen\";\nimport {accessToken, expireAt, getToken} from \"../authStore\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {AssignableRole} from \"./types\";\nimport {validateInput} from \"../validation/base\";\nimport {UpdateMemberRoleSchema} from \"../validation/membership\";\n\nconst ROLE_TO_PROTO: Record<AssignableRole, AuthV1MembershipRole> = {\n admin: \"MEMBERSHIP_ROLE_ADMIN\",\n member: \"MEMBERSHIP_ROLE_MEMBER\",\n};\n\nexport const updateActiveMembership = async (orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n await authV1MembershipServiceUpdateActiveMembership({\n body: {user: {org_id: orgId}},\n throwOnError: true,\n });\n accessToken.set(undefined);\n expireAt.set(0);\n await getToken();\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update active membership!\"),\n }\n );\n};\n\nexport const updateMemberRole = async (orgId: string, userId: string, role: AssignableRole): Promise<void> => {\n return apiCall(\n async () => {\n const validated = validateInput(UpdateMemberRoleSchema, {role});\n await authV1MembershipServiceUpdateMemberRole({\n path: {\"user.org_id\": orgId, user_id: userId},\n body: {role: ROLE_TO_PROTO[validated.role]},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update member roles!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Member not found!\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Cannot change role of organization owner!\"),\n }\n );\n};\n\nexport const deleteMember = async (orgId: string, userId: string): Promise<void> => {\n return apiCall(\n async () => {\n await authV1MembershipServiceRemoveMember({\n path: {\"user.org_id\": orgId, user_id: userId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to delete members!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Member not found!\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Cannot remove organization owner!\"),\n }\n );\n};\n\nexport const leaveOrganization = async (orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n await authV1MembershipServiceLeaveOrganization({\n path: {org_id: orgId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to leave an organization!\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Cannot leave organization as you are the last member!\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Organization not found!\"),\n }\n );\n};\n","import * as v from \"valibot\";\nimport {UsernameSchema, NameSchema} from \"./base\";\n\n/**\n * Update username request schema\n */\nexport const UpdateUsernameSchema = v.object({\n username: UsernameSchema,\n});\n\n/**\n * Update name request schema\n */\nexport const UpdateNameSchema = v.object({\n full_name: NameSchema,\n});\n","import {\n authV1UserServiceUpdateName,\n authV1UserServiceUpdateUsername,\n authV1UserServiceGetUserInfo,\n authV1OtpServiceGetOtpStatus,\n authV1OtpServiceSetupOtp,\n authV1OtpServiceVerifyOtp,\n authV1OtpServiceDeleteOtp,\n} from \"../generated/sdk.gen\";\nimport {validateInput} from \"./validation/base\";\nimport {UpdateNameSchema, UpdateUsernameSchema} from \"./validation/user\";\nimport {VerifyOTPCodeSchema} from \"./validation/auth\";\nimport {apiCall} from \"./api/utils\";\nimport {persistTokens} from \"./api/tokens\";\nimport {HTTP_STATUS} from \"./constants\";\n\nexport interface OTPSetup {\n qrCodeUrl: string;\n secret: string;\n}\n\nexport interface OTPStatusResponse {\n is_setup: boolean;\n created_at?: string;\n message?: string;\n}\n\nexport interface OTPVerification {\n access_token?: string;\n refresh_token?: string;\n expires_in?: number;\n}\n\nexport interface UserInfo {\n id: string;\n username: string;\n email: string;\n email_verified: boolean;\n first_name: string;\n last_name: string;\n image_url: string;\n language_code: string;\n country_code: string;\n active_org_id: string;\n}\n\nexport const getUserInfo = async (userId?: string): Promise<UserInfo> => {\n return apiCall(\n async () => {\n const {data} = await authV1UserServiceGetUserInfo({\n query: userId ? {user_id: userId} : undefined,\n throwOnError: true,\n });\n\n return {\n id: data.id ?? \"\",\n username: data.username ?? \"\",\n email: data.email ?? \"\",\n email_verified: data.email_verified ?? false,\n first_name: data.first_name ?? \"\",\n last_name: data.last_name ?? \"\",\n image_url: data.image_url ?? \"\",\n language_code: data.language_code ?? \"\",\n country_code: data.country_code ?? \"\",\n active_org_id: data.active_org_id ?? \"\",\n };\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const updateFullName = async (fullName: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(UpdateNameSchema, {full_name: fullName});\n await authV1UserServiceUpdateName({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid name format\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update name\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Name can only be changed once every 7 days.\"),\n }\n );\n};\n\nexport const updateUsername = async (username: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(UpdateUsernameSchema, {username});\n await authV1UserServiceUpdateUsername({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid username format\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to update username\"),\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Username is not unique. Choose another one!\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Username can only be changed once every 30 days.\"),\n }\n );\n};\n\nexport const getOTPStatus = async (): Promise<OTPStatusResponse> => {\n return apiCall(\n async () => {\n const {data} = await authV1OtpServiceGetOtpStatus({\n throwOnError: true,\n });\n\n return {\n is_setup: data.is_setup ?? false,\n created_at: data.created_at,\n };\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const setupUserOTP = async (): Promise<OTPSetup> => {\n return apiCall(\n async () => {\n const {data} = await authV1OtpServiceSetupOtp({\n throwOnError: true,\n });\n\n return {\n qrCodeUrl: data.qr_code_url || \"\",\n secret: data.secret || \"\",\n };\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const verifyUserOTP = async (code: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedBody = validateInput(VerifyOTPCodeSchema, {code});\n const {data} = await authV1OtpServiceVerifyOtp({\n body: validatedBody,\n throwOnError: true,\n });\n\n persistTokens(data);\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid request format\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const deleteUserOTP = async (): Promise<void> => {\n return apiCall(\n async () => {\n await authV1OtpServiceDeleteOtp({\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n","import {authV1MembershipServiceUpdateOrgName, authV1MembershipServiceUpdateOrgUsername} from \"../generated/sdk.gen\";\nimport {apiCall} from \"./api/utils\";\nimport {HTTP_STATUS} from \"./constants\";\nimport {validateInput} from \"./validation/base\";\nimport {UpdateNameSchema, UpdateUsernameSchema} from \"./validation/user\";\n\nexport const updateOrgName = async (fullName: string, orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(UpdateNameSchema, {full_name: fullName});\n await authV1MembershipServiceUpdateOrgName({\n path: {\"user.org_id\": orgId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Only owners and admins can update name\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Name can only be changed once every 7 days.\"),\n }\n );\n};\n\nexport const updateOrgUsername = async (username: string, orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(UpdateUsernameSchema, {username});\n await authV1MembershipServiceUpdateOrgUsername({\n path: {\"user.org_id\": orgId},\n body: requestBody,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Only owners and admins can update username\"),\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Username is not unique. Choose another one!\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Username can only be changed once every 30 days.\"),\n }\n );\n};\n","import {authV1EmailServiceLogin, authV1OtpServiceVerifyTotpForLogin} from \"../../generated/sdk.gen\";\nimport {EmailAuthRequestSchema, LoginOTPVerifyRequestSchema} from \"../validation/auth\";\nimport {validateInput} from \"../validation/base\";\nimport {ApiError} from \"../api/error-handlers\";\nimport {apiCall} from \"../api/utils\";\nimport {persistTokens} from \"../api/tokens\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {LoginErrorResponse, TwoFactorResponse} from \"./types\";\nimport type {AuthV1LoginResponse} from \"../../generated/types.gen\";\n\nexport const loginWithEmail = async (email: string, password: string): Promise<void | TwoFactorResponse | LoginErrorResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(EmailAuthRequestSchema, {email, password});\n try {\n const {data} = await authV1EmailServiceLogin({\n body: validatedInput,\n throwOnError: true,\n });\n\n return handleLoginResponse(data, email);\n } catch (error) {\n return handleLoginError(error, email);\n }\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Incorrect email or password\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Account access is restricted\"),\n }\n );\n};\n\nexport const verifyTOTPForLogin = async (code: string, session_id: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(LoginOTPVerifyRequestSchema, {code, session_id});\n const {data} = await authV1OtpServiceVerifyTotpForLogin({\n body: validatedInput,\n throwOnError: true,\n });\n\n persistTokens(data);\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Invalid or expired TOTP code\"),\n }\n );\n};\n\nfunction handleLoginResponse(data: AuthV1LoginResponse, email: string): void | TwoFactorResponse | LoginErrorResponse {\n switch (data.status) {\n case \"ok\":\n persistTokens(data);\n return;\n case \"2fa_required\":\n return {\n session_id: data.session_id!,\n email: email,\n // The wire renders auth methods as lowercase \"passkey\" | \"totp\", which\n // the generated AuthV1AuthMethod enum does not model.\n authentication: data.authentication as unknown as TwoFactorResponse[\"authentication\"],\n passkey_options: data.passkey_options,\n };\n case \"email_not_verified\":\n return {\n error_code: \"email_not_verified\",\n message: \"Email not verified\",\n email: data.email || email,\n };\n default:\n return;\n }\n}\n\ninterface ApiErrorBody {\n error?: string;\n details?: string;\n code?: number;\n}\n\nfunction handleLoginError(error: unknown, email: string): TwoFactorResponse | LoginErrorResponse | never {\n // The client error interceptor wraps thrown bodies into ApiError; tests and\n // legacy paths may still surface the raw body directly.\n const body = error instanceof ApiError ? error.data : error;\n if (isApiErrorBody(body)) {\n if (body.error === \"email_not_verified\") {\n return {\n error_code: \"email_not_verified\",\n message: body.details || \"Email not verified\",\n email,\n };\n }\n if (body.error === \"provider_conflict\") {\n return {\n error_code: \"provider_conflict\",\n message: body.details || \"Email registered with different provider\",\n email,\n };\n }\n if (error instanceof ApiError) {\n throw error;\n }\n throw new ApiError(body.error || \"Login failed\", body.code || 500, \"/auth/v1/login\", body);\n }\n throw error;\n}\n\nfunction isApiErrorBody(error: unknown): error is ApiErrorBody {\n return typeof error === \"object\" && error !== null && \"error\" in error;\n}\n","import {authV1EmailServiceRegister, authV1EmailServiceResendVerification} from \"../../generated/sdk.gen\";\nimport {validateInput} from \"../validation/base\";\nimport {RegisterRequestSchema, ResendEmailRequestSchema} from \"../validation/auth\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {RegistrationResponse, VerificationSentResponse} from \"./types\";\n\nexport const registerWithEmail = async (\n email: string,\n password: string,\n subscribeToBlog?: boolean,\n countryCode?: string\n): Promise<void | RegistrationResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(RegisterRequestSchema, {\n email,\n password,\n country_code: countryCode,\n subscribe_to_blog: subscribeToBlog,\n });\n const {data} = await authV1EmailServiceRegister({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Registration successful\",\n verification_id: data.verification_id,\n email_verification_sent: data.email_verification_sent,\n user_id: data.user_id,\n };\n }\n },\n {\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Email address is already registered\"),\n }\n );\n};\n\nexport const resendEmailVerificationCode = async (email: string): Promise<void | VerificationSentResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResendEmailRequestSchema, {email});\n const {data} = await authV1EmailServiceResendVerification({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Verification code resent\",\n verification_id: data.verification_id,\n code_sent: data.code_sent,\n };\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid email or validation error\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - rate limit exceeded\"),\n }\n );\n};\n","import {authV1EmailServiceSendPasswordReset, authV1EmailServiceResetPassword} from \"../../generated/sdk.gen\";\nimport {ResendEmailRequestSchema, ResetPasswordRequestSchema} from \"../validation/auth\";\nimport {validateInput} from \"../validation/base\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\n\nexport const sendPasswordResetEmail = async (email: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResendEmailRequestSchema, {email});\n await authV1EmailServiceSendPasswordReset({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Bad request - invalid email or validation error\"),\n }\n );\n};\n\nexport const confirmPasswordReset = async (token: string, password: string): Promise<void> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResetPasswordRequestSchema, {\n token: token,\n new_password: password,\n });\n await authV1EmailServiceResetPassword({\n body: validatedInput,\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Bad request - invalid token or password\"),\n }\n );\n};\n","import {\n authV1EmailServiceInitiateEmailChange,\n authV1EmailServiceAddEmail,\n authV1EmailServiceVerifyEmail,\n authV1EmailServiceGetUserEmailStatus,\n} from \"../../generated/sdk.gen\";\nimport {ChangeEmailRequestSchema, ResendEmailRequestSchema, verifyEmailChangeRequestSchema} from \"../validation/auth\";\nimport {validateInput} from \"../validation/base\";\nimport {apiCall} from \"../api/utils\";\nimport {persistTokens} from \"../api/tokens\";\nimport {HTTP_STATUS} from \"../constants\";\nimport type {VerificationSentResponse, VerifyEmailResponse, VerifyStatusResponse} from \"./types\";\nimport type {EmailVerificationType} from \"../types\";\n\nexport const initiateEmailChange = async (email: string): Promise<void | VerificationSentResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ChangeEmailRequestSchema, {new_email: email});\n const {data} = await authV1EmailServiceInitiateEmailChange({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Verification code sent\",\n verification_id: data.verification_id,\n can_resend_at: data.can_resend_at,\n code_sent: data.code_sent,\n };\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid email or email already in use\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Unauthorized - invalid or missing token\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - please try again later\"),\n }\n );\n};\n\nexport const addEmail = async (email: string): Promise<void | VerificationSentResponse> => {\n return apiCall(\n async () => {\n const validatedInput = validateInput(ResendEmailRequestSchema, {email});\n const {data} = await authV1EmailServiceAddEmail({\n body: validatedInput,\n throwOnError: true,\n });\n\n if (data.verification_id) {\n return {\n message: data.message || \"Verification code sent\",\n verification_id: data.verification_id,\n can_resend_at: data.can_resend_at,\n code_sent: data.code_sent,\n };\n }\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid email address\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Session expired - please login again\"),\n [HTTP_STATUS.CONFLICT]: () => new Error(\"Email address is already in use\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - please try again later\"),\n }\n );\n};\n\nexport interface VerifyEmailWithCodeParams {\n code: string;\n type: EmailVerificationType;\n verification_id: string;\n new_email: string;\n}\n\nconst normalizeVerifyEmailArgs = (\n args: [VerifyEmailWithCodeParams] | [string, EmailVerificationType, string, string]\n): VerifyEmailWithCodeParams => {\n if (isLegacyVerifyEmailArgs(args)) {\n const [code, type, verification_id, new_email] = args;\n return {code, type, verification_id, new_email};\n }\n\n return args[0];\n};\n\nconst isLegacyVerifyEmailArgs = (\n args: [VerifyEmailWithCodeParams] | [string, EmailVerificationType, string, string]\n): args is [string, EmailVerificationType, string, string] => typeof args[0] === \"string\";\n\nexport const verifyEmailWithCode = async (\n ...args: [VerifyEmailWithCodeParams] | [string, EmailVerificationType, string, string]\n): Promise<void | VerifyEmailResponse> => {\n return apiCall(\n async () => {\n const payload = normalizeVerifyEmailArgs(args);\n\n validateInput(verifyEmailChangeRequestSchema, payload);\n const {data} = await authV1EmailServiceVerifyEmail({\n body: {code: payload.code, verification_id: payload.verification_id},\n throwOnError: true,\n });\n\n const tokens = data.tokens;\n persistTokens(tokens);\n\n return {\n email: data.email || \"\",\n message: data.message || \"Email verified\",\n verified: data.verified || false,\n tokens: tokens\n ? {\n access_token: tokens.access_token!,\n refresh_token: tokens.refresh_token!,\n expires_in: Number(tokens.expires_in!),\n }\n : undefined,\n };\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid code or verification ID\"),\n }\n );\n};\n\nexport const getEmailVerificationStatus = async (): Promise<void | VerifyStatusResponse> => {\n return apiCall(\n async () => {\n const {data} = await authV1EmailServiceGetUserEmailStatus({\n throwOnError: true,\n });\n\n return {\n email: data.email || \"\",\n has_email: data.has_email ?? false,\n verified: data.verified || false,\n };\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Unauthorized - invalid or missing token\"),\n }\n );\n};\n","import * as v from \"valibot\";\nimport {DomainSchema} from \"./base\";\n\n/**\n * Add domain request schema\n */\nexport const AddDomainSchema = v.object({\n domain: DomainSchema,\n});\n\n/**\n * Update auto-join setting schema\n */\nexport const UpdateAutoJoinSchema = v.object({\n enabled: v.boolean(\"Auto-join setting must be a boolean\"),\n});\n","export enum DomainStatus {\n PENDING = \"pending\",\n VERIFIED = \"verified\",\n EXPIRED = \"expired\",\n}\n\nexport interface DomainResponse {\n present?: boolean;\n id: string;\n domain: string;\n status: DomainStatus;\n verification_token?: string;\n expires_at?: string;\n verified_at?: string;\n auto_join?: boolean;\n}\n\nexport interface AddDomainRequest {\n domain: string;\n}\n\nexport interface UpdateAutoJoinRequest {\n enabled: boolean;\n}\n\nexport interface AutoJoinSetting {\n enabled: boolean;\n present?: boolean;\n}\n","import type {AuthV1DomainResponse, AuthV1AutoJoinSetting} from \"../../generated/types.gen\";\nimport {DomainStatus, type DomainResponse, type AutoJoinSetting} from \"./types\";\n\n// DomainStatus is a nested oneOf (pending | verified) plus a shared auto_join\n// flag; flatten it into the library's DomainResponse.\nexport function toDomainResponse(data: AuthV1DomainResponse): DomainResponse {\n const status = data.status;\n const verified = status && \"verified\" in status ? status.verified : undefined;\n const pending = status && \"pending\" in status ? status.pending : undefined;\n return {\n present: data.present,\n id: data.id ?? \"\",\n domain: data.domain ?? \"\",\n status: verified ? DomainStatus.VERIFIED : DomainStatus.PENDING,\n verification_token: pending?.verification_token,\n expires_at: pending?.expires_at,\n verified_at: verified?.verified_at,\n auto_join: status?.auto_join,\n };\n}\n\nexport function toAutoJoinSetting(data: AuthV1AutoJoinSetting): AutoJoinSetting {\n return {\n enabled: data.enabled ?? false,\n present: data.present,\n };\n}\n","import {\n authV1DomainServiceGetDomainStatus,\n authV1DomainServiceCreateDomainVerification,\n authV1DomainServiceCheckDomainVerification,\n authV1DomainServiceSetDomainAutoJoin,\n authV1DomainServiceRemoveDomain,\n} from \"../../generated/sdk.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\nimport {validateInput} from \"../validation/base\";\nimport {AddDomainSchema, UpdateAutoJoinSchema} from \"../validation/domain\";\nimport {toDomainResponse, toAutoJoinSetting} from \"./mappers\";\nimport type {DomainResponse, AutoJoinSetting} from \"./types\";\n\nexport * from \"./types\";\n\nexport const getDomainStatus = async (orgId: string): Promise<DomainResponse | null> => {\n return apiCall(\n async () => {\n try {\n const {data} = await authV1DomainServiceGetDomainStatus({\n path: {org_id: orgId},\n throwOnError: true,\n });\n return toDomainResponse(data);\n } catch (error: any) {\n if (error?.code === HTTP_STATUS.NOT_FOUND) {\n return null;\n }\n throw error;\n }\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to view domain settings\"),\n }\n );\n};\n\nexport const initiateDomainVerification = async (orgId: string, domain: string): Promise<DomainResponse> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(AddDomainSchema, {domain});\n const {data} = await authV1DomainServiceCreateDomainVerification({\n path: {\"user.org_id\": orgId},\n body: requestBody,\n throwOnError: true,\n });\n return toDomainResponse(data);\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid domain format or public domains like gmail.com are not allowed\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to configure domain settings\"),\n }\n );\n};\n\nexport const checkDomainVerification = async (orgId: string): Promise<DomainResponse> => {\n return apiCall(\n async () => {\n const {data} = await authV1DomainServiceCheckDomainVerification({\n path: {org_id: orgId},\n throwOnError: true,\n });\n return toDomainResponse(data);\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to check domain verification\"),\n }\n );\n};\n\nexport const updateAutoJoin = async (orgId: string, enabled: boolean): Promise<AutoJoinSetting> => {\n return apiCall(\n async () => {\n const requestBody = validateInput(UpdateAutoJoinSchema, {enabled});\n const {data} = await authV1DomainServiceSetDomainAutoJoin({\n path: {\"user.org_id\": orgId},\n body: requestBody,\n throwOnError: true,\n });\n return toAutoJoinSetting(data);\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to update auto-join settings\"),\n }\n );\n};\n\nexport const removeDomain = async (orgId: string): Promise<void> => {\n return apiCall(\n async () => {\n await authV1DomainServiceRemoveDomain({\n path: {org_id: orgId},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Not authorized to remove domain\"),\n }\n );\n};\n","import {\n authV1BlogServiceGetBlogSubscription,\n authV1BlogServiceSubscribeBlog,\n authV1BlogServiceUnsubscribeBlog,\n} from \"../../generated/sdk.gen\";\nimport {apiCall} from \"../api/utils\";\nimport {HTTP_STATUS} from \"../constants\";\n\nexport interface BlogSubscriptionStatus {\n subscribed: boolean;\n subscribed_at?: string;\n}\n\nconst BLOG_SUBSCRIPTION_ERRORS = {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"User is not authorized to manage blog subscription\"),\n [HTTP_STATUS.FORBIDDEN]: () => new Error(\"Account is inactive\"),\n [HTTP_STATUS.TOO_MANY_REQUESTS]: () => new Error(\"Too many requests - please try again later\"),\n};\n\nexport const getBlogSubscriptionStatus = async (): Promise<BlogSubscriptionStatus> => {\n return apiCall(async () => {\n const {data} = await authV1BlogServiceGetBlogSubscription({\n throwOnError: true,\n });\n return {\n subscribed: data.subscribed ?? false,\n subscribed_at: data.subscribed_at,\n };\n }, BLOG_SUBSCRIPTION_ERRORS);\n};\n\nexport const subscribeToBlog = async (): Promise<void> => {\n return apiCall(\n async () => {\n await authV1BlogServiceSubscribeBlog({\n throwOnError: true,\n });\n },\n {\n ...BLOG_SUBSCRIPTION_ERRORS,\n [HTTP_STATUS.INTERNAL_SERVER_ERROR]: () => new Error(\"Failed to subscribe to blog updates\"),\n }\n );\n};\n\nexport const unsubscribeFromBlog = async (): Promise<void> => {\n return apiCall(\n async () => {\n await authV1BlogServiceUnsubscribeBlog({\n throwOnError: true,\n });\n },\n {\n ...BLOG_SUBSCRIPTION_ERRORS,\n [HTTP_STATUS.INTERNAL_SERVER_ERROR]: () => new Error(\"Failed to unsubscribe from blog updates\"),\n }\n );\n};\n","import {\n authV1PasskeyServiceDeletePasskey,\n authV1PasskeyServiceListPasskeys,\n authV1PasskeyServiceRenamePasskey,\n authV1PasskeyServicePasskeyLoginBegin,\n authV1PasskeyServicePasskeyLoginFinish,\n authV1PasskeyServicePasskeyRegisterBegin,\n authV1PasskeyServicePasskeyRegisterFinish,\n authV1PasskeyServiceVerifyPasskeyForLogin,\n} from \"../generated/sdk.gen\";\nimport {apiCall} from \"./api/utils\";\nimport {persistTokens} from \"./api/tokens\";\nimport {HTTP_STATUS} from \"./constants\";\n\nfunction base64urlToBuffer(base64url: string): ArrayBuffer {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(base64.length + ((4 - (base64.length % 4)) % 4), \"=\");\n const binary = atob(padded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n return bytes.buffer;\n}\n\nfunction bufferToBase64url(buffer: ArrayBuffer): string {\n const bytes = new Uint8Array(buffer);\n let binary = \"\";\n for (let i = 0; i < bytes.length; i++) binary += String.fromCharCode(bytes[i]);\n return btoa(binary).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// The gateway sends WebAuthn options as base64-encoded JSON (spec `format: byte`).\n// Decode the envelope to an object before extracting the publicKey payload.\nfunction parseOptionsEnvelope(raw: any): any {\n const decoded = typeof raw === \"string\" ? JSON.parse(atob(raw)) : raw;\n return decoded.publicKey ?? decoded;\n}\n\nfunction decodeCreationOptions(raw: any): PublicKeyCredentialCreationOptions {\n const pk = parseOptionsEnvelope(raw);\n return {\n ...pk,\n challenge: base64urlToBuffer(pk.challenge),\n user: {...pk.user, id: base64urlToBuffer(pk.user.id)},\n excludeCredentials: (pk.excludeCredentials ?? []).map((c: any) => ({\n ...c,\n id: base64urlToBuffer(c.id),\n })),\n };\n}\n\nexport function decodeRequestOptions(raw: any): PublicKeyCredentialRequestOptions {\n const pk = parseOptionsEnvelope(raw);\n return {\n ...pk,\n challenge: base64urlToBuffer(pk.challenge),\n allowCredentials: (pk.allowCredentials ?? []).map((c: any) => ({\n ...c,\n id: base64urlToBuffer(c.id),\n })),\n };\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nexport interface PasskeyBeginLogin {\n session_id: string;\n options: PublicKeyCredentialRequestOptions;\n}\n\nexport interface PasskeyBeginRegistration {\n session_id: string;\n options: PublicKeyCredentialCreationOptions;\n}\n\nexport interface PasskeyRegistrationResult {\n passkey_id: string;\n name: string;\n}\n\nexport interface Passkey {\n id: string;\n name: string;\n credential_id: string;\n aaguid: string;\n backup_state: boolean;\n created_at: string;\n last_used_at: string;\n transports: string[];\n}\n\n// The server's `credential` field is `bytes` (spec `format: byte`), so the\n// WebAuthn credential JSON must be sent as a base64-encoded string, not an object.\nfunction encodeCredential(credential: object): string {\n return btoa(JSON.stringify(credential));\n}\n\nfunction serializeLoginCredential(cred: PublicKeyCredential): string {\n const response = cred.response as AuthenticatorAssertionResponse;\n return encodeCredential({\n id: cred.id,\n rawId: bufferToBase64url(cred.rawId),\n type: cred.type,\n response: {\n authenticatorData: bufferToBase64url(response.authenticatorData),\n clientDataJSON: bufferToBase64url(response.clientDataJSON),\n signature: bufferToBase64url(response.signature),\n userHandle: response.userHandle ? bufferToBase64url(response.userHandle) : null,\n },\n });\n}\n\nfunction serializeRegistrationCredential(cred: PublicKeyCredential): string {\n const response = cred.response as AuthenticatorAttestationResponse;\n return encodeCredential({\n id: cred.id,\n rawId: bufferToBase64url(cred.rawId),\n type: cred.type,\n response: {\n attestationObject: bufferToBase64url(response.attestationObject),\n clientDataJSON: bufferToBase64url(response.clientDataJSON),\n },\n });\n}\n\nexport const finishPasskeyLogin = async (session_id: string, credential: PublicKeyCredential): Promise<void> => {\n return apiCall(\n async () => {\n const serialized = serializeLoginCredential(credential);\n\n const {data} = await authV1PasskeyServicePasskeyLoginFinish({\n body: {session_id, credential: serialized},\n throwOnError: true,\n });\n\n persistTokens(data);\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid passkey credential\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Passkey authentication failed\"),\n }\n );\n};\n\nexport const beginPasskeyLogin = async (): Promise<PasskeyBeginLogin> => {\n return apiCall(async () => {\n const {data} = await authV1PasskeyServicePasskeyLoginBegin({\n body: {},\n throwOnError: true,\n });\n\n const sessionId = data.session_id;\n if (!sessionId || !data.options) {\n throw new Error(\"No passkeys available for this account\");\n }\n\n const options = decodeRequestOptions(data.options);\n return {session_id: sessionId, options};\n }, {});\n};\n\nexport const beginPasskeyRegistration = async (): Promise<PasskeyBeginRegistration> => {\n return apiCall(\n async () => {\n const {data} = await authV1PasskeyServicePasskeyRegisterBegin({\n body: {},\n throwOnError: true,\n });\n\n const sessionId = data.session_id;\n if (!sessionId || !data.options) {\n throw new Error(\"Invalid response from server\");\n }\n\n const options = decodeCreationOptions(data.options);\n return {session_id: sessionId, options};\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const finishPasskeyRegistration = async (\n session_id: string,\n name: string,\n credential: PublicKeyCredential\n): Promise<PasskeyRegistrationResult> => {\n return apiCall(\n async () => {\n const serialized = serializeRegistrationCredential(credential);\n\n const {data} = await authV1PasskeyServicePasskeyRegisterFinish({\n body: {session_id, name, credential: serialized},\n throwOnError: true,\n });\n\n return {\n passkey_id: data.passkey_id ?? \"\",\n name: data.name ?? \"\",\n };\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid passkey credential\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const renamePasskey = async (id: string, name: string): Promise<void> => {\n return apiCall(\n async () => {\n await authV1PasskeyServiceRenamePasskey({\n path: {id},\n body: {name},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Passkey not found\"),\n }\n );\n};\n\nexport const deletePasskey = async (id: string): Promise<void> => {\n return apiCall(\n async () => {\n await authV1PasskeyServiceDeletePasskey({\n path: {id},\n throwOnError: true,\n });\n },\n {\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Passkey not found\"),\n }\n );\n};\n\nexport const listPasskeys = async (): Promise<Passkey[]> => {\n return apiCall(\n async () => {\n const {data} = await authV1PasskeyServiceListPasskeys({\n throwOnError: true,\n });\n\n return (data.passkeys ?? []).map((p) => ({\n id: p.id ?? \"\",\n name: p.name ?? \"\",\n credential_id: p.credential_id ?? \"\",\n aaguid: p.aaguid ?? \"\",\n backup_state: p.backup_state ?? false,\n created_at: p.created_at ?? \"\",\n last_used_at: p.last_used_at ?? \"\",\n transports: p.transports ?? [],\n }));\n },\n {\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Token is missing or invalid; user is not authenticated.\"),\n }\n );\n};\n\nexport const verifyPasskeyForLogin = async (session_id: string, credential: PublicKeyCredential): Promise<void> => {\n return apiCall(\n async () => {\n const serialized = serializeLoginCredential(credential);\n\n const {data} = await authV1PasskeyServiceVerifyPasskeyForLogin({\n body: {session_id, credential: serialized},\n throwOnError: true,\n });\n\n persistTokens(data);\n },\n {\n [HTTP_STATUS.BAD_REQUEST]: () => new Error(\"Invalid passkey credential\"),\n [HTTP_STATUS.UNAUTHORIZED]: () => new Error(\"Passkey verification failed\"),\n [HTTP_STATUS.NOT_FOUND]: () => new Error(\"Session not found\"),\n }\n );\n};\n"],"mappings":"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"}