/** * Generated by orval v8.8.1 🍺 * Do not edit manually. * OpenAPI spec version: 0.0.1 */ import { faker } from '@faker-js/faker' import { HttpResponse, delay, http } from 'msw' import type { RequestHandlerOptions } from 'msw' import { CodexAuthAttemptStatus, FontSource, ImageRole, JobStatus, LlmProviderCatalogStatus, LlmStateStatus, LlmTargetKind, MaskRole, PipelineStep, TextAlign, TextDirection, } from '../schemas' import type { AddImageLayerResponse, AppConfig, AppEvent, CodexAuthStatus, CodexDeviceLogin, CodexDeviceLoginStatus, CodexImageGenerationResponse, CreatePagesResponse, DataConfig, EngineCatalog, FontFaceInfo, FontPrediction, GoogleFontCatalog, HistoryResult, HttpConfig, ListDownloadsResponse, ListOperationsResponse, ListProjectsResponse, LlmCatalog, LlmState, LlmTarget, MetaInfo, PipelineConfig, ProjectSummary, PutMaskResponse, SceneSnapshot, StartDownloadResponse, StartPipelineResponse, TextShaderEffect, TextStrokeStyle, TextStyle, Transform, } from '../schemas' export const getStartCodexDeviceLoginResponseMock = ( overrideResponse: Partial> = {}, ): CodexDeviceLogin => ({ intervalSeconds: faker.number.int({ min: 0 }), loginId: faker.string.alpha({ length: { min: 10, max: 20 } }), timeoutSeconds: faker.number.int({ min: 0 }), userCode: faker.string.alpha({ length: { min: 10, max: 20 } }), verificationUrl: faker.string.alpha({ length: { min: 10, max: 20 } }), ...overrideResponse, }) export const getGetCodexAuthStatusResponseCodexDeviceLoginStatusMock = ( overrideResponse: Partial = {}, ): CodexDeviceLoginStatus => ({ ...{ accountId: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), error: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), loginId: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(Object.values(CodexAuthAttemptStatus)), }, ...overrideResponse, }) export const getGetCodexAuthStatusResponseMock = ( overrideResponse: Partial> = {}, ): CodexAuthStatus => ({ accountId: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), login: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, { ...getGetCodexAuthStatusResponseCodexDeviceLoginStatusMock() }, ]), undefined, ]), signedIn: faker.datatype.boolean(), ...overrideResponse, }) export const getStartCodexImageGenerationResponseMock = ( overrideResponse: Partial> = {}, ): CodexImageGenerationResponse => ({ operationId: faker.string.alpha({ length: { min: 10, max: 20 } }), ...overrideResponse, }) export const getGetBlobResponseMock = (): ArrayBuffer => new ArrayBuffer(faker.number.int({ min: 1, max: 64 })) export const getGetConfigResponseDataConfigMock = ( overrideResponse: Partial = {}, ): DataConfig => ({ ...{ path: faker.string.alpha({ length: { min: 10, max: 20 } }) }, ...overrideResponse, }) export const getGetConfigResponseHttpConfigMock = ( overrideResponse: Partial = {}, ): HttpConfig => ({ ...{ connect_timeout: faker.number.int({ min: 0 }), max_retries: faker.number.int({ min: 0 }), read_timeout: faker.number.int({ min: 0 }), }, ...overrideResponse, }) export const getGetConfigResponsePipelineConfigMock = ( overrideResponse: Partial = {}, ): PipelineConfig => ({ ...{ bubble_segmenter: faker.string.alpha({ length: { min: 10, max: 20 } }), detector: faker.string.alpha({ length: { min: 10, max: 20 } }), font_detector: faker.string.alpha({ length: { min: 10, max: 20 } }), inpainter: faker.string.alpha({ length: { min: 10, max: 20 } }), ocr: faker.string.alpha({ length: { min: 10, max: 20 } }), renderer: faker.string.alpha({ length: { min: 10, max: 20 } }), segmenter: faker.string.alpha({ length: { min: 10, max: 20 } }), translator: faker.string.alpha({ length: { min: 10, max: 20 } }), }, ...overrideResponse, }) export const getGetConfigResponseMock = ( overrideResponse: Partial> = {}, ): AppConfig => ({ data: faker.helpers.arrayElement([{ ...getGetConfigResponseDataConfigMock() }]), http: faker.helpers.arrayElement([{ ...getGetConfigResponseHttpConfigMock() }]), pipeline: faker.helpers.arrayElement([{ ...getGetConfigResponsePipelineConfigMock() }]), providers: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ api_key: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), base_url: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), id: faker.string.alpha({ length: { min: 10, max: 20 } }), }), ), ...overrideResponse, }) export const getPatchConfigResponseDataConfigMock = ( overrideResponse: Partial = {}, ): DataConfig => ({ ...{ path: faker.string.alpha({ length: { min: 10, max: 20 } }) }, ...overrideResponse, }) export const getPatchConfigResponseHttpConfigMock = ( overrideResponse: Partial = {}, ): HttpConfig => ({ ...{ connect_timeout: faker.number.int({ min: 0 }), max_retries: faker.number.int({ min: 0 }), read_timeout: faker.number.int({ min: 0 }), }, ...overrideResponse, }) export const getPatchConfigResponsePipelineConfigMock = ( overrideResponse: Partial = {}, ): PipelineConfig => ({ ...{ bubble_segmenter: faker.string.alpha({ length: { min: 10, max: 20 } }), detector: faker.string.alpha({ length: { min: 10, max: 20 } }), font_detector: faker.string.alpha({ length: { min: 10, max: 20 } }), inpainter: faker.string.alpha({ length: { min: 10, max: 20 } }), ocr: faker.string.alpha({ length: { min: 10, max: 20 } }), renderer: faker.string.alpha({ length: { min: 10, max: 20 } }), segmenter: faker.string.alpha({ length: { min: 10, max: 20 } }), translator: faker.string.alpha({ length: { min: 10, max: 20 } }), }, ...overrideResponse, }) export const getPatchConfigResponseMock = ( overrideResponse: Partial> = {}, ): AppConfig => ({ data: faker.helpers.arrayElement([{ ...getPatchConfigResponseDataConfigMock() }]), http: faker.helpers.arrayElement([{ ...getPatchConfigResponseHttpConfigMock() }]), pipeline: faker.helpers.arrayElement([{ ...getPatchConfigResponsePipelineConfigMock() }]), providers: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ api_key: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), base_url: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), id: faker.string.alpha({ length: { min: 10, max: 20 } }), }), ), ...overrideResponse, }) export const getListDownloadsResponseMock = ( overrideResponse: Partial> = {}, ): ListDownloadsResponse => ({ downloads: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ downloaded: faker.number.int({ min: 0 }), filename: faker.string.alpha({ length: { min: 10, max: 20 } }), id: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement([ { status: faker.helpers.arrayElement(['started'] as const) }, { status: faker.helpers.arrayElement(['downloading'] as const) }, { status: faker.helpers.arrayElement(['completed'] as const) }, { reason: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(['failed'] as const), }, ]), total: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.int({ min: 0 }), null]), undefined, ]), }), ), ...overrideResponse, }) export const getStartDownloadResponseMock = ( overrideResponse: Partial> = {}, ): StartDownloadResponse => ({ operationId: faker.string.alpha({ length: { min: 10, max: 20 } }), ...overrideResponse, }) export const getGetEngineCatalogResponseMock = ( overrideResponse: Partial> = {}, ): EngineCatalog => ({ bubbleSegmenters: Array.from( { length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1, ).map(() => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), })), detectors: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), }), ), fontDetectors: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), }), ), inpainters: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), }), ), ocr: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), })), renderers: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), }), ), segmenters: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), }), ), translators: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), produces: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), }), ), ...overrideResponse, }) export const getEventsResponseLlmTargetMock = ( overrideResponse: Partial = {}, ): LlmTarget => ({ ...{ kind: faker.helpers.arrayElement(Object.values(LlmTargetKind)), modelId: faker.string.alpha({ length: { min: 10, max: 20 } }), providerId: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), }, ...overrideResponse, }) export const getEventsResponseMock = (): AppEvent => faker.helpers.arrayElement([ { event: faker.helpers.arrayElement(['jobStarted'] as const), id: faker.string.alpha({ length: { min: 10, max: 20 } }), kind: faker.string.alpha({ length: { min: 10, max: 20 } }), }, { ...{ currentPage: faker.number.int({ min: 0 }), currentStepIndex: faker.number.int({ min: 0 }), jobId: faker.string.alpha({ length: { min: 10, max: 20 } }), overallPercent: faker.number.int({ min: 0 }), status: faker.helpers.arrayElement([ { status: faker.helpers.arrayElement(['running'] as const) }, { status: faker.helpers.arrayElement(['completed'] as const) }, { status: faker.helpers.arrayElement(['cancelled'] as const) }, { reason: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(['failed'] as const), }, ]), step: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, faker.helpers.arrayElement(Object.values(PipelineStep)), ]), undefined, ]), totalPages: faker.number.int({ min: 0 }), totalSteps: faker.number.int({ min: 0 }), }, ...{ event: faker.helpers.arrayElement(['jobProgress'] as const) }, }, { ...{ jobId: faker.string.alpha({ length: { min: 10, max: 20 } }), message: faker.string.alpha({ length: { min: 10, max: 20 } }), pageIndex: faker.number.int({ min: 0 }), stepId: faker.string.alpha({ length: { min: 10, max: 20 } }), totalPages: faker.number.int({ min: 0 }), }, ...{ event: faker.helpers.arrayElement(['jobWarning'] as const) }, }, { ...{ error: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), id: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(Object.values(JobStatus)), }, ...{ event: faker.helpers.arrayElement(['jobFinished'] as const) }, }, { ...{ downloaded: faker.number.int({ min: 0 }), filename: faker.string.alpha({ length: { min: 10, max: 20 } }), id: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement([ { status: faker.helpers.arrayElement(['started'] as const) }, { status: faker.helpers.arrayElement(['downloading'] as const) }, { status: faker.helpers.arrayElement(['completed'] as const) }, { reason: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(['failed'] as const), }, ]), total: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.int({ min: 0 }), null]), undefined, ]), }, ...{ event: faker.helpers.arrayElement(['downloadProgress'] as const) }, }, { event: faker.helpers.arrayElement(['llmLoading'] as const), target: { kind: faker.helpers.arrayElement(Object.values(LlmTargetKind)), modelId: faker.string.alpha({ length: { min: 10, max: 20 } }), providerId: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), }, }, { event: faker.helpers.arrayElement(['llmLoaded'] as const), target: { kind: faker.helpers.arrayElement(Object.values(LlmTargetKind)), modelId: faker.string.alpha({ length: { min: 10, max: 20 } }), providerId: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), }, }, { event: faker.helpers.arrayElement(['llmFailed'] as const), target: faker.helpers.arrayElement([ faker.helpers.arrayElement([null, { ...getEventsResponseLlmTargetMock() }]), undefined, ]), }, { event: faker.helpers.arrayElement(['llmUnloaded'] as const) }, { ...{ downloads: Array.from( { length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1, ).map(() => ({ downloaded: faker.number.int({ min: 0 }), filename: faker.string.alpha({ length: { min: 10, max: 20 } }), id: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement([ { status: faker.helpers.arrayElement(['started'] as const) }, { status: faker.helpers.arrayElement(['downloading'] as const) }, { status: faker.helpers.arrayElement(['completed'] as const) }, { reason: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(['failed'] as const), }, ]), total: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.int({ min: 0 }), null]), undefined, ]), })), jobs: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ error: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), id: faker.string.alpha({ length: { min: 10, max: 20 } }), kind: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(Object.values(JobStatus)), }), ), }, ...{ event: faker.helpers.arrayElement(['snapshot'] as const) }, }, ]) export const getListFontsResponseMock = (): FontFaceInfo[] => Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({ cached: faker.datatype.boolean(), category: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), familyName: faker.string.alpha({ length: { min: 10, max: 20 } }), postScriptName: faker.string.alpha({ length: { min: 10, max: 20 } }), source: faker.helpers.arrayElement(Object.values(FontSource)), })) export const getGetGoogleFontsCatalogResponseMock = ( overrideResponse: Partial> = {}, ): GoogleFontCatalog => ({ fonts: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({ category: faker.string.alpha({ length: { min: 10, max: 20 } }), family: faker.string.alpha({ length: { min: 10, max: 20 } }), subsets: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), variants: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ filename: faker.string.alpha({ length: { min: 10, max: 20 } }), style: faker.string.alpha({ length: { min: 10, max: 20 } }), weight: faker.number.int({ min: 0 }), }), ), })), ...overrideResponse, }) export const getGetGoogleFontFileResponseMock = (): ArrayBuffer => new ArrayBuffer(faker.number.int({ min: 1, max: 64 })) export const getApplyCommandResponseMock = ( overrideResponse: Partial> = {}, ): HistoryResult => ({ epoch: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.int({ min: 0 }), null]), undefined, ]), ...overrideResponse, }) export const getRedoResponseMock = ( overrideResponse: Partial> = {}, ): HistoryResult => ({ epoch: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.int({ min: 0 }), null]), undefined, ]), ...overrideResponse, }) export const getUndoResponseMock = ( overrideResponse: Partial> = {}, ): HistoryResult => ({ epoch: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.int({ min: 0 }), null]), undefined, ]), ...overrideResponse, }) export const getGetCatalogResponseMock = ( overrideResponse: Partial> = {}, ): LlmCatalog => ({ localModels: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ languages: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.string.alpha({ length: { min: 10, max: 20 } }), ), name: faker.string.alpha({ length: { min: 10, max: 20 } }), target: { kind: faker.helpers.arrayElement(Object.values(LlmTargetKind)), modelId: faker.string.alpha({ length: { min: 10, max: 20 } }), providerId: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), }, }), ), providers: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ baseUrl: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), error: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), hasApiKey: faker.datatype.boolean(), id: faker.string.alpha({ length: { min: 10, max: 20 } }), models: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ languages: Array.from( { length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1, ).map(() => faker.string.alpha({ length: { min: 10, max: 20 } })), name: faker.string.alpha({ length: { min: 10, max: 20 } }), target: { kind: faker.helpers.arrayElement(Object.values(LlmTargetKind)), modelId: faker.string.alpha({ length: { min: 10, max: 20 } }), providerId: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), }, }), ), name: faker.string.alpha({ length: { min: 10, max: 20 } }), requiresApiKey: faker.datatype.boolean(), requiresBaseUrl: faker.datatype.boolean(), status: faker.helpers.arrayElement(Object.values(LlmProviderCatalogStatus)), }), ), ...overrideResponse, }) export const getGetCurrentLlmResponseLlmTargetMock = ( overrideResponse: Partial = {}, ): LlmTarget => ({ ...{ kind: faker.helpers.arrayElement(Object.values(LlmTargetKind)), modelId: faker.string.alpha({ length: { min: 10, max: 20 } }), providerId: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), }, ...overrideResponse, }) export const getGetCurrentLlmResponseMock = ( overrideResponse: Partial> = {}, ): LlmState => ({ error: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), status: faker.helpers.arrayElement(Object.values(LlmStateStatus)), target: faker.helpers.arrayElement([ faker.helpers.arrayElement([null, { ...getGetCurrentLlmResponseLlmTargetMock() }]), undefined, ]), ...overrideResponse, }) export const getGetMetaResponseMock = ( overrideResponse: Partial> = {}, ): MetaInfo => ({ mlDevice: faker.string.alpha({ length: { min: 10, max: 20 } }), version: faker.string.alpha({ length: { min: 10, max: 20 } }), ...overrideResponse, }) export const getListOperationsResponseMock = ( overrideResponse: Partial> = {}, ): ListOperationsResponse => ({ operations: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ error: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), id: faker.string.alpha({ length: { min: 10, max: 20 } }), kind: faker.string.alpha({ length: { min: 10, max: 20 } }), status: faker.helpers.arrayElement(Object.values(JobStatus)), }), ), ...overrideResponse, }) export const getCreatePagesResponseMock = ( overrideResponse: Partial> = {}, ): CreatePagesResponse => ({ pages: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => faker.string.uuid(), ), ...overrideResponse, }) export const getCreatePagesFromPathsResponseMock = ( overrideResponse: Partial> = {}, ): CreatePagesResponse => ({ pages: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => faker.string.uuid(), ), ...overrideResponse, }) export const getAddImageLayerResponseMock = ( overrideResponse: Partial> = {}, ): AddImageLayerResponse => ({ node: faker.string.uuid(), ...overrideResponse }) export const getPutMaskResponseMock = ( overrideResponse: Partial> = {}, ): PutMaskResponse => ({ blob: faker.string.alpha({ length: { min: 10, max: 20 } }), node: faker.string.uuid(), ...overrideResponse, }) export const getGetPageThumbnailResponseMock = (): ArrayBuffer => new ArrayBuffer(faker.number.int({ min: 1, max: 64 })) export const getStartPipelineResponseMock = ( overrideResponse: Partial> = {}, ): StartPipelineResponse => ({ operationId: faker.string.alpha({ length: { min: 10, max: 20 } }), ...overrideResponse, }) export const getListProjectsResponseMock = ( overrideResponse: Partial> = {}, ): ListProjectsResponse => ({ projects: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), path: faker.string.alpha({ length: { min: 10, max: 20 } }), updatedAtMs: faker.helpers.arrayElement([faker.number.int({ min: 0 }), undefined]), }), ), ...overrideResponse, }) export const getCreateProjectResponseMock = ( overrideResponse: Partial> = {}, ): ProjectSummary => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), path: faker.string.alpha({ length: { min: 10, max: 20 } }), updatedAtMs: faker.helpers.arrayElement([faker.number.int({ min: 0 }), undefined]), ...overrideResponse, }) export const getPutCurrentProjectResponseMock = ( overrideResponse: Partial> = {}, ): ProjectSummary => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), path: faker.string.alpha({ length: { min: 10, max: 20 } }), updatedAtMs: faker.helpers.arrayElement([faker.number.int({ min: 0 }), undefined]), ...overrideResponse, }) export const getExportCurrentProjectResponseMock = (): ArrayBuffer => new ArrayBuffer(faker.number.int({ min: 1, max: 64 })) export const getImportProjectResponseMock = ( overrideResponse: Partial> = {}, ): ProjectSummary => ({ id: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.string.alpha({ length: { min: 10, max: 20 } }), path: faker.string.alpha({ length: { min: 10, max: 20 } }), updatedAtMs: faker.helpers.arrayElement([faker.number.int({ min: 0 }), undefined]), ...overrideResponse, }) export const getGetSceneBinResponseMock = (): ArrayBuffer => new ArrayBuffer(faker.number.int({ min: 1, max: 64 })) export const getGetSceneJsonResponseFontPredictionMock = ( overrideResponse: Partial = {}, ): FontPrediction => ({ ...{ angleDeg: faker.number.float({ fractionDigits: 2 }), direction: faker.helpers.arrayElement(Object.values(TextDirection)), fontSizePx: faker.number.float({ fractionDigits: 2 }), lineHeight: faker.number.float({ fractionDigits: 2 }), namedFonts: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ index: faker.number.int({ min: 0 }), language: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.string.alpha({ length: { min: 10, max: 20 } }), null]), undefined, ]), name: faker.string.alpha({ length: { min: 10, max: 20 } }), probability: faker.number.float({ fractionDigits: 2 }), serif: faker.datatype.boolean(), }), ), strokeColor: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.number.int({ min: 0 }), ), strokeWidthPx: faker.number.float({ fractionDigits: 2 }), textColor: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => faker.number.int({ min: 0 }), ), topFonts: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map( () => ({ index: faker.number.int({ min: 0 }), score: faker.number.float({ fractionDigits: 2 }), }), ), }, ...overrideResponse, }) export const getGetSceneJsonResponseTransformMock = ( overrideResponse: Partial = {}, ): Transform => ({ ...{ height: faker.number.float({ fractionDigits: 2 }), rotationDeg: faker.helpers.arrayElement([faker.number.float({ fractionDigits: 2 }), undefined]), width: faker.number.float({ fractionDigits: 2 }), x: faker.number.float({ fractionDigits: 2 }), y: faker.number.float({ fractionDigits: 2 }), }, ...overrideResponse, }) export const getGetSceneJsonResponseTextShaderEffectMock = ( overrideResponse: Partial = {}, ): TextShaderEffect => ({ ...{ bold: faker.helpers.arrayElement([faker.datatype.boolean(), undefined]), italic: faker.helpers.arrayElement([faker.datatype.boolean(), undefined]), }, ...overrideResponse, }) export const getGetSceneJsonResponseTextStrokeStyleMock = ( overrideResponse: Partial = {}, ): TextStrokeStyle => ({ ...{ color: faker.helpers.arrayElement([ Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => faker.number.int({ min: 0 }), ), undefined, ]), enabled: faker.helpers.arrayElement([faker.datatype.boolean(), undefined]), widthPx: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.float({ fractionDigits: 2 }), null]), undefined, ]), }, ...overrideResponse, }) export const getGetSceneJsonResponseTextStyleMock = ( overrideResponse: Partial = {}, ): TextStyle => ({ ...{ color: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => faker.number.int({ min: 0 }), ), effect: faker.helpers.arrayElement([ faker.helpers.arrayElement([null, { ...getGetSceneJsonResponseTextShaderEffectMock() }]), undefined, ]), fontFamilies: Array.from( { length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1, ).map(() => faker.string.alpha({ length: { min: 10, max: 20 } })), fontSize: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.float({ fractionDigits: 2 }), null]), undefined, ]), stroke: faker.helpers.arrayElement([ faker.helpers.arrayElement([null, { ...getGetSceneJsonResponseTextStrokeStyleMock() }]), undefined, ]), textAlign: faker.helpers.arrayElement([ faker.helpers.arrayElement([null, faker.helpers.arrayElement(Object.values(TextAlign))]), undefined, ]), }, ...overrideResponse, }) export const getGetSceneJsonResponseMock = ( overrideResponse: Partial> = {}, ): SceneSnapshot => ({ epoch: faker.number.int({ min: 0 }), scene: { pages: { [faker.string.alphanumeric(5)]: { height: faker.number.int({ min: 0 }), id: faker.string.uuid(), name: faker.string.alpha({ length: { min: 10, max: 20 } }), nodes: { [faker.string.alphanumeric(5)]: { id: faker.string.uuid(), kind: faker.helpers.arrayElement([ { image: { blob: faker.string.alpha({ length: { min: 10, max: 20 } }), name: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), naturalHeight: faker.number.int({ min: 0 }), naturalWidth: faker.number.int({ min: 0 }), opacity: faker.helpers.arrayElement([ faker.number.float({ fractionDigits: 2 }), undefined, ]), role: faker.helpers.arrayElement(Object.values(ImageRole)), }, }, { text: { confidence: faker.helpers.arrayElement([ faker.number.float({ fractionDigits: 2 }), undefined, ]), detectedFontSizePx: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.float({ fractionDigits: 2 }), null]), undefined, ]), detector: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), fontPrediction: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, { ...getGetSceneJsonResponseFontPredictionMock() }, ]), undefined, ]), linePolygons: faker.helpers.arrayElement([ Array.from( { length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1, ).map(() => Array.from( { length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1, ).map(() => Array.from( { length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1, ).map(() => faker.number.float({ fractionDigits: 2 })), ), ), undefined, ]), lockLayoutBox: faker.helpers.arrayElement([faker.datatype.boolean(), undefined]), renderedDirection: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, faker.helpers.arrayElement(Object.values(TextDirection)), ]), undefined, ]), rotationDeg: faker.helpers.arrayElement([ faker.helpers.arrayElement([faker.number.float({ fractionDigits: 2 }), null]), undefined, ]), sourceDirection: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, faker.helpers.arrayElement(Object.values(TextDirection)), ]), undefined, ]), sourceLang: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), sprite: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, faker.string.alpha({ length: { min: 10, max: 20 } }), ]), undefined, ]), spriteTransform: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, { ...getGetSceneJsonResponseTransformMock() }, ]), undefined, ]), style: faker.helpers.arrayElement([ faker.helpers.arrayElement([ null, { ...getGetSceneJsonResponseTextStyleMock() }, ]), undefined, ]), text: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), translation: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), }, }, { mask: { blob: faker.string.alpha({ length: { min: 10, max: 20 } }), role: faker.helpers.arrayElement(Object.values(MaskRole)), }, }, ]), transform: faker.helpers.arrayElement([ { height: faker.number.float({ fractionDigits: 2 }), rotationDeg: faker.helpers.arrayElement([ faker.number.float({ fractionDigits: 2 }), undefined, ]), width: faker.number.float({ fractionDigits: 2 }), x: faker.number.float({ fractionDigits: 2 }), y: faker.number.float({ fractionDigits: 2 }), }, undefined, ]), visible: faker.datatype.boolean(), }, }, width: faker.number.int({ min: 0 }), }, }, project: { createdAt: faker.date.past().toISOString().slice(0, 19) + 'Z', name: faker.string.alpha({ length: { min: 10, max: 20 } }), style: faker.helpers.arrayElement([ { defaultFont: faker.helpers.arrayElement([ faker.helpers.arrayElement([ faker.string.alpha({ length: { min: 10, max: 20 } }), null, ]), undefined, ]), }, undefined, ]), updatedAt: faker.date.past().toISOString().slice(0, 19) + 'Z', }, }, ...overrideResponse, }) export const getStartCodexDeviceLoginMockHandler = ( overrideResponse?: | CodexDeviceLogin | (( info: Parameters[1]>[0], ) => Promise | CodexDeviceLogin), options?: RequestHandlerOptions, ) => { return http.post( '*/ai/codex/auth/device-code', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getStartCodexDeviceLoginResponseMock(), { status: 200 }, ) }, options, ) } export const getDeleteCodexSessionMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.delete( '*/ai/codex/auth/session', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getGetCodexAuthStatusMockHandler = ( overrideResponse?: | CodexAuthStatus | (( info: Parameters[1]>[0], ) => Promise | CodexAuthStatus), options?: RequestHandlerOptions, ) => { return http.get( '*/ai/codex/auth/status', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetCodexAuthStatusResponseMock(), { status: 200 }, ) }, options, ) } export const getStartCodexImageGenerationMockHandler = ( overrideResponse?: | CodexImageGenerationResponse | (( info: Parameters[1]>[0], ) => Promise | CodexImageGenerationResponse), options?: RequestHandlerOptions, ) => { return http.post( '*/ai/codex/images', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getStartCodexImageGenerationResponseMock(), { status: 200 }, ) }, options, ) } export const getGetBlobMockHandler = ( overrideResponse?: | ArrayBuffer | ((info: Parameters[1]>[0]) => Promise | ArrayBuffer), options?: RequestHandlerOptions, ) => { return http.get( '*/blobs/:hash', async (info: Parameters[1]>[0]) => { await delay(0) const binaryBody = overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetBlobResponseMock() return HttpResponse.arrayBuffer( binaryBody instanceof ArrayBuffer ? binaryBody : new ArrayBuffer(0), { status: 200, headers: { 'Content-Type': 'application/octet-stream' } }, ) }, options, ) } export const getGetConfigMockHandler = ( overrideResponse?: | AppConfig | ((info: Parameters[1]>[0]) => Promise | AppConfig), options?: RequestHandlerOptions, ) => { return http.get( '*/config', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetConfigResponseMock(), { status: 200 }, ) }, options, ) } export const getPatchConfigMockHandler = ( overrideResponse?: | AppConfig | ((info: Parameters[1]>[0]) => Promise | AppConfig), options?: RequestHandlerOptions, ) => { return http.patch( '*/config', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getPatchConfigResponseMock(), { status: 200 }, ) }, options, ) } export const getSetProviderSecretMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.put( '*/config/providers/:id/secret', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getClearProviderSecretMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.delete( '*/config/providers/:id/secret', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getListDownloadsMockHandler = ( overrideResponse?: | ListDownloadsResponse | (( info: Parameters[1]>[0], ) => Promise | ListDownloadsResponse), options?: RequestHandlerOptions, ) => { return http.get( '*/downloads', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getListDownloadsResponseMock(), { status: 200 }, ) }, options, ) } export const getStartDownloadMockHandler = ( overrideResponse?: | StartDownloadResponse | (( info: Parameters[1]>[0], ) => Promise | StartDownloadResponse), options?: RequestHandlerOptions, ) => { return http.post( '*/downloads', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getStartDownloadResponseMock(), { status: 202 }, ) }, options, ) } export const getGetEngineCatalogMockHandler = ( overrideResponse?: | EngineCatalog | (( info: Parameters[1]>[0], ) => Promise | EngineCatalog), options?: RequestHandlerOptions, ) => { return http.get( '*/engines', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetEngineCatalogResponseMock(), { status: 200 }, ) }, options, ) } export const getEventsMockHandler = ( overrideResponse?: | AppEvent | ((info: Parameters[1]>[0]) => Promise | AppEvent), options?: RequestHandlerOptions, ) => { return http.get( '*/events', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getEventsResponseMock(), { status: 200 }, ) }, options, ) } export const getListFontsMockHandler = ( overrideResponse?: | FontFaceInfo[] | (( info: Parameters[1]>[0], ) => Promise | FontFaceInfo[]), options?: RequestHandlerOptions, ) => { return http.get( '*/fonts', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getListFontsResponseMock(), { status: 200 }, ) }, options, ) } export const getGetGoogleFontsCatalogMockHandler = ( overrideResponse?: | GoogleFontCatalog | (( info: Parameters[1]>[0], ) => Promise | GoogleFontCatalog), options?: RequestHandlerOptions, ) => { return http.get( '*/google-fonts', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetGoogleFontsCatalogResponseMock(), { status: 200 }, ) }, options, ) } export const getFetchGoogleFontMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.post( '*/google-fonts/:family/fetch', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getGetGoogleFontFileMockHandler = ( overrideResponse?: | ArrayBuffer | ((info: Parameters[1]>[0]) => Promise | ArrayBuffer), options?: RequestHandlerOptions, ) => { return http.get( '*/google-fonts/:family/:file', async (info: Parameters[1]>[0]) => { await delay(0) const binaryBody = overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetGoogleFontFileResponseMock() return HttpResponse.arrayBuffer( binaryBody instanceof ArrayBuffer ? binaryBody : new ArrayBuffer(0), { status: 200, headers: { 'Content-Type': 'font/ttf' } }, ) }, options, ) } export const getApplyCommandMockHandler = ( overrideResponse?: | HistoryResult | (( info: Parameters[1]>[0], ) => Promise | HistoryResult), options?: RequestHandlerOptions, ) => { return http.post( '*/history/apply', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getApplyCommandResponseMock(), { status: 200 }, ) }, options, ) } export const getRedoMockHandler = ( overrideResponse?: | HistoryResult | (( info: Parameters[1]>[0], ) => Promise | HistoryResult), options?: RequestHandlerOptions, ) => { return http.post( '*/history/redo', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getRedoResponseMock(), { status: 200 }, ) }, options, ) } export const getUndoMockHandler = ( overrideResponse?: | HistoryResult | (( info: Parameters[1]>[0], ) => Promise | HistoryResult), options?: RequestHandlerOptions, ) => { return http.post( '*/history/undo', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getUndoResponseMock(), { status: 200 }, ) }, options, ) } export const getGetCatalogMockHandler = ( overrideResponse?: | LlmCatalog | ((info: Parameters[1]>[0]) => Promise | LlmCatalog), options?: RequestHandlerOptions, ) => { return http.get( '*/llm/catalog', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetCatalogResponseMock(), { status: 200 }, ) }, options, ) } export const getGetCurrentLlmMockHandler = ( overrideResponse?: | LlmState | ((info: Parameters[1]>[0]) => Promise | LlmState), options?: RequestHandlerOptions, ) => { return http.get( '*/llm/current', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetCurrentLlmResponseMock(), { status: 200 }, ) }, options, ) } export const getPutCurrentLlmMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.put( '*/llm/current', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getDeleteCurrentLlmMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.delete( '*/llm/current', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getGetMetaMockHandler = ( overrideResponse?: | MetaInfo | ((info: Parameters[1]>[0]) => Promise | MetaInfo), options?: RequestHandlerOptions, ) => { return http.get( '*/meta', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetMetaResponseMock(), { status: 200 }, ) }, options, ) } export const getListOperationsMockHandler = ( overrideResponse?: | ListOperationsResponse | (( info: Parameters[1]>[0], ) => Promise | ListOperationsResponse), options?: RequestHandlerOptions, ) => { return http.get( '*/operations', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getListOperationsResponseMock(), { status: 200 }, ) }, options, ) } export const getCancelOperationMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.delete( '*/operations/:id', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getCreatePagesMockHandler = ( overrideResponse?: | CreatePagesResponse | (( info: Parameters[1]>[0], ) => Promise | CreatePagesResponse), options?: RequestHandlerOptions, ) => { return http.post( '*/pages', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getCreatePagesResponseMock(), { status: 200 }, ) }, options, ) } export const getCreatePagesFromPathsMockHandler = ( overrideResponse?: | CreatePagesResponse | (( info: Parameters[1]>[0], ) => Promise | CreatePagesResponse), options?: RequestHandlerOptions, ) => { return http.post( '*/pages/from-paths', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getCreatePagesFromPathsResponseMock(), { status: 200 }, ) }, options, ) } export const getAddImageLayerMockHandler = ( overrideResponse?: | AddImageLayerResponse | (( info: Parameters[1]>[0], ) => Promise | AddImageLayerResponse), options?: RequestHandlerOptions, ) => { return http.post( '*/pages/:id/image-layers', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getAddImageLayerResponseMock(), { status: 200 }, ) }, options, ) } export const getPutMaskMockHandler = ( overrideResponse?: | PutMaskResponse | (( info: Parameters[1]>[0], ) => Promise | PutMaskResponse), options?: RequestHandlerOptions, ) => { return http.put( '*/pages/:id/masks/:role', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getPutMaskResponseMock(), { status: 200 }, ) }, options, ) } export const getGetPageThumbnailMockHandler = ( overrideResponse?: | ArrayBuffer | ((info: Parameters[1]>[0]) => Promise | ArrayBuffer), options?: RequestHandlerOptions, ) => { return http.get( '*/pages/:id/thumbnail', async (info: Parameters[1]>[0]) => { await delay(0) const binaryBody = overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetPageThumbnailResponseMock() return HttpResponse.arrayBuffer( binaryBody instanceof ArrayBuffer ? binaryBody : new ArrayBuffer(0), { status: 200, headers: { 'Content-Type': 'image/webp' } }, ) }, options, ) } export const getStartPipelineMockHandler = ( overrideResponse?: | StartPipelineResponse | (( info: Parameters[1]>[0], ) => Promise | StartPipelineResponse), options?: RequestHandlerOptions, ) => { return http.post( '*/pipelines', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getStartPipelineResponseMock(), { status: 200 }, ) }, options, ) } export const getListProjectsMockHandler = ( overrideResponse?: | ListProjectsResponse | (( info: Parameters[1]>[0], ) => Promise | ListProjectsResponse), options?: RequestHandlerOptions, ) => { return http.get( '*/projects', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getListProjectsResponseMock(), { status: 200 }, ) }, options, ) } export const getCreateProjectMockHandler = ( overrideResponse?: | ProjectSummary | (( info: Parameters[1]>[0], ) => Promise | ProjectSummary), options?: RequestHandlerOptions, ) => { return http.post( '*/projects', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getCreateProjectResponseMock(), { status: 200 }, ) }, options, ) } export const getPutCurrentProjectMockHandler = ( overrideResponse?: | ProjectSummary | (( info: Parameters[1]>[0], ) => Promise | ProjectSummary), options?: RequestHandlerOptions, ) => { return http.put( '*/projects/current', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getPutCurrentProjectResponseMock(), { status: 200 }, ) }, options, ) } export const getDeleteCurrentProjectMockHandler = ( overrideResponse?: | void | ((info: Parameters[1]>[0]) => Promise | void), options?: RequestHandlerOptions, ) => { return http.delete( '*/projects/current', async (info: Parameters[1]>[0]) => { await delay(0) if (typeof overrideResponse === 'function') { await overrideResponse(info) } return new HttpResponse(null, { status: 204 }) }, options, ) } export const getExportCurrentProjectMockHandler = ( overrideResponse?: | ArrayBuffer | (( info: Parameters[1]>[0], ) => Promise | ArrayBuffer), options?: RequestHandlerOptions, ) => { return http.post( '*/projects/current/export', async (info: Parameters[1]>[0]) => { await delay(0) const binaryBody = overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getExportCurrentProjectResponseMock() return HttpResponse.arrayBuffer( binaryBody instanceof ArrayBuffer ? binaryBody : new ArrayBuffer(0), { status: 200, headers: { 'Content-Type': 'application/octet-stream' } }, ) }, options, ) } export const getImportProjectMockHandler = ( overrideResponse?: | ProjectSummary | (( info: Parameters[1]>[0], ) => Promise | ProjectSummary), options?: RequestHandlerOptions, ) => { return http.post( '*/projects/import', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getImportProjectResponseMock(), { status: 200 }, ) }, options, ) } export const getGetSceneBinMockHandler = ( overrideResponse?: | ArrayBuffer | ((info: Parameters[1]>[0]) => Promise | ArrayBuffer), options?: RequestHandlerOptions, ) => { return http.get( '*/scene.bin', async (info: Parameters[1]>[0]) => { await delay(0) const binaryBody = overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetSceneBinResponseMock() return HttpResponse.arrayBuffer( binaryBody instanceof ArrayBuffer ? binaryBody : new ArrayBuffer(0), { status: 200, headers: { 'Content-Type': 'application/octet-stream' } }, ) }, options, ) } export const getGetSceneJsonMockHandler = ( overrideResponse?: | SceneSnapshot | (( info: Parameters[1]>[0], ) => Promise | SceneSnapshot), options?: RequestHandlerOptions, ) => { return http.get( '*/scene.json', async (info: Parameters[1]>[0]) => { await delay(0) return HttpResponse.json( overrideResponse !== undefined ? typeof overrideResponse === 'function' ? await overrideResponse(info) : overrideResponse : getGetSceneJsonResponseMock(), { status: 200 }, ) }, options, ) } export const getDefaultMock = () => [ getStartCodexDeviceLoginMockHandler(), getDeleteCodexSessionMockHandler(), getGetCodexAuthStatusMockHandler(), getStartCodexImageGenerationMockHandler(), getGetBlobMockHandler(), getGetConfigMockHandler(), getPatchConfigMockHandler(), getSetProviderSecretMockHandler(), getClearProviderSecretMockHandler(), getListDownloadsMockHandler(), getStartDownloadMockHandler(), getGetEngineCatalogMockHandler(), getEventsMockHandler(), getListFontsMockHandler(), getGetGoogleFontsCatalogMockHandler(), getFetchGoogleFontMockHandler(), getGetGoogleFontFileMockHandler(), getApplyCommandMockHandler(), getRedoMockHandler(), getUndoMockHandler(), getGetCatalogMockHandler(), getGetCurrentLlmMockHandler(), getPutCurrentLlmMockHandler(), getDeleteCurrentLlmMockHandler(), getGetMetaMockHandler(), getListOperationsMockHandler(), getCancelOperationMockHandler(), getCreatePagesMockHandler(), getCreatePagesFromPathsMockHandler(), getAddImageLayerMockHandler(), getPutMaskMockHandler(), getGetPageThumbnailMockHandler(), getStartPipelineMockHandler(), getListProjectsMockHandler(), getCreateProjectMockHandler(), getPutCurrentProjectMockHandler(), getDeleteCurrentProjectMockHandler(), getExportCurrentProjectMockHandler(), getImportProjectMockHandler(), getGetSceneBinMockHandler(), getGetSceneJsonMockHandler(), ]