// Code generated by apigen. DO NOT EDIT. import type { LinkViaAppleRequest, LinkViaCustomRequest, LinkViaGoogleRequest, LoginViaAppleRequest, LoginViaAppleResponse, LoginViaCustomRequest, LoginViaCustomResponse, LoginViaDeviceRequest, LoginViaDeviceResponse, LoginViaGoogleRequest, LoginViaGoogleResponse, RefreshAccessTokenRequest, RefreshAccessTokenResponse, UnlinkIdentityRequest } from './auth.js'; import type { ListCatalogCurrenciesResponse } from './catalog.js'; import type { CallModuleFunctionClientResponse, CallModuleFunctionRequest } from './modules.js'; import type { PlayerProfile } from './player.js'; import type { GetProjectStorageResponse, UpdateProjectStorageRequest } from './project-storage.js'; import type { CreateResourceRowRequest, ListResourceRowsResponse, ResourceRow, UpdateResourceRowRequest } from './resources.js'; import type { GetStorageResponse, UpdateStorageRequest } from './storage.js'; /** The minimal transport contract the generated API functions call through. */ export interface Transport { request(method: string, path: string, body?: unknown): Promise; } function enc(value: string | number): string { return encodeURIComponent(String(value)); } function qs( params: Array<[string, string | number | boolean | null | undefined]>, ): string { const parts: string[] = []; for (const [key, value] of params) { if (value !== null && value !== undefined && value !== '') { parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); } } return parts.length === 0 ? '' : `?${parts.join('&')}`; } /** Typed request functions, one per SDK operation. */ export const api = { callModuleFunction: ( t: Transport, path: { module: string; fn: string }, body: CallModuleFunctionRequest, ): Promise => t.request('POST', `/sdk/v1/modules/${enc(path.module)}/${enc(path.fn)}`, body), createResourceRow: ( t: Transport, path: { slug: string }, body: CreateResourceRowRequest, ): Promise => t.request('POST', `/sdk/v1/resources/${enc(path.slug)}`, body), deleteResourceRow: ( t: Transport, path: { slug: string; id: string }, ): Promise => t.request('DELETE', `/sdk/v1/resources/${enc(path.slug)}/${enc(path.id)}`), deleteStorage: ( t: Transport, query?: { type?: string }, ): Promise => t.request('DELETE', `/sdk/v1/storage${qs([['type', query?.type]])}`), getPlayerInformation: ( t: Transport, ): Promise => t.request('GET', '/sdk/v1/player/information'), getProjectStorage: ( t: Transport, query?: { types?: string; limit?: number; cursor?: string }, ): Promise => t.request('GET', `/sdk/v1/project-storage${qs([['types', query?.types], ['limit', query?.limit], ['cursor', query?.cursor]])}`), getResourceRow: ( t: Transport, path: { slug: string; id: string }, ): Promise => t.request('GET', `/sdk/v1/resources/${enc(path.slug)}/${enc(path.id)}`), getRevisions: ( t: Transport, ): Promise<{ [key: string]: number }> => t.request<{ [key: string]: number }>('GET', '/sdk/v1/sync'), getStorage: ( t: Transport, query?: { types?: string; limit?: number; cursor?: string }, ): Promise => t.request('GET', `/sdk/v1/storage${qs([['types', query?.types], ['limit', query?.limit], ['cursor', query?.cursor]])}`), linkViaApple: ( t: Transport, body: LinkViaAppleRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/apple/link', body), linkViaCustom: ( t: Transport, body: LinkViaCustomRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/custom/link', body), linkViaGoogle: ( t: Transport, body: LinkViaGoogleRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/google/link', body), listCatalogCurrencies: ( t: Transport, ): Promise => t.request('GET', '/sdk/v1/catalog'), listResourceRows: ( t: Transport, path: { slug: string }, query?: { _q?: string; _sort?: string; _order?: string; _start?: number; _end?: number }, ): Promise => t.request('GET', `/sdk/v1/resources/${enc(path.slug)}${qs([['_q', query?._q], ['_sort', query?._sort], ['_order', query?._order], ['_start', query?._start], ['_end', query?._end]])}`), loginViaApple: ( t: Transport, body: LoginViaAppleRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/apple', body), loginViaCustom: ( t: Transport, body: LoginViaCustomRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/custom', body), loginViaDevice: ( t: Transport, body: LoginViaDeviceRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/device', body), loginViaGoogle: ( t: Transport, body: LoginViaGoogleRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/google', body), refreshAccessToken: ( t: Transport, body: RefreshAccessTokenRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/refresh', body), unlinkIdentity: ( t: Transport, body: UnlinkIdentityRequest, ): Promise => t.request('POST', '/sdk/v1/authorization/unlink', body), updateProjectStorage: ( t: Transport, body: UpdateProjectStorageRequest, ): Promise => t.request('PUT', '/sdk/v1/project-storage', body), updateResourceRow: ( t: Transport, path: { slug: string; id: string }, body: UpdateResourceRowRequest, ): Promise => t.request('PATCH', `/sdk/v1/resources/${enc(path.slug)}/${enc(path.id)}`, body), updateStorage: ( t: Transport, body: UpdateStorageRequest, ): Promise => t.request('PUT', '/sdk/v1/storage', body), };