{"version":3,"file":"components-yFWv9tPN.cjs","names":["#options","#transformParam","#eachParam","getParams","FunctionParams","getTransformer","File","Function","Type","getParams","FunctionParams","File","Function","Type","getParams","FunctionParams","Client","File","Type","Function","getParams","FunctionParams","Client","File","Function","FunctionParams","File","Function"],"sources":["../../../internals/utils/src/casing.ts","../../../internals/utils/src/reserved.ts","../../../internals/utils/src/urlPath.ts","../../../internals/tanstack-query/src/components/MutationKey.tsx","../../../internals/tanstack-query/src/components/QueryKey.tsx","../src/components/Mutation.tsx","../src/components/QueryOptions.tsx","../src/components/Query.tsx"],"sourcesContent":["type Options = {\n  /** When `true`, dot-separated segments are split on `.` and joined with `/` after casing. */\n  isFile?: boolean\n  /** Text prepended before casing is applied. */\n  prefix?: string\n  /** Text appended before casing is applied. */\n  suffix?: string\n}\n\n/**\n * Shared implementation for camelCase and PascalCase conversion.\n * Splits on common word boundaries (spaces, hyphens, underscores, dots, slashes, colons)\n * and capitalizes each word according to `pascal`.\n *\n * When `pascal` is `true` the first word is also capitalized (PascalCase), otherwise only subsequent words are.\n */\nfunction toCamelOrPascal(text: string, pascal: boolean): string {\n  const normalized = text\n    .trim()\n    .replace(/([a-z\\d])([A-Z])/g, '$1 $2')\n    .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n    .replace(/(\\d)([a-z])/g, '$1 $2')\n\n  const words = normalized.split(/[\\s\\-_./\\\\:]+/).filter(Boolean)\n\n  return words\n    .map((word, i) => {\n      const allUpper = word.length > 1 && word === word.toUpperCase()\n      if (allUpper) return word\n      if (i === 0 && !pascal) return word.charAt(0).toLowerCase() + word.slice(1)\n      return word.charAt(0).toUpperCase() + word.slice(1)\n    })\n    .join('')\n    .replace(/[^a-zA-Z0-9]/g, '')\n}\n\n/**\n * Splits `text` on `.` and applies `transformPart` to each segment.\n * The last segment receives `isLast = true`, all earlier segments receive `false`.\n * Segments are joined with `/` to form a file path.\n */\nfunction applyToFileParts(text: string, transformPart: (part: string, isLast: boolean) => string): string {\n  const parts = text.split('.')\n  return parts.map((part, i) => transformPart(part, i === parts.length - 1)).join('/')\n}\n\n/**\n * Converts `text` to camelCase.\n * When `isFile` is `true`, dot-separated segments are each cased independently and joined with `/`.\n *\n * @example\n * camelCase('hello-world')                   // 'helloWorld'\n * camelCase('pet.petId', { isFile: true })   // 'pet/petId'\n */\nexport function camelCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n  if (isFile) {\n    return applyToFileParts(text, (part, isLast) => camelCase(part, isLast ? { prefix, suffix } : {}))\n  }\n\n  return toCamelOrPascal(`${prefix} ${text} ${suffix}`, false)\n}\n\n/**\n * Converts `text` to PascalCase.\n * When `isFile` is `true`, the last dot-separated segment is PascalCased and earlier segments are camelCased.\n *\n * @example\n * pascalCase('hello-world')                  // 'HelloWorld'\n * pascalCase('pet.petId', { isFile: true })  // 'pet/PetId'\n */\nexport function pascalCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n  if (isFile) {\n    return applyToFileParts(text, (part, isLast) => (isLast ? pascalCase(part, { prefix, suffix }) : camelCase(part)))\n  }\n\n  return toCamelOrPascal(`${prefix} ${text} ${suffix}`, true)\n}\n\n/**\n * Converts `text` to snake_case.\n *\n * @example\n * snakeCase('helloWorld')  // 'hello_world'\n * snakeCase('Hello-World') // 'hello_world'\n */\nexport function snakeCase(text: string, { prefix = '', suffix = '' }: Omit<Options, 'isFile'> = {}): string {\n  const processed = `${prefix} ${text} ${suffix}`.trim()\n  return processed\n    .replace(/([a-z])([A-Z])/g, '$1_$2')\n    .replace(/[\\s\\-.]+/g, '_')\n    .replace(/[^a-zA-Z0-9_]/g, '')\n    .toLowerCase()\n    .split('_')\n    .filter(Boolean)\n    .join('_')\n}\n\n/**\n * Converts `text` to SCREAMING_SNAKE_CASE.\n *\n * @example\n * screamingSnakeCase('helloWorld') // 'HELLO_WORLD'\n */\nexport function screamingSnakeCase(text: string, { prefix = '', suffix = '' }: Omit<Options, 'isFile'> = {}): string {\n  return snakeCase(text, { prefix, suffix }).toUpperCase()\n}\n","/**\n * JavaScript and Java reserved words.\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n  'abstract',\n  'arguments',\n  'boolean',\n  'break',\n  'byte',\n  'case',\n  'catch',\n  'char',\n  'class',\n  'const',\n  'continue',\n  'debugger',\n  'default',\n  'delete',\n  'do',\n  'double',\n  'else',\n  'enum',\n  'eval',\n  'export',\n  'extends',\n  'false',\n  'final',\n  'finally',\n  'float',\n  'for',\n  'function',\n  'goto',\n  'if',\n  'implements',\n  'import',\n  'in',\n  'instanceof',\n  'int',\n  'interface',\n  'let',\n  'long',\n  'native',\n  'new',\n  'null',\n  'package',\n  'private',\n  'protected',\n  'public',\n  'return',\n  'short',\n  'static',\n  'super',\n  'switch',\n  'synchronized',\n  'this',\n  'throw',\n  'throws',\n  'transient',\n  'true',\n  'try',\n  'typeof',\n  'var',\n  'void',\n  'volatile',\n  'while',\n  'with',\n  'yield',\n  'Array',\n  'Date',\n  'hasOwnProperty',\n  'Infinity',\n  'isFinite',\n  'isNaN',\n  'isPrototypeOf',\n  'length',\n  'Math',\n  'name',\n  'NaN',\n  'Number',\n  'Object',\n  'prototype',\n  'String',\n  'toString',\n  'undefined',\n  'valueOf',\n]\n\n/**\n * Prefixes a word with `_` when it is a reserved JavaScript/Java identifier\n * or starts with a digit.\n */\nexport function transformReservedWord(word: string): string {\n  const firstChar = word.charCodeAt(0)\n  if (word && (reservedWords.includes(word) || (firstChar >= 48 && firstChar <= 57))) {\n    return `_${word}`\n  }\n  return word\n}\n\n/**\n * Returns `true` when `name` is a syntactically valid JavaScript variable name.\n */\nexport function isValidVarName(name: string): boolean {\n  try {\n    new Function(`var ${name}`)\n  } catch {\n    return false\n  }\n  return true\n}\n","import { camelCase } from './casing.ts'\nimport { isValidVarName } from './reserved.ts'\n\nexport type URLObject = {\n  /** The resolved URL string (Express-style or template literal, depending on context). */\n  url: string\n  /** Extracted path parameters as a key-value map, or `undefined` when the path has none. */\n  params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n  /** Controls whether the `url` is rendered as an Express path or a template literal. Defaults to `'path'`. */\n  type?: 'path' | 'template'\n  /** Optional transform applied to each extracted parameter name. */\n  replacer?: (pathParam: string) => string\n  /** When `true`, the result is serialized to a string expression instead of a plain object. */\n  stringify?: boolean\n}\n\n/** Supported identifier casing strategies for path parameters. */\ntype PathCasing = 'camelcase'\n\ntype Options = {\n  /** Casing strategy applied to path parameter names. Defaults to the original identifier. */\n  casing?: PathCasing\n}\n\n/**\n * Parses and transforms an OpenAPI/Swagger path string into various URL formats.\n *\n * @example\n * const p = new URLPath('/pet/{petId}')\n * p.URL      // '/pet/:petId'\n * p.template // '`/pet/${petId}`'\n */\nexport class URLPath {\n  /** The raw OpenAPI/Swagger path string, e.g. `/pet/{petId}`. */\n  path: string\n\n  #options: Options\n\n  constructor(path: string, options: Options = {}) {\n    this.path = path\n    this.#options = options\n  }\n\n  /** Converts the OpenAPI path to Express-style colon syntax, e.g. `/pet/{petId}` → `/pet/:petId`. */\n  get URL(): string {\n    return this.toURLPath()\n  }\n\n  /** Returns `true` when `path` is a fully-qualified URL (e.g. starts with `https://`). */\n  get isURL(): boolean {\n    try {\n      return !!new URL(this.path).href\n    } catch {\n      return false\n    }\n  }\n\n  /**\n   * Converts the OpenAPI path to a TypeScript template literal string.\n   *\n   * @example\n   * new URLPath('/pet/{petId}').template              // '`/pet/${petId}`'\n   * new URLPath('/account/monetary-accountID').template // '`/account/${monetaryAccountId}`'\n   */\n  get template(): string {\n    return this.toTemplateString()\n  }\n\n  /** Returns the path and its extracted params as a structured `URLObject`, or as a stringified expression when `stringify` is set. */\n  get object(): URLObject | string {\n    return this.toObject()\n  }\n\n  /** Returns a map of path parameter names, or `undefined` when the path has no parameters. */\n  get params(): Record<string, string> | undefined {\n    return this.getParams()\n  }\n\n  #transformParam(raw: string): string {\n    const param = isValidVarName(raw) ? raw : camelCase(raw)\n    return this.#options.casing === 'camelcase' ? camelCase(param) : param\n  }\n\n  /** Iterates over every `{param}` token in `path`, calling `fn` with the raw token and transformed name. */\n  #eachParam(fn: (raw: string, param: string) => void): void {\n    for (const match of this.path.matchAll(/\\{([^}]+)\\}/g)) {\n      const raw = match[1]!\n      fn(raw, this.#transformParam(raw))\n    }\n  }\n\n  toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n    const object = {\n      url: type === 'path' ? this.toURLPath() : this.toTemplateString({ replacer }),\n      params: this.getParams(),\n    }\n\n    if (stringify) {\n      if (type === 'template') {\n        return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n      }\n\n      if (object.params) {\n        return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n      }\n\n      return `{ url: '${object.url}' }`\n    }\n\n    return object\n  }\n\n  /**\n   * Converts the OpenAPI path to a TypeScript template literal string.\n   * An optional `replacer` can transform each extracted parameter name before interpolation.\n   *\n   * @example\n   * new URLPath('/pet/{petId}').toTemplateString() // '`/pet/${petId}`'\n   */\n  toTemplateString({ prefix = '', replacer }: { prefix?: string; replacer?: (pathParam: string) => string } = {}): string {\n    const parts = this.path.split(/\\{([^}]+)\\}/)\n    const result = parts\n      .map((part, i) => {\n        if (i % 2 === 0) return part\n        const param = this.#transformParam(part)\n        return `\\${${replacer ? replacer(param) : param}}`\n      })\n      .join('')\n\n    return `\\`${prefix}${result}\\``\n  }\n\n  /**\n   * Extracts all `{param}` segments from the path and returns them as a key-value map.\n   * An optional `replacer` transforms each parameter name in both key and value positions.\n   * Returns `undefined` when no path parameters are found.\n   */\n  getParams(replacer?: (pathParam: string) => string): Record<string, string> | undefined {\n    const params: Record<string, string> = {}\n\n    this.#eachParam((_raw, param) => {\n      const key = replacer ? replacer(param) : param\n      params[key] = key\n    })\n\n    return Object.keys(params).length > 0 ? params : undefined\n  }\n\n  /** Converts the OpenAPI path to Express-style colon syntax, e.g. `/pet/{petId}` → `/pet/:petId`. */\n  toURLPath(): string {\n    return this.path.replace(/\\{([^}]+)\\}/g, ':$1')\n  }\n}\n","import { URLPath } from '@internals/utils'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { ParamsCasing, PathParamsType, Transformer } from '../types.ts'\n\ntype Props = {\n  name: string\n  typeName: string\n  typeSchemas: OperationSchemas\n  operation: Operation\n  paramsCasing: ParamsCasing\n  pathParamsType: PathParamsType\n  transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n  pathParamsType: PathParamsType\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({}: GetParamsProps) {\n  return FunctionParams.factory({})\n}\n\nconst getTransformer: Transformer = ({ operation, casing }) => {\n  const path = new URLPath(operation.path, { casing })\n\n  return [`{ url: '${path.toURLPath()}' }`]\n}\n\nexport function MutationKey({ name, typeSchemas, pathParamsType, paramsCasing, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n  const params = getParams({ pathParamsType, typeSchemas })\n  const keys = transformer({ operation, schemas: typeSchemas, casing: paramsCasing })\n\n  return (\n    <>\n      <File.Source name={name} isExportable isIndexable>\n        <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n          {`[${keys.join(', ')}] as const`}\n        </Function.Arrow>\n      </File.Source>\n      <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n        <Type name={typeName} export>\n          {`ReturnType<typeof ${name}>`}\n        </Type>\n      </File.Source>\n    </>\n  )\n}\n\nMutationKey.getParams = getParams\nMutationKey.getTransformer = getTransformer\n","import { URLPath } from '@internals/utils'\nimport { isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { ParamsCasing, PathParamsType, Transformer } from '../types.ts'\n\ntype Props = {\n  name: string\n  typeName: string\n  typeSchemas: OperationSchemas\n  operation: Operation\n  paramsCasing: ParamsCasing\n  pathParamsType: PathParamsType\n  transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n  paramsCasing: ParamsCasing\n  pathParamsType: PathParamsType\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({ pathParamsType, paramsCasing, typeSchemas }: GetParamsProps) {\n  return FunctionParams.factory({\n    pathParams: typeSchemas.pathParams?.name\n      ? {\n          mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n          children: getPathParams(typeSchemas.pathParams, {\n            typed: true,\n            casing: paramsCasing,\n            override: (item) => ({ ...item, type: `${item.type} | undefined` }),\n          }),\n        }\n      : undefined,\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n  })\n}\n\nconst getTransformer: Transformer = ({ operation, schemas, casing }) => {\n  const path = new URLPath(operation.path, { casing })\n  const keys = [\n    path.toObject({\n      type: 'path',\n      stringify: true,\n    }),\n    schemas.queryParams?.name ? '...(params ? [params] : [])' : undefined,\n    schemas.request?.name ? '...(data ? [data] : [])' : undefined,\n  ].filter(Boolean)\n\n  return keys\n}\n\nexport function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): FabricReactNode {\n  const params = getParams({ pathParamsType, typeSchemas, paramsCasing })\n  const keys = transformer({\n    operation,\n    schemas: typeSchemas,\n    casing: paramsCasing,\n  })\n\n  return (\n    <>\n      <File.Source name={name} isExportable isIndexable>\n        <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n          {`[${keys.join(', ')}] as const`}\n        </Function.Arrow>\n      </File.Source>\n      <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n        <Type name={typeName} export>\n          {`ReturnType<typeof ${name}>`}\n        </Type>\n      </File.Source>\n    </>\n  )\n}\n\nQueryKey.getParams = getParams\nQueryKey.getTransformer = getTransformer\n","import { isOptional, type Operation } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode, Params } from '@kubb/react-fabric/types'\nimport type { PluginSwr } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\n\ntype Props = {\n  /**\n   * Name of the function\n   */\n  name: string\n  typeName: string\n  clientName: string\n  mutationKeyName: string\n  mutationKeyTypeName: string\n  typeSchemas: OperationSchemas\n  operation: Operation\n  paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n  paramsType: PluginSwr['resolvedOptions']['paramsType']\n  dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n  pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n  /**\n   * When true, mutation parameters are passed via trigger() instead of as hook arguments\n   * @default false\n   */\n  paramsToTrigger?: boolean\n}\n\ntype GetParamsProps = {\n  paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n  pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n  dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n  typeSchemas: OperationSchemas\n  mutationKeyTypeName: string\n}\n\n// Original getParams - used when paramsToTrigger is false (default)\nfunction getParams({ pathParamsType, paramsCasing, dataReturnType, typeSchemas, mutationKeyTypeName }: GetParamsProps) {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n  const TExtraArg = typeSchemas.request?.name || 'never'\n\n  return FunctionParams.factory({\n    pathParams: {\n      mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n      children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n    },\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n    options: {\n      type: `\n{\n  mutation?: SWRMutationConfiguration<${TData}, ${TError}, ${mutationKeyTypeName} | null, ${TExtraArg}> & { throwOnError?: boolean },\n  client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'},\n  shouldFetch?: boolean,\n}\n`,\n      default: '{}',\n    },\n  })\n}\n\ntype GetTriggerParamsProps = {\n  dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n  typeSchemas: OperationSchemas\n  mutationKeyTypeName: string\n  mutationArgTypeName: string\n}\n\n// New getParams - used when paramsToTrigger is true\nfunction getTriggerParams({ dataReturnType, typeSchemas, mutationKeyTypeName, mutationArgTypeName }: GetTriggerParamsProps) {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n  return FunctionParams.factory({\n    options: {\n      type: `\n{\n  mutation?: SWRMutationConfiguration<${TData}, ${TError}, ${mutationKeyTypeName} | null, ${mutationArgTypeName}> & { throwOnError?: boolean },\n  client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'},\n  shouldFetch?: boolean,\n}\n`,\n      default: '{}',\n    },\n  })\n}\n\ntype GetMutationParamsProps = {\n  paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n  typeSchemas: OperationSchemas\n}\n\nfunction getMutationParams({ paramsCasing, typeSchemas }: GetMutationParamsProps) {\n  return FunctionParams.factory({\n    ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n  })\n}\n\nexport function Mutation({\n  name,\n  clientName,\n  mutationKeyName,\n  mutationKeyTypeName,\n  paramsType,\n  paramsCasing,\n  pathParamsType,\n  dataReturnType,\n  typeSchemas,\n  operation,\n  paramsToTrigger = false,\n}: Props): FabricReactNode {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n  const mutationKeyParams = MutationKey.getParams({\n    pathParamsType,\n    typeSchemas,\n  })\n\n  const clientParams = Client.getParams({\n    paramsCasing,\n    paramsType,\n    typeSchemas,\n    pathParamsType,\n    isConfigurable: true,\n  })\n\n  // Use the new trigger-based approach when paramsToTrigger is true\n  if (paramsToTrigger) {\n    // Build the mutation params type (for arg destructuring)\n    const mutationParams = getMutationParams({\n      paramsCasing,\n      typeSchemas,\n    })\n\n    // Get the arg type name\n    const mutationArgTypeName = `${mutationKeyTypeName.replace('MutationKey', '')}MutationArg`\n\n    // Check if there are any mutation params (path, data, params, headers)\n    const hasMutationParams = Object.keys(mutationParams.params).length > 0\n\n    // Build the arg type for useSWRMutation\n    const argParams = FunctionParams.factory({\n      data: {\n        mode: 'object',\n        children: Object.entries(mutationParams.params).reduce((acc, [key, value]) => {\n          if (value) {\n            acc[key] = {\n              ...value,\n              type: undefined,\n            }\n          }\n          return acc\n        }, {} as Params),\n      },\n    })\n\n    const params = getTriggerParams({\n      dataReturnType,\n      typeSchemas,\n      mutationKeyTypeName,\n      mutationArgTypeName,\n    })\n\n    const generics = [TData, TError, `${mutationKeyTypeName} | null`, mutationArgTypeName].filter(Boolean)\n\n    const mutationArg = mutationParams.toConstructor()\n\n    return (\n      <>\n        <File.Source name={mutationArgTypeName} isExportable isIndexable isTypeOnly>\n          <Type name={mutationArgTypeName} export>\n            {hasMutationParams ? `{${mutationArg}}` : 'never'}\n          </Type>\n        </File.Source>\n        <File.Source name={name} isExportable isIndexable>\n          <Function\n            name={name}\n            export\n            params={params.toConstructor()}\n            JSDoc={{\n              comments: getComments(operation),\n            }}\n          >\n            {`\n        const { mutation: mutationOptions, client: config = {}, shouldFetch = true } = options ?? {}\n        const mutationKey = ${mutationKeyName}(${mutationKeyParams.toCall()})\n\n        return useSWRMutation<${generics.join(', ')}>(\n          shouldFetch ? mutationKey : null,\n          async (_url${hasMutationParams ? `, { arg: ${argParams.toCall()} }` : ''}) => {\n            return ${clientName}(${clientParams.toCall()})\n          },\n          mutationOptions\n        )\n    `}\n          </Function>\n        </File.Source>\n      </>\n    )\n  }\n\n  // Original behavior (default)\n  const generics = [\n    TData,\n    TError,\n    `${mutationKeyTypeName} | null`,\n    typeSchemas.request?.name, // TExtraArg - the arg type for useSWRMutation\n  ].filter(Boolean)\n\n  const params = getParams({\n    paramsCasing,\n    pathParamsType,\n    dataReturnType,\n    typeSchemas,\n    mutationKeyTypeName,\n  })\n\n  return (\n    <File.Source name={name} isExportable isIndexable>\n      <Function\n        name={name}\n        export\n        params={params.toConstructor()}\n        JSDoc={{\n          comments: getComments(operation),\n        }}\n      >\n        {`\n        const { mutation: mutationOptions, client: config = {}, shouldFetch = true } = options ?? {}\n        const mutationKey = ${mutationKeyName}(${mutationKeyParams.toCall()})\n\n        return useSWRMutation<${generics.join(', ')}>(\n          shouldFetch ? mutationKey : null,\n          async (_url${typeSchemas.request?.name ? ', { arg: data }' : ''}) => {\n            return ${clientName}(${clientParams.toCall()})\n          },\n          mutationOptions\n        )\n    `}\n      </Function>\n    </File.Source>\n  )\n}\n","import { getDefaultValue, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginSwr } from '../types.ts'\n\ntype Props = {\n  name: string\n  clientName: string\n  typeSchemas: OperationSchemas\n  paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n  paramsType: PluginSwr['resolvedOptions']['paramsType']\n  pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n}\n\ntype GetParamsProps = {\n  paramsType: PluginSwr['resolvedOptions']['paramsType']\n  paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n  pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n  if (paramsType === 'object') {\n    const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n    return FunctionParams.factory({\n      data: {\n        mode: 'object',\n        children: {\n          ...pathParams,\n          data: typeSchemas.request?.name\n            ? {\n                type: typeSchemas.request?.name,\n                optional: isOptional(typeSchemas.request?.schema),\n              }\n            : undefined,\n          params: typeSchemas.queryParams?.name\n            ? {\n                type: typeSchemas.queryParams?.name,\n                optional: isOptional(typeSchemas.queryParams?.schema),\n              }\n            : undefined,\n          headers: typeSchemas.headerParams?.name\n            ? {\n                type: typeSchemas.headerParams?.name,\n                optional: isOptional(typeSchemas.headerParams?.schema),\n              }\n            : undefined,\n        },\n      },\n      config: {\n        type: typeSchemas.request?.name\n          ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n          : 'Partial<RequestConfig> & { client?: Client }',\n        default: '{}',\n      },\n    })\n  }\n\n  return FunctionParams.factory({\n    pathParams: typeSchemas.pathParams?.name\n      ? {\n          mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n          children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n          default: getDefaultValue(typeSchemas.pathParams?.schema),\n        }\n      : undefined,\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n    config: {\n      type: typeSchemas.request?.name\n        ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }`\n        : 'Partial<RequestConfig> & { client?: Client }',\n      default: '{}',\n    },\n  })\n}\n\nexport function QueryOptions({ name, clientName, typeSchemas, paramsCasing, paramsType, pathParamsType }: Props): FabricReactNode {\n  const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas })\n  const clientParams = Client.getParams({\n    paramsCasing,\n    paramsType,\n    typeSchemas,\n    pathParamsType,\n    isConfigurable: true,\n  })\n\n  return (\n    <File.Source name={name} isExportable isIndexable>\n      <Function name={name} export params={params.toConstructor()}>\n        {`\n      return {\n        fetcher: async () => {\n          return ${clientName}(${clientParams.toCall()})\n        },\n      }\n      `}\n      </Function>\n    </File.Source>\n  )\n}\n\nQueryOptions.getParams = getParams\n","import { getDefaultValue, isOptional, type Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport type { PluginSwr } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n  /**\n   * Name of the function\n   */\n  name: string\n  queryOptionsName: string\n  queryKeyName: string\n  queryKeyTypeName: string\n  typeSchemas: OperationSchemas\n  paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n  paramsType: PluginSwr['resolvedOptions']['paramsType']\n  pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n  dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n  operation: Operation\n}\n\ntype GetParamsProps = {\n  paramsCasing: PluginSwr['resolvedOptions']['paramsCasing']\n  paramsType: PluginSwr['resolvedOptions']['paramsType']\n  pathParamsType: PluginSwr['resolvedOptions']['pathParamsType']\n  dataReturnType: PluginSwr['resolvedOptions']['client']['dataReturnType']\n  typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n  if (paramsType === 'object') {\n    const pathParams = getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })\n\n    const children = {\n      ...pathParams,\n      data: typeSchemas.request?.name\n        ? {\n            type: typeSchemas.request?.name,\n            optional: isOptional(typeSchemas.request?.schema),\n          }\n        : undefined,\n      params: typeSchemas.queryParams?.name\n        ? {\n            type: typeSchemas.queryParams?.name,\n            optional: isOptional(typeSchemas.queryParams?.schema),\n          }\n        : undefined,\n      headers: typeSchemas.headerParams?.name\n        ? {\n            type: typeSchemas.headerParams?.name,\n            optional: isOptional(typeSchemas.headerParams?.schema),\n          }\n        : undefined,\n    }\n\n    // Check if all children are optional or undefined\n    const allChildrenAreOptional = Object.values(children).every((child) => !child || child.optional)\n\n    return FunctionParams.factory({\n      data: {\n        mode: 'object',\n        children,\n        default: allChildrenAreOptional ? '{}' : undefined,\n      },\n      options: {\n        type: `\n{\n  query?: Parameters<typeof useSWR<${[TData, TError].join(', ')}>>[2],\n  client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'},\n  shouldFetch?: boolean,\n  immutable?: boolean\n}\n`,\n        default: '{}',\n      },\n    })\n  }\n\n  return FunctionParams.factory({\n    pathParams: typeSchemas.pathParams?.name\n      ? {\n          mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n          children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n          default: getDefaultValue(typeSchemas.pathParams?.schema),\n        }\n      : undefined,\n    data: typeSchemas.request?.name\n      ? {\n          type: typeSchemas.request?.name,\n          optional: isOptional(typeSchemas.request?.schema),\n        }\n      : undefined,\n    params: typeSchemas.queryParams?.name\n      ? {\n          type: typeSchemas.queryParams?.name,\n          optional: isOptional(typeSchemas.queryParams?.schema),\n        }\n      : undefined,\n    headers: typeSchemas.headerParams?.name\n      ? {\n          type: typeSchemas.headerParams?.name,\n          optional: isOptional(typeSchemas.headerParams?.schema),\n        }\n      : undefined,\n    options: {\n      type: `\n{\n  query?: Parameters<typeof useSWR<${[TData, TError].join(', ')}>>[2],\n  client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: Client }` : 'Partial<RequestConfig> & { client?: Client }'},\n  shouldFetch?: boolean,\n  immutable?: boolean\n}\n`,\n      default: '{}',\n    },\n  })\n}\n\nexport function Query({\n  name,\n  typeSchemas,\n  queryKeyName,\n  queryKeyTypeName,\n  queryOptionsName,\n  operation,\n  dataReturnType,\n  paramsType,\n  paramsCasing,\n  pathParamsType,\n}: Props): FabricReactNode {\n  const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n  const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n  const generics = [TData, TError, `${queryKeyTypeName} | null`]\n\n  const queryKeyParams = QueryKey.getParams({\n    pathParamsType,\n    typeSchemas,\n    paramsCasing,\n  })\n  const params = getParams({\n    paramsCasing,\n    paramsType,\n    pathParamsType,\n    dataReturnType,\n    typeSchemas,\n  })\n\n  const queryOptionsParams = QueryOptions.getParams({\n    paramsCasing,\n    paramsType,\n    pathParamsType,\n    typeSchemas,\n  })\n\n  return (\n    <File.Source name={name} isExportable isIndexable>\n      <Function\n        name={name}\n        export\n        params={params.toConstructor()}\n        JSDoc={{\n          comments: getComments(operation),\n        }}\n      >\n        {`\n       const { query: queryOptions, client: config = {}, shouldFetch = true, immutable } = options ?? {}\n\n       const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n\n       return useSWR<${generics.join(', ')}>(\n        shouldFetch ? queryKey : null,\n        {\n          ...${queryOptionsName}(${queryOptionsParams.toCall()}),\n          ...(immutable ? {\n              revalidateIfStale: false,\n              revalidateOnFocus: false,\n              revalidateOnReconnect: false\n            } : { }),\n          ...queryOptions\n        }\n       )\n       `}\n      </Function>\n    </File.Source>\n  )\n}\n"],"mappings":"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"}