{"version":3,"file":"dfx-openapi.mjs","sources":["../../../libs/dfx-openapi/src/lib/shared/serialize-primitive-param.ts","../../../libs/dfx-openapi/src/lib/shared/serialize-array-param.ts","../../../libs/dfx-openapi/src/lib/shared/default-path-serializer.ts","../../../libs/dfx-openapi/src/lib/shared/create-final-url.ts","../../../libs/dfx-openapi/src/lib/shared/serialize-object-param.ts","../../../libs/dfx-openapi/src/lib/shared/create-query-serializer.ts","../../../libs/dfx-openapi/src/lib/shared/remove-trailing-slash.ts","../../../libs/dfx-openapi/src/lib/http-client.ts","../../../libs/dfx-openapi/src/lib/resource-client.ts","../../../libs/dfx-openapi/src/public-api.ts","../../../libs/dfx-openapi/src/dfx-openapi.ts"],"sourcesContent":["/**\n * Serialize primitive param values\n */\nexport function serializePrimitiveParam(name: string, value: string, options?: { allowReserved?: boolean }): string {\n  if (value === undefined || value === null) {\n    return '';\n  }\n  if (typeof value === 'object') {\n    throw new Error('Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.');\n  }\n  return `${name}=${options?.allowReserved === true ? value : encodeURIComponent(value)}`;\n}\n","import { serializePrimitiveParam } from './serialize-primitive-param';\n\n/**\n * Serialize array param (shallow only)\n * @type {import('./index.js').serializeArrayParam}\n */\nexport function serializeArrayParam(\n  name: string,\n  value: unknown[],\n  options: {\n    style: 'simple' | 'label' | 'matrix' | 'form' | 'spaceDelimited' | 'pipeDelimited';\n    explode: boolean;\n    allowReserved?: boolean;\n  },\n): string {\n  if (!Array.isArray(value)) {\n    return '';\n  }\n\n  // explode: false\n  if (!options.explode) {\n    const joiner =\n      // @ts-expect-error JS syntax valid\n      {\n        form: ',',\n        spaceDelimited: '%20',\n        pipeDelimited: '|',\n      }[options.style] || ','; // note: for arrays, joiners vary wildly based on style + explode behavior\n\n    // @ts-expect-error Type issue\n    const final = (options.allowReserved === true ? value : value.map((v) => encodeURIComponent(v))).join(joiner);\n    switch (options.style) {\n      case 'simple': {\n        return final;\n      }\n      case 'label': {\n        return `.${final}`;\n      }\n      case 'matrix': {\n        return `;${name}=${final}`;\n      }\n      // case \"spaceDelimited\":\n      // case \"pipeDelimited\":\n      default: {\n        return `${name}=${final}`;\n      }\n    }\n  }\n\n  // explode: true\n  // @ts-expect-error JS syntax valid\n  const joiner = { simple: ',', label: '.', matrix: ';' }[options.style] || '&';\n  const values = [];\n  for (const v of value) {\n    if (options.style === 'simple' || options.style === 'label') {\n      // @ts-expect-error Type issue\n      values.push(options.allowReserved === true ? v : encodeURIComponent(v));\n    } else {\n      // @ts-expect-error Type issue\n      values.push(serializePrimitiveParam(name, v, options));\n    }\n  }\n  return options.style === 'label' || options.style === 'matrix' ? `${joiner}${values.join(joiner)}` : values.join(joiner);\n}\n","import { serializeArrayParam } from './serialize-array-param';\n\nconst PATH_PARAM_RE = /\\{[^{}]+}/g;\n\n/**\n * Handle different OpenAPI 3.x serialization styles\n * @see https://swagger.io/docs/specification/serialization/#path\n */\nexport function defaultPathSerializer(pathname: string, pathParams: Record<string, unknown>): string {\n  let nextURL = pathname;\n  for (const match of pathname.match(PATH_PARAM_RE) ?? []) {\n    let name = match.substring(1, match.length - 1);\n    let explode = false;\n    let style: 'simple' | 'label' | 'matrix' = 'simple';\n    if (name.endsWith('*')) {\n      explode = true;\n      name = name.substring(0, name.length - 1);\n    }\n    if (name.startsWith('.')) {\n      style = 'label';\n      name = name.substring(1);\n    } else if (name.startsWith(';')) {\n      style = 'matrix';\n      name = name.substring(1);\n    }\n    if (!pathParams || pathParams[name] === undefined || pathParams[name] === null) {\n      continue;\n    }\n    const value = pathParams[name];\n    if (Array.isArray(value)) {\n      nextURL = nextURL.replace(match, serializeArrayParam(name, value, { style, explode }));\n      continue;\n    }\n    if (typeof value === 'object') {\n      // @ts-expect-error Type issue\n      nextURL = nextURL.replace(match, serializeObjectParam(name, value, { style, explode }));\n      continue;\n    }\n    if (style === 'matrix') {\n      // @ts-expect-error Type issue\n      nextURL = nextURL.replace(match, `;${serializePrimitiveParam(name, value)}`);\n      continue;\n    }\n    // @ts-expect-error Type issue\n    nextURL = nextURL.replace(match, style === 'label' ? `.${encodeURIComponent(value)}` : encodeURIComponent(value));\n  }\n  return nextURL;\n}\n","import { defaultPathSerializer } from './default-path-serializer';\nimport { QuerySerializer } from './query-serializer';\n\n/**\n * Construct URL string from baseUrl and handle path and query params\n */\nexport function createFinalURL(\n  pathname: string,\n  options: {\n    baseUrl: string;\n    params: {\n      query?: Record<string, unknown>;\n      path?: Record<string, unknown>;\n    };\n    querySerializer: QuerySerializer<unknown>;\n  },\n) {\n  let finalURL = `${options.baseUrl}${pathname}`;\n  if (options.params?.path) {\n    finalURL = defaultPathSerializer(finalURL, options.params.path);\n  }\n  let search = options.querySerializer(options.params.query ?? {});\n  if (search.startsWith('?')) {\n    search = search.substring(1);\n  }\n  if (search) {\n    finalURL += `?${search}`;\n  }\n  return finalURL;\n}\n","/**\n * Serialize object param (shallow only)\n */\nexport function serializeObjectParam(\n  name: string,\n  value: Record<string, unknown>,\n  options: {\n    style: 'simple' | 'label' | 'matrix' | 'form' | 'deepObject';\n    explode: boolean;\n    allowReserved?: boolean;\n  },\n): string {\n  if (!value || typeof value !== 'object') {\n    return '';\n  }\n  const values = [];\n  const joiner =\n    // @ts-expect-error JS syntax valid\n    {\n      simple: ',',\n      label: '.',\n      matrix: ';',\n    }[options.style] || '&';\n\n  // explode: false\n  if (options.style !== 'deepObject' && !options.explode) {\n    for (const k in value) {\n      // @ts-expect-error Type issue\n      values.push(k, options.allowReserved === true ? value[k] : encodeURIComponent(value[k]));\n    }\n    const final = values.join(','); // note: values are always joined by comma in explode: false (but joiner can prefix)\n    switch (options.style) {\n      case 'form': {\n        return `${name}=${final}`;\n      }\n      case 'label': {\n        return `.${final}`;\n      }\n      case 'matrix': {\n        return `;${name}=${final}`;\n      }\n      default: {\n        return final;\n      }\n    }\n  }\n\n  // explode: true\n  for (const k in value) {\n    const finalName = options.style === 'deepObject' ? `${name}[${k}]` : k;\n    // @ts-expect-error Type issue\n    values.push(serializePrimitiveParam(finalName, value[k], options));\n  }\n  const final = values.join(joiner);\n  return options.style === 'label' || options.style === 'matrix' ? `${joiner}${final}` : final;\n}\n","import { QuerySerializerOptions } from './query-serializer-options';\nimport { serializeArrayParam } from './serialize-array-param';\nimport { serializeObjectParam } from './serialize-object-param';\nimport { serializePrimitiveParam } from './serialize-primitive-param';\n\n/**\n * Serialize query params to string\n */\nexport function createQuerySerializer<T = unknown>(options?: QuerySerializerOptions): (queryParams: T) => string {\n  return function querySerializer(queryParams) {\n    const search = [];\n    if (queryParams && typeof queryParams === 'object') {\n      for (const name in queryParams) {\n        const value = queryParams[name];\n        if (value === undefined || value === null) {\n          continue;\n        }\n        if (Array.isArray(value)) {\n          if (value.length === 0) {\n            continue;\n          }\n          search.push(\n            serializeArrayParam(name, value, {\n              style: 'form',\n              explode: true,\n              ...options?.array,\n              allowReserved: options?.allowReserved || false,\n            }),\n          );\n          continue;\n        }\n        if (typeof value === 'object') {\n          search.push(\n            // @ts-expect-error Type issue\n            serializeObjectParam(name, value, {\n              style: 'deepObject',\n              explode: true,\n              ...options?.object,\n              allowReserved: options?.allowReserved || false,\n            }),\n          );\n          continue;\n        }\n\n        // @ts-expect-error Type issue\n        search.push(serializePrimitiveParam(name, value, options));\n      }\n    }\n    return search.join('&');\n  };\n}\n","/**\n * Remove trailing slash from url\n */\nexport function removeTrailingSlash(url: string): string {\n  if (url.endsWith('/')) {\n    return url.substring(0, url.length - 1);\n  }\n  return url;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\n\nimport { FilterKeys, HttpMethod, MediaType, PathsWithMethod, RequiredKeysOf } from 'openapi-typescript-helpers';\n\nimport { createFinalURL } from './shared/create-final-url';\nimport { createQuerySerializer } from './shared/create-query-serializer';\nimport { HttpClientResponse } from './shared/http-client-response';\nimport { QuerySerializer } from './shared/query-serializer';\nimport { QuerySerializerOptions } from './shared/query-serializer-options';\nimport { removeTrailingSlash } from './shared/remove-trailing-slash';\nimport { RequestOptions } from './shared/request-options';\n\n/** This type helper makes the 2nd function param required if params/requestBody are required; otherwise, optional */\ntype MaybeOptionalInit<Params, Location extends keyof Params> =\n  RequiredKeysOf<RequestOptions<FilterKeys<Params, Location>>> extends never\n    ? RequestOptions<FilterKeys<Params, Location>> | undefined\n    : RequestOptions<FilterKeys<Params, Location>>;\n\n// The final init param to accept.\n// - Determines if the param is optional or not.\n// - Performs arbitrary [key: string] addition.\n// Note: the addition MUST happen after all the inference happens (otherwise TS can’t infer if init is required or not).\ntype InitParam<Init> = RequiredKeysOf<Init> extends never ? [(Init & Record<string, unknown>)?] : [Init & Record<string, unknown>];\n\ntype ClientMethod<Paths extends Record<string, Record<HttpMethod, any>>, Method extends HttpMethod, Media extends MediaType> = <\n  Path extends PathsWithMethod<Paths, Method>,\n  Init extends MaybeOptionalInit<Paths[Path], Method>,\n>(\n  url: Path,\n  ...init: InitParam<Init>\n) => Observable<HttpClientResponse<Paths[Path][Method], Media>>;\n\nexport type ClientRequestMethod<Paths extends Record<string, Record<HttpMethod, any>>, Media extends MediaType> = <\n  Method extends HttpMethod,\n  Path extends PathsWithMethod<Paths, Method>,\n  Init extends MaybeOptionalInit<Paths[Path], Method>,\n>(\n  method: Method,\n  url: Path,\n  ...init: InitParam<Init>\n) => Observable<HttpClientResponse<Paths[Path][Method], Media>>;\n\nexport interface OpenAPIHttpClientOptions {\n  baseUrl: string;\n  querySerializer?: QuerySerializer<unknown> | QuerySerializerOptions;\n}\n\nexport function createOpenAPIHttpClient<Paths extends Record<string, any>>(httpClient: HttpClient, options: OpenAPIHttpClientOptions) {\n  return new OpenAPIHttpClient<Paths>(httpClient, options);\n}\n\nexport class OpenAPIHttpClient<Paths extends Record<string, any>, Media extends MediaType = MediaType> {\n  private readonly baseUrl: string;\n  private readonly querySerializer?: QuerySerializer<unknown> | QuerySerializerOptions;\n\n  constructor(\n    private http: HttpClient,\n    { baseUrl, querySerializer }: OpenAPIHttpClientOptions,\n  ) {\n    this.baseUrl = removeTrailingSlash(baseUrl);\n    this.querySerializer = querySerializer;\n  }\n\n  core<Path extends PathsWithMethod<Paths, Method>, Init extends MaybeOptionalInit<Paths[Path], Method>, Method extends HttpMethod>(\n    method: Method,\n    path: Path,\n    options: InitParam<Init>,\n  ): Observable<HttpClientResponse<Paths[Path], Media>> {\n    const { baseUrl: requestBaseUrl, headers, params = {}, querySerializer: requestQuerySerializer, body } = options[0] ?? {};\n\n    const baseUrl = requestBaseUrl ? removeTrailingSlash(requestBaseUrl) : this.baseUrl;\n\n    let querySerializer = typeof this.querySerializer === 'function' ? this.querySerializer : createQuerySerializer(this.querySerializer);\n\n    if (requestQuerySerializer) {\n      querySerializer =\n        typeof requestQuerySerializer === 'function'\n          ? requestQuerySerializer\n          : createQuerySerializer({\n              ...(typeof this.querySerializer === 'object' ? this.querySerializer : {}),\n              ...requestQuerySerializer,\n            });\n    }\n\n    const finalUrl = createFinalURL(path as string, {\n      params,\n      querySerializer,\n      baseUrl,\n    });\n\n    switch (method) {\n      case 'get':\n        return this.http.get<HttpClientResponse<Paths[typeof path][Method], Media>>(finalUrl, { headers });\n      case 'put':\n        return this.http.put<HttpClientResponse<Paths[typeof path][Method], Media>>(finalUrl, body, { headers });\n      case 'post':\n        return this.http.post<HttpClientResponse<Paths[typeof path][Method], Media>>(finalUrl, body, { headers });\n      case 'delete':\n        return this.http.delete<HttpClientResponse<Paths[typeof path][Method], Media>>(finalUrl, { headers });\n      case 'options':\n        return this.http.options<HttpClientResponse<Paths[typeof path][Method], Media>>(finalUrl, { headers });\n      case 'head':\n        return this.http.head<HttpClientResponse<Paths[typeof path][Method], Media>>(finalUrl, { headers });\n      case 'patch':\n        return this.http.patch<HttpClientResponse<Paths[typeof path][Method], Media>>(finalUrl, body, { headers });\n      default:\n        throw 'Unknown method';\n    }\n  }\n\n  request: ClientRequestMethod<Paths, Media> = (method, path, ...options) => {\n    return this.core(method, path, options);\n  };\n\n  get: ClientMethod<Paths, 'get', Media> = (path, ...options) => {\n    return this.core('get', path, options);\n  };\n\n  put: ClientMethod<Paths, 'put', Media> = (path, ...options) => {\n    return this.core('put', path, options);\n  };\n\n  post: ClientMethod<Paths, 'post', Media> = (path, ...options) => {\n    return this.core('post', path, options);\n  };\n\n  delete: ClientMethod<Paths, 'delete', Media> = (path, ...options) => {\n    return this.core('delete', path, options);\n  };\n\n  options: ClientMethod<Paths, 'options', Media> = (path, ...options) => {\n    return this.core('options', path, options);\n  };\n\n  head: ClientMethod<Paths, 'head', Media> = (path, ...options) => {\n    return this.core('head', path, options);\n  };\n\n  patch: ClientMethod<Paths, 'patch', Media> = (path, ...options) => {\n    return this.core('patch', path, options);\n  };\n}\n","// openapi-resource.ts\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Strongly-typed OpenAPI Resource builder on top of Angular's httpResource.\n *\n * - Preserves dfx-openapi type inference (paths, params, body, and typed responses)\n * - Reactive by design: pass a function that reads signals; when those signals change,\n *   the resource re-fetches.\n * - Supports per-resource httpResource options via `http` field.\n */\nimport { HttpResourceOptions, HttpResourceRef, HttpResourceRequest, httpResource } from '@angular/common/http';\nimport { Injector, inject } from '@angular/core';\n\nimport type { FilterKeys, HttpMethod, MediaType, PathsWithMethod, RequiredKeysOf } from 'openapi-typescript-helpers';\n\nimport { createFinalURL } from './shared/create-final-url';\nimport { createQuerySerializer } from './shared/create-query-serializer';\nimport { HttpClientResponse } from './shared/http-client-response';\nimport { QuerySerializer } from './shared/query-serializer';\nimport { QuerySerializerOptions } from './shared/query-serializer-options';\nimport { removeTrailingSlash } from './shared/remove-trailing-slash';\nimport { RequestOptions } from './shared/request-options';\n\nexport interface OpenAPIResourceOptions {\n  baseUrl: string;\n  querySerializer?: QuerySerializer<unknown> | QuerySerializerOptions;\n}\n\n/**\n * Allow per-resource httpResource options via `http` property, while preserving\n * OpenAPI request options shape.\n */\ntype WithHttpOptions<Init, TResult, TRaw> = Init & {\n  http?: HttpResourceOptions<TResult, TRaw>;\n};\n\n/**\n * Make the single `init` argument optionally present based on whether params/body\n * are required for the specific operation. The init can be either a plain object\n * or a getter function (() => object | undefined) for reactivity.\n */\ntype InitGetterOrValue<Init> = Init | (() => Init | undefined);\n\ntype InitParam<Init> = RequiredKeysOf<Init> extends never ? [InitGetterOrValue<Init>?] : [InitGetterOrValue<Init>];\n\n/**\n * Factory: create a typed OpenAPI Resource builder.\n * Use this once per API (e.g. per `Paths`) and reuse it throughout your app.\n */\nexport function createOpenAPIResource<Paths extends Record<string, any>, Media extends MediaType = MediaType>(\n  options: OpenAPIResourceOptions,\n  injector: Injector = inject(Injector),\n) {\n  return new OpenAPIResource<Paths, Media>(options, injector);\n}\n\n/**\n * OpenAPIResource returns HttpResourceRefs that refetch reactively when any\n * signals used inside your init getter (path/params/body) change.\n */\nexport class OpenAPIResource<Paths extends Record<string, any>, Media extends MediaType = MediaType> {\n  private readonly baseUrl: string;\n  private readonly querySerializer?: QuerySerializer<unknown> | QuerySerializerOptions;\n\n  constructor(\n    { baseUrl, querySerializer }: OpenAPIResourceOptions,\n    private injector: Injector,\n  ) {\n    this.baseUrl = removeTrailingSlash(baseUrl);\n    this.querySerializer = querySerializer;\n  }\n\n  /**\n   * Core resource method. Prefer using the per-method helpers below.\n   *\n   * Example:\n   * const users = api.request('get', () => '/users', () => ({\n   *   params: { query: { page: pageSignal() } },\n   *   http: { defaultValue: [] }\n   * }));\n   */\n  core<Method extends HttpMethod, Path extends PathsWithMethod<Paths, Method>>(\n    method: Method,\n    path: () => Path | undefined,\n    ...initParam: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], Method>>, HttpClientResponse<Paths[Path][Method], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path][Method], Media> | undefined> {\n    type TResult = HttpClientResponse<Paths[Path][Method], Media>;\n    type Raw = unknown;\n    type Init = WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], Method>>, TResult, Raw>;\n\n    const initGetter: (() => Init | undefined) | undefined =\n      initParam.length === 0\n        ? undefined\n        : typeof initParam[0] === 'function'\n          ? (initParam[0] as () => Init | undefined)\n          : () => initParam[0] as Init | undefined;\n\n    // Build a reactive HttpResourceRequest\n    return httpResource<TResult>(\n      () => {\n        const p = path();\n        if (!p) {\n          return undefined;\n        }\n\n        const init = initGetter?.();\n        const {\n          baseUrl: requestBaseUrl,\n          headers,\n          params = {} as NonNullable<Init['params']>,\n          querySerializer: requestQuerySerializer,\n          body,\n        } = (init ?? {}) as Init;\n\n        const baseUrl = requestBaseUrl ? removeTrailingSlash(requestBaseUrl) : this.baseUrl;\n\n        let querySerializer =\n          typeof this.querySerializer === 'function' ? this.querySerializer : createQuerySerializer(this.querySerializer);\n\n        if (requestQuerySerializer) {\n          querySerializer =\n            typeof requestQuerySerializer === 'function'\n              ? requestQuerySerializer\n              : createQuerySerializer({\n                  ...(typeof this.querySerializer === 'object' ? this.querySerializer : {}),\n                  ...requestQuerySerializer,\n                });\n        }\n\n        const finalUrl = createFinalURL(p as string, {\n          params,\n          querySerializer,\n          baseUrl,\n        });\n\n        // Map to HttpResourceRequest for httpResource\n        const request: HttpResourceRequest = {\n          url: finalUrl,\n          method: method.toUpperCase(),\n          headers,\n          body,\n          // Note: query params were serialized into the URL. We do not pass\n          // request.params here to avoid double-encoding.\n        };\n\n        return request;\n      },\n      {\n        ...(initParam[0] as Init | undefined)?.http,\n        injector: (initParam[0] as Init | undefined)?.http?.injector ?? this.injector,\n      },\n    );\n  }\n\n  // Per-method helpers (preserve OpenAPI inference)\n\n  request<Method extends HttpMethod, Path extends PathsWithMethod<Paths, Method>>(\n    method: Method,\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], Method>>, HttpClientResponse<Paths[Path][Method], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path][Method], Media> | undefined> {\n    return this.core(method, path, ...init);\n  }\n\n  get<Path extends PathsWithMethod<Paths, 'get'>>(\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], 'get'>>, HttpClientResponse<Paths[Path]['get'], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path]['get'], Media> | undefined> {\n    return this.core('get', path, ...init);\n  }\n\n  put<Path extends PathsWithMethod<Paths, 'put'>>(\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], 'put'>>, HttpClientResponse<Paths[Path]['put'], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path]['put'], Media> | undefined> {\n    return this.core('put', path, ...init);\n  }\n\n  post<Path extends PathsWithMethod<Paths, 'post'>>(\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], 'post'>>, HttpClientResponse<Paths[Path]['post'], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path]['post'], Media> | undefined> {\n    return this.core('post', path, ...init);\n  }\n\n  delete<Path extends PathsWithMethod<Paths, 'delete'>>(\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], 'delete'>>, HttpClientResponse<Paths[Path]['delete'], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path]['delete'], Media> | undefined> {\n    return this.core('delete', path, ...init);\n  }\n\n  options<Path extends PathsWithMethod<Paths, 'options'>>(\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], 'options'>>, HttpClientResponse<Paths[Path]['options'], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path]['options'], Media> | undefined> {\n    return this.core('options', path, ...init);\n  }\n\n  head<Path extends PathsWithMethod<Paths, 'head'>>(\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], 'head'>>, HttpClientResponse<Paths[Path]['head'], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path]['head'], Media> | undefined> {\n    return this.core('head', path, ...init);\n  }\n\n  patch<Path extends PathsWithMethod<Paths, 'patch'>>(\n    path: () => Path | undefined,\n    ...init: InitParam<\n      WithHttpOptions<RequestOptions<FilterKeys<Paths[Path], 'patch'>>, HttpClientResponse<Paths[Path]['patch'], Media>, unknown>\n    >\n  ): HttpResourceRef<HttpClientResponse<Paths[Path]['patch'], Media> | undefined> {\n    return this.core('patch', path, ...init);\n  }\n}\n","/*\n * Public API Surface of dfx-openapi\n */\n\nexport * from './lib/http-client';\nexport * from './lib/resource-client';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["serializePrimitiveParam","serializeObjectParam"],"mappings":"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"}