{"version":3,"sources":["../src/deepinfra-provider.ts","../src/deepinfra-image-model.ts","../src/deepinfra-chat-language-model.ts","../src/version.ts"],"sourcesContent":["import type {\n  LanguageModelV3,\n  EmbeddingModelV3,\n  ProviderV3,\n  ImageModelV3,\n} from '@ai-sdk/provider';\nimport {\n  OpenAICompatibleCompletionLanguageModel,\n  OpenAICompatibleEmbeddingModel,\n} from '@ai-sdk/openai-compatible';\nimport {\n  loadApiKey,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport type { DeepInfraChatModelId } from './deepinfra-chat-options';\nimport type { DeepInfraEmbeddingModelId } from './deepinfra-embedding-options';\nimport type { DeepInfraCompletionModelId } from './deepinfra-completion-options';\nimport type { DeepInfraImageModelId } from './deepinfra-image-settings';\nimport { DeepInfraImageModel } from './deepinfra-image-model';\nimport { DeepInfraChatLanguageModel } from './deepinfra-chat-language-model';\nimport { VERSION } from './version';\n\nexport interface DeepInfraProviderSettings {\n  /**\n   * DeepInfra API key.\n   */\n  apiKey?: string;\n  /**\n   * Base URL for the API calls.\n   */\n  baseURL?: string;\n  /**\n   * Custom headers to include in the requests.\n   */\n  headers?: Record<string, string>;\n  /**\n   * Custom fetch implementation. You can use it as a middleware to intercept requests,\n   * or to provide a custom fetch implementation for e.g. testing.\n   */\n  fetch?: FetchFunction;\n}\n\nexport interface DeepInfraProvider extends ProviderV3 {\n  /**\n   * Creates a model for text generation.\n   */\n  (modelId: DeepInfraChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a chat model for text generation.\n   */\n  chatModel(modelId: DeepInfraChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for image generation.\n   */\n  image(modelId: DeepInfraImageModelId): ImageModelV3;\n\n  /**\n   * Creates a model for image generation.\n   */\n  imageModel(modelId: DeepInfraImageModelId): ImageModelV3;\n\n  /**\n   * Creates a chat model for text generation.\n   */\n  languageModel(modelId: DeepInfraChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a completion model for text generation.\n   */\n  completionModel(modelId: DeepInfraCompletionModelId): LanguageModelV3;\n\n  /**\n   * Creates a embedding model for text generation.\n   */\n  embeddingModel(modelId: DeepInfraEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: DeepInfraEmbeddingModelId): EmbeddingModelV3;\n}\n\nexport function createDeepInfra(\n  options: DeepInfraProviderSettings = {},\n): DeepInfraProvider {\n  const baseURL = withoutTrailingSlash(\n    options.baseURL ?? 'https://api.deepinfra.com/v1',\n  );\n  const getHeaders = () =>\n    withUserAgentSuffix(\n      {\n        Authorization: `Bearer ${loadApiKey({\n          apiKey: options.apiKey,\n          environmentVariableName: 'DEEPINFRA_API_KEY',\n          description: \"DeepInfra's API key\",\n        })}`,\n        ...options.headers,\n      },\n      `ai-sdk/deepinfra/${VERSION}`,\n    );\n\n  interface CommonModelConfig {\n    provider: string;\n    url: ({ path }: { path: string }) => string;\n    headers: () => Record<string, string>;\n    fetch?: FetchFunction;\n  }\n\n  const getCommonModelConfig = (modelType: string): CommonModelConfig => ({\n    provider: `deepinfra.${modelType}`,\n    url: ({ path }) => `${baseURL}/openai${path}`,\n    headers: getHeaders,\n    fetch: options.fetch,\n  });\n\n  const createChatModel = (modelId: DeepInfraChatModelId) => {\n    return new DeepInfraChatLanguageModel(\n      modelId,\n      getCommonModelConfig('chat'),\n    );\n  };\n\n  const createCompletionModel = (modelId: DeepInfraCompletionModelId) =>\n    new OpenAICompatibleCompletionLanguageModel(\n      modelId,\n      getCommonModelConfig('completion'),\n    );\n\n  const createEmbeddingModel = (modelId: DeepInfraEmbeddingModelId) =>\n    new OpenAICompatibleEmbeddingModel(\n      modelId,\n      getCommonModelConfig('embedding'),\n    );\n\n  const createImageModel = (modelId: DeepInfraImageModelId) =>\n    new DeepInfraImageModel(modelId, {\n      ...getCommonModelConfig('image'),\n      baseURL: baseURL\n        ? `${baseURL}/inference`\n        : 'https://api.deepinfra.com/v1/inference',\n    });\n\n  const provider = (modelId: DeepInfraChatModelId) => createChatModel(modelId);\n\n  provider.specificationVersion = 'v3' as const;\n  provider.completionModel = createCompletionModel;\n  provider.chatModel = createChatModel;\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n  provider.languageModel = createChatModel;\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n\n  return provider;\n}\n\nexport const deepinfra = createDeepInfra();\n","import type {\n  ImageModelV3,\n  ImageModelV3File,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  convertBase64ToUint8Array,\n  convertToFormData,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  downloadBlob,\n  postFormDataToApi,\n  postJsonToApi,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport type { DeepInfraImageModelId } from './deepinfra-image-settings';\nimport { z } from 'zod/v4';\n\ninterface DeepInfraImageModelConfig {\n  provider: string;\n  baseURL: string;\n  headers: () => Record<string, string>;\n  fetch?: FetchFunction;\n  _internal?: {\n    currentDate?: () => Date;\n  };\n}\n\nexport class DeepInfraImageModel implements ImageModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly maxImagesPerCall = 1;\n\n  get provider(): string {\n    return this.config.provider;\n  }\n\n  constructor(\n    readonly modelId: DeepInfraImageModelId,\n    private config: DeepInfraImageModelConfig,\n  ) {}\n\n  async doGenerate({\n    prompt,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    providerOptions,\n    headers,\n    abortSignal,\n    files,\n    mask,\n  }: Parameters<ImageModelV3['doGenerate']>[0]): Promise<\n    Awaited<ReturnType<ImageModelV3['doGenerate']>>\n  > {\n    const warnings: Array<SharedV3Warning> = [];\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n\n    // Image editing mode - use OpenAI-compatible /images/edits endpoint\n    if (files != null && files.length > 0) {\n      const { value: response, responseHeaders } = await postFormDataToApi({\n        url: this.getEditUrl(),\n        headers: combineHeaders(this.config.headers(), headers),\n        formData: convertToFormData<DeepInfraFormDataInput>(\n          {\n            model: this.modelId,\n            prompt,\n            image: await Promise.all(files.map(file => fileToBlob(file))),\n            mask: mask != null ? await fileToBlob(mask) : undefined,\n            n,\n            size,\n            ...(providerOptions.deepinfra ?? {}),\n          },\n          { useArrayBrackets: false },\n        ),\n        failedResponseHandler: createJsonErrorResponseHandler({\n          errorSchema: deepInfraEditErrorSchema,\n          errorToMessage: error => error.error?.message ?? 'Unknown error',\n        }),\n        successfulResponseHandler: createJsonResponseHandler(\n          deepInfraEditResponseSchema,\n        ),\n        abortSignal,\n        fetch: this.config.fetch,\n      });\n\n      return {\n        images: response.data.map(item => item.b64_json),\n        warnings,\n        response: {\n          timestamp: currentDate,\n          modelId: this.modelId,\n          headers: responseHeaders,\n        },\n      };\n    }\n\n    // Standard image generation mode\n    // Some deepinfra models support size while others support aspect ratio.\n    // Allow passing either and leave it up to the server to validate.\n    const splitSize = size?.split('x');\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: `${this.config.baseURL}/${this.modelId}`,\n      headers: combineHeaders(this.config.headers(), headers),\n      body: {\n        prompt,\n        num_images: n,\n        ...(aspectRatio && { aspect_ratio: aspectRatio }),\n        ...(splitSize && { width: splitSize[0], height: splitSize[1] }),\n        ...(seed != null && { seed }),\n        ...(providerOptions.deepinfra ?? {}),\n      },\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: deepInfraErrorSchema,\n        errorToMessage: error => error.detail.error,\n      }),\n      successfulResponseHandler: createJsonResponseHandler(\n        deepInfraImageResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    return {\n      images: response.images.map(image =>\n        image.replace(/^data:image\\/\\w+;base64,/, ''),\n      ),\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n      },\n    };\n  }\n\n  private getEditUrl(): string {\n    // Use OpenAI-compatible endpoint for image editing\n    // baseURL is typically https://api.deepinfra.com/v1/inference\n    // We need to use https://api.deepinfra.com/v1/openai/images/edits\n    const baseUrl = this.config.baseURL.replace('/inference', '/openai');\n    return `${baseUrl}/images/edits`;\n  }\n}\n\nexport const deepInfraErrorSchema = z.object({\n  detail: z.object({\n    error: z.string(),\n  }),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const deepInfraImageResponseSchema = z.object({\n  images: z.array(z.string()),\n});\n\n// Schema for OpenAI-compatible image edit endpoint errors\nexport const deepInfraEditErrorSchema = z.object({\n  error: z\n    .object({\n      message: z.string(),\n    })\n    .optional(),\n});\n\n// Schema for OpenAI-compatible image edit endpoint response\nexport const deepInfraEditResponseSchema = z.object({\n  data: z.array(z.object({ b64_json: z.string() })),\n});\n\ntype DeepInfraFormDataInput = {\n  model: string;\n  prompt: string | undefined;\n  image: Blob | Blob[];\n  mask?: Blob;\n  n: number;\n  size: `${number}x${number}` | undefined;\n  [key: string]: unknown;\n};\n\nasync function fileToBlob(file: ImageModelV3File): Promise<Blob> {\n  if (file.type === 'url') {\n    return downloadBlob(file.url);\n  }\n\n  const data =\n    file.data instanceof Uint8Array\n      ? file.data\n      : convertBase64ToUint8Array(file.data);\n\n  return new Blob([data as BlobPart], { type: file.mediaType });\n}\n","import type {\n  LanguageModelV3CallOptions,\n  LanguageModelV3GenerateResult,\n  LanguageModelV3StreamResult,\n} from '@ai-sdk/provider';\nimport { OpenAICompatibleChatLanguageModel } from '@ai-sdk/openai-compatible';\nimport type { FetchFunction } from '@ai-sdk/provider-utils';\n\ntype DeepInfraChatConfig = {\n  provider: string;\n  url: (options: { path: string; modelId?: string }) => string;\n  headers: () => Record<string, string | undefined>;\n  fetch?: FetchFunction;\n};\n\nexport class DeepInfraChatLanguageModel extends OpenAICompatibleChatLanguageModel {\n  constructor(modelId: string, config: DeepInfraChatConfig) {\n    super(modelId, config);\n  }\n\n  /**\n   * Fixes incorrect token usage for Gemini/Gemma models from DeepInfra.\n   *\n   * DeepInfra's API returns completion_tokens that don't include reasoning_tokens\n   * for Gemini/Gemma models, which violates the OpenAI-compatible spec.\n   * According to the spec, completion_tokens should include reasoning_tokens.\n   *\n   * Example of incorrect data from DeepInfra:\n   * {\n   *   \"completion_tokens\": 84,    // text-only tokens\n   *   \"completion_tokens_details\": {\n   *     \"reasoning_tokens\": 1081  // reasoning tokens not included above\n   *   }\n   * }\n   *\n   * This would result in negative text tokens: 84 - 1081 = -997\n   *\n   * The fix: If reasoning_tokens > completion_tokens, add reasoning_tokens\n   * to completion_tokens: 84 + 1081 = 1165\n   */\n  private fixUsageForGeminiModels(usage: any): typeof usage {\n    if (!usage || !usage.completion_tokens_details?.reasoning_tokens) {\n      return usage;\n    }\n\n    const completionTokens = usage.completion_tokens ?? 0;\n    const reasoningTokens = usage.completion_tokens_details.reasoning_tokens;\n\n    // If reasoning tokens exceed completion tokens, the API data is incorrect\n    // DeepInfra is returning only text tokens in completion_tokens, not including reasoning\n    if (reasoningTokens > completionTokens) {\n      const correctedCompletionTokens = completionTokens + reasoningTokens;\n\n      return {\n        ...usage,\n        // Add reasoning_tokens to completion_tokens to get the correct total\n        completion_tokens: correctedCompletionTokens,\n        // Update total_tokens if present\n        total_tokens:\n          usage.total_tokens != null\n            ? usage.total_tokens + reasoningTokens\n            : undefined,\n      };\n    }\n\n    return usage;\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const result = await super.doGenerate(options);\n\n    // Fix usage if needed\n    if (result.usage?.raw) {\n      const fixedRawUsage = this.fixUsageForGeminiModels(result.usage.raw);\n      if (fixedRawUsage !== result.usage.raw) {\n        // Recalculate usage with fixed data\n        const promptTokens = fixedRawUsage.prompt_tokens ?? 0;\n        const completionTokens = fixedRawUsage.completion_tokens ?? 0;\n        const cacheReadTokens =\n          fixedRawUsage.prompt_tokens_details?.cached_tokens ?? 0;\n        const reasoningTokens =\n          fixedRawUsage.completion_tokens_details?.reasoning_tokens ?? 0;\n\n        return {\n          ...result,\n          usage: {\n            inputTokens: {\n              total: promptTokens,\n              noCache: promptTokens - cacheReadTokens,\n              cacheRead: cacheReadTokens,\n              cacheWrite: undefined,\n            },\n            outputTokens: {\n              total: completionTokens,\n              text: completionTokens - reasoningTokens,\n              reasoning: reasoningTokens,\n            },\n            raw: fixedRawUsage,\n          },\n        };\n      }\n    }\n\n    return result;\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const result = await super.doStream(options);\n\n    // Wrap the stream to fix usage in the final chunk\n    const originalStream = result.stream;\n    const fixUsage = this.fixUsageForGeminiModels.bind(this);\n\n    const transformedStream = new ReadableStream({\n      async start(controller) {\n        const reader = originalStream.getReader();\n        try {\n          while (true) {\n            const { done, value } = await reader.read();\n            if (done) break;\n\n            // Fix usage in finish chunks\n            if (value.type === 'finish' && value.usage?.raw) {\n              const fixedRawUsage = fixUsage(value.usage.raw);\n              if (fixedRawUsage !== value.usage.raw) {\n                const promptTokens = fixedRawUsage.prompt_tokens ?? 0;\n                const completionTokens = fixedRawUsage.completion_tokens ?? 0;\n                const cacheReadTokens =\n                  fixedRawUsage.prompt_tokens_details?.cached_tokens ?? 0;\n                const reasoningTokens =\n                  fixedRawUsage.completion_tokens_details?.reasoning_tokens ??\n                  0;\n\n                controller.enqueue({\n                  ...value,\n                  usage: {\n                    inputTokens: {\n                      total: promptTokens,\n                      noCache: promptTokens - cacheReadTokens,\n                      cacheRead: cacheReadTokens,\n                      cacheWrite: undefined,\n                    },\n                    outputTokens: {\n                      total: completionTokens,\n                      text: completionTokens - reasoningTokens,\n                      reasoning: reasoningTokens,\n                    },\n                    raw: fixedRawUsage,\n                  },\n                });\n              } else {\n                controller.enqueue(value);\n              }\n            } else {\n              controller.enqueue(value);\n            }\n          }\n          controller.close();\n        } catch (error) {\n          controller.error(error);\n        }\n      },\n    });\n\n    return {\n      ...result,\n      stream: transformedStream,\n    };\n  }\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n  typeof __PACKAGE_VERSION__ !== 'undefined'\n    ? __PACKAGE_VERSION__\n    : '0.0.0-test';\n"],"mappings":";AAMA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;;;ACVP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,SAAS;AAYX,IAAM,sBAAN,MAAkD;AAAA,EAQvD,YACW,SACD,QACR;AAFS;AACD;AATV,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAAA,EASzB;AAAA,EAPH,IAAI,WAAmB;AACrB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAOA,MAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAEE;AAvDJ;AAwDI,UAAM,WAAmC,CAAC;AAC1C,UAAM,eAAc,sBAAK,OAAO,cAAZ,mBAAuB,gBAAvB,4CAA0C,oBAAI,KAAK;AAGvE,QAAI,SAAS,QAAQ,MAAM,SAAS,GAAG;AACrC,YAAM,EAAE,OAAOA,WAAU,iBAAAC,iBAAgB,IAAI,MAAM,kBAAkB;AAAA,QACnE,KAAK,KAAK,WAAW;AAAA,QACrB,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,OAAO;AAAA,QACtD,UAAU;AAAA,UACR;AAAA,YACE,OAAO,KAAK;AAAA,YACZ;AAAA,YACA,OAAO,MAAM,QAAQ,IAAI,MAAM,IAAI,UAAQ,WAAW,IAAI,CAAC,CAAC;AAAA,YAC5D,MAAM,QAAQ,OAAO,MAAM,WAAW,IAAI,IAAI;AAAA,YAC9C;AAAA,YACA;AAAA,YACA,IAAI,qBAAgB,cAAhB,YAA6B,CAAC;AAAA,UACpC;AAAA,UACA,EAAE,kBAAkB,MAAM;AAAA,QAC5B;AAAA,QACA,uBAAuB,+BAA+B;AAAA,UACpD,aAAa;AAAA,UACb,gBAAgB,WAAM;AA9EhC,gBAAAC,KAAAC;AA8EmC,oBAAAA,OAAAD,MAAA,MAAM,UAAN,gBAAAA,IAAa,YAAb,OAAAC,MAAwB;AAAA;AAAA,QACnD,CAAC;AAAA,QACD,2BAA2B;AAAA,UACzB;AAAA,QACF;AAAA,QACA;AAAA,QACA,OAAO,KAAK,OAAO;AAAA,MACrB,CAAC;AAED,aAAO;AAAA,QACL,QAAQH,UAAS,KAAK,IAAI,UAAQ,KAAK,QAAQ;AAAA,QAC/C;AAAA,QACA,UAAU;AAAA,UACR,WAAW;AAAA,UACX,SAAS,KAAK;AAAA,UACd,SAASC;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAKA,UAAM,YAAY,6BAAM,MAAM;AAC9B,UAAM,EAAE,OAAO,UAAU,gBAAgB,IAAI,MAAM,cAAc;AAAA,MAC/D,KAAK,GAAG,KAAK,OAAO,OAAO,IAAI,KAAK,OAAO;AAAA,MAC3C,SAAS,eAAe,KAAK,OAAO,QAAQ,GAAG,OAAO;AAAA,MACtD,MAAM;AAAA,QACJ;AAAA,QACA,YAAY;AAAA,QACZ,GAAI,eAAe,EAAE,cAAc,YAAY;AAAA,QAC/C,GAAI,aAAa,EAAE,OAAO,UAAU,CAAC,GAAG,QAAQ,UAAU,CAAC,EAAE;AAAA,QAC7D,GAAI,QAAQ,QAAQ,EAAE,KAAK;AAAA,QAC3B,IAAI,qBAAgB,cAAhB,YAA6B,CAAC;AAAA,MACpC;AAAA,MACA,uBAAuB,+BAA+B;AAAA,QACpD,aAAa;AAAA,QACb,gBAAgB,WAAS,MAAM,OAAO;AAAA,MACxC,CAAC;AAAA,MACD,2BAA2B;AAAA,QACzB;AAAA,MACF;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IACrB,CAAC;AAED,WAAO;AAAA,MACL,QAAQ,SAAS,OAAO;AAAA,QAAI,WAC1B,MAAM,QAAQ,4BAA4B,EAAE;AAAA,MAC9C;AAAA,MACA;AAAA,MACA,UAAU;AAAA,QACR,WAAW;AAAA,QACX,SAAS,KAAK;AAAA,QACd,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,aAAqB;AAI3B,UAAM,UAAU,KAAK,OAAO,QAAQ,QAAQ,cAAc,SAAS;AACnE,WAAO,GAAG,OAAO;AAAA,EACnB;AACF;AAEO,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,QAAQ,EAAE,OAAO;AAAA,IACf,OAAO,EAAE,OAAO;AAAA,EAClB,CAAC;AACH,CAAC;AAIM,IAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;AAC5B,CAAC;AAGM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,OAAO,EACJ,OAAO;AAAA,IACN,SAAS,EAAE,OAAO;AAAA,EACpB,CAAC,EACA,SAAS;AACd,CAAC;AAGM,IAAM,8BAA8B,EAAE,OAAO;AAAA,EAClD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AAClD,CAAC;AAYD,eAAe,WAAW,MAAuC;AAC/D,MAAI,KAAK,SAAS,OAAO;AACvB,WAAO,aAAa,KAAK,GAAG;AAAA,EAC9B;AAEA,QAAM,OACJ,KAAK,gBAAgB,aACjB,KAAK,OACL,0BAA0B,KAAK,IAAI;AAEzC,SAAO,IAAI,KAAK,CAAC,IAAgB,GAAG,EAAE,MAAM,KAAK,UAAU,CAAC;AAC9D;;;AC5LA,SAAS,yCAAyC;AAU3C,IAAM,6BAAN,cAAyC,kCAAkC;AAAA,EAChF,YAAY,SAAiB,QAA6B;AACxD,UAAM,SAAS,MAAM;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBQ,wBAAwB,OAA0B;AAxC5D;AAyCI,QAAI,CAAC,SAAS,GAAC,WAAM,8BAAN,mBAAiC,mBAAkB;AAChE,aAAO;AAAA,IACT;AAEA,UAAM,oBAAmB,WAAM,sBAAN,YAA2B;AACpD,UAAM,kBAAkB,MAAM,0BAA0B;AAIxD,QAAI,kBAAkB,kBAAkB;AACtC,YAAM,4BAA4B,mBAAmB;AAErD,aAAO;AAAA,QACL,GAAG;AAAA;AAAA,QAEH,mBAAmB;AAAA;AAAA,QAEnB,cACE,MAAM,gBAAgB,OAClB,MAAM,eAAe,kBACrB;AAAA,MACR;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,WACJ,SACwC;AAtE5C;AAuEI,UAAM,SAAS,MAAM,MAAM,WAAW,OAAO;AAG7C,SAAI,YAAO,UAAP,mBAAc,KAAK;AACrB,YAAM,gBAAgB,KAAK,wBAAwB,OAAO,MAAM,GAAG;AACnE,UAAI,kBAAkB,OAAO,MAAM,KAAK;AAEtC,cAAM,gBAAe,mBAAc,kBAAd,YAA+B;AACpD,cAAM,oBAAmB,mBAAc,sBAAd,YAAmC;AAC5D,cAAM,mBACJ,yBAAc,0BAAd,mBAAqC,kBAArC,YAAsD;AACxD,cAAM,mBACJ,yBAAc,8BAAd,mBAAyC,qBAAzC,YAA6D;AAE/D,eAAO;AAAA,UACL,GAAG;AAAA,UACH,OAAO;AAAA,YACL,aAAa;AAAA,cACX,OAAO;AAAA,cACP,SAAS,eAAe;AAAA,cACxB,WAAW;AAAA,cACX,YAAY;AAAA,YACd;AAAA,YACA,cAAc;AAAA,cACZ,OAAO;AAAA,cACP,MAAM,mBAAmB;AAAA,cACzB,WAAW;AAAA,YACb;AAAA,YACA,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,SACJ,SACsC;AACtC,UAAM,SAAS,MAAM,MAAM,SAAS,OAAO;AAG3C,UAAM,iBAAiB,OAAO;AAC9B,UAAM,WAAW,KAAK,wBAAwB,KAAK,IAAI;AAEvD,UAAM,oBAAoB,IAAI,eAAe;AAAA,MAC3C,MAAM,MAAM,YAAY;AAtH9B;AAuHQ,cAAM,SAAS,eAAe,UAAU;AACxC,YAAI;AACF,iBAAO,MAAM;AACX,kBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,gBAAI,KAAM;AAGV,gBAAI,MAAM,SAAS,cAAY,WAAM,UAAN,mBAAa,MAAK;AAC/C,oBAAM,gBAAgB,SAAS,MAAM,MAAM,GAAG;AAC9C,kBAAI,kBAAkB,MAAM,MAAM,KAAK;AACrC,sBAAM,gBAAe,mBAAc,kBAAd,YAA+B;AACpD,sBAAM,oBAAmB,mBAAc,sBAAd,YAAmC;AAC5D,sBAAM,mBACJ,yBAAc,0BAAd,mBAAqC,kBAArC,YAAsD;AACxD,sBAAM,mBACJ,yBAAc,8BAAd,mBAAyC,qBAAzC,YACA;AAEF,2BAAW,QAAQ;AAAA,kBACjB,GAAG;AAAA,kBACH,OAAO;AAAA,oBACL,aAAa;AAAA,sBACX,OAAO;AAAA,sBACP,SAAS,eAAe;AAAA,sBACxB,WAAW;AAAA,sBACX,YAAY;AAAA,oBACd;AAAA,oBACA,cAAc;AAAA,sBACZ,OAAO;AAAA,sBACP,MAAM,mBAAmB;AAAA,sBACzB,WAAW;AAAA,oBACb;AAAA,oBACA,KAAK;AAAA,kBACP;AAAA,gBACF,CAAC;AAAA,cACH,OAAO;AACL,2BAAW,QAAQ,KAAK;AAAA,cAC1B;AAAA,YACF,OAAO;AACL,yBAAW,QAAQ,KAAK;AAAA,YAC1B;AAAA,UACF;AACA,qBAAW,MAAM;AAAA,QACnB,SAAS,OAAO;AACd,qBAAW,MAAM,KAAK;AAAA,QACxB;AAAA,MACF;AAAA,IACF,CAAC;AAED,WAAO;AAAA,MACL,GAAG;AAAA,MACH,QAAQ;AAAA,IACV;AAAA,EACF;AACF;;;AC3KO,IAAM,UACX,OACI,WACA;;;AHiFC,SAAS,gBACd,UAAqC,CAAC,GACnB;AAxFrB;AAyFE,QAAM,UAAU;AAAA,KACd,aAAQ,YAAR,YAAmB;AAAA,EACrB;AACA,QAAM,aAAa,MACjB;AAAA,IACE;AAAA,MACE,eAAe,UAAU,WAAW;AAAA,QAClC,QAAQ,QAAQ;AAAA,QAChB,yBAAyB;AAAA,QACzB,aAAa;AAAA,MACf,CAAC,CAAC;AAAA,MACF,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,oBAAoB,OAAO;AAAA,EAC7B;AASF,QAAM,uBAAuB,CAAC,eAA0C;AAAA,IACtE,UAAU,aAAa,SAAS;AAAA,IAChC,KAAK,CAAC,EAAE,KAAK,MAAM,GAAG,OAAO,UAAU,IAAI;AAAA,IAC3C,SAAS;AAAA,IACT,OAAO,QAAQ;AAAA,EACjB;AAEA,QAAM,kBAAkB,CAAC,YAAkC;AACzD,WAAO,IAAI;AAAA,MACT;AAAA,MACA,qBAAqB,MAAM;AAAA,IAC7B;AAAA,EACF;AAEA,QAAM,wBAAwB,CAAC,YAC7B,IAAI;AAAA,IACF;AAAA,IACA,qBAAqB,YAAY;AAAA,EACnC;AAEF,QAAM,uBAAuB,CAAC,YAC5B,IAAI;AAAA,IACF;AAAA,IACA,qBAAqB,WAAW;AAAA,EAClC;AAEF,QAAM,mBAAmB,CAAC,YACxB,IAAI,oBAAoB,SAAS;AAAA,IAC/B,GAAG,qBAAqB,OAAO;AAAA,IAC/B,SAAS,UACL,GAAG,OAAO,eACV;AAAA,EACN,CAAC;AAEH,QAAM,WAAW,CAAC,YAAkC,gBAAgB,OAAO;AAE3E,WAAS,uBAAuB;AAChC,WAAS,kBAAkB;AAC3B,WAAS,YAAY;AACrB,WAAS,QAAQ;AACjB,WAAS,aAAa;AACtB,WAAS,gBAAgB;AACzB,WAAS,iBAAiB;AAC1B,WAAS,qBAAqB;AAE9B,SAAO;AACT;AAEO,IAAM,YAAY,gBAAgB;","names":["response","responseHeaders","_a","_b"]}