{"version":3,"sources":["../src/vendor/jupiter/client.ts"],"names":[],"mappings":"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","file":"jupiter.cjs","sourcesContent":["// Minimal Jupiter Swap API client — replaces the runtime of @jup-ag/api.\n//\n// The generated @jup-ag/api client hardcodes the legacy\n// `https://quote-api.jup.ag/v6` base URL and ignores a caller-supplied\n// basePath, so we reimplement the two endpoints the SDK uses against Jupiter's\n// current Swap API (https://dev.jup.ag/docs/swap-api). Only `GET /quote` and\n// `POST /swap-instructions` are implemented.\n\nimport type {\n  BuildGetRequest,\n  BuildResponse,\n  QuoteGetRequest,\n  QuoteResponse,\n  SwapInstructionsResponse,\n  SwapRequest,\n} from \"./types\";\n\n// Free tier. Callers with an API key typically override this with the paid\n// base `https://api.jup.ag/swap/v1` via `basePath`.\nconst DEFAULT_BASE_PATH = \"https://lite-api.jup.ag/swap/v1\";\n\n// Router base for the `/build` endpoint (paid). The Router lives under\n// `/swap/v2`, distinct from the Metis `/swap/v1` base above.\nconst DEFAULT_ROUTER_BASE_PATH = \"https://api.jup.ag/swap/v2\";\n\nexport interface JupiterClientConfig {\n  /** Override the API base URL (e.g. the paid `https://api.jup.ag/swap/v1`). */\n  basePath?: string;\n  /** Override the Router base URL for `/build` (default `.../swap/v2`). */\n  routerBasePath?: string;\n  /** API key, sent as the `x-api-key` header. */\n  apiKey?: string;\n  /** Extra headers applied to every request. */\n  headers?: Record<string, string>;\n}\n\nexport class JupiterApiError extends Error {\n  status: number;\n  body: string;\n\n  constructor(status: number, body: string) {\n    super(`Jupiter API request failed with status ${status}: ${body}`);\n    this.name = \"JupiterApiError\";\n    Object.setPrototypeOf(this, JupiterApiError.prototype);\n    this.status = status;\n    this.body = body;\n  }\n}\n\nfunction buildQuoteSearchParams(request: object): URLSearchParams {\n  const params = new URLSearchParams();\n  for (const [key, value] of Object.entries(request)) {\n    if (value === undefined || value === null) continue;\n    // Arrays (dexes/excludeDexes) are comma-separated per the Jupiter spec.\n    if (Array.isArray(value)) {\n      if (value.length > 0) params.append(key, value.join(\",\"));\n      continue;\n    }\n    params.append(key, String(value));\n  }\n  return params;\n}\n\nexport interface JupiterClient {\n  quoteGet(request: QuoteGetRequest): Promise<QuoteResponse>;\n  swapInstructionsPost(request: { swapRequest: SwapRequest }): Promise<SwapInstructionsResponse>;\n  /** Router: one-call quote + raw instructions. ExactIn only. */\n  buildGet(request: BuildGetRequest): Promise<BuildResponse>;\n}\n\nexport function createJupiterClient(config: JupiterClientConfig = {}): JupiterClient {\n  const basePath = (config.basePath ?? DEFAULT_BASE_PATH).replace(/\\/+$/, \"\");\n  const routerBasePath = (config.routerBasePath ?? DEFAULT_ROUTER_BASE_PATH).replace(/\\/+$/, \"\");\n  const baseHeaders: Record<string, string> = { ...config.headers };\n  if (config.apiKey) baseHeaders[\"x-api-key\"] = config.apiKey;\n\n  const requestAt = async <T>(base: string, path: string, init: RequestInit): Promise<T> => {\n    const response = await fetch(`${base}${path}`, init);\n    if (!response.ok) {\n      const body = await response.text().catch(() => \"\");\n      throw new JupiterApiError(response.status, body);\n    }\n    return (await response.json()) as T;\n  };\n\n  return {\n    quoteGet(quoteRequest) {\n      const search = buildQuoteSearchParams(quoteRequest);\n      return requestAt<QuoteResponse>(basePath, `/quote?${search.toString()}`, {\n        method: \"GET\",\n        headers: baseHeaders,\n      });\n    },\n    swapInstructionsPost({ swapRequest }) {\n      return requestAt<SwapInstructionsResponse>(basePath, `/swap-instructions`, {\n        method: \"POST\",\n        headers: { ...baseHeaders, \"content-type\": \"application/json\" },\n        body: JSON.stringify(swapRequest),\n      });\n    },\n    buildGet(buildRequest) {\n      const search = buildQuoteSearchParams(buildRequest);\n      return requestAt<BuildResponse>(routerBasePath, `/build?${search.toString()}`, {\n        method: \"GET\",\n        headers: baseHeaders,\n      });\n    },\n  };\n}\n"]}