{"version":3,"file":"index.mjs","names":["_typeof","o","_typeof","toPrimitive","toPropertyKey","r","_asyncIterator","r","AsyncFromSyncIterator","_objectWithoutProperties","value: {\n  path: string[];\n}","queryKey: TRPCQueryKey<any>","queryKey: AnyTRPCQueryKey","queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>","opts: TOptions","infiniteParams?: {\n    pageParam: any;\n    direction: 'forward' | 'backward';\n  }","asyncIterable: AsyncIterable<unknown>","queryClient: QueryClient","queryKey: TQueryKey","aggregate: unknown[]","opts: {\n  path: string[];\n  input?: unknown;\n  type: QueryType;\n  prefix: string | undefined;\n}","opts: {\n  prefix: string | undefined;\n  path: string[];\n}","key: TRPCMutationKeyWithoutPrefix","valueOrLazy: T | (() => T)","args: {\n  input: unknown;\n  query: typeof TRPCUntypedClient.prototype.query;\n  queryClient: QueryClient | (() => QueryClient);\n  path: string[];\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n  opts: AnyTRPCInfiniteQueryOptionsIn<TFeatureFlags> | undefined;\n}","queryFn: QueryFunction<\n    unknown,\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    unknown\n  >","args: {\n  mutate: typeof TRPCUntypedClient.prototype.mutation;\n  queryClient: QueryClient | (() => QueryClient);\n  path: string[];\n  opts: AnyTRPCMutationOptionsIn<TFeatureFlags> | undefined;\n  overrides: MutationOptionsOverride | undefined;\n}","mutationSuccessOverride: MutationOptionsOverride['onSuccess']","mutationFn: MutationFunction","args","args: {\n  input: unknown;\n  query: typeof TRPCUntypedClient.prototype.query;\n  queryClient: QueryClient | (() => QueryClient);\n  path: string[];\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n  opts: AnyTRPCQueryOptionsIn<TFeatureFlags> | undefined;\n}","queryFn: QueryFunction<\n    unknown,\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>\n  >","queryKey","args: {\n  subscribe: typeof TRPCUntypedClient.prototype.subscription;\n  path: string[];\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n  opts?: AnyTRPCSubscriptionOptionsIn;\n}","_subscribe: ReturnType<\n    TRPCSubscriptionOptions<any, TFeatureFlags>\n  >['subscribe']","opts: TRPCSubscriptionOptionsOut<TOutput, TError, any>","key: keyof $Result","callback: (prevState: $Result) => $Result","result: React.RefObject<T>","onTrackResult: (key: keyof T) => void","opts: TRPCOptionsProxyOptions<TRouter, TFeatureFlags>","type: TRPCProcedureType","path: string","input: unknown","trpcOpts: TRPCRequestOptions","contextMap: Record<UtilsMethods, () => unknown>","TRPCProvider: TRPCProviderType<TRouter, TFeatureFlags>"],"sources":["../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js","../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js","../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js","../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js","../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js","../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js","../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js","../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js","../src/internals/utils.ts","../src/internals/infiniteQueryOptions.ts","../src/internals/mutationOptions.ts","../src/internals/queryOptions.ts","../src/internals/subscriptionOptions.ts","../src/internals/createOptionsProxy.ts","../src/internals/Context.tsx"],"sourcesContent":["function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _asyncIterator(r) {\n  var n,\n    t,\n    o,\n    e = 2;\n  for (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n    if (t && null != (n = r[t])) return n.call(r);\n    if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n    t = \"@@asyncIterator\", o = \"@@iterator\";\n  }\n  throw new TypeError(\"Object is not async iterable\");\n}\nfunction AsyncFromSyncIterator(r) {\n  function AsyncFromSyncIteratorContinuation(r) {\n    if (Object(r) !== r) return Promise.reject(new TypeError(r + \" is not an object.\"));\n    var n = r.done;\n    return Promise.resolve(r.value).then(function (r) {\n      return {\n        value: r,\n        done: n\n      };\n    });\n  }\n  return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {\n    this.s = r, this.n = r.next;\n  }, AsyncFromSyncIterator.prototype = {\n    s: null,\n    n: null,\n    next: function next() {\n      return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n    },\n    \"return\": function _return(r) {\n      var n = this.s[\"return\"];\n      return void 0 === n ? Promise.resolve({\n        value: r,\n        done: !0\n      }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n    },\n    \"throw\": function _throw(r) {\n      var n = this.s[\"return\"];\n      return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n    }\n  }, new AsyncFromSyncIterator(r);\n}\nmodule.exports = _asyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (e.includes(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var s = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { skipToken, type QueryClient } from '@tanstack/react-query';\nimport {\n  isFunction,\n  isObject,\n  run,\n} from '@trpc/server/unstable-core-do-not-import';\nimport type {\n  AnyTRPCMutationKey,\n  AnyTRPCQueryKey,\n  FeatureFlags,\n  QueryType,\n  TRPCMutationKeyWithoutPrefix,\n  TRPCQueryKey,\n  TRPCQueryKeyWithoutPrefix,\n  TRPCQueryKeyWithPrefix,\n  TRPCQueryOptionsResult,\n} from './types';\n\n/**\n * @internal\n */\nexport function createTRPCOptionsResult(value: {\n  path: string[];\n}): TRPCQueryOptionsResult['trpc'] {\n  const path = value.path.join('.');\n\n  return {\n    path,\n  };\n}\n\nexport function isPrefixedQueryKey(\n  queryKey: TRPCQueryKey<any>,\n): queryKey is TRPCQueryKeyWithPrefix {\n  return queryKey.length >= 3;\n}\n\nexport function readQueryKey(queryKey: AnyTRPCQueryKey) {\n  if (isPrefixedQueryKey(queryKey)) {\n    return {\n      type: 'prefixed' as const,\n      prefix: queryKey[0],\n      path: queryKey[1],\n      args: queryKey[2],\n    };\n  } else {\n    return {\n      type: 'unprefixed' as const,\n      prefix: undefined,\n      path: queryKey[0],\n      args: queryKey[1],\n    };\n  }\n}\n\n/**\n * @internal\n */\nexport function getClientArgs<TOptions, TFeatureFlags extends FeatureFlags>(\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n  opts: TOptions,\n  infiniteParams?: {\n    pageParam: any;\n    direction: 'forward' | 'backward';\n  },\n) {\n  const queryKeyData = readQueryKey(queryKey);\n\n  let input = queryKeyData.args?.input;\n  if (infiniteParams) {\n    input = {\n      ...(queryKeyData.args?.input ?? {}),\n      ...(infiniteParams.pageParam !== undefined\n        ? { cursor: infiniteParams.pageParam }\n        : {}),\n      direction: infiniteParams.direction,\n    };\n  }\n  return [queryKeyData.path.join('.'), input, (opts as any)?.trpc] as const;\n}\n\n/**\n * @internal\n */\nexport async function buildQueryFromAsyncIterable<\n  TQueryKey extends TRPCQueryKey<any>,\n>(\n  asyncIterable: AsyncIterable<unknown>,\n  queryClient: QueryClient,\n  queryKey: TQueryKey,\n) {\n  const queryCache = queryClient.getQueryCache();\n\n  const query = queryCache.build(queryClient, {\n    queryKey,\n  });\n\n  query.setState({\n    data: [],\n    status: 'success',\n  });\n\n  const aggregate: unknown[] = [];\n  for await (const value of asyncIterable) {\n    aggregate.push(value);\n\n    query.setState({\n      data: [...aggregate],\n    });\n  }\n  return aggregate;\n}\n\n/**\n * To allow easy interactions with groups of related queries, such as\n * invalidating all queries of a router, we use an array as the path when\n * storing in tanstack query.\n *\n * @internal\n */\nexport function getQueryKeyInternal(opts: {\n  path: string[];\n  input?: unknown;\n  type: QueryType;\n  prefix: string | undefined;\n}): AnyTRPCQueryKey {\n  const key = run((): TRPCQueryKeyWithoutPrefix => {\n    const { input, type } = opts;\n\n    // Construct a query key that is easy to destructure and flexible for\n    // partial selecting etc.\n    // https://github.com/trpc/trpc/issues/3128\n\n    // some parts of the path may be dot-separated, split them up\n    const splitPath = opts.path.flatMap((part) => part.split('.'));\n\n    if (!input && type === 'any') {\n      // this matches also all mutations (see `getMutationKeyInternal`)\n\n      // for `utils.invalidate()` to match all queries (including vanilla react-query)\n      // we don't want nested array if path is empty, i.e. `[]` instead of `[[]]`\n      return splitPath.length ? [splitPath] : ([] as unknown as TRPCQueryKey);\n    }\n\n    if (\n      type === 'infinite' &&\n      isObject(input) &&\n      ('direction' in input || 'cursor' in input)\n    ) {\n      const {\n        cursor: _,\n        direction: __,\n        ...inputWithoutCursorAndDirection\n      } = input;\n      return [\n        splitPath,\n        {\n          input: inputWithoutCursorAndDirection,\n          type: 'infinite',\n        },\n      ];\n    }\n\n    return [\n      splitPath,\n      {\n        ...(typeof input !== 'undefined' &&\n          input !== skipToken && { input: input }),\n        ...(type && type !== 'any' && { type: type }),\n      },\n    ];\n  });\n\n  if (opts.prefix) {\n    key.unshift([opts.prefix]);\n  }\n  return key;\n}\n\n/**\n * @internal\n */\nexport function getMutationKeyInternal(opts: {\n  prefix: string | undefined;\n  path: string[];\n}): AnyTRPCMutationKey {\n  // some parts of the path may be dot-separated, split them up\n  const key: TRPCMutationKeyWithoutPrefix = [\n    opts.path.flatMap((part) => part.split('.')),\n  ];\n\n  if (opts.prefix) {\n    key.unshift([opts.prefix]);\n  }\n  return key;\n}\n\n/**\n * @internal\n */\nexport function unwrapLazyArg<T>(valueOrLazy: T | (() => T)): T {\n  return (isFunction(valueOrLazy) ? valueOrLazy() : valueOrLazy) as T;\n}\n","import type {\n  DataTag,\n  DefinedInitialDataInfiniteOptions,\n  QueryClient,\n  QueryFunction,\n  SkipToken,\n  UndefinedInitialDataInfiniteOptions,\n  UnusedSkipTokenInfiniteOptions,\n} from '@tanstack/react-query';\nimport { infiniteQueryOptions, skipToken } from '@tanstack/react-query';\nimport type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';\nimport type { DistributiveOmit } from '@trpc/server/unstable-core-do-not-import';\nimport type {\n  ExtractCursorType,\n  FeatureFlags,\n  ResolverDef,\n  TRPCInfiniteData,\n  TRPCQueryBaseOptions,\n  TRPCQueryKey,\n  TRPCQueryOptionsResult,\n} from './types';\nimport { createTRPCOptionsResult, getClientArgs } from './utils';\n\ntype ReservedOptions =\n  | 'queryKey'\n  | 'queryFn'\n  | 'queryHashFn'\n  | 'queryHash'\n  | 'initialPageParam';\n\ninterface UndefinedTRPCInfiniteQueryOptionsIn<\n  TInput,\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      UndefinedInitialDataInfiniteOptions<\n        TQueryFnData,\n        TError,\n        TRPCInfiniteData<TInput, TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n        NonNullable<ExtractCursorType<TInput>> | null\n      >,\n      ReservedOptions\n    >,\n    TRPCQueryBaseOptions {\n  initialCursor?: NonNullable<ExtractCursorType<TInput>> | null;\n}\n\ninterface UndefinedTRPCInfiniteQueryOptionsOut<\n  TInput,\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      UndefinedInitialDataInfiniteOptions<\n        TQueryFnData,\n        TError,\n        TRPCInfiniteData<TInput, TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n        NonNullable<ExtractCursorType<TInput>> | null\n      >,\n      'initialPageParam'\n    >,\n    TRPCQueryOptionsResult {\n  queryKey: DataTag<\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    TRPCInfiniteData<TInput, TData>,\n    TError\n  >;\n  initialPageParam: NonNullable<ExtractCursorType<TInput>> | null;\n}\n\ninterface DefinedTRPCInfiniteQueryOptionsIn<\n  TInput,\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      DefinedInitialDataInfiniteOptions<\n        TQueryFnData,\n        TError,\n        TRPCInfiniteData<TInput, TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n        NonNullable<ExtractCursorType<TInput>> | null\n      >,\n      ReservedOptions\n    >,\n    TRPCQueryBaseOptions {\n  initialCursor?: NonNullable<ExtractCursorType<TInput>> | null;\n}\n\ninterface DefinedTRPCInfiniteQueryOptionsOut<\n  TInput,\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      DefinedInitialDataInfiniteOptions<\n        TQueryFnData,\n        TError,\n        TRPCInfiniteData<TInput, TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n        NonNullable<ExtractCursorType<TInput>> | null\n      >,\n      'initialPageParam'\n    >,\n    TRPCQueryOptionsResult {\n  queryKey: DataTag<\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    TRPCInfiniteData<TInput, TData>,\n    TError\n  >;\n  initialPageParam: NonNullable<ExtractCursorType<TInput>> | null;\n}\n\ninterface UnusedSkipTokenTRPCInfiniteQueryOptionsIn<\n  TInput,\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      UnusedSkipTokenInfiniteOptions<\n        TQueryFnData,\n        TError,\n        TRPCInfiniteData<TInput, TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n        NonNullable<ExtractCursorType<TInput>> | null\n      >,\n      ReservedOptions\n    >,\n    TRPCQueryBaseOptions {\n  initialCursor?: NonNullable<ExtractCursorType<TInput>> | null;\n}\n\ninterface UnusedSkipTokenTRPCInfiniteQueryOptionsOut<\n  TInput,\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      UnusedSkipTokenInfiniteOptions<\n        TQueryFnData,\n        TError,\n        TRPCInfiniteData<TInput, TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n        NonNullable<ExtractCursorType<TInput>> | null\n      >,\n      'initialPageParam'\n    >,\n    TRPCQueryOptionsResult {\n  queryKey: DataTag<\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    TRPCInfiniteData<TInput, TData>,\n    TError\n  >;\n  initialPageParam: NonNullable<ExtractCursorType<TInput>> | null;\n}\n\nexport interface TRPCInfiniteQueryOptions<TDef extends ResolverDef> {\n  <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n    input: TDef['input'] | SkipToken,\n    opts: DefinedTRPCInfiniteQueryOptionsIn<\n      TDef['input'],\n      TQueryFnData,\n      TData,\n      TRPCClientErrorLike<{\n        transformer: TDef['transformer'];\n        errorShape: TDef['errorShape'];\n      }>,\n      TDef['featureFlags']\n    >,\n  ): DefinedTRPCInfiniteQueryOptionsOut<\n    TDef['input'],\n    TQueryFnData,\n    TData,\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>,\n    TDef['featureFlags']\n  >;\n  <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n    input: TDef['input'],\n    opts: UnusedSkipTokenTRPCInfiniteQueryOptionsIn<\n      TDef['input'],\n      TQueryFnData,\n      TData,\n      TRPCClientErrorLike<{\n        transformer: TDef['transformer'];\n        errorShape: TDef['errorShape'];\n      }>,\n      TDef['featureFlags']\n    >,\n  ): UnusedSkipTokenTRPCInfiniteQueryOptionsOut<\n    TDef['input'],\n    TQueryFnData,\n    TData,\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>,\n    TDef['featureFlags']\n  >;\n  <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n    input: TDef['input'] | SkipToken,\n    opts: UndefinedTRPCInfiniteQueryOptionsIn<\n      TDef['input'],\n      TQueryFnData,\n      TData,\n      TRPCClientErrorLike<{\n        transformer: TDef['transformer'];\n        errorShape: TDef['errorShape'];\n      }>,\n      TDef['featureFlags']\n    >,\n  ): UndefinedTRPCInfiniteQueryOptionsOut<\n    TDef['input'],\n    TQueryFnData,\n    TData,\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>,\n    TDef['featureFlags']\n  >;\n}\n\ntype AnyTRPCInfiniteQueryOptionsIn<TFeatureFlags extends FeatureFlags> =\n  | DefinedTRPCInfiniteQueryOptionsIn<any, any, any, any, TFeatureFlags>\n  | UnusedSkipTokenTRPCInfiniteQueryOptionsIn<any, any, any, any, TFeatureFlags>\n  | UndefinedTRPCInfiniteQueryOptionsIn<any, any, any, any, TFeatureFlags>;\n\ntype AnyTRPCInfiniteQueryOptionsOut<TFeatureFlags extends FeatureFlags> =\n  | DefinedTRPCInfiniteQueryOptionsOut<any, any, any, any, TFeatureFlags>\n  | UnusedSkipTokenTRPCInfiniteQueryOptionsOut<\n      any,\n      any,\n      any,\n      any,\n      TFeatureFlags\n    >\n  | UndefinedTRPCInfiniteQueryOptionsOut<any, any, any, any, TFeatureFlags>;\n\nexport function trpcInfiniteQueryOptions<\n  TFeatureFlags extends FeatureFlags,\n>(args: {\n  input: unknown;\n  query: typeof TRPCUntypedClient.prototype.query;\n  queryClient: QueryClient | (() => QueryClient);\n  path: string[];\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n  opts: AnyTRPCInfiniteQueryOptionsIn<TFeatureFlags> | undefined;\n}): AnyTRPCInfiniteQueryOptionsOut<TFeatureFlags> {\n  const { input, query, path, queryKey, opts } = args;\n  const inputIsSkipToken = input === skipToken;\n\n  const queryFn: QueryFunction<\n    unknown,\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    unknown\n  > = async (queryFnContext) => {\n    const actualOpts = {\n      ...opts,\n      trpc: {\n        ...opts?.trpc,\n        ...(opts?.trpc?.abortOnUnmount\n          ? { signal: queryFnContext.signal }\n          : { signal: null }),\n      },\n    };\n\n    const result = await query(\n      ...getClientArgs(queryKey, actualOpts, {\n        direction: queryFnContext.direction,\n        pageParam: queryFnContext.pageParam,\n      }),\n    );\n\n    return result;\n  };\n\n  return Object.assign(\n    infiniteQueryOptions({\n      ...(opts ?? ({} as AnyTRPCInfiniteQueryOptionsIn<TFeatureFlags>)),\n      queryKey,\n      queryFn: inputIsSkipToken ? skipToken : queryFn,\n      initialPageParam: opts?.initialCursor ?? (input as any)?.cursor,\n    }),\n    { trpc: createTRPCOptionsResult({ path }) },\n  );\n}\n","import type {\n  MutationFunction,\n  QueryClient,\n  UseMutationOptions,\n} from '@tanstack/react-query';\nimport type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';\nimport type {\n  DistributiveOmit,\n  MaybePromise,\n} from '@trpc/server/unstable-core-do-not-import';\nimport type {\n  DefaultFeatureFlags,\n  FeatureFlags,\n  KeyPrefixOptions,\n  ResolverDef,\n  TRPCMutationKey,\n  TRPCQueryBaseOptions,\n  TRPCQueryOptionsResult,\n} from './types';\nimport {\n  createTRPCOptionsResult,\n  getClientArgs,\n  getMutationKeyInternal,\n  unwrapLazyArg,\n} from './utils';\n\ntype ReservedOptions = 'mutationKey' | 'mutationFn';\n\ntype TRPCMutationOptionsIn<\n  TInput,\n  TError,\n  TOutput,\n  TContext,\n  TFeatureFlags extends FeatureFlags,\n> = DistributiveOmit<\n  UseMutationOptions<TOutput, TError, TInput, TContext>,\n  ReservedOptions\n> &\n  TRPCQueryBaseOptions &\n  KeyPrefixOptions<TFeatureFlags>;\n\ninterface TRPCMutationOptionsOut<\n  TInput,\n  TError,\n  TOutput,\n  TContext,\n  TFeatureFlags extends FeatureFlags,\n> extends UseMutationOptions<TOutput, TError, TInput, TContext>,\n    TRPCQueryOptionsResult {\n  mutationKey: TRPCMutationKey<TFeatureFlags['keyPrefix']>;\n}\n\nexport interface TRPCMutationOptions<\n  TDef extends ResolverDef,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> {\n  <TContext = unknown>(\n    opts?: TRPCMutationOptionsIn<\n      TDef['input'],\n      TRPCClientErrorLike<TDef>,\n      TDef['output'],\n      TContext,\n      TFeatureFlags\n    >,\n  ): TRPCMutationOptionsOut<\n    TDef['input'],\n    TRPCClientErrorLike<TDef>,\n    TDef['output'],\n    TContext,\n    TFeatureFlags\n  >;\n}\n\n/**\n * @internal\n */\nexport interface MutationOptionsOverride {\n  onSuccess: (opts: {\n    /**\n     * Calls the original function that was defined in the query's `onSuccess` option\n     */\n    originalFn: () => MaybePromise<void>;\n    queryClient: QueryClient;\n    /**\n     * Meta data passed in from the `useMutation()` hook\n     */\n    meta: Record<string, unknown>;\n  }) => MaybePromise<void>;\n}\n\ntype AnyTRPCMutationOptionsIn<TFeatureFlags extends FeatureFlags> =\n  TRPCMutationOptionsIn<unknown, unknown, unknown, unknown, TFeatureFlags>;\n\ntype AnyTRPCMutationOptionsOut<TFeatureFlags extends FeatureFlags> =\n  TRPCMutationOptionsOut<unknown, unknown, unknown, unknown, TFeatureFlags>;\n\n/**\n * @internal\n */\nexport function trpcMutationOptions<TFeatureFlags extends FeatureFlags>(args: {\n  mutate: typeof TRPCUntypedClient.prototype.mutation;\n  queryClient: QueryClient | (() => QueryClient);\n  path: string[];\n  opts: AnyTRPCMutationOptionsIn<TFeatureFlags> | undefined;\n  overrides: MutationOptionsOverride | undefined;\n}): AnyTRPCMutationOptionsOut<TFeatureFlags> {\n  const { mutate, path, opts, overrides } = args;\n  const queryClient = unwrapLazyArg(args.queryClient);\n\n  const mutationKey = getMutationKeyInternal({\n    path,\n    prefix: opts?.keyPrefix,\n  }) as TRPCMutationKey<TFeatureFlags['keyPrefix']>;\n\n  const defaultOpts = queryClient.defaultMutationOptions(\n    queryClient.getMutationDefaults(mutationKey),\n  );\n\n  const mutationSuccessOverride: MutationOptionsOverride['onSuccess'] =\n    overrides?.onSuccess ?? ((options) => options.originalFn());\n\n  const mutationFn: MutationFunction = async (input) => {\n    const result = await mutate(\n      ...getClientArgs([...mutationKey, { input }] as any, opts),\n    );\n\n    return result;\n  };\n\n  return {\n    ...opts,\n    mutationKey,\n    mutationFn,\n    onSuccess(...args) {\n      const originalFn = () =>\n        opts?.onSuccess?.(...args) ?? defaultOpts?.onSuccess?.(...args);\n\n      return mutationSuccessOverride({\n        originalFn,\n        queryClient,\n        meta: opts?.meta ?? defaultOpts?.meta ?? {},\n      });\n    },\n    trpc: createTRPCOptionsResult({ path }),\n  };\n}\n","import type {\n  DataTag,\n  DefinedInitialDataOptions,\n  QueryClient,\n  QueryFunction,\n  SkipToken,\n  UndefinedInitialDataOptions,\n  UnusedSkipTokenOptions,\n} from '@tanstack/react-query';\nimport { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';\nimport type {\n  coerceAsyncIterableToArray,\n  DistributiveOmit,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { isAsyncIterable } from '@trpc/server/unstable-core-do-not-import';\nimport type {\n  DefaultFeatureFlags,\n  FeatureFlags,\n  ResolverDef,\n  TRPCQueryBaseOptions,\n  TRPCQueryKey,\n  TRPCQueryOptionsResult,\n} from './types';\nimport {\n  buildQueryFromAsyncIterable,\n  createTRPCOptionsResult,\n  getClientArgs,\n  unwrapLazyArg,\n} from './utils';\n\ntype ReservedOptions = 'queryKey' | 'queryFn' | 'queryHashFn' | 'queryHash';\n\ninterface UndefinedTRPCQueryOptionsIn<\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      UndefinedInitialDataOptions<\n        coerceAsyncIterableToArray<TQueryFnData>,\n        TError,\n        coerceAsyncIterableToArray<TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>\n      >,\n      ReservedOptions\n    >,\n    TRPCQueryBaseOptions {}\n\ninterface UndefinedTRPCQueryOptionsOut<\n  TQueryFnData,\n  TOutput,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends UndefinedInitialDataOptions<\n      coerceAsyncIterableToArray<TQueryFnData>,\n      TError,\n      coerceAsyncIterableToArray<TOutput>,\n      TRPCQueryKey<TFeatureFlags['keyPrefix']>\n    >,\n    TRPCQueryOptionsResult {\n  queryKey: DataTag<\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    coerceAsyncIterableToArray<TOutput>,\n    TError\n  >;\n}\n\ninterface DefinedTRPCQueryOptionsIn<\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      DefinedInitialDataOptions<\n        coerceAsyncIterableToArray<NoInfer<TQueryFnData>>,\n        TError,\n        coerceAsyncIterableToArray<TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>\n      >,\n      ReservedOptions\n    >,\n    TRPCQueryBaseOptions {}\n\ninterface DefinedTRPCQueryOptionsOut<\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DefinedInitialDataOptions<\n      coerceAsyncIterableToArray<TQueryFnData>,\n      TError,\n      coerceAsyncIterableToArray<TData>,\n      TRPCQueryKey<TFeatureFlags['keyPrefix']>\n    >,\n    TRPCQueryOptionsResult {\n  queryKey: DataTag<\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    coerceAsyncIterableToArray<TData>,\n    TError\n  >;\n}\n\ninterface UnusedSkipTokenTRPCQueryOptionsIn<\n  TQueryFnData,\n  TData,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends DistributiveOmit<\n      UnusedSkipTokenOptions<\n        coerceAsyncIterableToArray<TQueryFnData>,\n        TError,\n        coerceAsyncIterableToArray<TData>,\n        TRPCQueryKey<TFeatureFlags['keyPrefix']>\n      >,\n      ReservedOptions\n    >,\n    TRPCQueryBaseOptions {}\n\ninterface UnusedSkipTokenTRPCQueryOptionsOut<\n  TQueryFnData,\n  TOutput,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends UnusedSkipTokenOptions<\n      coerceAsyncIterableToArray<TQueryFnData>,\n      TError,\n      coerceAsyncIterableToArray<TOutput>,\n      TRPCQueryKey<TFeatureFlags['keyPrefix']>\n    >,\n    TRPCQueryOptionsResult {\n  queryKey: DataTag<\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>,\n    coerceAsyncIterableToArray<TOutput>,\n    TError\n  >;\n}\n\nexport interface TRPCQueryOptions<\n  TDef extends ResolverDef,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> {\n  <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n    input: TDef['input'] | SkipToken,\n    opts: DefinedTRPCQueryOptionsIn<\n      TQueryFnData,\n      TData,\n      TRPCClientErrorLike<{\n        transformer: TDef['transformer'];\n        errorShape: TDef['errorShape'];\n      }>,\n      TFeatureFlags\n    >,\n  ): DefinedTRPCQueryOptionsOut<\n    TQueryFnData,\n    TData,\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>,\n    TFeatureFlags\n  >;\n  <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n    input: TDef['input'],\n    opts?: UnusedSkipTokenTRPCQueryOptionsIn<\n      TQueryFnData,\n      TData,\n      TRPCClientErrorLike<{\n        transformer: TDef['transformer'];\n        errorShape: TDef['errorShape'];\n      }>,\n      TFeatureFlags\n    >,\n  ): UnusedSkipTokenTRPCQueryOptionsOut<\n    TQueryFnData,\n    TData,\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>,\n    TFeatureFlags\n  >;\n  <TQueryFnData extends TDef['output'], TData = TQueryFnData>(\n    input: TDef['input'] | SkipToken,\n    opts?: UndefinedTRPCQueryOptionsIn<\n      TQueryFnData,\n      TData,\n      TRPCClientErrorLike<{\n        transformer: TDef['transformer'];\n        errorShape: TDef['errorShape'];\n      }>,\n      TFeatureFlags\n    >,\n  ): UndefinedTRPCQueryOptionsOut<\n    TQueryFnData,\n    TData,\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>,\n    TFeatureFlags\n  >;\n}\n\ntype AnyTRPCQueryOptionsIn<TFeatureFlags extends FeatureFlags> =\n  | DefinedTRPCQueryOptionsIn<unknown, unknown, unknown, TFeatureFlags>\n  | UnusedSkipTokenTRPCQueryOptionsIn<unknown, unknown, unknown, TFeatureFlags>\n  | UndefinedTRPCQueryOptionsIn<unknown, unknown, unknown, TFeatureFlags>;\n\ntype AnyTRPCQueryOptionsOut<\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> =\n  | DefinedTRPCQueryOptionsOut<unknown, unknown, unknown, TFeatureFlags>\n  | UnusedSkipTokenTRPCQueryOptionsOut<unknown, unknown, unknown, TFeatureFlags>\n  | UndefinedTRPCQueryOptionsOut<unknown, unknown, unknown, TFeatureFlags>;\n\n/**\n * @internal\n */\nexport function trpcQueryOptions<TFeatureFlags extends FeatureFlags>(args: {\n  input: unknown;\n  query: typeof TRPCUntypedClient.prototype.query;\n  queryClient: QueryClient | (() => QueryClient);\n  path: string[];\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n  opts: AnyTRPCQueryOptionsIn<TFeatureFlags> | undefined;\n}): AnyTRPCQueryOptionsOut<TFeatureFlags> {\n  const { input, query, path, queryKey, opts } = args;\n  const queryClient = unwrapLazyArg(args.queryClient);\n\n  const inputIsSkipToken = input === skipToken;\n\n  const queryFn: QueryFunction<\n    unknown,\n    TRPCQueryKey<TFeatureFlags['keyPrefix']>\n  > = async (queryFnContext) => {\n    const actualOpts = {\n      ...opts,\n      trpc: {\n        ...opts?.trpc,\n        ...(opts?.trpc?.abortOnUnmount\n          ? { signal: queryFnContext.signal }\n          : { signal: null }),\n      },\n    };\n    const queryKey = queryFnContext.queryKey;\n\n    const result = await query(...getClientArgs(queryKey, actualOpts));\n\n    if (isAsyncIterable(result)) {\n      return buildQueryFromAsyncIterable(result, queryClient, queryKey);\n    }\n\n    return result;\n  };\n\n  return Object.assign(\n    queryOptions({\n      ...opts,\n      queryKey: queryKey,\n      queryFn: inputIsSkipToken ? skipToken : queryFn,\n    }),\n    { trpc: createTRPCOptionsResult({ path }) },\n  );\n}\n","import type { SkipToken } from '@tanstack/react-query';\nimport { hashKey, skipToken } from '@tanstack/react-query';\nimport type { TRPCClientErrorLike, TRPCUntypedClient } from '@trpc/client';\nimport type { TRPCConnectionState } from '@trpc/client/unstable-internals';\nimport type { Unsubscribable } from '@trpc/server/observable';\nimport type { inferAsyncIterableYield } from '@trpc/server/unstable-core-do-not-import';\nimport * as React from 'react';\nimport type {\n  DefaultFeatureFlags,\n  FeatureFlags,\n  ResolverDef,\n  TRPCQueryKey,\n  TRPCQueryOptionsResult,\n} from './types';\nimport { createTRPCOptionsResult, readQueryKey } from './utils';\n\ninterface BaseTRPCSubscriptionOptionsIn<TOutput, TError> {\n  enabled?: boolean;\n  onStarted?: () => void;\n  onData?: (data: inferAsyncIterableYield<TOutput>) => void;\n  onError?: (err: TError) => void;\n  onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;\n}\n\ninterface UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError> {\n  onStarted?: () => void;\n  onData?: (data: inferAsyncIterableYield<TOutput>) => void;\n  onError?: (err: TError) => void;\n  onConnectionStateChange?: (state: TRPCConnectionState<TError>) => void;\n}\n\ninterface TRPCSubscriptionOptionsOut<\n  TOutput,\n  TError,\n  TFeatureFlags extends FeatureFlags,\n> extends UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>,\n    TRPCQueryOptionsResult {\n  enabled: boolean;\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n  subscribe: (\n    innerOpts: UnusedSkipTokenTRPCSubscriptionOptionsIn<TOutput, TError>,\n  ) => Unsubscribable;\n}\n\nexport interface TRPCSubscriptionOptions<\n  TDef extends ResolverDef,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> {\n  (\n    input: TDef['input'],\n    opts?: UnusedSkipTokenTRPCSubscriptionOptionsIn<\n      inferAsyncIterableYield<TDef['output']>,\n      TRPCClientErrorLike<TDef>\n    >,\n  ): TRPCSubscriptionOptionsOut<\n    inferAsyncIterableYield<TDef['output']>,\n    TRPCClientErrorLike<TDef>,\n    TFeatureFlags\n  >;\n  (\n    input: TDef['input'] | SkipToken,\n    opts?: BaseTRPCSubscriptionOptionsIn<\n      inferAsyncIterableYield<TDef['output']>,\n      TRPCClientErrorLike<TDef>\n    >,\n  ): TRPCSubscriptionOptionsOut<\n    inferAsyncIterableYield<TDef['output']>,\n    TRPCClientErrorLike<TDef>,\n    TFeatureFlags\n  >;\n}\nexport type TRPCSubscriptionStatus =\n  | 'idle'\n  | 'connecting'\n  | 'pending'\n  | 'error';\n\nexport interface TRPCSubscriptionBaseResult<TOutput, TError> {\n  status: TRPCSubscriptionStatus;\n  data: undefined | TOutput;\n  error: null | TError;\n  /**\n   * Reset the subscription\n   */\n  reset: () => void;\n}\n\nexport interface TRPCSubscriptionIdleResult<TOutput>\n  extends TRPCSubscriptionBaseResult<TOutput, null> {\n  status: 'idle';\n  data: undefined;\n  error: null;\n}\n\nexport interface TRPCSubscriptionConnectingResult<TOutput, TError>\n  extends TRPCSubscriptionBaseResult<TOutput, TError> {\n  status: 'connecting';\n  data: undefined | TOutput;\n  error: TError | null;\n}\n\nexport interface TRPCSubscriptionPendingResult<TOutput>\n  extends TRPCSubscriptionBaseResult<TOutput, undefined> {\n  status: 'pending';\n  data: TOutput | undefined;\n  error: null;\n}\n\nexport interface TRPCSubscriptionErrorResult<TOutput, TError>\n  extends TRPCSubscriptionBaseResult<TOutput, TError> {\n  status: 'error';\n  data: TOutput | undefined;\n  error: TError;\n}\n\nexport type TRPCSubscriptionResult<TOutput, TError> =\n  | TRPCSubscriptionIdleResult<TOutput>\n  | TRPCSubscriptionConnectingResult<TOutput, TError>\n  | TRPCSubscriptionErrorResult<TOutput, TError>\n  | TRPCSubscriptionPendingResult<TOutput>;\n\ntype AnyTRPCSubscriptionOptionsIn =\n  | BaseTRPCSubscriptionOptionsIn<unknown, unknown>\n  | UnusedSkipTokenTRPCSubscriptionOptionsIn<unknown, unknown>;\n\ntype AnyTRPCSubscriptionOptionsOut<TFeatureFlags extends FeatureFlags> =\n  TRPCSubscriptionOptionsOut<unknown, unknown, TFeatureFlags>;\n\n/**\n * @internal\n */\nexport const trpcSubscriptionOptions = <\n  TFeatureFlags extends FeatureFlags,\n>(args: {\n  subscribe: typeof TRPCUntypedClient.prototype.subscription;\n  path: string[];\n  queryKey: TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n  opts?: AnyTRPCSubscriptionOptionsIn;\n}): AnyTRPCSubscriptionOptionsOut<TFeatureFlags> => {\n  const { subscribe, path, queryKey, opts = {} } = args;\n  const input = readQueryKey(queryKey)?.args?.input;\n  const enabled = 'enabled' in opts ? !!opts.enabled : input !== skipToken;\n\n  const _subscribe: ReturnType<\n    TRPCSubscriptionOptions<any, TFeatureFlags>\n  >['subscribe'] = (innerOpts) => {\n    return subscribe(path.join('.'), input ?? undefined, innerOpts);\n  };\n\n  return {\n    ...opts,\n    enabled,\n    subscribe: _subscribe,\n    queryKey,\n    trpc: createTRPCOptionsResult({ path }),\n  };\n};\n\nexport function useSubscription<TOutput, TError>(\n  opts: TRPCSubscriptionOptionsOut<TOutput, TError, any>,\n): TRPCSubscriptionResult<TOutput, TError> {\n  type $Result = TRPCSubscriptionResult<TOutput, TError>;\n\n  const optsRef = React.useRef(opts);\n  optsRef.current = opts;\n\n  const trackedProps = React.useRef(new Set<keyof $Result>([]));\n\n  const addTrackedProp = React.useCallback((key: keyof $Result) => {\n    trackedProps.current.add(key);\n  }, []);\n\n  type Unsubscribe = () => void;\n  const currentSubscriptionRef = React.useRef<Unsubscribe>(() => {\n    // noop\n  });\n\n  const reset = React.useCallback((): void => {\n    // unsubscribe from the previous subscription\n    currentSubscriptionRef.current?.();\n\n    updateState(getInitialState);\n    if (!opts.enabled) {\n      return;\n    }\n    const subscription = opts.subscribe({\n      onStarted: () => {\n        optsRef.current.onStarted?.();\n        updateState((prev) => ({\n          ...(prev as any),\n          status: 'pending',\n          error: null,\n        }));\n      },\n      onData: (data) => {\n        optsRef.current.onData?.(data);\n        updateState((prev) => ({\n          ...(prev as any),\n          status: 'pending',\n          data,\n          error: null,\n        }));\n      },\n      onError: (error) => {\n        optsRef.current.onError?.(error);\n        updateState((prev) => ({\n          ...(prev as any),\n          status: 'error',\n          error,\n        }));\n      },\n      onConnectionStateChange: (result) => {\n        optsRef.current.onConnectionStateChange?.(result);\n        updateState((prev) => {\n          switch (result.state) {\n            case 'connecting':\n              return {\n                ...prev,\n                status: 'connecting',\n                error: result.error,\n              };\n            case 'pending':\n              // handled in onStarted\n              return prev;\n            case 'idle':\n              return {\n                ...prev,\n                status: 'idle',\n                data: undefined,\n                error: null,\n              };\n          }\n        });\n      },\n    });\n\n    currentSubscriptionRef.current = () => {\n      subscription.unsubscribe();\n    };\n    // eslint-disable-next-line react-hooks/react-compiler\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [hashKey(opts.queryKey), opts.enabled]);\n\n  const getInitialState = React.useCallback((): $Result => {\n    return opts.enabled\n      ? {\n          data: undefined,\n          error: null,\n          status: 'connecting',\n          reset,\n        }\n      : {\n          data: undefined,\n          error: null,\n          status: 'idle',\n          reset,\n        };\n  }, [opts.enabled, reset]);\n\n  const resultRef = React.useRef<$Result>(getInitialState());\n\n  const [state, setState] = React.useState<$Result>(\n    trackResult(resultRef, addTrackedProp),\n  );\n\n  state.reset = reset;\n\n  const updateState = React.useCallback(\n    (callback: (prevState: $Result) => $Result) => {\n      const prev = resultRef.current;\n      const next = (resultRef.current = callback(prev));\n\n      let shouldUpdate = false;\n      for (const key of trackedProps.current) {\n        if (prev[key] !== next[key]) {\n          shouldUpdate = true;\n          break;\n        }\n      }\n      if (shouldUpdate) {\n        setState(trackResult(resultRef, addTrackedProp));\n      }\n    },\n    [addTrackedProp],\n  );\n\n  React.useEffect(() => {\n    if (!opts.enabled) {\n      return;\n    }\n    reset();\n\n    return () => {\n      currentSubscriptionRef.current?.();\n    };\n  }, [reset, opts.enabled]);\n\n  return state;\n}\n\nfunction trackResult<T extends object>(\n  result: React.RefObject<T>,\n  onTrackResult: (key: keyof T) => void,\n): T {\n  const trackedResult = new Proxy(result.current, {\n    get(_target, prop) {\n      onTrackResult(prop as keyof T);\n      // Bypass target, so that we always get the latest value\n      return result.current[prop as keyof T];\n    },\n  });\n\n  return trackedResult;\n}\n","import type { DataTag, QueryClient, QueryFilters } from '@tanstack/react-query';\nimport type {\n  TRPCClient,\n  TRPCClientErrorLike,\n  TRPCRequestOptions,\n} from '@trpc/client';\nimport { getUntypedClient, TRPCUntypedClient } from '@trpc/client';\nimport type {\n  AnyTRPCProcedure,\n  AnyTRPCRootTypes,\n  AnyTRPCRouter,\n  inferProcedureInput,\n  inferRouterContext,\n  inferTransformedProcedureOutput,\n  TRPCProcedureType,\n  TRPCRouterRecord,\n} from '@trpc/server';\nimport { callTRPCProcedure, createTRPCRecursiveProxy } from '@trpc/server';\nimport type { MaybePromise } from '@trpc/server/unstable-core-do-not-import';\nimport {\n  trpcInfiniteQueryOptions,\n  type TRPCInfiniteQueryOptions,\n} from './infiniteQueryOptions';\nimport type { MutationOptionsOverride } from './mutationOptions';\nimport {\n  trpcMutationOptions,\n  type TRPCMutationOptions,\n} from './mutationOptions';\nimport { trpcQueryOptions, type TRPCQueryOptions } from './queryOptions';\nimport {\n  trpcSubscriptionOptions,\n  type TRPCSubscriptionOptions,\n} from './subscriptionOptions';\nimport type {\n  DefaultFeatureFlags,\n  FeatureFlags,\n  KeyPrefixOptions,\n  OptionalCursorInput,\n  ResolverDef,\n  TRPCInfiniteData,\n  TRPCMutationKey,\n  TRPCQueryKey,\n  WithRequired,\n} from './types';\nimport {\n  getMutationKeyInternal,\n  getQueryKeyInternal,\n  unwrapLazyArg,\n} from './utils';\n\nexport interface DecorateRouterKeyable<TFeatureFlags extends FeatureFlags> {\n  /**\n   * Calculate the TanStack Query Key for any path, could be used to invalidate every procedure beneath this path\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/guides/query-keys\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryKey\n   */\n  pathKey: () => TRPCQueryKey<TFeatureFlags['keyPrefix']>;\n\n  /**\n   * Calculate a TanStack Query Filter for any path, could be used to manipulate every procedure beneath this path\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/guides/filters\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryFilter\n   */\n  pathFilter: (\n    filters?: QueryFilters<TRPCQueryKey<TFeatureFlags['keyPrefix']>>,\n  ) => WithRequired<\n    QueryFilters<TRPCQueryKey<TFeatureFlags['keyPrefix']>>,\n    'queryKey'\n  >;\n}\n\ninterface TypeHelper<TDef extends ResolverDef> {\n  /**\n   * @internal prefer using inferInput and inferOutput to access types\n   */\n  '~types': {\n    input: TDef['input'];\n    output: TDef['output'];\n    errorShape: TDef['errorShape'];\n  };\n}\n\nexport type inferInput<\n  TProcedure extends\n    | DecorateInfiniteQueryProcedure<any>\n    | DecorateQueryProcedure<any>\n    | DecorateMutationProcedure<any>,\n> = TProcedure['~types']['input'];\n\nexport type inferOutput<\n  TProcedure extends\n    | DecorateInfiniteQueryProcedure<any>\n    | DecorateQueryProcedure<any>\n    | DecorateMutationProcedure<any>,\n> = TProcedure['~types']['output'];\n\nexport interface DecorateInfiniteQueryProcedure<TDef extends ResolverDef>\n  extends TypeHelper<TDef> {\n  /**\n   * Create a set of type-safe infinite query options that can be passed to `useInfiniteQuery`, `prefetchInfiniteQuery` etc.\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/reference/infiniteQueryOptions#infinitequeryoptions\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#infiniteQueryOptions\n   */\n  infiniteQueryOptions: TRPCInfiniteQueryOptions<TDef>;\n\n  /**\n   * Calculate the TanStack Query Key for a Infinite Query Procedure\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/guides/query-keys\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryKey\n   */\n  infiniteQueryKey: (input?: Partial<TDef['input']>) => DataTag<\n    TRPCQueryKey<TDef['featureFlags']['keyPrefix']>,\n    TRPCInfiniteData<TDef['input'], TDef['output']>,\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>\n  >;\n\n  /**\n   * Calculate a TanStack Query Filter for a Infinite Query Procedure\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/guides/filters\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryFilter\n   */\n  infiniteQueryFilter: (\n    input?: Partial<TDef['input']>,\n    filters?: QueryFilters<\n      DataTag<\n        TRPCQueryKey<TDef['featureFlags']['keyPrefix']>,\n        TRPCInfiniteData<TDef['input'], TDef['output']>,\n        TRPCClientErrorLike<{\n          transformer: TDef['transformer'];\n          errorShape: TDef['errorShape'];\n        }>\n      >\n    >,\n  ) => WithRequired<\n    QueryFilters<\n      DataTag<\n        TRPCQueryKey<TDef['featureFlags']['keyPrefix']>,\n        TRPCInfiniteData<TDef['input'], TDef['output']>,\n        TRPCClientErrorLike<{\n          transformer: TDef['transformer'];\n          errorShape: TDef['errorShape'];\n        }>\n      >\n    >,\n    'queryKey'\n  >;\n}\nexport interface DecorateQueryProcedure<TDef extends ResolverDef>\n  extends TypeHelper<TDef>,\n    DecorateRouterKeyable<TDef['featureFlags']> {\n  /**\n   * Create a set of type-safe query options that can be passed to `useQuery`, `prefetchQuery` etc.\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/reference/queryOptions#queryoptions\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryOptions\n   */\n  queryOptions: TRPCQueryOptions<TDef>;\n\n  /**\n   * Calculate the TanStack Query Key for a Query Procedure\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/guides/query-keys\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryKey\n   */\n  queryKey: (input?: Partial<TDef['input']>) => DataTag<\n    TRPCQueryKey<TDef['featureFlags']['keyPrefix']>,\n    TDef['output'],\n    TRPCClientErrorLike<{\n      transformer: TDef['transformer'];\n      errorShape: TDef['errorShape'];\n    }>\n  >;\n\n  /**\n   * Calculate a TanStack Query Filter for a Query Procedure\n   *\n   * @see https://tanstack.com/query/latest/docs/framework/react/guides/filters\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#queryFilter\n   */\n  queryFilter: (\n    input?: Partial<TDef['input']>,\n    filters?: QueryFilters<\n      DataTag<\n        TRPCQueryKey<TDef['featureFlags']['keyPrefix']>,\n        TDef['output'],\n        TRPCClientErrorLike<{\n          transformer: TDef['transformer'];\n          errorShape: TDef['errorShape'];\n        }>\n      >\n    >,\n  ) => WithRequired<\n    QueryFilters<\n      DataTag<\n        TRPCQueryKey<TDef['featureFlags']['keyPrefix']>,\n        TDef['output'],\n        TRPCClientErrorLike<{\n          transformer: TDef['transformer'];\n          errorShape: TDef['errorShape'];\n        }>\n      >\n    >,\n    'queryKey'\n  >;\n}\n\nexport interface DecorateMutationProcedure<TDef extends ResolverDef>\n  extends TypeHelper<TDef> {\n  /**\n   * Create a set of type-safe mutation options that can be passed to `useMutation`\n   *\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#mutationOptions\n   */\n  mutationOptions: TRPCMutationOptions<TDef>;\n\n  /**\n   * Calculate the TanStack Mutation Key for a Mutation Procedure\n   *\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#mutationKey\n   */\n  mutationKey: () => TRPCMutationKey<TDef['featureFlags']['keyPrefix']>;\n}\n\nexport interface DecorateSubscriptionProcedure<TDef extends ResolverDef>\n  extends TypeHelper<TDef> {\n  /**\n   * Create a set of type-safe subscription options that can be passed to `useSubscription`\n   *\n   * @see https://trpc.io/docs/client/tanstack-react-query/usage#subscriptionOptions\n   */\n  subscriptionOptions: TRPCSubscriptionOptions<TDef>;\n}\n\nexport type DecorateProcedure<\n  TType extends TRPCProcedureType,\n  TDef extends ResolverDef,\n> = TType extends 'query'\n  ? DecorateQueryProcedure<TDef> &\n      (TDef['input'] extends OptionalCursorInput\n        ? DecorateInfiniteQueryProcedure<TDef>\n        : Record<string, never>)\n  : TType extends 'mutation'\n    ? DecorateMutationProcedure<TDef>\n    : TType extends 'subscription'\n      ? DecorateSubscriptionProcedure<TDef>\n      : never;\n\n/**\n * @internal\n */\nexport type DecoratedRouterRecord<\n  TRoot extends AnyTRPCRootTypes,\n  TRecord extends TRPCRouterRecord,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> = {\n  [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value\n    ? $Value extends TRPCRouterRecord\n      ? DecoratedRouterRecord<TRoot, $Value, TFeatureFlags> &\n          DecorateRouterKeyable<TFeatureFlags>\n      : $Value extends AnyTRPCProcedure\n        ? DecorateProcedure<\n            $Value['_def']['type'],\n            {\n              input: inferProcedureInput<$Value>;\n              output: inferTransformedProcedureOutput<TRoot, $Value>;\n              transformer: TRoot['transformer'];\n              errorShape: TRoot['errorShape'];\n              featureFlags: TFeatureFlags;\n            }\n          >\n        : never\n    : never;\n};\n\nexport type TRPCOptionsProxy<\n  TRouter extends AnyTRPCRouter,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> = DecoratedRouterRecord<\n  TRouter['_def']['_config']['$types'],\n  TRouter['_def']['record'],\n  TFeatureFlags\n> &\n  DecorateRouterKeyable<TFeatureFlags>;\n\nexport type TRPCOptionsProxyOptionsBase<\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> = {\n  queryClient: QueryClient | (() => QueryClient);\n  overrides?: {\n    mutations?: MutationOptionsOverride;\n  };\n} & KeyPrefixOptions<TFeatureFlags>;\n\nexport interface TRPCOptionsProxyOptionsInternal<\n  TRouter extends AnyTRPCRouter,\n> {\n  router: TRouter;\n  ctx:\n    | inferRouterContext<TRouter>\n    | (() => MaybePromise<inferRouterContext<TRouter>>);\n}\n\nexport interface TRPCOptionsProxyOptionsExternal<\n  TRouter extends AnyTRPCRouter,\n> {\n  client: TRPCUntypedClient<TRouter> | TRPCClient<TRouter>;\n}\n\nexport type TRPCOptionsProxyOptions<\n  TRouter extends AnyTRPCRouter,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> = TRPCOptionsProxyOptionsBase<TFeatureFlags> &\n  (\n    | TRPCOptionsProxyOptionsInternal<TRouter>\n    | TRPCOptionsProxyOptionsExternal<TRouter>\n  );\n\ntype UtilsMethods =\n  | keyof DecorateQueryProcedure<any>\n  | keyof DecorateInfiniteQueryProcedure<any>\n  | keyof DecorateMutationProcedure<any>\n  | keyof DecorateSubscriptionProcedure<any>;\n\n/**\n * Create a typed proxy from your router types. Can also be used on the server.\n *\n * @see https://trpc.io/docs/client/tanstack-react-query/setup#3b-setup-without-react-context\n * @see https://trpc.io/docs/client/tanstack-react-query/server-components#5-create-a-trpc-caller-for-server-components\n */\nexport function createTRPCOptionsProxy<\n  TRouter extends AnyTRPCRouter,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n>(\n  opts: TRPCOptionsProxyOptions<TRouter, TFeatureFlags>,\n): TRPCOptionsProxy<TRouter, TFeatureFlags> {\n  const prefix = opts.keyPrefix;\n\n  const callIt = (type: TRPCProcedureType): any => {\n    return (path: string, input: unknown, trpcOpts: TRPCRequestOptions) => {\n      if ('router' in opts) {\n        return Promise.resolve(unwrapLazyArg(opts.ctx)).then((ctx) =>\n          callTRPCProcedure({\n            router: opts.router,\n            path: path,\n            getRawInput: async () => input,\n            ctx: ctx,\n            type: type,\n            signal: undefined,\n            batchIndex: 0,\n          }),\n        );\n      }\n\n      const untypedClient =\n        opts.client instanceof TRPCUntypedClient\n          ? opts.client\n          : getUntypedClient(opts.client);\n\n      return untypedClient[type](path, input, trpcOpts);\n    };\n  };\n\n  return createTRPCRecursiveProxy(({ args, path: _path }) => {\n    const path = [..._path];\n    const utilName = path.pop() as UtilsMethods;\n    const [arg1, arg2] = args as any[];\n\n    const contextMap: Record<UtilsMethods, () => unknown> = {\n      '~types': undefined as any,\n\n      pathKey: () => {\n        return getQueryKeyInternal({\n          path,\n          type: 'any',\n          prefix,\n        });\n      },\n      pathFilter: (): QueryFilters => {\n        return {\n          ...arg1,\n          queryKey: getQueryKeyInternal({\n            path,\n            type: 'any',\n            prefix,\n          }),\n        };\n      },\n\n      queryOptions: () => {\n        return trpcQueryOptions({\n          input: arg1,\n          opts: arg2,\n          path,\n          queryClient: opts.queryClient,\n          queryKey: getQueryKeyInternal({\n            path,\n            input: arg1,\n            type: 'query',\n            prefix,\n          }),\n          query: callIt('query'),\n        });\n      },\n      queryKey: () => {\n        return getQueryKeyInternal({\n          path,\n          input: arg1,\n          type: 'query',\n          prefix,\n        });\n      },\n      queryFilter: (): QueryFilters => {\n        return {\n          ...arg2,\n          queryKey: getQueryKeyInternal({\n            path,\n            input: arg1,\n            type: 'query',\n            prefix,\n          }),\n        };\n      },\n\n      infiniteQueryOptions: () => {\n        return trpcInfiniteQueryOptions({\n          input: arg1,\n          opts: arg2,\n          path,\n          queryClient: opts.queryClient,\n          queryKey: getQueryKeyInternal({\n            path,\n            input: arg1,\n            type: 'infinite',\n            prefix,\n          }),\n          query: callIt('query'),\n        });\n      },\n      infiniteQueryKey: () => {\n        return getQueryKeyInternal({\n          path,\n          input: arg1,\n          type: 'infinite',\n          prefix,\n        });\n      },\n      infiniteQueryFilter: (): QueryFilters => {\n        return {\n          ...arg2,\n          queryKey: getQueryKeyInternal({\n            path,\n            input: arg1,\n            type: 'infinite',\n            prefix,\n          }),\n        };\n      },\n\n      mutationOptions: () => {\n        return trpcMutationOptions({\n          opts: arg1,\n          path,\n          queryClient: opts.queryClient,\n          mutate: callIt('mutation'),\n          overrides: opts.overrides?.mutations,\n        });\n      },\n      mutationKey: () => {\n        return getMutationKeyInternal({\n          path,\n          prefix,\n        });\n      },\n\n      subscriptionOptions: () => {\n        return trpcSubscriptionOptions({\n          opts: arg2,\n          path,\n          queryKey: getQueryKeyInternal({\n            path,\n            input: arg1,\n            type: 'any',\n            prefix,\n          }),\n          subscribe: callIt('subscription'),\n        });\n      },\n    };\n\n    return contextMap[utilName]();\n  });\n}\n","import type { QueryClient } from '@tanstack/react-query';\nimport type { TRPCClient } from '@trpc/client';\nimport type { AnyTRPCRouter } from '@trpc/server';\nimport * as React from 'react';\nimport type { TRPCOptionsProxy } from './createOptionsProxy';\nimport { createTRPCOptionsProxy } from './createOptionsProxy';\nimport type {\n  DefaultFeatureFlags,\n  FeatureFlags,\n  KeyPrefixOptions,\n} from './types';\n\ntype TRPCProviderType<\n  TRouter extends AnyTRPCRouter,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> = React.FC<\n  {\n    children: React.ReactNode;\n    queryClient: QueryClient;\n    trpcClient: TRPCClient<TRouter>;\n  } & KeyPrefixOptions<TFeatureFlags>\n>;\n\nexport interface CreateTRPCContextResult<\n  TRouter extends AnyTRPCRouter,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n> {\n  TRPCProvider: TRPCProviderType<TRouter, TFeatureFlags>;\n  useTRPC: () => TRPCOptionsProxy<TRouter, TFeatureFlags>;\n  useTRPCClient: () => TRPCClient<TRouter>;\n}\n\n/**\n * Create a set of type-safe provider-consumers\n *\n * @see https://trpc.io/docs/client/tanstack-react-query/setup#3a-setup-the-trpc-context-provider\n */\nexport function createTRPCContext<\n  TRouter extends AnyTRPCRouter,\n  TFeatureFlags extends FeatureFlags = DefaultFeatureFlags,\n>(): CreateTRPCContextResult<TRouter, TFeatureFlags> {\n  const TRPCClientContext = React.createContext<TRPCClient<TRouter> | null>(\n    null,\n  );\n  const TRPCContext = React.createContext<TRPCOptionsProxy<\n    TRouter,\n    TFeatureFlags\n  > | null>(null);\n\n  const TRPCProvider: TRPCProviderType<TRouter, TFeatureFlags> = (props) => {\n    const value = React.useMemo(\n      () =>\n        createTRPCOptionsProxy<TRouter, TFeatureFlags>({\n          client: props.trpcClient,\n          queryClient: props.queryClient,\n          keyPrefix: props.keyPrefix as any,\n        }),\n      [props.trpcClient, props.queryClient, props.keyPrefix],\n    );\n    return (\n      <TRPCClientContext.Provider value={props.trpcClient}>\n        <TRPCContext.Provider value={value}>\n          {props.children}\n        </TRPCContext.Provider>\n      </TRPCClientContext.Provider>\n    );\n  };\n  TRPCProvider.displayName = 'TRPCProvider';\n\n  function useTRPC() {\n    const utils = React.useContext(TRPCContext);\n    if (!utils) {\n      throw new Error('useTRPC() can only be used inside of a <TRPCProvider>');\n    }\n    return utils;\n  }\n\n  function useTRPCClient() {\n    const client = React.useContext(TRPCClientContext);\n    if (!client) {\n      throw new Error(\n        'useTRPCClient() can only be used inside of a <TRPCProvider>',\n      );\n    }\n    return client;\n  }\n\n  return { TRPCProvider, useTRPC, useTRPCClient } as CreateTRPCContextResult<\n    TRouter,\n    TFeatureFlags\n  >;\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7],"mappings":"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"}