@navios/react-query 0.7.0 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/CHANGELOG.md +166 -0
  2. package/README.md +152 -4
  3. package/dist/src/__tests__/errorSchema.spec.d.mts +2 -0
  4. package/dist/src/__tests__/errorSchema.spec.d.mts.map +1 -0
  5. package/dist/src/client/__type-tests__/from-endpoint.spec-d.d.mts +2 -0
  6. package/dist/src/client/__type-tests__/from-endpoint.spec-d.d.mts.map +1 -0
  7. package/dist/src/client/__type-tests__/infinite-query.spec-d.d.mts +2 -0
  8. package/dist/src/client/__type-tests__/infinite-query.spec-d.d.mts.map +1 -0
  9. package/dist/src/client/__type-tests__/multipart-mutation.spec-d.d.mts +2 -0
  10. package/dist/src/client/__type-tests__/multipart-mutation.spec-d.d.mts.map +1 -0
  11. package/dist/src/client/__type-tests__/mutation.spec-d.d.mts +2 -0
  12. package/dist/src/client/__type-tests__/mutation.spec-d.d.mts.map +1 -0
  13. package/dist/src/client/__type-tests__/query.spec-d.d.mts +2 -0
  14. package/dist/src/client/__type-tests__/query.spec-d.d.mts.map +1 -0
  15. package/dist/src/client/declare-client.d.mts +15 -8
  16. package/dist/src/client/declare-client.d.mts.map +1 -1
  17. package/dist/src/client/types/from-endpoint.d.mts +130 -0
  18. package/dist/src/client/types/from-endpoint.d.mts.map +1 -0
  19. package/dist/src/client/types/helpers.d.mts +74 -0
  20. package/dist/src/client/types/helpers.d.mts.map +1 -0
  21. package/dist/src/client/types/index.d.mts +21 -0
  22. package/dist/src/client/types/index.d.mts.map +1 -0
  23. package/dist/src/client/types/infinite-query.d.mts +61 -0
  24. package/dist/src/client/types/infinite-query.d.mts.map +1 -0
  25. package/dist/src/client/types/multipart-mutation.d.mts +98 -0
  26. package/dist/src/client/types/multipart-mutation.d.mts.map +1 -0
  27. package/dist/src/client/types/mutation.d.mts +75 -0
  28. package/dist/src/client/types/mutation.d.mts.map +1 -0
  29. package/dist/src/client/types/query.d.mts +65 -0
  30. package/dist/src/client/types/query.d.mts.map +1 -0
  31. package/dist/src/client/types.d.mts +1 -608
  32. package/dist/src/client/types.d.mts.map +1 -1
  33. package/dist/src/common/types.d.mts +30 -3
  34. package/dist/src/common/types.d.mts.map +1 -1
  35. package/dist/src/mutation/index.d.mts +1 -0
  36. package/dist/src/mutation/index.d.mts.map +1 -1
  37. package/dist/src/mutation/make-hook.d.mts +42 -16
  38. package/dist/src/mutation/make-hook.d.mts.map +1 -1
  39. package/dist/src/mutation/optimistic.d.mts +166 -0
  40. package/dist/src/mutation/optimistic.d.mts.map +1 -0
  41. package/dist/src/mutation/types.d.mts +51 -19
  42. package/dist/src/mutation/types.d.mts.map +1 -1
  43. package/dist/src/query/index.d.mts +1 -0
  44. package/dist/src/query/index.d.mts.map +1 -1
  45. package/dist/src/query/key-creator.d.mts.map +1 -1
  46. package/dist/src/query/make-infinite-options.d.mts +3 -2
  47. package/dist/src/query/make-infinite-options.d.mts.map +1 -1
  48. package/dist/src/query/make-options.d.mts +42 -12
  49. package/dist/src/query/make-options.d.mts.map +1 -1
  50. package/dist/src/query/prefetch.d.mts +245 -0
  51. package/dist/src/query/prefetch.d.mts.map +1 -0
  52. package/dist/src/query/types.d.mts +35 -17
  53. package/dist/src/query/types.d.mts.map +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/lib/index.cjs +454 -37
  56. package/lib/index.cjs.map +1 -1
  57. package/lib/index.d.cts +1021 -598
  58. package/lib/index.d.cts.map +1 -1
  59. package/lib/index.d.mts +1019 -596
  60. package/lib/index.d.mts.map +1 -1
  61. package/lib/index.mjs +441 -29
  62. package/lib/index.mjs.map +1 -1
  63. package/package.json +8 -8
  64. package/src/__tests__/declare-client.spec.mts +1 -2
  65. package/src/__tests__/errorSchema.spec.mts +391 -0
  66. package/src/__tests__/make-mutation.spec.mts +6 -5
  67. package/src/__tests__/makeDataTag.spec.mts +2 -1
  68. package/src/__tests__/makeQueryOptions.spec.mts +2 -1
  69. package/src/client/__type-tests__/from-endpoint.spec-d.mts +550 -0
  70. package/src/client/__type-tests__/infinite-query.spec-d.mts +648 -0
  71. package/src/client/__type-tests__/multipart-mutation.spec-d.mts +725 -0
  72. package/src/client/__type-tests__/mutation.spec-d.mts +757 -0
  73. package/src/client/__type-tests__/query.spec-d.mts +701 -0
  74. package/src/client/declare-client.mts +59 -34
  75. package/src/client/types/from-endpoint.mts +345 -0
  76. package/src/client/types/helpers.mts +140 -0
  77. package/src/client/types/index.mts +26 -0
  78. package/src/client/types/infinite-query.mts +133 -0
  79. package/src/client/types/multipart-mutation.mts +264 -0
  80. package/src/client/types/mutation.mts +176 -0
  81. package/src/client/types/query.mts +132 -0
  82. package/src/client/types.mts +1 -1935
  83. package/src/common/types.mts +48 -3
  84. package/src/mutation/index.mts +1 -0
  85. package/src/mutation/make-hook.mts +171 -63
  86. package/src/mutation/optimistic.mts +294 -0
  87. package/src/mutation/types.mts +102 -29
  88. package/src/query/index.mts +1 -0
  89. package/src/query/key-creator.mts +24 -13
  90. package/src/query/make-infinite-options.mts +53 -10
  91. package/src/query/make-options.mts +184 -43
  92. package/src/query/prefetch.mts +326 -0
  93. package/src/query/types.mts +76 -16
  94. package/dist/src/declare-client.d.mts +0 -31
  95. package/dist/src/declare-client.d.mts.map +0 -1
  96. package/dist/src/make-infinite-query-options.d.mts +0 -13
  97. package/dist/src/make-infinite-query-options.d.mts.map +0 -1
  98. package/dist/src/make-mutation.d.mts +0 -15
  99. package/dist/src/make-mutation.d.mts.map +0 -1
  100. package/dist/src/make-query-options.d.mts +0 -15
  101. package/dist/src/make-query-options.d.mts.map +0 -1
  102. package/dist/src/types/client-endpoint-helper.d.mts +0 -8
  103. package/dist/src/types/client-endpoint-helper.d.mts.map +0 -1
  104. package/dist/src/types/client-instance.d.mts +0 -211
  105. package/dist/src/types/client-instance.d.mts.map +0 -1
  106. package/dist/src/types/index.d.mts +0 -8
  107. package/dist/src/types/index.d.mts.map +0 -1
  108. package/dist/src/types/mutation-args.d.mts +0 -10
  109. package/dist/src/types/mutation-args.d.mts.map +0 -1
  110. package/dist/src/types/mutation-helpers.d.mts +0 -10
  111. package/dist/src/types/mutation-helpers.d.mts.map +0 -1
  112. package/dist/src/types/query-args.d.mts +0 -8
  113. package/dist/src/types/query-args.d.mts.map +0 -1
  114. package/dist/src/types/query-helpers.d.mts +0 -14
  115. package/dist/src/types/query-helpers.d.mts.map +0 -1
  116. package/dist/src/types/query-url-params-args.d.mts +0 -5
  117. package/dist/src/types/query-url-params-args.d.mts.map +0 -1
  118. package/dist/src/types.d.mts +0 -49
  119. package/dist/src/types.d.mts.map +0 -1
  120. package/dist/src/utils/mutation-key.creator.d.mts +0 -39
  121. package/dist/src/utils/mutation-key.creator.d.mts.map +0 -1
  122. package/dist/src/utils/query-key-creator.d.mts +0 -24
  123. package/dist/src/utils/query-key-creator.d.mts.map +0 -1
  124. package/src/client/__type-tests__/client-instance.spec-d.mts +0 -852
package/lib/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as _navios_builder0 from "@navios/builder";
2
- import { AbstractEndpoint, AnyEndpointConfig, BaseEndpointConfig, BaseStreamConfig, BuilderInstance, EndpointFunctionArgs, HttpMethod, NaviosZodRequest, UrlHasParams, UrlParams, Util_FlatObject } from "@navios/builder";
2
+ import { AbstractEndpoint, AnyEndpointConfig, BaseEndpointConfig, BaseEndpointOptions, BuilderInstance, EndpointHandler, EndpointOptions, ErrorSchemaRecord, HttpMethod, InferEndpointParams, InferEndpointReturn, InferErrorSchemaOutput, RequestArgs, Simplify, StreamHandler, UrlHasParams, UrlParams } from "@navios/builder";
3
3
  import * as _tanstack_react_query0 from "@tanstack/react-query";
4
- import { DataTag, InfiniteData, MutationFunctionContext, QueryClient, UseInfiniteQueryOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult, UseSuspenseInfiniteQueryOptions, UseSuspenseQueryOptions, UseSuspenseQueryResult } from "@tanstack/react-query";
4
+ import { DataTag, FetchQueryOptions, InfiniteData, MutationFunctionContext, QueryClient, QueryKey, UseInfiniteQueryOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult, UseSuspenseInfiniteQueryOptions, UseSuspenseQueryOptions, UseSuspenseQueryResult } from "@tanstack/react-query";
5
5
  import { ZodObject, ZodType, z } from "zod/v4";
6
6
 
7
7
  //#region src/common/types.d.mts
@@ -13,29 +13,66 @@ type Split<S extends string, D extends string> = string extends S ? string[] : S
13
13
  /**
14
14
  * Function type for processing API responses before returning to the caller.
15
15
  */
16
- type ProcessResponseFunction<TData = unknown, TVariables = unknown> = (variables: TVariables) => Promise<TData> | TData;
16
+ type ProcessResponseFunction<TData$1 = unknown, TVariables = unknown> = (variables: TVariables) => Promise<TData$1> | TData$1;
17
17
  /**
18
18
  * Options for creating a client instance.
19
+ *
20
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
21
+ * When `false` (default), errors are thrown.
19
22
  */
20
- type ClientOptions = {
21
- api: BuilderInstance;
23
+ type ClientOptions<UseDiscriminator extends boolean = false> = {
24
+ api: BuilderInstance<UseDiscriminator>;
22
25
  defaults?: {
23
26
  keyPrefix?: string[];
24
27
  keySuffix?: string[];
25
28
  };
26
29
  };
30
+ /**
31
+ * Infers the full response type from an endpoint configuration.
32
+ * Returns `ResponseType | ErrorTypes` if errorSchema exists,
33
+ * otherwise just `ResponseType`.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * type Response = InferEndpointResponse<{
38
+ * responseSchema: z.ZodObject<{ data: z.ZodString }>,
39
+ * errorSchema: { 400: z.ZodObject<{ error: z.ZodString }> }
40
+ * }>
41
+ * // Result: { data: string } | { error: string }
42
+ * ```
43
+ */
44
+ type InferEndpointResponse<Config extends {
45
+ responseSchema: ZodType;
46
+ errorSchema?: ErrorSchemaRecord;
47
+ }> = Config['errorSchema'] extends ErrorSchemaRecord ? z.output<Config['responseSchema']> | InferErrorSchemaOutput<Config['errorSchema']> : z.output<Config['responseSchema']>;
48
+ /**
49
+ * Computes the Result type, applying processResponse transformation
50
+ * to the full response (including error union when present).
51
+ */
52
+ type ComputeResultType<ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined, ProcessedResult> = ProcessedResult extends undefined ? ErrorSchema extends ErrorSchemaRecord ? z.output<ResponseSchema> | InferErrorSchemaOutput<ErrorSchema> : z.output<ResponseSchema> : ProcessedResult;
27
53
  //#endregion
28
54
  //#region src/query/types.d.mts
55
+ /**
56
+ * Compute the response input type based on discriminator and error schema.
57
+ * When UseDiscriminator=true and errorSchema is present, errors are included as a union.
58
+ * When UseDiscriminator=false, only the success type is returned (errors are thrown).
59
+ *
60
+ * @template UseDiscriminator - Whether to include error types in the response union
61
+ * @template ResponseSchema - The success response schema
62
+ * @template ErrorSchema - The error schema record (optional)
63
+ */
64
+ type ComputeResponseInput$1<UseDiscriminator extends boolean, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined> = UseDiscriminator extends true ? ErrorSchema extends ErrorSchemaRecord ? z.output<ResponseSchema> | InferErrorSchemaOutput<ErrorSchema> : z.output<ResponseSchema> : z.output<ResponseSchema>;
65
+ /**
66
+ * Helper type to extract the result type from processResponse.
67
+ */
68
+ type QueryResult<Options extends EndpointOptions, UseDiscriminator extends boolean = false> = Options extends {
69
+ processResponse: (data: any) => infer Result;
70
+ } ? Result : InferEndpointReturn<Options, UseDiscriminator>;
29
71
  /**
30
72
  * Arguments for query functions based on URL params and query schema.
73
+ * Uses RequestArgs from builder for consistency.
31
74
  */
32
- type QueryArgs<Url extends string = string, QuerySchema = ZodObject, RequestSchema = undefined> = (UrlHasParams<Url> extends true ? {
33
- urlParams: UrlParams<Url>;
34
- } : {}) & (QuerySchema extends ZodObject ? {
35
- params: z.input<QuerySchema>;
36
- } : {}) & (RequestSchema extends ZodType ? {
37
- data: z.input<RequestSchema>;
38
- } : {});
75
+ type QueryArgs<Url extends string = string, QuerySchema extends ZodObject | undefined = undefined, RequestSchema extends ZodType | undefined = undefined> = RequestArgs<Url, QuerySchema, RequestSchema>;
39
76
  /**
40
77
  * Arguments containing only URL params (for invalidateAll operations).
41
78
  */
@@ -44,12 +81,15 @@ type QueryUrlParamsArgs<Url extends string = string> = UrlHasParams<Url> extends
44
81
  } : {} | undefined;
45
82
  /**
46
83
  * Base parameters for query configuration.
84
+ *
85
+ * @template UseDiscriminator - When `true`, errors are returned as union types in processResponse.
86
+ * When `false` (default), errors are thrown and not included in the response type.
47
87
  */
48
- type QueryParams<Config extends AnyEndpointConfig, Res = any> = {
88
+ type QueryParams<Config extends AnyEndpointConfig, Res = any, UseDiscriminator extends boolean = false> = {
49
89
  keyPrefix?: string[];
50
90
  keySuffix?: string[];
51
91
  onFail?: (err: unknown) => void;
52
- processResponse: (data: z.output<Config['responseSchema']>) => Res;
92
+ processResponse: (data: ComputeResponseInput$1<UseDiscriminator, Config['responseSchema'], Config['errorSchema']>) => Res;
53
93
  };
54
94
  /**
55
95
  * Result type from the query key creator function.
@@ -75,25 +115,28 @@ type QueryKeyCreatorResult<QuerySchema = undefined, Url extends string = string,
75
115
  */
76
116
  type QueryHelpers<Url extends string, QuerySchema extends ZodObject | undefined = undefined, Result$1 = undefined, IsInfinite extends boolean = false, RequestSchema extends ZodType | undefined = undefined> = {
77
117
  queryKey: QueryKeyCreatorResult<QuerySchema, Url, Result$1, IsInfinite>;
78
- use: (params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>) => UseQueryResult<Result$1, Error>;
79
- useSuspense: (params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>) => UseSuspenseQueryResult<Result$1, Error>;
80
- invalidate: (queryClient: QueryClient, params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>) => () => Promise<void>;
81
- invalidateAll: (queryClient: QueryClient, params: Util_FlatObject<QueryUrlParamsArgs<Url>>) => () => Promise<void>;
118
+ use: (params: Simplify<QueryArgs<Url, QuerySchema, RequestSchema>>) => UseQueryResult<Result$1, Error>;
119
+ useSuspense: (params: Simplify<QueryArgs<Url, QuerySchema, RequestSchema>>) => UseSuspenseQueryResult<Result$1, Error>;
120
+ invalidate: (queryClient: QueryClient, params: Simplify<QueryArgs<Url, QuerySchema, RequestSchema>>) => () => Promise<void>;
121
+ invalidateAll: (queryClient: QueryClient, params: Simplify<QueryUrlParamsArgs<Url>>) => () => Promise<void>;
82
122
  };
83
123
  /**
84
124
  * Options for infinite query configuration.
125
+ *
126
+ * @template UseDiscriminator - When `true`, errors are returned as union types in processResponse.
127
+ * When `false` (default), errors are thrown and not included in the response type.
85
128
  */
86
- type InfiniteQueryOptions<Config extends BaseEndpointConfig<HttpMethod, string, ZodObject>, Res = any> = {
129
+ type InfiniteQueryOptions<Config extends BaseEndpointConfig<HttpMethod, string, ZodObject>, Res = any, UseDiscriminator extends boolean = false> = {
87
130
  keyPrefix?: string[];
88
131
  keySuffix?: string[];
89
- processResponse: (data: z.infer<Config['responseSchema']>) => Res;
132
+ processResponse: (data: ComputeResponseInput$1<UseDiscriminator, Config['responseSchema'], Config['errorSchema']>) => Res;
90
133
  onFail?: (err: unknown) => void;
91
134
  getNextPageParam: (lastPage: Res, allPages: Res[], lastPageParam: z.infer<Config['querySchema']> | undefined, allPageParams: z.infer<Config['querySchema']>[] | undefined) => z.input<Config['querySchema']> | z.infer<Config['querySchema']> | undefined;
92
135
  getPreviousPageParam?: (firstPage: Res, allPages: Res[], lastPageParam: z.infer<Config['querySchema']> | undefined, allPageParams: z.infer<Config['querySchema']>[] | undefined) => z.input<Config['querySchema']>;
93
136
  initialPageParam?: z.input<Config['querySchema']> | z.infer<Config['querySchema']>;
94
137
  };
95
138
  /** @deprecated Use QueryArgs instead */
96
- type ClientQueryArgs<Url extends string = string, QuerySchema = ZodObject, RequestSchema = undefined> = QueryArgs<Url, QuerySchema, RequestSchema>;
139
+ type ClientQueryArgs<Url extends string = string, QuerySchema extends ZodObject = ZodObject, RequestSchema extends ZodType | undefined = undefined> = QueryArgs<Url, QuerySchema, RequestSchema>;
97
140
  /** @deprecated Use QueryUrlParamsArgs instead */
98
141
  type ClientQueryUrlParamsArgs<Url extends string = string> = QueryUrlParamsArgs<Url>;
99
142
  /** @deprecated Use QueryParams instead */
@@ -122,25 +165,54 @@ declare function createQueryKey<Config extends AnyEndpointConfig, Options extend
122
165
  declare const queryKeyCreator: typeof createQueryKey;
123
166
  //#endregion
124
167
  //#region src/query/make-options.d.mts
168
+ /**
169
+ * Options for makeQueryOptions.
170
+ */
171
+ interface MakeQueryOptionsParams<Options extends EndpointOptions, UseDiscriminator extends boolean = false, Result$1 = QueryResult<Options, UseDiscriminator>> {
172
+ keyPrefix?: string[];
173
+ keySuffix?: string[];
174
+ onFail?: (err: unknown) => void;
175
+ processResponse: (data: InferEndpointReturn<Options, UseDiscriminator>) => Result$1;
176
+ }
125
177
  /**
126
178
  * Creates query options for a given endpoint.
127
179
  *
128
180
  * Returns a function that generates TanStack Query options when called with params.
129
181
  * The returned function also has helper methods attached (use, useSuspense, invalidate, etc.)
130
182
  *
131
- * @param endpoint - The navios endpoint to create query options for
183
+ * Uses const generics pattern to automatically infer types from the endpoint configuration.
184
+ *
185
+ * @param endpoint - The navios endpoint handler (from builder's declareEndpoint)
132
186
  * @param options - Query configuration including processResponse
133
187
  * @param baseQuery - Optional base query options to merge
134
188
  * @returns A function that generates query options with attached helpers
189
+ *
190
+ * @example
191
+ * ```ts
192
+ * const getUser = api.declareEndpoint({
193
+ * method: 'GET',
194
+ * url: '/users/$userId',
195
+ * responseSchema: userSchema,
196
+ * })
197
+ *
198
+ * const queryOptions = makeQueryOptions(getUser, {
199
+ * processResponse: (data) => data,
200
+ * })
201
+ *
202
+ * const { data } = queryOptions.useSuspense({ urlParams: { userId: '123' } })
203
+ * ```
135
204
  */
136
- declare function makeQueryOptions<Config extends AnyEndpointConfig, Options extends QueryParams<Config>, BaseQuery extends Omit<UseQueryOptions<ReturnType<Options['processResponse']>, Error, any>, 'queryKey' | 'queryFn' | 'getNextPageParam' | 'initialPageParam' | 'enabled' | 'throwOnError' | 'placeholderData'>>(endpoint: AbstractEndpoint<Config>, options: Options, baseQuery?: BaseQuery): {
137
- (params: QueryArgs<Config["url"], Config["querySchema"]>): Options["processResponse"] extends ((...args: any[]) => infer Result) ? UseSuspenseQueryOptions<Result, Error, BaseQuery["select"] extends ((...args: any[]) => infer T) ? T : Result, DataTag<Split<Config["url"], "/">, Result, Error>> : never;
138
- queryKey: QueryKeyCreatorResult<Config["querySchema"], Config["url"], Options["processResponse"] extends ((...args: any[]) => infer Result) ? Result : never, false, _navios_builder0.UrlHasParams<Config["url"]>>;
139
- use(params: QueryArgs<Config["url"], Config["querySchema"]>): _tanstack_react_query0.UseQueryResult<_tanstack_react_query0.NoInfer<BaseQuery["select"] extends ((...args: any[]) => infer T) ? T : unknown>, Error>;
140
- useSuspense(params: QueryArgs<Config["url"], Config["querySchema"]>): _tanstack_react_query0.UseSuspenseQueryResult<BaseQuery["select"] extends ((...args: any[]) => infer T) ? T : unknown, Error>;
141
- invalidate(queryClient: QueryClient, params: QueryArgs<Config["url"], Config["querySchema"]>): Promise<void>;
142
- invalidateAll(queryClient: QueryClient, params: QueryArgs<Config["url"], Config["querySchema"]>): Promise<void>;
143
- };
205
+ declare function makeQueryOptions<const Options extends EndpointOptions, UseDiscriminator extends boolean = false, Result$1 = QueryResult<Options, UseDiscriminator>, BaseQuery extends Omit<UseQueryOptions<Result$1, Error, any>, 'queryKey' | 'queryFn' | 'getNextPageParam' | 'initialPageParam' | 'enabled' | 'throwOnError' | 'placeholderData'> = Omit<UseQueryOptions<Result$1, Error, any>, 'queryKey' | 'queryFn' | 'getNextPageParam' | 'initialPageParam' | 'enabled' | 'throwOnError' | 'placeholderData'>>(endpoint: EndpointHandler<Options, UseDiscriminator>, options: MakeQueryOptionsParams<Options, UseDiscriminator, Result$1>, baseQuery?: BaseQuery): ((params: Simplify<QueryArgs<Options['url'], Options extends {
206
+ querySchema: infer Q extends ZodObject;
207
+ } ? Q : undefined, Options extends {
208
+ requestSchema: infer R extends ZodType;
209
+ } ? R : undefined>>) => UseSuspenseQueryOptions<Result$1, Error, BaseQuery extends {
210
+ select: (...args: any[]) => infer T;
211
+ } ? T : Result$1, DataTag<Split<Options['url'], '/'>, Result$1, Error>>) & QueryHelpers<Options['url'], Options extends {
212
+ querySchema: infer Q extends ZodObject;
213
+ } ? Q : undefined, Result$1, false, Options extends {
214
+ requestSchema: infer R extends ZodType;
215
+ } ? R : undefined>;
144
216
  //#endregion
145
217
  //#region src/query/make-infinite-options.d.mts
146
218
  /**
@@ -156,52 +228,327 @@ declare function makeQueryOptions<Config extends AnyEndpointConfig, Options exte
156
228
  */
157
229
  declare function makeInfiniteQueryOptions<Config extends AnyEndpointConfig, Options extends InfiniteQueryOptions<Config>, BaseQuery extends Omit<UseInfiniteQueryOptions<ReturnType<Options['processResponse']>, Error, any>, 'queryKey' | 'queryFn' | 'getNextPageParam' | 'initialPageParam' | 'placeholderData' | 'throwOnError'>>(endpoint: AbstractEndpoint<Config>, options: Options, baseQuery?: BaseQuery): {
158
230
  (params: QueryArgs<Config["url"], Config["querySchema"]>): Options["processResponse"] extends ((...args: any[]) => infer Result) ? UseSuspenseInfiniteQueryOptions<Result, Error, BaseQuery["select"] extends ((...args: any[]) => infer T) ? T : InfiniteData<Result>> : never;
231
+ /** The query key creator for this infinite query endpoint */
159
232
  queryKey: QueryKeyCreatorResult<Config["querySchema"], Config["url"], Options["processResponse"] extends ((...args: any[]) => infer Result) ? Result : never, true, _navios_builder0.UrlHasParams<Config["url"]>>;
160
233
  use(params: QueryArgs<Config["url"], Config["querySchema"]>): _tanstack_react_query0.UseInfiniteQueryResult<BaseQuery["select"] extends ((...args: any[]) => infer T) ? T : InfiniteData<unknown, unknown>, Error>;
161
234
  useSuspense(params: QueryArgs<Config["url"], Config["querySchema"]>): _tanstack_react_query0.UseSuspenseInfiniteQueryResult<BaseQuery["select"] extends ((...args: any[]) => infer T) ? T : InfiniteData<unknown, unknown>, Error>;
162
- invalidate(queryClient: QueryClient, params: QueryArgs<Config["url"], Config["querySchema"]>): Promise<void>;
163
- invalidateAll(queryClient: QueryClient, params: QueryArgs<Config["url"], Config["querySchema"]>): Promise<void>;
235
+ invalidate(queryClient: QueryClient, params: QueryArgs<Config["url"], Config["querySchema"]>): () => Promise<void>;
236
+ invalidateAll(queryClient: QueryClient, params: QueryArgs<Config["url"], Config["querySchema"]>): () => Promise<void>;
164
237
  };
165
238
  //#endregion
239
+ //#region src/query/prefetch.d.mts
240
+ /**
241
+ * Type for a query options creator function that returns TanStack Query options.
242
+ *
243
+ * This matches the return type of `client.query()` from the navios react-query client.
244
+ */
245
+ type QueryOptionsCreator<TParams$1, TData$1, TError$1 = Error> = (params: TParams$1) => FetchQueryOptions<TData$1, TError$1, TData$1, QueryKey>;
246
+ /**
247
+ * Helper utilities for prefetching queries.
248
+ *
249
+ * @template TParams - The query parameters type
250
+ * @template TData - The query data type
251
+ * @template TError - The error type (defaults to Error)
252
+ */
253
+ interface PrefetchHelper<TParams$1, TData$1, TError$1 = Error> {
254
+ /**
255
+ * Prefetch query data on the server.
256
+ *
257
+ * Use this in server components or getServerSideProps to
258
+ * prefetch data before rendering.
259
+ *
260
+ * @param queryClient - The QueryClient instance
261
+ * @param params - Parameters for the query
262
+ * @returns Promise that resolves when prefetch is complete
263
+ *
264
+ * @example
265
+ * ```tsx
266
+ * // In a Next.js Server Component
267
+ * const queryClient = new QueryClient()
268
+ * await prefetch.prefetch(queryClient, { urlParams: { userId: '1' } })
269
+ * return (
270
+ * <HydrationBoundary state={dehydrate(queryClient)}>
271
+ * <UserProfile userId="1" />
272
+ * </HydrationBoundary>
273
+ * )
274
+ * ```
275
+ */
276
+ prefetch: (queryClient: QueryClient, params: TParams$1) => Promise<void>;
277
+ /**
278
+ * Ensure query data exists in cache. Fetches only if not cached.
279
+ *
280
+ * Returns the cached or fetched data.
281
+ *
282
+ * @param queryClient - The QueryClient instance
283
+ * @param params - Parameters for the query
284
+ * @returns Promise that resolves to the query data
285
+ *
286
+ * @example
287
+ * ```tsx
288
+ * // Ensure data exists before rendering
289
+ * const userData = await prefetch.ensureData(queryClient, {
290
+ * urlParams: { userId: '1' },
291
+ * })
292
+ * console.log('User:', userData.name)
293
+ * ```
294
+ */
295
+ ensureData: (queryClient: QueryClient, params: TParams$1) => Promise<TData$1>;
296
+ /**
297
+ * Get the query options for a given set of parameters.
298
+ *
299
+ * Useful for advanced use cases or when you need to
300
+ * customize the prefetch behavior.
301
+ *
302
+ * @param params - Parameters for the query
303
+ * @returns The query options object
304
+ *
305
+ * @example
306
+ * ```tsx
307
+ * const options = prefetch.getQueryOptions({ urlParams: { userId: '1' } })
308
+ * await queryClient.prefetchQuery({
309
+ * ...options,
310
+ * staleTime: 60000, // Override stale time for prefetch
311
+ * })
312
+ * ```
313
+ */
314
+ getQueryOptions: (params: TParams$1) => FetchQueryOptions<TData$1, TError$1, TData$1, QueryKey>;
315
+ /**
316
+ * Prefetch multiple queries in parallel.
317
+ *
318
+ * @param queryClient - The QueryClient instance
319
+ * @param paramsList - Array of parameters for multiple queries
320
+ * @returns Promise that resolves when all prefetches complete
321
+ *
322
+ * @example
323
+ * ```tsx
324
+ * // Prefetch multiple users in parallel
325
+ * await prefetch.prefetchMany(queryClient, [
326
+ * { urlParams: { userId: '1' } },
327
+ * { urlParams: { userId: '2' } },
328
+ * { urlParams: { userId: '3' } },
329
+ * ])
330
+ * ```
331
+ */
332
+ prefetchMany: (queryClient: QueryClient, paramsList: TParams$1[]) => Promise<void>;
333
+ }
334
+ /**
335
+ * Creates a type-safe prefetch helper for SSR/RSC.
336
+ *
337
+ * This utility wraps a query options creator to provide convenient
338
+ * methods for server-side data fetching and hydration.
339
+ *
340
+ * @param queryOptionsCreator - A function that creates query options (from client.query())
341
+ * @returns A prefetch helper object with prefetch, ensureData, and getQueryOptions methods
342
+ *
343
+ * @example
344
+ * ```tsx
345
+ * // 1. Create your query
346
+ * const getUserQuery = client.query({
347
+ * method: 'GET',
348
+ * url: '/users/$userId',
349
+ * responseSchema: userSchema,
350
+ * })
351
+ *
352
+ * // 2. Create prefetch helper
353
+ * const userPrefetch = createPrefetchHelper(getUserQuery)
354
+ *
355
+ * // 3. Use in server component
356
+ * async function UserPage({ userId }: { userId: string }) {
357
+ * const queryClient = new QueryClient()
358
+ *
359
+ * await userPrefetch.prefetch(queryClient, {
360
+ * urlParams: { userId },
361
+ * })
362
+ *
363
+ * return (
364
+ * <HydrationBoundary state={dehydrate(queryClient)}>
365
+ * <UserProfile userId={userId} />
366
+ * </HydrationBoundary>
367
+ * )
368
+ * }
369
+ * ```
370
+ *
371
+ * @example
372
+ * ```tsx
373
+ * // With Next.js App Router
374
+ * import { dehydrate, HydrationBoundary, QueryClient } from '@tanstack/react-query'
375
+ * import { createPrefetchHelper } from '@navios/react-query'
376
+ *
377
+ * // Define queries
378
+ * const getPostsQuery = client.query({
379
+ * method: 'GET',
380
+ * url: '/posts',
381
+ * querySchema: z.object({ page: z.number() }),
382
+ * responseSchema: postsSchema,
383
+ * })
384
+ *
385
+ * const postsPrefetch = createPrefetchHelper(getPostsQuery)
386
+ *
387
+ * // Server Component
388
+ * export default async function PostsPage() {
389
+ * const queryClient = new QueryClient()
390
+ *
391
+ * await postsPrefetch.prefetch(queryClient, {
392
+ * params: { page: 1 },
393
+ * })
394
+ *
395
+ * return (
396
+ * <HydrationBoundary state={dehydrate(queryClient)}>
397
+ * <PostsList />
398
+ * </HydrationBoundary>
399
+ * )
400
+ * }
401
+ * ```
402
+ */
403
+ declare function createPrefetchHelper<TParams$1, TData$1, TError$1 = Error>(queryOptionsCreator: QueryOptionsCreator<TParams$1, TData$1, TError$1>): PrefetchHelper<TParams$1, TData$1, TError$1>;
404
+ /**
405
+ * Creates multiple prefetch helpers from a record of query options creators.
406
+ *
407
+ * Useful when you have multiple queries that need to be prefetched together.
408
+ *
409
+ * @param queries - Record of query options creator functions
410
+ * @returns Record of prefetch helpers with the same keys
411
+ *
412
+ * @example
413
+ * ```tsx
414
+ * // Define all your queries
415
+ * const queries = {
416
+ * user: client.query({
417
+ * method: 'GET',
418
+ * url: '/users/$userId',
419
+ * responseSchema: userSchema,
420
+ * }),
421
+ * posts: client.query({
422
+ * method: 'GET',
423
+ * url: '/users/$userId/posts',
424
+ * responseSchema: postsSchema,
425
+ * }),
426
+ * }
427
+ *
428
+ * // Create all prefetch helpers at once
429
+ * const prefetchers = createPrefetchHelpers(queries)
430
+ *
431
+ * // Use in server component
432
+ * async function UserPage({ userId }: { userId: string }) {
433
+ * const queryClient = new QueryClient()
434
+ *
435
+ * await Promise.all([
436
+ * prefetchers.user.prefetch(queryClient, { urlParams: { userId } }),
437
+ * prefetchers.posts.prefetch(queryClient, { urlParams: { userId } }),
438
+ * ])
439
+ *
440
+ * return (
441
+ * <HydrationBoundary state={dehydrate(queryClient)}>
442
+ * <UserProfileWithPosts userId={userId} />
443
+ * </HydrationBoundary>
444
+ * )
445
+ * }
446
+ * ```
447
+ */
448
+ declare function createPrefetchHelpers<T$1 extends Record<string, QueryOptionsCreator<any, any, any>>>(queries: T$1): { [K in keyof T$1]: T$1[K] extends QueryOptionsCreator<infer TParams, infer TData, infer TError> ? PrefetchHelper<TParams, TData, TError> : never };
449
+ /**
450
+ * Prefetch multiple queries from different query creators in parallel.
451
+ *
452
+ * @param queryClient - The QueryClient instance
453
+ * @param prefetches - Array of { helper, params } objects
454
+ * @returns Promise that resolves when all prefetches complete
455
+ *
456
+ * @example
457
+ * ```tsx
458
+ * const userPrefetch = createPrefetchHelper(getUserQuery)
459
+ * const postsPrefetch = createPrefetchHelper(getPostsQuery)
460
+ *
461
+ * async function DashboardPage({ userId }: { userId: string }) {
462
+ * const queryClient = new QueryClient()
463
+ *
464
+ * await prefetchAll(queryClient, [
465
+ * { helper: userPrefetch, params: { urlParams: { userId } } },
466
+ * { helper: postsPrefetch, params: { urlParams: { userId }, params: { limit: 10 } } },
467
+ * ])
468
+ *
469
+ * return (
470
+ * <HydrationBoundary state={dehydrate(queryClient)}>
471
+ * <Dashboard userId={userId} />
472
+ * </HydrationBoundary>
473
+ * )
474
+ * }
475
+ * ```
476
+ */
477
+ declare function prefetchAll(queryClient: QueryClient, prefetches: Array<{
478
+ helper: PrefetchHelper<any, any, any>;
479
+ params: unknown;
480
+ }>): Promise<void>;
481
+ //#endregion
166
482
  //#region src/mutation/types.d.mts
483
+ /**
484
+ * Compute the response input type based on discriminator and error schema.
485
+ * When UseDiscriminator=true and errorSchema is present, errors are included as a union.
486
+ * When UseDiscriminator=false, only the success type is returned (errors are thrown).
487
+ *
488
+ * @template UseDiscriminator - Whether to include error types in the response union
489
+ * @template ResponseSchema - The success response schema
490
+ * @template ErrorSchema - The error schema record (optional)
491
+ */
492
+ type ComputeResponseInput<UseDiscriminator extends boolean, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined> = UseDiscriminator extends true ? ErrorSchema extends ErrorSchemaRecord ? z.output<ResponseSchema> | InferErrorSchemaOutput<ErrorSchema> : z.output<ResponseSchema> : z.output<ResponseSchema>;
167
493
  /**
168
494
  * Arguments for mutation functions based on URL params, request schema, and query schema.
495
+ * Uses RequestArgs from builder for consistency.
169
496
  */
170
- type MutationArgs<Url extends string = string, RequestSchema = unknown, QuerySchema = unknown> = (UrlHasParams<Url> extends true ? {
171
- urlParams: UrlParams<Url>;
172
- } : {}) & (RequestSchema extends ZodObject ? {
173
- data: z.input<RequestSchema>;
174
- } : {}) & (QuerySchema extends ZodObject ? {
175
- params: z.input<QuerySchema>;
176
- } : {});
497
+ type MutationArgs<Url extends string = string, RequestSchema extends ZodType | undefined = undefined, QuerySchema extends ZodObject | undefined = undefined> = RequestArgs<Url, QuerySchema, RequestSchema>;
177
498
  /**
178
499
  * Helper methods attached to mutation hooks.
500
+ *
501
+ * @template Url - The URL template string
502
+ * @template Result - The mutation result type
179
503
  */
180
504
  type MutationHelpers<Url extends string, Result$1 = unknown> = UrlHasParams<Url> extends true ? {
181
- mutationKey: (params: UrlParams<Url>) => DataTag<[Url], Result$1, Error>;
182
- useIsMutating: (keyParams: UrlParams<Url>) => boolean;
505
+ /**
506
+ * Generates a mutation key for the given URL parameters.
507
+ * Useful for tracking mutations or invalidating related queries.
508
+ */
509
+ mutationKey: (params: {
510
+ urlParams: UrlParams<Url>;
511
+ }) => DataTag<[Url], Result$1, Error>;
512
+ /**
513
+ * Returns true if a mutation with the given URL parameters is currently in progress.
514
+ * Requires `useKey: true` to be set when creating the mutation.
515
+ */
516
+ useIsMutating: (keyParams: {
517
+ urlParams: UrlParams<Url>;
518
+ }) => boolean;
183
519
  } : {
520
+ /**
521
+ * Generates a mutation key.
522
+ * Useful for tracking mutations or invalidating related queries.
523
+ */
184
524
  mutationKey: () => DataTag<[Url], Result$1, Error>;
525
+ /**
526
+ * Returns true if a mutation is currently in progress.
527
+ * Requires `useKey: true` to be set when creating the mutation.
528
+ */
185
529
  useIsMutating: () => boolean;
186
530
  };
187
531
  /**
188
532
  * Base parameters for mutation configuration.
533
+ *
534
+ * @template UseDiscriminator - When `true`, errors are returned as union types in processResponse.
535
+ * When `false` (default), errors are thrown and not included in TResponse.
189
536
  */
190
- interface MutationParams<Config extends AnyEndpointConfig, TData = unknown, TVariables = NaviosZodRequest<Config>, TResponse = z.output<Config['responseSchema']>, TOnMutateResult = unknown, TContext = unknown, UseKey extends boolean = false> extends Omit<UseMutationOptions<TData, Error, TVariables>, 'mutationKey' | 'mutationFn' | 'onMutate' | 'onSuccess' | 'onError' | 'onSettled' | 'scope'> {
191
- processResponse?: ProcessResponseFunction<TData, TResponse>;
537
+ interface MutationParams<Config extends AnyEndpointConfig, TData$1 = unknown, TVariables = RequestArgs<Config['url'], Config['querySchema'], Config['requestSchema'], Config['urlParamsSchema']>, _TResponse = ComputeResponseInput<false, Config['responseSchema'], Config['errorSchema']>, TOnMutateResult = unknown, TContext = unknown, UseKey extends boolean = false, UseDiscriminator extends boolean = false, TError$1 = (UseDiscriminator extends true ? Error : Config['errorSchema'] extends ErrorSchemaRecord ? InferErrorSchemaOutput<Config['errorSchema']> | Error : Error)> extends Omit<UseMutationOptions<TData$1, TError$1, TVariables>, 'mutationKey' | 'mutationFn' | 'onMutate' | 'onSuccess' | 'onError' | 'onSettled' | 'scope'> {
538
+ processResponse?: ProcessResponseFunction<TData$1, ComputeResponseInput<UseDiscriminator, Config['responseSchema'], Config['errorSchema']>>;
192
539
  /**
193
540
  * React hooks that will prepare the context for the mutation onSuccess and onError
194
541
  * callbacks. This is useful for when you want to use the context in the callbacks
195
542
  */
196
543
  useContext?: () => TContext;
197
- onSuccess?: (data: TData, variables: TVariables, context: TContext & MutationFunctionContext & {
544
+ onSuccess?: (data: TData$1, variables: TVariables, context: TContext & MutationFunctionContext & {
198
545
  onMutateResult: TOnMutateResult | undefined;
199
546
  }) => void | Promise<void>;
200
- onError?: (err: unknown, variables: TVariables, context: TContext & MutationFunctionContext & {
547
+ onError?: (err: TError$1, variables: TVariables, context: TContext & MutationFunctionContext & {
201
548
  onMutateResult: TOnMutateResult | undefined;
202
549
  }) => void | Promise<void>;
203
550
  onMutate?: (variables: TVariables, context: TContext & MutationFunctionContext) => TOnMutateResult | Promise<TOnMutateResult>;
204
- onSettled?: (data: TData | undefined, error: Error | null, variables: TVariables, context: TContext & MutationFunctionContext & {
551
+ onSettled?: (data: TData$1 | undefined, error: TError$1 | null, variables: TVariables, context: TContext & MutationFunctionContext & {
205
552
  onMutateResult: TOnMutateResult | undefined;
206
553
  }) => void | Promise<void>;
207
554
  /**
@@ -212,11 +559,11 @@ interface MutationParams<Config extends AnyEndpointConfig, TData = unknown, TVar
212
559
  keySuffix?: UseKey extends true ? UrlHasParams<Config['url']> extends true ? string[] : never : never;
213
560
  }
214
561
  /** @deprecated Use MutationArgs instead */
215
- type ClientMutationArgs<Url extends string = string, RequestSchema = unknown, QuerySchema = unknown> = MutationArgs<Url, RequestSchema, QuerySchema>;
562
+ type ClientMutationArgs<Url extends string = string, RequestSchema extends ZodType | undefined = undefined, QuerySchema extends ZodObject | undefined = undefined> = MutationArgs<Url, RequestSchema, QuerySchema>;
216
563
  /** @deprecated Use MutationParams instead */
217
- type BaseMutationParams<Config extends AnyEndpointConfig, TData = unknown, TVariables = NaviosZodRequest<Config>, TResponse = z.output<Config['responseSchema']>, TContext = unknown, UseKey extends boolean = false> = MutationParams<Config, TData, TVariables, TResponse, TContext, UseKey>;
218
- /** @deprecated Use NaviosZodRequest from @navios/builder instead */
219
- type BaseMutationArgs<Config extends AnyEndpointConfig> = NaviosZodRequest<Config>;
564
+ type BaseMutationParams<Config extends AnyEndpointConfig, TData$1 = unknown, TVariables = RequestArgs<Config['url'], Config['querySchema'], Config['requestSchema'], Config['urlParamsSchema']>, TResponse = z.output<Config['responseSchema']>, TContext = unknown, UseKey extends boolean = false> = MutationParams<Config, TData$1, TVariables, TResponse, TContext, UseKey>;
565
+ /** @deprecated Use RequestArgs from @navios/builder instead */
566
+ type BaseMutationArgs<Config extends AnyEndpointConfig> = RequestArgs<Config['url'], Config['querySchema'], Config['requestSchema'], Config['urlParamsSchema']>;
220
567
  //#endregion
221
568
  //#region src/mutation/key-creator.d.mts
222
569
  /**
@@ -253,6 +600,36 @@ declare function createMutationKey<Config extends AnyEndpointConfig, Options ext
253
600
  declare const mutationKeyCreator: typeof createMutationKey;
254
601
  //#endregion
255
602
  //#region src/mutation/make-hook.d.mts
603
+ /**
604
+ * Helper type for endpoint with config property
605
+ */
606
+ type EndpointWithConfig<Config extends AnyEndpointConfig> = ((params: any) => Promise<any>) & {
607
+ config: Config;
608
+ };
609
+ /**
610
+ * Helper type for response input when errorSchema is present
611
+ */
612
+ type ResponseInput<ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined> = ErrorSchema extends ErrorSchemaRecord ? z.output<ResponseSchema> | InferErrorSchemaOutput<ErrorSchema> : z.output<ResponseSchema>;
613
+ /**
614
+ * Options type for makeMutation
615
+ */
616
+ type MakeMutationParams<Config extends AnyEndpointConfig, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined, TData$1, TVariables, TOnMutateResult, TContext, UseKey extends boolean> = Omit<UseMutationOptions<TData$1, Error, TVariables>, 'mutationKey' | 'mutationFn' | 'onMutate' | 'onSuccess' | 'onError' | 'onSettled' | 'scope'> & {
617
+ processResponse?: ProcessResponseFunction<TData$1, ResponseInput<ResponseSchema, ErrorSchema>>;
618
+ useContext?: () => TContext;
619
+ onSuccess?: (data: TData$1, variables: TVariables, context: TContext & MutationFunctionContext & {
620
+ onMutateResult: TOnMutateResult | undefined;
621
+ }) => void | Promise<void>;
622
+ onError?: (err: unknown, variables: TVariables, context: TContext & MutationFunctionContext & {
623
+ onMutateResult: TOnMutateResult | undefined;
624
+ }) => void | Promise<void>;
625
+ onMutate?: (variables: TVariables, context: TContext & MutationFunctionContext) => TOnMutateResult | Promise<TOnMutateResult>;
626
+ onSettled?: (data: TData$1 | undefined, error: Error | null, variables: TVariables, context: TContext & MutationFunctionContext & {
627
+ onMutateResult: TOnMutateResult | undefined;
628
+ }) => void | Promise<void>;
629
+ useKey?: UseKey;
630
+ keyPrefix?: UseKey extends true ? UrlHasParams<Config['url']> extends true ? string[] : never : never;
631
+ keySuffix?: UseKey extends true ? UrlHasParams<Config['url']> extends true ? string[] : never : never;
632
+ };
256
633
  /**
257
634
  * Creates a mutation hook for a given endpoint.
258
635
  *
@@ -263,645 +640,687 @@ declare const mutationKeyCreator: typeof createMutationKey;
263
640
  * @param options - Mutation configuration including processResponse and callbacks
264
641
  * @returns A hook function that returns mutation result with attached helpers
265
642
  */
266
- declare function makeMutation<Config extends AnyEndpointConfig, TData = unknown, TVariables extends NaviosZodRequest<Config> = NaviosZodRequest<Config>, TResponse = z.output<Config['responseSchema']>, TOnMutateResult = unknown, TContext = unknown, UseKey extends boolean = false>(endpoint: AbstractEndpoint<Config>, options: MutationParams<Config, TData, TVariables, TResponse, TOnMutateResult, TContext, UseKey>): {
267
- (keyParams: UseKey extends true ? UrlHasParams<Config["url"]> extends true ? {
268
- urlParams: UrlParams<Config["url"]>;
269
- } : never : never): UseMutationResult<TData, Error, NaviosZodRequest<Config>, TOnMutateResult>;
270
- useIsMutating(keyParams: UseKey extends true ? UrlHasParams<Config["url"]> extends true ? UrlParams<Config["url"]> : never : never): boolean;
271
- mutationKey: (params: UrlHasParams<Config["url"]> extends infer T ? T extends UrlHasParams<Config["url"]> ? T extends true ? {
272
- urlParams: UrlParams<Config["url"]>;
273
- } : {} : never : never) => ProcessResponseFunction<TData, TResponse> | ((data: z.core.output<Config["responseSchema"]>) => z.core.output<Config["responseSchema"]>) extends ((...args: unknown[]) => infer Result) ? [Config["url"]] & {
274
- [dataTagSymbol]: Result;
275
- [dataTagErrorSymbol]: Error;
276
- } : never;
277
- };
643
+ declare function makeMutation<Method extends HttpMethod, Url extends string, QuerySchema extends ZodObject | undefined, ResponseSchema extends ZodType, RequestSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord, TData$1, TOnMutateResult = unknown, TContext = unknown, UseKey extends boolean = false>(endpoint: EndpointWithConfig<BaseEndpointConfig<Method, Url, QuerySchema, ResponseSchema, RequestSchema, ErrorSchema>>, options: MakeMutationParams<BaseEndpointConfig<Method, Url, QuerySchema, ResponseSchema, RequestSchema, ErrorSchema>, ResponseSchema, ErrorSchema, TData$1, any, TOnMutateResult, TContext, UseKey>): ((keyParams: UseKey extends true ? UrlHasParams<Url> extends true ? {
644
+ urlParams: UrlParams<Url>;
645
+ } : never : never) => UseMutationResult<TData$1, Error, any, TOnMutateResult>) & MutationHelpers<Url, TData$1>;
646
+ declare function makeMutation<Method extends HttpMethod, Url extends string, QuerySchema extends ZodObject | undefined, ResponseSchema extends ZodType, RequestSchema extends ZodType | undefined, TData$1, TOnMutateResult = unknown, TContext = unknown, UseKey extends boolean = false>(endpoint: EndpointWithConfig<BaseEndpointConfig<Method, Url, QuerySchema, ResponseSchema, RequestSchema, undefined>>, options: MakeMutationParams<BaseEndpointConfig<Method, Url, QuerySchema, ResponseSchema, RequestSchema, undefined>, ResponseSchema, undefined, TData$1, any, TOnMutateResult, TContext, UseKey>): ((keyParams: UseKey extends true ? UrlHasParams<Url> extends true ? {
647
+ urlParams: UrlParams<Url>;
648
+ } : never : never) => UseMutationResult<TData$1, Error, any, TOnMutateResult>) & MutationHelpers<Url, TData$1>;
649
+ //#endregion
650
+ //#region src/mutation/optimistic.d.mts
651
+ /**
652
+ * Configuration for creating optimistic update callbacks.
653
+ *
654
+ * @template TData - The mutation response data type
655
+ * @template TVariables - The mutation variables type
656
+ * @template TQueryData - The query cache data type
657
+ */
658
+ interface OptimisticUpdateConfig<TData$1, TVariables, TQueryData> {
659
+ /**
660
+ * The query key to optimistically update.
661
+ * This should match the query key used for the affected query.
662
+ */
663
+ queryKey: readonly unknown[];
664
+ /**
665
+ * Function to compute the optimistic cache value.
666
+ * Receives the current cache data and mutation variables.
667
+ *
668
+ * @param oldData - Current data in the cache (may be undefined if not cached)
669
+ * @param variables - The mutation variables being submitted
670
+ * @returns The new optimistic cache value
671
+ */
672
+ updateFn: (oldData: TQueryData | undefined, variables: TVariables) => TQueryData;
673
+ /**
674
+ * Whether to rollback on error.
675
+ * Defaults to true.
676
+ */
677
+ rollbackOnError?: boolean;
678
+ /**
679
+ * Whether to invalidate the query on settlement.
680
+ * Defaults to true.
681
+ */
682
+ invalidateOnSettled?: boolean;
683
+ }
684
+ /**
685
+ * Return type for optimistic update callbacks.
686
+ */
687
+ interface OptimisticUpdateCallbacks<TData$1, TVariables, TQueryData> {
688
+ /**
689
+ * Called before the mutation starts. Cancels outgoing refetches,
690
+ * snapshots the current cache value, and applies the optimistic update.
691
+ */
692
+ onMutate: (variables: TVariables, context: {
693
+ queryClient: QueryClient;
694
+ }) => Promise<{
695
+ previousData: TQueryData | undefined;
696
+ }>;
697
+ /**
698
+ * Called when the mutation fails. Rolls back the cache to the previous
699
+ * value if rollbackOnError is enabled.
700
+ */
701
+ onError: (err: Error, variables: TVariables, context: {
702
+ previousData?: TQueryData;
703
+ queryClient: QueryClient;
704
+ }) => void;
705
+ /**
706
+ * Called when the mutation completes (success or error).
707
+ * Invalidates the query if invalidateOnSettled is enabled.
708
+ */
709
+ onSettled: (data: TData$1 | undefined, error: Error | null, variables: TVariables, context: {
710
+ queryClient: QueryClient;
711
+ }) => void;
712
+ }
713
+ /**
714
+ * Creates type-safe optimistic update callbacks for mutations.
715
+ *
716
+ * This helper generates the onMutate, onError, and onSettled callbacks
717
+ * that implement the standard optimistic update pattern:
718
+ *
719
+ * 1. onMutate: Cancel refetches, snapshot cache, apply optimistic update
720
+ * 2. onError: Rollback cache to previous value on failure
721
+ * 3. onSettled: Invalidate query to refetch fresh data
722
+ *
723
+ * @param config - Configuration for the optimistic update
724
+ * @returns Object containing onMutate, onError, and onSettled callbacks
725
+ *
726
+ * @example
727
+ * ```ts
728
+ * // Create a mutation with optimistic updates
729
+ * const updateUser = client.mutation({
730
+ * method: 'PATCH',
731
+ * url: '/users/$userId',
732
+ * requestSchema: updateUserSchema,
733
+ * responseSchema: userSchema,
734
+ * processResponse: (data) => data,
735
+ * ...createOptimisticUpdate({
736
+ * queryKey: ['users', userId],
737
+ * updateFn: (oldData, variables) => ({
738
+ * ...oldData,
739
+ * ...variables.data,
740
+ * }),
741
+ * }),
742
+ * })
743
+ * ```
744
+ *
745
+ * @example
746
+ * ```ts
747
+ * // Optimistic update for adding an item to a list
748
+ * const addTodo = client.mutation({
749
+ * method: 'POST',
750
+ * url: '/todos',
751
+ * requestSchema: createTodoSchema,
752
+ * responseSchema: todoSchema,
753
+ * processResponse: (data) => data,
754
+ * ...createOptimisticUpdate({
755
+ * queryKey: ['todos'],
756
+ * updateFn: (oldData, variables) => [
757
+ * ...(oldData ?? []),
758
+ * { id: 'temp-id', ...variables.data, createdAt: new Date() },
759
+ * ],
760
+ * }),
761
+ * })
762
+ * ```
763
+ *
764
+ * @example
765
+ * ```ts
766
+ * // Optimistic delete
767
+ * const deleteTodo = client.mutation({
768
+ * method: 'DELETE',
769
+ * url: '/todos/$todoId',
770
+ * responseSchema: z.object({ success: z.boolean() }),
771
+ * processResponse: (data) => data,
772
+ * ...createOptimisticUpdate({
773
+ * queryKey: ['todos'],
774
+ * updateFn: (oldData, variables) =>
775
+ * (oldData ?? []).filter((t) => t.id !== variables.urlParams.todoId),
776
+ * }),
777
+ * })
778
+ * ```
779
+ */
780
+ declare function createOptimisticUpdate<TData$1, TVariables, TQueryData>(config: OptimisticUpdateConfig<TData$1, TVariables, TQueryData>): OptimisticUpdateCallbacks<TData$1, TVariables, TQueryData>;
781
+ /**
782
+ * Creates optimistic update callbacks that work with multiple query keys.
783
+ *
784
+ * Useful when a mutation affects multiple cached queries.
785
+ *
786
+ * @param configs - Array of optimistic update configurations
787
+ * @returns Combined callbacks that handle all specified queries
788
+ *
789
+ * @example
790
+ * ```ts
791
+ * // Updating a user affects both user detail and user list queries
792
+ * const updateUser = client.mutation({
793
+ * method: 'PATCH',
794
+ * url: '/users/$userId',
795
+ * requestSchema: updateUserSchema,
796
+ * responseSchema: userSchema,
797
+ * processResponse: (data) => data,
798
+ * ...createMultiOptimisticUpdate([
799
+ * {
800
+ * queryKey: ['users', userId],
801
+ * updateFn: (oldData, variables) => ({ ...oldData, ...variables.data }),
802
+ * },
803
+ * {
804
+ * queryKey: ['users'],
805
+ * updateFn: (oldList, variables) =>
806
+ * (oldList ?? []).map((u) =>
807
+ * u.id === userId ? { ...u, ...variables.data } : u
808
+ * ),
809
+ * },
810
+ * ]),
811
+ * })
812
+ * ```
813
+ */
814
+ declare function createMultiOptimisticUpdate<TData$1, TVariables>(configs: Array<OptimisticUpdateConfig<TData$1, TVariables, unknown>>): OptimisticUpdateCallbacks<TData$1, TVariables, Map<string, unknown>>;
278
815
  //#endregion
279
- //#region src/client/types.d.mts
816
+ //#region src/client/types/helpers.d.mts
817
+ /**
818
+ * Compute the base result type based on discriminator and error schema.
819
+ * When UseDiscriminator=true and errorSchema is present, errors are included as a union.
820
+ * When UseDiscriminator=false, only the success type is returned (errors are thrown).
821
+ */
822
+ type ComputeBaseResult<UseDiscriminator extends boolean, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined> = UseDiscriminator extends true ? ErrorSchema extends ErrorSchemaRecord ? z.output<ResponseSchema> | InferErrorSchemaOutput<ErrorSchema> : z.output<ResponseSchema> : z.output<ResponseSchema>;
823
+ /**
824
+ * Helper type to compute the response data type based on errorSchema presence and UseDiscriminator.
825
+ *
826
+ * When `UseDiscriminator` is `true` and `errorSchema` exists, returns `ResponseType | ErrorTypes`.
827
+ * When `UseDiscriminator` is `false`, returns only `ResponseType` (errors are thrown).
828
+ *
829
+ * @deprecated Use ComputeBaseResult instead (same logic, different parameter order)
830
+ */
831
+ type ResponseDataType<Response extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined, UseDiscriminator extends boolean = false> = ComputeBaseResult<UseDiscriminator, Response, ErrorSchema>;
280
832
  /**
281
833
  * Helper type that attaches the endpoint to query/mutation results.
834
+ * Supports both new const generic pattern and legacy pattern with individual parameters.
835
+ *
836
+ * New pattern (2 args):
837
+ * @template Options - EndpointOptions from builder (new const generic pattern)
838
+ * @template UseDiscriminator - When true, errors are returned as union types
839
+ *
840
+ * Legacy pattern (4-5 args):
841
+ * @template Method - HTTP method
842
+ * @template Url - URL template
843
+ * @template RequestSchema - Request body schema
844
+ * @template ResponseSchema - Response schema
845
+ * @template QuerySchema - Query params schema (optional)
282
846
  */
283
- type EndpointHelper<Method extends HttpMethod = HttpMethod, Url extends string = string, RequestSchema = unknown, ResponseSchema extends z.ZodType = z.ZodType, QuerySchema = unknown> = {
284
- endpoint: ((params: Util_FlatObject<EndpointFunctionArgs<Url, QuerySchema, RequestSchema>>) => Promise<z.output<ResponseSchema>>) & {
285
- config: BaseEndpointConfig<Method, Url, QuerySchema, ResponseSchema, RequestSchema>;
286
- };
287
- };
847
+ type EndpointHelper<OptionsOrMethod extends EndpointOptions | HttpMethod = EndpointOptions, UseDiscriminatorOrUrl extends boolean | string = false, RequestSchema = undefined, ResponseSchema extends ZodType = ZodType, QuerySchema = undefined> = OptionsOrMethod extends EndpointOptions ? UseDiscriminatorOrUrl extends boolean ? {
848
+ endpoint: EndpointHandler<OptionsOrMethod, UseDiscriminatorOrUrl>;
849
+ } : never : OptionsOrMethod extends HttpMethod ? UseDiscriminatorOrUrl extends string ? {
850
+ endpoint: EndpointHandler<EndpointOptions & {
851
+ method: OptionsOrMethod;
852
+ url: UseDiscriminatorOrUrl;
853
+ requestSchema: RequestSchema;
854
+ responseSchema: ResponseSchema;
855
+ querySchema: QuerySchema;
856
+ }, false>;
857
+ } : never : never;
288
858
  /** @deprecated Use EndpointHelper instead */
289
859
  type ClientEndpointHelper<Method extends HttpMethod = HttpMethod, Url extends string = string, RequestSchema = unknown, ResponseSchema extends z.ZodType = z.ZodType, QuerySchema = unknown> = EndpointHelper<Method, Url, RequestSchema, ResponseSchema, QuerySchema>;
290
860
  /**
291
861
  * Helper type that attaches a stream endpoint to mutation results.
862
+ * Supports both new const generic pattern and legacy pattern with individual parameters.
863
+ *
864
+ * New pattern (2 args):
865
+ * @template Options - BaseEndpointOptions from builder (new const generic pattern)
866
+ * @template UseDiscriminator - When true, errors are returned as union types
867
+ *
868
+ * Legacy pattern (4-6 args):
869
+ * @template Method - HTTP method
870
+ * @template Url - URL template
871
+ * @template QuerySchema - Query params schema
872
+ * @template RequestSchema - Request body schema
873
+ * @template ErrorSchema - Error schema (optional)
874
+ * @template UrlParamsSchema - URL params schema (optional)
292
875
  */
293
- type StreamHelper<Method extends HttpMethod = HttpMethod, Url extends string = string, RequestSchema = unknown, QuerySchema = unknown> = {
294
- endpoint: ((params: Util_FlatObject<EndpointFunctionArgs<Url, QuerySchema, RequestSchema>>) => Promise<Blob>) & {
295
- config: BaseStreamConfig<Method, Url, QuerySchema, RequestSchema>;
296
- };
297
- };
876
+ type StreamHelper<OptionsOrMethod extends BaseEndpointOptions | HttpMethod = BaseEndpointOptions, UseDiscriminatorOrUrl extends boolean | string = false, QuerySchema = undefined, RequestSchema = undefined, ErrorSchema = undefined, UrlParamsSchema = undefined> = OptionsOrMethod extends BaseEndpointOptions ? UseDiscriminatorOrUrl extends boolean ? {
877
+ endpoint: StreamHandler<OptionsOrMethod, UseDiscriminatorOrUrl>;
878
+ } : never : OptionsOrMethod extends HttpMethod ? UseDiscriminatorOrUrl extends string ? {
879
+ endpoint: StreamHandler<BaseEndpointOptions & {
880
+ method: OptionsOrMethod;
881
+ url: UseDiscriminatorOrUrl;
882
+ querySchema: QuerySchema;
883
+ requestSchema: RequestSchema;
884
+ errorSchema: ErrorSchema;
885
+ urlParamsSchema: UrlParamsSchema;
886
+ }, false>;
887
+ } : never : never;
888
+ //#endregion
889
+ //#region src/client/types/query.d.mts
298
890
  /**
299
- * The main client instance interface.
300
- * Provides methods for creating queries, infinite queries, and mutations.
891
+ * Helper type to build endpoint options without including undefined properties.
892
+ * This ensures HasProperty correctly identifies missing properties.
301
893
  */
302
- interface ClientInstance {
303
- query<Method extends 'GET' | 'HEAD' | 'OPTIONS' = 'GET', Url extends string = string, Response extends ZodType = ZodType, Result$1 = z.output<Response>>(config: {
304
- method: Method;
305
- url: Url;
306
- responseSchema: Response;
307
- processResponse?: (data: z.output<Response>) => Result$1;
308
- }): ((params: Util_FlatObject<QueryArgs<Url, undefined>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Url, '/'>, Result$1, Error>>) & QueryHelpers<Url, undefined, Result$1> & EndpointHelper<Method, Url, undefined, Response>;
309
- query<Method extends 'GET' | 'HEAD' | 'OPTIONS' = 'GET', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, Result$1 = z.output<Response>>(config: {
894
+ type BuildEndpointOptions<Method extends HttpMethod, Url extends string, QuerySchema extends ZodObject | undefined, RequestSchema extends ZodType | undefined, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined, UrlParamsSchema extends ZodObject | undefined> = {
895
+ method: Method;
896
+ url: Url;
897
+ responseSchema: ResponseSchema;
898
+ } & (QuerySchema extends undefined ? {} : {
899
+ querySchema: QuerySchema;
900
+ }) & (RequestSchema extends undefined ? {} : {
901
+ requestSchema: RequestSchema;
902
+ }) & (ErrorSchema extends undefined ? {} : {
903
+ errorSchema: ErrorSchema;
904
+ }) & (UrlParamsSchema extends undefined ? {} : {
905
+ urlParamsSchema: UrlParamsSchema;
906
+ });
907
+ /**
908
+ * Extended endpoint options interface for query that includes processResponse.
909
+ */
910
+ interface QueryEndpointConfig<Method extends HttpMethod, Url extends string, QuerySchema extends ZodObject | undefined, RequestSchema extends ZodType | undefined, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined, UrlParamsSchema extends ZodObject | undefined, TBaseResult, Result$1> extends EndpointOptions {
911
+ method: Method;
912
+ url: Url;
913
+ querySchema?: QuerySchema;
914
+ requestSchema?: RequestSchema;
915
+ responseSchema: ResponseSchema;
916
+ errorSchema?: ErrorSchema;
917
+ urlParamsSchema?: UrlParamsSchema;
918
+ processResponse?: (data: TBaseResult) => Result$1;
919
+ }
920
+ /**
921
+ * Query method using decomposed generics pattern for proper processResponse typing.
922
+ *
923
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
924
+ * When `false` (default), errors are thrown and not included in TData.
925
+ */
926
+ interface ClientQueryMethods<UseDiscriminator extends boolean = false> {
927
+ /**
928
+ * Creates a type-safe query with automatic type inference.
929
+ *
930
+ * Uses decomposed generic pattern to infer types from the configuration object.
931
+ * All schema combinations are handled by a single method.
932
+ *
933
+ * @example
934
+ * ```ts
935
+ * const getUser = client.query({
936
+ * method: 'GET',
937
+ * url: '/users/$userId',
938
+ * responseSchema: userSchema,
939
+ * urlParamsSchema: z.object({ userId: z.string().uuid() }),
940
+ * })
941
+ *
942
+ * const { data } = getUser.useSuspense({ urlParams: { userId: '123' } })
943
+ * ```
944
+ */
945
+ query<const Method extends HttpMethod = HttpMethod, const Url extends string = string, const QuerySchema extends ZodObject | undefined = undefined, const RequestSchema extends ZodType | undefined = undefined, const ResponseSchema extends ZodType = ZodType, const ErrorSchema extends ErrorSchemaRecord | undefined = undefined, const UrlParamsSchema extends ZodObject | undefined = undefined, const TBaseResult = ComputeBaseResult<UseDiscriminator, ResponseSchema, ErrorSchema>, const Result$1 = TBaseResult, const Options extends EndpointOptions = BuildEndpointOptions<Method, Url, QuerySchema, RequestSchema, ResponseSchema, ErrorSchema, UrlParamsSchema>>(config: QueryEndpointConfig<Method, Url, QuerySchema, RequestSchema, ResponseSchema, ErrorSchema, UrlParamsSchema, TBaseResult, Result$1>): ((params: Simplify<InferEndpointParams<Options>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Url, '/'>, Result$1, Error>>) & QueryHelpers<Url, QuerySchema, Result$1, false, RequestSchema> & EndpointHelper<Options, UseDiscriminator>;
946
+ }
947
+ //#endregion
948
+ //#region src/client/types/infinite-query.d.mts
949
+ /**
950
+ * Extended endpoint options interface for infinite query that includes processResponse and pagination.
951
+ */
952
+ interface InfiniteQueryEndpointConfig<_UseDiscriminator extends boolean, Method extends HttpMethod, Url extends string, QuerySchema extends ZodObject, RequestSchema extends ZodType | undefined, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined, UrlParamsSchema extends ZodObject | undefined, TBaseResult, PageResult> extends EndpointOptions {
953
+ method: Method;
954
+ url: Url;
955
+ querySchema: QuerySchema;
956
+ requestSchema?: RequestSchema;
957
+ responseSchema: ResponseSchema;
958
+ errorSchema?: ErrorSchema;
959
+ urlParamsSchema?: UrlParamsSchema;
960
+ processResponse?: (data: TBaseResult) => PageResult;
961
+ getNextPageParam: (lastPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema> | undefined;
962
+ getPreviousPageParam?: (firstPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema>;
963
+ }
964
+ /**
965
+ * Infinite query method using decomposed generics pattern for proper processResponse typing.
966
+ *
967
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
968
+ * When `false` (default), errors are thrown and not included in TData.
969
+ */
970
+ interface ClientInfiniteQueryMethods<UseDiscriminator extends boolean = false> {
971
+ /**
972
+ * Creates a type-safe infinite query with automatic type inference.
973
+ *
974
+ * Uses decomposed generic pattern to infer types from the configuration object.
975
+ * All schema combinations are handled by a single method.
976
+ *
977
+ * @example
978
+ * ```ts
979
+ * const getUsers = client.infiniteQuery({
980
+ * method: 'GET',
981
+ * url: '/users',
982
+ * querySchema: z.object({ page: z.number() }),
983
+ * responseSchema: z.array(userSchema),
984
+ * getNextPageParam: (lastPage, allPages, lastPageParam) => {
985
+ * return lastPage.length > 0 ? { page: (lastPageParam?.page ?? 0) + 1 } : undefined
986
+ * },
987
+ * })
988
+ *
989
+ * const { data } = getUsers.useSuspense({ params: { page: 0 } })
990
+ * ```
991
+ */
992
+ infiniteQuery<const Method extends HttpMethod = HttpMethod, const Url extends string = string, const QuerySchema extends ZodObject = ZodObject, const RequestSchema extends ZodType | undefined = undefined, const ResponseSchema extends ZodType = ZodType, const ErrorSchema extends ErrorSchemaRecord | undefined = undefined, const UrlParamsSchema extends ZodObject | undefined = undefined, const TBaseResult = ComputeBaseResult<UseDiscriminator, ResponseSchema, ErrorSchema>, const PageResult = TBaseResult, const Options extends EndpointOptions = {
310
993
  method: Method;
311
994
  url: Url;
312
995
  querySchema: QuerySchema;
313
- responseSchema: Response;
314
- processResponse?: (data: z.output<Response>) => Result$1;
315
- }): ((params: Util_FlatObject<QueryArgs<Url, QuerySchema>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Url, '/'>, Result$1, Error>>) & QueryHelpers<Url, QuerySchema, Result$1> & EndpointHelper<Method, Url, undefined, Response, QuerySchema>;
316
- query<Method extends 'POST' = 'POST', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, Result$1 = z.output<Response>>(config: {
317
- method: Method;
318
- url: Url;
319
- requestSchema: RequestSchema;
320
- responseSchema: Response;
321
- processResponse?: (data: z.output<Response>) => Result$1;
322
- }): ((params: Util_FlatObject<QueryArgs<Url, undefined, RequestSchema>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Url, '/'>, Result$1, Error>>) & QueryHelpers<Url, undefined, Result$1, false, RequestSchema> & EndpointHelper<Method, Url, RequestSchema, Response>;
323
- query<Method extends 'POST' = 'POST', Url extends string = string, QuerySchema extends ZodObject = ZodObject, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, Result$1 = z.output<Response>>(config: {
324
- method: Method;
325
- url: Url;
326
- querySchema: QuerySchema;
327
- requestSchema: RequestSchema;
328
- responseSchema: Response;
329
- processResponse?: (data: z.output<Response>) => Result$1;
330
- }): ((params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Url, '/'>, Result$1, Error>>) & QueryHelpers<Url, QuerySchema, Result$1, false, RequestSchema> & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
331
- infiniteQuery<Method extends 'GET' | 'HEAD' | 'OPTIONS' = 'GET', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, PageResult = z.output<Response>, Result$1 = InfiniteData<PageResult>>(config: {
332
- method: Method;
333
- url: Url;
334
- querySchema: QuerySchema;
335
- responseSchema: Response;
336
- processResponse?: (data: z.output<Response>) => PageResult;
337
- getNextPageParam: (lastPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema> | undefined;
338
- getPreviousPageParam?: (firstPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema>;
339
- }): ((params: Util_FlatObject<QueryArgs<Url, QuerySchema>>) => UseSuspenseInfiniteQueryOptions<PageResult, Error, Result$1, DataTag<Split<Url, '/'>, PageResult, Error>, z.output<QuerySchema>>) & QueryHelpers<Url, QuerySchema, PageResult, true> & EndpointHelper<Method, Url, undefined, Response, QuerySchema>;
340
- infiniteQuery<Method extends 'POST' = 'POST', Url extends string = string, QuerySchema extends ZodObject = ZodObject, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, PageResult = z.output<Response>, Result$1 = InfiniteData<PageResult>>(config: {
996
+ requestSchema: RequestSchema;
997
+ responseSchema: ResponseSchema;
998
+ errorSchema: ErrorSchema;
999
+ urlParamsSchema: UrlParamsSchema;
1000
+ }>(config: InfiniteQueryEndpointConfig<UseDiscriminator, Method, Url, QuerySchema, RequestSchema, ResponseSchema, ErrorSchema, UrlParamsSchema, TBaseResult, PageResult>): ((params: Simplify<InferEndpointParams<Options>>) => UseSuspenseInfiniteQueryOptions<PageResult, Error, InfiniteData<PageResult>, DataTag<Split<Url, '/'>, PageResult, Error>, z.output<QuerySchema>>) & QueryHelpers<Url, QuerySchema, PageResult, true, RequestSchema> & EndpointHelper<Options, UseDiscriminator>;
1001
+ }
1002
+ //#endregion
1003
+ //#region src/client/types/mutation.d.mts
1004
+ /**
1005
+ * Compute variables type from URL, schemas
1006
+ */
1007
+ type ComputeVariables<Url extends string, QuerySchema extends ZodObject | undefined, RequestSchema extends ZodType | undefined, UrlParamsSchema extends ZodObject | undefined> = Simplify<RequestArgs<Url, QuerySchema, RequestSchema, UrlParamsSchema>>;
1008
+ /**
1009
+ * Extended endpoint options interface for mutation that includes processResponse and callbacks.
1010
+ */
1011
+ interface MutationEndpointConfig<_UseDiscriminator extends boolean, Method extends HttpMethod, Url extends string, QuerySchema extends ZodObject | undefined, RequestSchema extends ZodType | undefined, ResponseSchema extends ZodType, ErrorSchema extends ErrorSchemaRecord | undefined, UrlParamsSchema extends ZodObject | undefined, UseKey extends boolean, TBaseResult, Result$1, OnMutateResult, Context, Variables> extends EndpointOptions {
1012
+ method: Method;
1013
+ url: Url;
1014
+ querySchema?: QuerySchema;
1015
+ requestSchema?: RequestSchema;
1016
+ responseSchema: ResponseSchema;
1017
+ errorSchema?: ErrorSchema;
1018
+ urlParamsSchema?: UrlParamsSchema;
1019
+ processResponse?: (data: TBaseResult) => Result$1 | Promise<Result$1>;
1020
+ useContext?: () => Context;
1021
+ useKey?: UseKey;
1022
+ onMutate?: (variables: Variables, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
1023
+ onSuccess?: (data: NoInfer<Result$1>, variables: Variables, context: Context & MutationFunctionContext & {
1024
+ onMutateResult: OnMutateResult | undefined;
1025
+ }) => void | Promise<void>;
1026
+ onError?: (error: Error, variables: Variables, context: Context & MutationFunctionContext & {
1027
+ onMutateResult: OnMutateResult | undefined;
1028
+ }) => void | Promise<void>;
1029
+ onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Variables, context: Context & MutationFunctionContext & {
1030
+ onMutateResult: OnMutateResult | undefined;
1031
+ }) => void | Promise<void>;
1032
+ }
1033
+ /**
1034
+ * Mutation method using decomposed generics pattern for proper processResponse typing.
1035
+ *
1036
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
1037
+ * When `false` (default), errors are thrown and not included in TData.
1038
+ */
1039
+ interface ClientMutationMethods<UseDiscriminator extends boolean = false> {
1040
+ /**
1041
+ * Creates a type-safe mutation with automatic type inference.
1042
+ *
1043
+ * Uses decomposed generic pattern to infer types from the configuration object.
1044
+ * All schema combinations are handled by a single method.
1045
+ *
1046
+ * @example
1047
+ * ```ts
1048
+ * const createUser = client.mutation({
1049
+ * method: 'POST',
1050
+ * url: '/users',
1051
+ * requestSchema: createUserSchema,
1052
+ * responseSchema: userSchema,
1053
+ * processResponse: (data) => data,
1054
+ * })
1055
+ *
1056
+ * const { mutate } = createUser()
1057
+ * mutate({ data: { name: 'John' } })
1058
+ * ```
1059
+ */
1060
+ mutation<const Method extends HttpMethod = HttpMethod, const Url extends string = string, const QuerySchema extends ZodObject | undefined = undefined, const RequestSchema extends ZodType | undefined = undefined, const ResponseSchema extends ZodType = ZodType, const ErrorSchema extends ErrorSchemaRecord | undefined = undefined, const UrlParamsSchema extends ZodObject | undefined = undefined, const UseKey extends boolean = false, const TBaseResult = ComputeBaseResult<UseDiscriminator, ResponseSchema, ErrorSchema>, const Result$1 = TBaseResult, const OnMutateResult = unknown, const Context = unknown, const Variables = ComputeVariables<Url, QuerySchema, RequestSchema, UrlParamsSchema>, const Options extends EndpointOptions = {
341
1061
  method: Method;
342
1062
  url: Url;
343
1063
  querySchema: QuerySchema;
344
1064
  requestSchema: RequestSchema;
345
- responseSchema: Response;
346
- processResponse?: (data: z.output<Response>) => PageResult;
347
- getNextPageParam: (lastPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema> | undefined;
348
- getPreviousPageParam?: (firstPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema>;
349
- }): ((params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>) => UseSuspenseInfiniteQueryOptions<PageResult, Error, Result$1, DataTag<Split<Url, '/'>, PageResult, Error>, z.output<QuerySchema>>) & QueryHelpers<Url, QuerySchema, PageResult, true, RequestSchema> & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
350
- mutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
1065
+ responseSchema: ResponseSchema;
1066
+ errorSchema: ErrorSchema;
1067
+ urlParamsSchema: UrlParamsSchema;
1068
+ }>(config: MutationEndpointConfig<UseDiscriminator, Method, Url, QuerySchema, RequestSchema, ResponseSchema, ErrorSchema, UrlParamsSchema, UseKey, TBaseResult, Result$1, OnMutateResult, Context, Variables>): ((...args: UseKey extends true ? UrlHasParams<Url> extends true ? [{
1069
+ urlParams: UrlParams<Url>;
1070
+ }] : [{}] : []) => UseMutationResult<Result$1, Error, Variables, OnMutateResult>) & (UseKey extends true ? MutationHelpers<Url, Result$1> : {}) & EndpointHelper<Options, UseDiscriminator>;
1071
+ }
1072
+ //#endregion
1073
+ //#region src/client/types/multipart-mutation.d.mts
1074
+ /**
1075
+ * Multipart mutation method overloads for ClientInstance.
1076
+ *
1077
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
1078
+ * When `false` (default), errors are thrown and not included in TData.
1079
+ */
1080
+ interface ClientMultipartMutationMethods<UseDiscriminator extends boolean = false> {
1081
+ multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ErrorSchema extends ErrorSchemaRecord | undefined = undefined, TBaseResult = ComputeBaseResult<UseDiscriminator, Response, ErrorSchema>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
351
1082
  method: Method;
352
1083
  url: Url;
353
1084
  useKey: UseKey;
354
1085
  requestSchema: RequestSchema;
355
1086
  querySchema: QuerySchema;
356
1087
  responseSchema: Response;
357
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
1088
+ errorSchema?: ErrorSchema;
1089
+ processResponse: (data: TBaseResult) => Result$1 | Promise<Result$1>;
358
1090
  useContext?: () => Context;
359
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
360
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
1091
+ onMutate?: (variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
1092
+ onSuccess?: (data: NoInfer<Result$1>, variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
361
1093
  onMutateResult: OnMutateResult | undefined;
362
1094
  }) => void | Promise<void>;
363
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
1095
+ onError?: (error: Error, variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
364
1096
  onMutateResult: OnMutateResult | undefined;
365
1097
  }) => void | Promise<void>;
366
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
1098
+ onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
367
1099
  onMutateResult: OnMutateResult | undefined;
368
1100
  }) => void | Promise<void>;
369
1101
  }): ((params: UrlHasParams<Url> extends true ? {
370
1102
  urlParams: UrlParams<Url>;
371
1103
  } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
372
- mutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
1104
+ multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ErrorSchema extends ErrorSchemaRecord | undefined = undefined, TBaseResult = ComputeBaseResult<UseDiscriminator, Response, ErrorSchema>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
373
1105
  method: Method;
374
1106
  url: Url;
375
1107
  requestSchema: RequestSchema;
376
1108
  querySchema: QuerySchema;
377
1109
  responseSchema: Response;
378
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
1110
+ errorSchema?: ErrorSchema;
1111
+ processResponse: (data: TBaseResult) => Result$1 | Promise<Result$1>;
379
1112
  useContext?: () => Context;
380
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
381
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
1113
+ onMutate?: (variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
1114
+ onSuccess?: (data: NoInfer<Result$1>, variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
382
1115
  onMutateResult: OnMutateResult | undefined;
383
1116
  }) => void | Promise<void>;
384
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
1117
+ onError?: (error: Error, variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
385
1118
  onMutateResult: OnMutateResult | undefined;
386
1119
  }) => void | Promise<void>;
387
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
1120
+ onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Simplify<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
388
1121
  onMutateResult: OnMutateResult | undefined;
389
1122
  }) => void | Promise<void>;
390
1123
  }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
391
- mutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
1124
+ multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ErrorSchema extends ErrorSchemaRecord | undefined = undefined, TBaseResult = ComputeBaseResult<UseDiscriminator, Response, ErrorSchema>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
392
1125
  method: Method;
393
1126
  url: Url;
394
1127
  requestSchema: RequestSchema;
395
1128
  responseSchema: Response;
396
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
1129
+ errorSchema?: ErrorSchema;
1130
+ processResponse: (data: TBaseResult) => Result$1 | Promise<Result$1>;
397
1131
  useContext?: () => Context;
398
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
399
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
1132
+ onMutate?: (variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
1133
+ onSuccess?: (data: NoInfer<Result$1>, variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
400
1134
  onMutateResult: OnMutateResult | undefined;
401
1135
  }) => void | Promise<void>;
402
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
1136
+ onError?: (error: Error, variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
403
1137
  onMutateResult: OnMutateResult | undefined;
404
1138
  }) => void | Promise<void>;
405
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
1139
+ onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
406
1140
  onMutateResult: OnMutateResult | undefined;
407
1141
  }) => void | Promise<void>;
408
1142
  }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response>;
409
- mutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
1143
+ multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ErrorSchema extends ErrorSchemaRecord | undefined = undefined, TBaseResult = ComputeBaseResult<UseDiscriminator, Response, ErrorSchema>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
410
1144
  method: Method;
411
1145
  url: Url;
412
1146
  useKey: UseKey;
413
1147
  requestSchema: RequestSchema;
414
1148
  responseSchema: Response;
415
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
1149
+ errorSchema?: ErrorSchema;
1150
+ processResponse: (data: TBaseResult) => Result$1 | Promise<Result$1>;
416
1151
  useContext?: () => Context;
417
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
418
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
1152
+ onMutate?: (variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
1153
+ onSuccess?: (data: NoInfer<Result$1>, variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
419
1154
  onMutateResult: OnMutateResult | undefined;
420
1155
  }) => void | Promise<void>;
421
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
1156
+ onError?: (error: Error, variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
422
1157
  onMutateResult: OnMutateResult | undefined;
423
1158
  }) => void | Promise<void>;
424
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
1159
+ onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Simplify<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
425
1160
  onMutateResult: OnMutateResult | undefined;
426
1161
  }) => void | Promise<void>;
427
1162
  }): ((params: UrlHasParams<Url> extends true ? {
428
1163
  urlParams: UrlParams<Url>;
429
1164
  } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response>;
430
- mutation<Method extends 'DELETE' = 'DELETE', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
431
- method: Method;
432
- url: Url;
433
- useKey: UseKey;
434
- querySchema: QuerySchema;
435
- responseSchema: Response;
436
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
437
- useContext?: () => Context;
438
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
439
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
440
- onMutateResult: OnMutateResult | undefined;
441
- }) => void | Promise<void>;
442
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
443
- onMutateResult: OnMutateResult | undefined;
444
- }) => void | Promise<void>;
445
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
446
- onMutateResult: OnMutateResult | undefined;
447
- }) => void | Promise<void>;
448
- }): ((params: UrlHasParams<Url> extends true ? {
449
- urlParams: UrlParams<Url>;
450
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, undefined, Response, QuerySchema>;
451
- mutation<Method extends 'DELETE' = 'DELETE', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
452
- method: Method;
453
- url: Url;
454
- querySchema: QuerySchema;
455
- responseSchema: Response;
456
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
457
- useContext?: () => Context;
458
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
459
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
460
- onMutateResult: OnMutateResult | undefined;
461
- }) => void | Promise<void>;
462
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
463
- onMutateResult: OnMutateResult | undefined;
464
- }) => void | Promise<void>;
465
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
466
- onMutateResult: OnMutateResult | undefined;
467
- }) => void | Promise<void>;
468
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, undefined, Response, QuerySchema>;
469
- mutation<Method extends 'DELETE' = 'DELETE', Url extends string = string, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
470
- method: Method;
471
- url: Url;
472
- useKey: UseKey;
473
- responseSchema: Response;
474
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
475
- useContext?: () => Context;
476
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
477
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
478
- onMutateResult: OnMutateResult | undefined;
479
- }) => void | Promise<void>;
480
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
481
- onMutateResult: OnMutateResult | undefined;
482
- }) => void | Promise<void>;
483
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
484
- onMutateResult: OnMutateResult | undefined;
485
- }) => void | Promise<void>;
486
- }): ((params: UrlHasParams<Url> extends true ? {
487
- urlParams: UrlParams<Url>;
488
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, undefined, Response>;
489
- mutation<Method extends 'DELETE' = 'DELETE', Url extends string = string, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
490
- method: Method;
491
- url: Url;
492
- responseSchema: Response;
493
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
494
- useContext?: () => Context;
495
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
496
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
497
- onMutateResult: OnMutateResult | undefined;
498
- }) => void | Promise<void>;
499
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
500
- onMutateResult: OnMutateResult | undefined;
501
- }) => void | Promise<void>;
502
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
503
- onMutateResult: OnMutateResult | undefined;
504
- }) => void | Promise<void>;
505
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, undefined, Response>;
506
- queryFromEndpoint<Method extends 'GET' | 'HEAD' | 'OPTIONS' = 'GET', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, Result$1 = z.output<Response>>(endpoint: {
507
- config: BaseEndpointConfig<Method, Url, QuerySchema, Response>;
508
- }, options?: {
509
- processResponse?: (data: z.output<Response>) => Result$1;
510
- }): (params: Util_FlatObject<QueryArgs<Url, QuerySchema>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Url, '/'>, Result$1, Error>> & QueryHelpers<Url, QuerySchema, Result$1>;
511
- queryFromEndpoint<Method extends 'GET' | 'HEAD' | 'OPTIONS' = 'GET', Url extends string = string, Response extends ZodType = ZodType, Result$1 = z.output<Response>>(endpoint: {
512
- config: BaseEndpointConfig<Method, Url, undefined, Response>;
1165
+ }
1166
+ //#endregion
1167
+ //#region src/client/types/from-endpoint.d.mts
1168
+ /**
1169
+ * Helper type to extract useKey from mutation options
1170
+ */
1171
+ type ExtractUseKey<Options> = Options extends {
1172
+ useKey: infer U;
1173
+ } ? U extends true ? true : false : false;
1174
+ /**
1175
+ * FromEndpoint methods using const generics pattern (simplified from multiple overloads).
1176
+ *
1177
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
1178
+ * When `false` (default), errors are thrown and not included in TData.
1179
+ */
1180
+ interface ClientFromEndpointMethods<UseDiscriminator extends boolean = false> {
1181
+ /**
1182
+ * Creates a type-safe query from an existing endpoint with automatic type inference.
1183
+ *
1184
+ * Uses const generic pattern to infer types from the endpoint configuration.
1185
+ *
1186
+ * @example
1187
+ * ```ts
1188
+ * const getUserEndpoint = api.declareEndpoint({
1189
+ * method: 'GET',
1190
+ * url: '/users/$userId',
1191
+ * responseSchema: userSchema,
1192
+ * })
1193
+ *
1194
+ * const getUser = client.queryFromEndpoint(getUserEndpoint, {
1195
+ * processResponse: (data) => data,
1196
+ * })
1197
+ * ```
1198
+ */
1199
+ queryFromEndpoint<const Config extends EndpointOptions, TBaseResult = ComputeBaseResult<UseDiscriminator, Config['responseSchema'], Config['errorSchema']>, Result$1 = TBaseResult>(endpoint: {
1200
+ config: Config;
513
1201
  }, options?: {
514
- processResponse?: (data: z.output<Response>) => Result$1;
515
- }): ((params: Util_FlatObject<QueryArgs<Url, undefined>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Url, '/'>, Result$1, Error>>) & QueryHelpers<Url, undefined, Result$1>;
516
- infiniteQueryFromEndpoint<Method extends 'GET' | 'HEAD' | 'OPTIONS' = 'GET', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, PageResult = z.output<Response>, Result$1 = InfiniteData<PageResult>>(endpoint: {
517
- config: BaseEndpointConfig<Method, Url, QuerySchema, Response>;
1202
+ processResponse?: (data: TBaseResult) => Result$1;
1203
+ }): ((params: Simplify<InferEndpointParams<Config>>) => UseSuspenseQueryOptions<Result$1, Error, Result$1, DataTag<Split<Config['url'], '/'>, Result$1, Error>>) & QueryHelpers<Config['url'], Config['querySchema'] extends ZodObject ? Config['querySchema'] : undefined, Result$1, false, Config['requestSchema'] extends ZodType ? Config['requestSchema'] : undefined>;
1204
+ /**
1205
+ * Creates a type-safe infinite query from an existing endpoint with automatic type inference.
1206
+ *
1207
+ * Uses const generic pattern to infer types from the endpoint configuration.
1208
+ *
1209
+ * @example
1210
+ * ```ts
1211
+ * const getUsersEndpoint = api.declareEndpoint({
1212
+ * method: 'GET',
1213
+ * url: '/users',
1214
+ * querySchema: z.object({ page: z.number() }),
1215
+ * responseSchema: z.array(userSchema),
1216
+ * })
1217
+ *
1218
+ * const getUsers = client.infiniteQueryFromEndpoint(getUsersEndpoint, {
1219
+ * getNextPageParam: (lastPage, allPages, lastPageParam) => {
1220
+ * return lastPage.length > 0 ? { page: (lastPageParam?.page ?? 0) + 1 } : undefined
1221
+ * },
1222
+ * })
1223
+ * ```
1224
+ */
1225
+ infiniteQueryFromEndpoint<const Config extends EndpointOptions & {
1226
+ querySchema: ZodObject;
1227
+ }, TBaseResult = ComputeBaseResult<UseDiscriminator, Config['responseSchema'], Config['errorSchema']>, PageResult = TBaseResult, Result$1 = InfiniteData<PageResult>>(endpoint: {
1228
+ config: Config;
518
1229
  }, options: {
519
- processResponse?: (data: z.output<Response>) => PageResult;
520
- getNextPageParam: (lastPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema> | undefined;
521
- getPreviousPageParam?: (firstPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema>;
522
- }): ((params: Util_FlatObject<QueryArgs<Url, QuerySchema>>) => UseSuspenseInfiniteQueryOptions<PageResult, Error, Result$1, DataTag<Split<Url, '/'>, PageResult, Error>, z.output<QuerySchema>>) & QueryHelpers<Url, QuerySchema, PageResult, true>;
523
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
524
- config: BaseEndpointConfig<Method, Url, QuerySchema, Response, RequestSchema>;
525
- }, mutationOptions: {
526
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
527
- useKey: UseKey;
528
- useContext?: () => Context;
529
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
530
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
531
- onMutateResult: OnMutateResult | undefined;
532
- }) => void | Promise<void>;
533
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
534
- onMutateResult: OnMutateResult | undefined;
535
- }) => void | Promise<void>;
536
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
537
- onMutateResult: OnMutateResult | undefined;
538
- }) => void | Promise<void>;
539
- }): ((params: UrlHasParams<Url> extends true ? {
540
- urlParams: UrlParams<Url>;
541
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
542
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
543
- config: BaseEndpointConfig<Method, Url, undefined, Response, RequestSchema>;
544
- }, mutationOptions: {
545
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
546
- useKey: UseKey;
547
- useContext?: () => Context;
548
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
549
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
550
- onMutateResult: OnMutateResult | undefined;
551
- }) => void | Promise<void>;
552
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
553
- onMutateResult: OnMutateResult | undefined;
554
- }) => void | Promise<void>;
555
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
556
- onMutateResult: OnMutateResult | undefined;
557
- }) => void | Promise<void>;
558
- }): ((params: UrlHasParams<Url> extends true ? {
559
- urlParams: UrlParams<Url>;
560
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response, undefined>;
561
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(endpoint: {
562
- config: BaseEndpointConfig<Method, Url, QuerySchema, Response, RequestSchema>;
563
- }, mutationOptions: {
564
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
565
- useContext?: () => Context;
566
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
567
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
568
- onMutateResult: OnMutateResult | undefined;
569
- }) => void | Promise<void>;
570
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
571
- onMutateResult: OnMutateResult | undefined;
572
- }) => void | Promise<void>;
573
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
574
- onMutateResult: OnMutateResult | undefined;
575
- }) => void | Promise<void>;
576
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
577
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(endpoint: {
578
- config: BaseEndpointConfig<Method, Url, undefined, Response, RequestSchema>;
579
- }, mutationOptions: {
580
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
581
- useContext?: () => Context;
582
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
583
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
584
- onMutateResult: OnMutateResult | undefined;
585
- }) => void | Promise<void>;
586
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
587
- onMutateResult: OnMutateResult | undefined;
588
- }) => void | Promise<void>;
589
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
590
- onMutateResult: OnMutateResult | undefined;
591
- }) => void | Promise<void>;
592
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & EndpointHelper<Method, Url, RequestSchema, Response, undefined>;
593
- mutationFromEndpoint<Method extends 'DELETE' = 'DELETE', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
594
- config: BaseEndpointConfig<Method, Url, QuerySchema, Response>;
595
- }, mutationOptions: {
596
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
597
- useKey: UseKey;
598
- useContext?: () => Context;
599
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
600
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
601
- onMutateResult: OnMutateResult | undefined;
602
- }) => void | Promise<void>;
603
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
604
- onMutateResult: OnMutateResult | undefined;
605
- }) => void | Promise<void>;
606
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
607
- onMutateResult: OnMutateResult | undefined;
608
- }) => void | Promise<void>;
609
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, undefined, Response, QuerySchema>;
610
- mutationFromEndpoint<Method extends 'DELETE' = 'DELETE', Url extends string = string, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
611
- config: BaseEndpointConfig<Method, Url, undefined, Response>;
612
- }, mutationOptions: {
613
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
614
- useKey: UseKey;
615
- useContext?: () => Context;
616
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
617
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
618
- onMutateResult: OnMutateResult | undefined;
619
- }) => void | Promise<void>;
620
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
621
- onMutateResult: OnMutateResult | undefined;
622
- }) => void | Promise<void>;
623
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
624
- onMutateResult: OnMutateResult | undefined;
625
- }) => void | Promise<void>;
626
- }): ((params: UrlHasParams<Url> extends true ? {
627
- urlParams: UrlParams<Url>;
628
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, undefined, Response, undefined>;
629
- mutationFromEndpoint<Method extends 'DELETE' = 'DELETE', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(endpoint: {
630
- config: BaseEndpointConfig<Method, Url, QuerySchema, Response>;
631
- }, mutationOptions: {
632
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
633
- useContext?: () => Context;
634
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
635
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
636
- onMutateResult: OnMutateResult | undefined;
637
- }) => void | Promise<void>;
638
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
639
- onMutateResult: OnMutateResult | undefined;
640
- }) => void | Promise<void>;
641
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
642
- onMutateResult: OnMutateResult | undefined;
643
- }) => void | Promise<void>;
644
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, QuerySchema>, OnMutateResult>) & EndpointHelper<Method, Url, undefined, Response, QuerySchema>;
645
- mutationFromEndpoint<Method extends 'DELETE' = 'DELETE', Url extends string = string, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(endpoint: {
646
- config: BaseEndpointConfig<Method, Url, undefined, Response>;
647
- }, mutationOptions: {
648
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
649
- useContext?: () => Context;
650
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
651
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
652
- onMutateResult: OnMutateResult | undefined;
653
- }) => void | Promise<void>;
654
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
655
- onMutateResult: OnMutateResult | undefined;
656
- }) => void | Promise<void>;
657
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
658
- onMutateResult: OnMutateResult | undefined;
659
- }) => void | Promise<void>;
660
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, undefined>, OnMutateResult>) & EndpointHelper<Method, Url, undefined, Response, undefined>;
661
- multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
662
- method: Method;
663
- url: Url;
664
- useKey: UseKey;
665
- requestSchema: RequestSchema;
666
- querySchema: QuerySchema;
667
- responseSchema: Response;
668
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
669
- useContext?: () => Context;
670
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
671
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
672
- onMutateResult: OnMutateResult | undefined;
673
- }) => void | Promise<void>;
674
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
675
- onMutateResult: OnMutateResult | undefined;
676
- }) => void | Promise<void>;
677
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
678
- onMutateResult: OnMutateResult | undefined;
679
- }) => void | Promise<void>;
680
- }): ((params: UrlHasParams<Url> extends true ? {
681
- urlParams: UrlParams<Url>;
682
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
683
- multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
684
- method: Method;
685
- url: Url;
686
- requestSchema: RequestSchema;
687
- querySchema: QuerySchema;
688
- responseSchema: Response;
689
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
690
- useContext?: () => Context;
691
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
692
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
693
- onMutateResult: OnMutateResult | undefined;
694
- }) => void | Promise<void>;
695
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
696
- onMutateResult: OnMutateResult | undefined;
697
- }) => void | Promise<void>;
698
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
699
- onMutateResult: OnMutateResult | undefined;
700
- }) => void | Promise<void>;
701
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response, QuerySchema>;
702
- multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown>(config: {
703
- method: Method;
704
- url: Url;
705
- requestSchema: RequestSchema;
706
- responseSchema: Response;
707
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
708
- useContext?: () => Context;
709
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
710
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
711
- onMutateResult: OnMutateResult | undefined;
712
- }) => void | Promise<void>;
713
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
714
- onMutateResult: OnMutateResult | undefined;
715
- }) => void | Promise<void>;
716
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
717
- onMutateResult: OnMutateResult | undefined;
718
- }) => void | Promise<void>;
719
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response>;
720
- multipartMutation<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(config: {
721
- method: Method;
722
- url: Url;
723
- useKey: UseKey;
724
- requestSchema: RequestSchema;
725
- responseSchema: Response;
726
- processResponse: ProcessResponseFunction<Result$1, ReqResult>;
727
- useContext?: () => Context;
728
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
729
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
730
- onMutateResult: OnMutateResult | undefined;
731
- }) => void | Promise<void>;
732
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
733
- onMutateResult: OnMutateResult | undefined;
734
- }) => void | Promise<void>;
735
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
736
- onMutateResult: OnMutateResult | undefined;
737
- }) => void | Promise<void>;
738
- }): ((params: UrlHasParams<Url> extends true ? {
739
- urlParams: UrlParams<Url>;
740
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & EndpointHelper<Method, Url, RequestSchema, Response>;
741
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Result$1 = Blob, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
742
- config: BaseStreamConfig<Method, Url, QuerySchema, RequestSchema>;
743
- }, mutationOptions: {
744
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
745
- useKey: UseKey;
746
- useContext?: () => Context;
747
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
748
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
749
- onMutateResult: OnMutateResult | undefined;
750
- }) => void | Promise<void>;
751
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
752
- onMutateResult: OnMutateResult | undefined;
753
- }) => void | Promise<void>;
754
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
755
- onMutateResult: OnMutateResult | undefined;
756
- }) => void | Promise<void>;
757
- }): ((params: UrlHasParams<Url> extends true ? {
758
- urlParams: UrlParams<Url>;
759
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & StreamHelper<Method, Url, RequestSchema, QuerySchema>;
760
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, QuerySchema extends ZodObject = ZodObject, Result$1 = Blob, OnMutateResult = unknown, Context = unknown>(endpoint: {
761
- config: BaseStreamConfig<Method, Url, QuerySchema, RequestSchema>;
762
- }, mutationOptions?: {
763
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
764
- useContext?: () => Context;
765
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
766
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
767
- onMutateResult: OnMutateResult | undefined;
768
- }) => void | Promise<void>;
769
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
770
- onMutateResult: OnMutateResult | undefined;
771
- }) => void | Promise<void>;
772
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, QuerySchema>>, context: Context & MutationFunctionContext & {
773
- onMutateResult: OnMutateResult | undefined;
774
- }) => void | Promise<void>;
775
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, QuerySchema>, OnMutateResult>) & StreamHelper<Method, Url, RequestSchema, QuerySchema>;
776
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Result$1 = Blob, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
777
- config: BaseStreamConfig<Method, Url, undefined, RequestSchema>;
778
- }, mutationOptions: {
779
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
780
- useKey: UseKey;
781
- useContext?: () => Context;
782
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
783
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
784
- onMutateResult: OnMutateResult | undefined;
785
- }) => void | Promise<void>;
786
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
787
- onMutateResult: OnMutateResult | undefined;
788
- }) => void | Promise<void>;
789
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
790
- onMutateResult: OnMutateResult | undefined;
791
- }) => void | Promise<void>;
792
- }): ((params: UrlHasParams<Url> extends true ? {
793
- urlParams: UrlParams<Url>;
794
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & StreamHelper<Method, Url, RequestSchema, undefined>;
795
- mutationFromEndpoint<Method extends 'POST' | 'PUT' | 'PATCH' = 'POST' | 'PUT' | 'PATCH', Url extends string = string, RequestSchema extends ZodType = ZodType, Result$1 = Blob, OnMutateResult = unknown, Context = unknown>(endpoint: {
796
- config: BaseStreamConfig<Method, Url, undefined, RequestSchema>;
797
- }, mutationOptions?: {
798
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
799
- useContext?: () => Context;
800
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
801
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
802
- onMutateResult: OnMutateResult | undefined;
803
- }) => void | Promise<void>;
804
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
805
- onMutateResult: OnMutateResult | undefined;
806
- }) => void | Promise<void>;
807
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, RequestSchema, undefined>>, context: Context & MutationFunctionContext & {
808
- onMutateResult: OnMutateResult | undefined;
809
- }) => void | Promise<void>;
810
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, RequestSchema, undefined>, OnMutateResult>) & StreamHelper<Method, Url, RequestSchema, undefined>;
811
- mutationFromEndpoint<Method extends 'GET' | 'DELETE' | 'OPTIONS' | 'HEAD' = 'GET', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Result$1 = Blob, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
812
- config: BaseStreamConfig<Method, Url, QuerySchema, undefined>;
813
- }, mutationOptions: {
814
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
815
- useKey: UseKey;
816
- useContext?: () => Context;
817
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
818
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
819
- onMutateResult: OnMutateResult | undefined;
820
- }) => void | Promise<void>;
821
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
822
- onMutateResult: OnMutateResult | undefined;
823
- }) => void | Promise<void>;
824
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
825
- onMutateResult: OnMutateResult | undefined;
826
- }) => void | Promise<void>;
827
- }): ((params: UrlHasParams<Url> extends true ? {
828
- urlParams: UrlParams<Url>;
829
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, QuerySchema>, OnMutateResult>) & MutationHelpers<Url, Result$1> & StreamHelper<Method, Url, undefined, QuerySchema>;
830
- mutationFromEndpoint<Method extends 'GET' | 'DELETE' | 'OPTIONS' | 'HEAD' = 'GET', Url extends string = string, QuerySchema extends ZodObject = ZodObject, Result$1 = Blob, OnMutateResult = unknown, Context = unknown>(endpoint: {
831
- config: BaseStreamConfig<Method, Url, QuerySchema, undefined>;
832
- }, mutationOptions?: {
833
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
834
- useContext?: () => Context;
835
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
836
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
837
- onMutateResult: OnMutateResult | undefined;
838
- }) => void | Promise<void>;
839
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
840
- onMutateResult: OnMutateResult | undefined;
841
- }) => void | Promise<void>;
842
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, QuerySchema>>, context: Context & MutationFunctionContext & {
843
- onMutateResult: OnMutateResult | undefined;
844
- }) => void | Promise<void>;
845
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, QuerySchema>, OnMutateResult>) & StreamHelper<Method, Url, undefined, QuerySchema>;
846
- mutationFromEndpoint<Method extends 'GET' | 'DELETE' | 'OPTIONS' | 'HEAD' = 'GET', Url extends string = string, Result$1 = Blob, OnMutateResult = unknown, Context = unknown, UseKey extends true = true>(endpoint: {
847
- config: BaseStreamConfig<Method, Url, undefined, undefined>;
848
- }, mutationOptions: {
849
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
850
- useKey: UseKey;
851
- useContext?: () => Context;
852
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
853
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
854
- onMutateResult: OnMutateResult | undefined;
855
- }) => void | Promise<void>;
856
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
857
- onMutateResult: OnMutateResult | undefined;
858
- }) => void | Promise<void>;
859
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
860
- onMutateResult: OnMutateResult | undefined;
861
- }) => void | Promise<void>;
862
- }): ((params: UrlHasParams<Url> extends true ? {
863
- urlParams: UrlParams<Url>;
864
- } : {}) => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, undefined>, OnMutateResult>) & MutationHelpers<Url, Result$1> & StreamHelper<Method, Url, undefined, undefined>;
865
- mutationFromEndpoint<Method extends 'GET' | 'DELETE' | 'OPTIONS' | 'HEAD' = 'GET', Url extends string = string, Result$1 = Blob, OnMutateResult = unknown, Context = unknown>(endpoint: {
866
- config: BaseStreamConfig<Method, Url, undefined, undefined>;
1230
+ processResponse?: (data: TBaseResult) => PageResult;
1231
+ getNextPageParam: (lastPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<Config['querySchema']> | undefined, allPageParams: z.infer<Config['querySchema']>[] | undefined) => z.input<Config['querySchema']> | undefined;
1232
+ getPreviousPageParam?: (firstPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<Config['querySchema']> | undefined, allPageParams: z.infer<Config['querySchema']>[] | undefined) => z.input<Config['querySchema']>;
1233
+ }): ((params: Simplify<InferEndpointParams<Config>>) => UseSuspenseInfiniteQueryOptions<PageResult, Error, Result$1, DataTag<Split<Config['url'], '/'>, PageResult, Error>, z.output<Config['querySchema']>>) & QueryHelpers<Config['url'], Config['querySchema'], PageResult, true, Config['requestSchema'] extends ZodType ? Config['requestSchema'] : undefined>;
1234
+ /**
1235
+ * Creates a type-safe mutation from an existing endpoint with automatic type inference.
1236
+ *
1237
+ * Uses const generic pattern to infer types from the endpoint configuration.
1238
+ * Handles both regular endpoints and stream endpoints.
1239
+ *
1240
+ * @example
1241
+ * ```ts
1242
+ * const createUserEndpoint = api.declareEndpoint({
1243
+ * method: 'POST',
1244
+ * url: '/users',
1245
+ * requestSchema: createUserSchema,
1246
+ * responseSchema: userSchema,
1247
+ * })
1248
+ *
1249
+ * const createUser = client.mutationFromEndpoint(createUserEndpoint, {
1250
+ * processResponse: (data) => data,
1251
+ * })
1252
+ * ```
1253
+ */
1254
+ mutationFromEndpoint<const Config extends EndpointOptions | BaseEndpointOptions, TBaseResult = (Config extends EndpointOptions ? ComputeBaseResult<UseDiscriminator, Config['responseSchema'], Config['errorSchema']> : Blob), Result$1 = (Config extends EndpointOptions ? ComputeBaseResult<UseDiscriminator, Config['responseSchema'], Config['errorSchema']> : Blob), OnMutateResult = unknown, Context = unknown>(endpoint: {
1255
+ config: Config;
867
1256
  }, mutationOptions?: {
868
- processResponse?: ProcessResponseFunction<Result$1, Blob>;
1257
+ processResponse?: (data: TBaseResult) => Result$1 | Promise<Result$1>;
869
1258
  useContext?: () => Context;
870
- onMutate?: (variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
871
- onSuccess?: (data: NoInfer<Result$1>, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
872
- onMutateResult: OnMutateResult | undefined;
873
- }) => void | Promise<void>;
874
- onError?: (error: Error, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
875
- onMutateResult: OnMutateResult | undefined;
876
- }) => void | Promise<void>;
877
- onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Util_FlatObject<MutationArgs<Url, undefined, undefined>>, context: Context & MutationFunctionContext & {
878
- onMutateResult: OnMutateResult | undefined;
879
- }) => void | Promise<void>;
880
- }): (() => UseMutationResult<Result$1, Error, MutationArgs<Url, undefined, undefined>, OnMutateResult>) & StreamHelper<Method, Url, undefined, undefined>;
1259
+ useKey?: boolean;
1260
+ onMutate?: (variables: Simplify<RequestArgs<Config['url'], Config['querySchema'] extends ZodObject ? Config['querySchema'] : undefined, Config['requestSchema'] extends ZodType ? Config['requestSchema'] : undefined, Config['urlParamsSchema'] extends ZodObject ? Config['urlParamsSchema'] : undefined>>, context: Context & MutationFunctionContext) => OnMutateResult | Promise<OnMutateResult>;
1261
+ onSuccess?: (data: NoInfer<Result$1>, variables: Simplify<RequestArgs<Config['url'], Config['querySchema'] extends ZodObject ? Config['querySchema'] : undefined, Config['requestSchema'] extends ZodType ? Config['requestSchema'] : undefined, Config['urlParamsSchema'] extends ZodObject ? Config['urlParamsSchema'] : undefined>>, context: Context & MutationFunctionContext & {
1262
+ onMutateResult: OnMutateResult | undefined;
1263
+ }) => void | Promise<void>;
1264
+ onError?: (error: Error, variables: Simplify<RequestArgs<Config['url'], Config['querySchema'] extends ZodObject ? Config['querySchema'] : undefined, Config['requestSchema'] extends ZodType ? Config['requestSchema'] : undefined, Config['urlParamsSchema'] extends ZodObject ? Config['urlParamsSchema'] : undefined>>, context: Context & MutationFunctionContext & {
1265
+ onMutateResult: OnMutateResult | undefined;
1266
+ }) => void | Promise<void>;
1267
+ onSettled?: (data: NoInfer<Result$1> | undefined, error: Error | null, variables: Simplify<RequestArgs<Config['url'], Config['querySchema'] extends ZodObject ? Config['querySchema'] : undefined, Config['requestSchema'] extends ZodType ? Config['requestSchema'] : undefined, Config['urlParamsSchema'] extends ZodObject ? Config['urlParamsSchema'] : undefined>>, context: Context & MutationFunctionContext & {
1268
+ onMutateResult: OnMutateResult | undefined;
1269
+ }) => void | Promise<void>;
1270
+ }): ((...args: ExtractUseKey<typeof mutationOptions> extends true ? UrlHasParams<Config['url']> extends true ? [{
1271
+ urlParams: UrlParams<Config['url']>;
1272
+ }] : [] : []) => UseMutationResult<Result$1, Error, Simplify<RequestArgs<Config['url'], Config['querySchema'] extends ZodObject ? Config['querySchema'] : undefined, Config['requestSchema'] extends ZodType ? Config['requestSchema'] : undefined, Config['urlParamsSchema'] extends ZodObject ? Config['urlParamsSchema'] : undefined>>, OnMutateResult>) & (ExtractUseKey<typeof mutationOptions> extends true ? MutationHelpers<Config['url'], Result$1> : {}) & (Config extends EndpointOptions ? EndpointHelper<{
1273
+ method: Config['method'];
1274
+ url: Config['url'];
1275
+ responseSchema: Config['responseSchema'];
1276
+ querySchema: Config['querySchema'];
1277
+ requestSchema: Config['requestSchema'];
1278
+ errorSchema: Config['errorSchema'];
1279
+ urlParamsSchema: Config['urlParamsSchema'];
1280
+ }, UseDiscriminator> : StreamHelper<{
1281
+ method: Config['method'];
1282
+ url: Config['url'];
1283
+ querySchema: Config['querySchema'];
1284
+ requestSchema: Config['requestSchema'];
1285
+ errorSchema: Config['errorSchema'];
1286
+ urlParamsSchema: Config['urlParamsSchema'];
1287
+ }, UseDiscriminator>);
881
1288
  }
882
1289
  //#endregion
1290
+ //#region src/client/types/index.d.mts
1291
+ /**
1292
+ * The main client instance interface.
1293
+ * Provides methods for creating queries, infinite queries, and mutations.
1294
+ *
1295
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
1296
+ * When `false` (default), errors are thrown and not included in TData.
1297
+ */
1298
+ interface ClientInstance<UseDiscriminator extends boolean = false> extends ClientQueryMethods<UseDiscriminator>, ClientInfiniteQueryMethods<UseDiscriminator>, ClientMutationMethods<UseDiscriminator>, ClientMultipartMutationMethods<UseDiscriminator>, ClientFromEndpointMethods<UseDiscriminator> {}
1299
+ //#endregion
883
1300
  //#region src/client/declare-client.d.mts
884
1301
  /**
885
1302
  * Configuration for declaring a query endpoint.
886
1303
  */
887
- interface QueryConfig<Method = HttpMethod, Url = string, QuerySchema = ZodObject, Response extends ZodType = ZodType, Result$1 = z.output<Response>, RequestSchema = unknown> {
1304
+ interface QueryConfig<Method extends HttpMethod = HttpMethod, Url extends string = string, QuerySchema extends ZodObject | undefined = undefined, Response extends ZodType = ZodType, ErrorSchema extends ErrorSchemaRecord | undefined = undefined, Result$1 = ComputeBaseResult<true, Response, ErrorSchema>, RequestSchema extends ZodType | undefined = undefined> {
888
1305
  method: Method;
889
1306
  url: Url;
890
1307
  querySchema?: QuerySchema;
891
1308
  responseSchema: Response;
1309
+ errorSchema?: ErrorSchema;
892
1310
  requestSchema?: RequestSchema;
893
- processResponse?: (data: z.output<Response>) => Result$1;
1311
+ processResponse?: (data: ComputeBaseResult<true, Response, ErrorSchema>) => Result$1;
894
1312
  }
895
1313
  /**
896
1314
  * Configuration for declaring an infinite query endpoint.
897
1315
  */
898
- type InfiniteQueryConfig<Method = HttpMethod, Url = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, PageResult = z.output<Response>, Result$1 = InfiniteData<PageResult>, RequestSchema = unknown> = {
1316
+ type InfiniteQueryConfig<Method extends HttpMethod = HttpMethod, Url extends string = string, QuerySchema extends ZodObject = ZodObject, Response extends ZodType = ZodType, ErrorSchema extends ErrorSchemaRecord | undefined = undefined, PageResult = ComputeBaseResult<true, Response, ErrorSchema>, Result$1 = InfiniteData<PageResult>, RequestSchema extends ZodType | undefined = undefined> = {
899
1317
  method: Method;
900
1318
  url: Url;
901
1319
  querySchema: QuerySchema;
902
1320
  responseSchema: Response;
1321
+ errorSchema?: ErrorSchema;
903
1322
  requestSchema?: RequestSchema;
904
- processResponse?: (data: z.output<Response>) => PageResult;
1323
+ processResponse?: (data: ComputeBaseResult<true, Response, ErrorSchema>) => PageResult;
905
1324
  select?: (data: InfiniteData<PageResult>) => Result$1;
906
1325
  getNextPageParam: (lastPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema> | undefined;
907
1326
  getPreviousPageParam?: (firstPage: PageResult, allPages: PageResult[], lastPageParam: z.infer<QuerySchema> | undefined, allPageParams: z.infer<QuerySchema>[] | undefined) => z.input<QuerySchema>;
@@ -910,11 +1329,12 @@ type InfiniteQueryConfig<Method = HttpMethod, Url = string, QuerySchema extends
910
1329
  /**
911
1330
  * Configuration for declaring a mutation endpoint.
912
1331
  */
913
- interface MutationConfig<Method extends 'POST' | 'PUT' | 'PATCH' | 'DELETE' = 'POST' | 'PUT' | 'PATCH' | 'DELETE', Url extends string = string, RequestSchema = (Method extends 'DELETE' ? never : ZodObject), QuerySchema = unknown, Response extends ZodType = ZodType, ReqResult = z.output<Response>, Result$1 = unknown, TOnMutateResult = unknown, Context = unknown, UseKey extends boolean = false> {
1332
+ interface MutationConfig<Method extends 'POST' | 'PUT' | 'PATCH' | 'DELETE' = 'POST' | 'PUT' | 'PATCH' | 'DELETE', Url extends string = string, RequestSchema extends ZodType | undefined = (Method extends 'DELETE' ? undefined : ZodType), QuerySchema extends ZodObject | undefined = undefined, Response extends ZodType = ZodType, ErrorSchema extends ErrorSchemaRecord | undefined = undefined, ReqResult = ComputeBaseResult<true, Response, ErrorSchema>, Result$1 = unknown, TOnMutateResult = unknown, Context = unknown, UseKey extends boolean = false> {
914
1333
  method: Method;
915
1334
  url: Url;
916
1335
  querySchema?: QuerySchema;
917
1336
  responseSchema: Response;
1337
+ errorSchema?: ErrorSchema;
918
1338
  requestSchema?: RequestSchema;
919
1339
  processResponse: ProcessResponseFunction<Result$1, ReqResult>;
920
1340
  useContext?: () => Context;
@@ -934,12 +1354,15 @@ interface MutationConfig<Method extends 'POST' | 'PUT' | 'PATCH' | 'DELETE' = 'P
934
1354
  /**
935
1355
  * Creates a client instance for making type-safe queries and mutations.
936
1356
  *
1357
+ * @template UseDiscriminator - When `true`, errors are returned as union types.
1358
+ * When `false` (default), errors are thrown and not included in TData.
1359
+ *
937
1360
  * @param options - Client configuration including the API builder and defaults
938
1361
  * @returns A client instance with query, infiniteQuery, and mutation methods
939
1362
  *
940
1363
  * @example
941
1364
  * ```typescript
942
- * const api = createBuilder({ baseUrl: '/api' });
1365
+ * const api = builder({});
943
1366
  * const client = declareClient({ api });
944
1367
  *
945
1368
  * const getUser = client.query({
@@ -952,10 +1375,10 @@ interface MutationConfig<Method extends 'POST' | 'PUT' | 'PATCH' | 'DELETE' = 'P
952
1375
  * const { data } = useSuspenseQuery(getUser({ urlParams: { id: '123' } }));
953
1376
  * ```
954
1377
  */
955
- declare function declareClient<Options extends ClientOptions>({
1378
+ declare function declareClient<UseDiscriminator extends boolean = false>({
956
1379
  api,
957
1380
  defaults
958
- }: Options): ClientInstance;
1381
+ }: ClientOptions<UseDiscriminator>): ClientInstance<UseDiscriminator>;
959
1382
  //#endregion
960
- export { BaseMutationArgs, BaseMutationParams, BaseQueryArgs, BaseQueryParams, ClientEndpointHelper, ClientInstance, ClientMutationArgs, ClientOptions, ClientQueryArgs, ClientQueryUrlParamsArgs, EndpointHelper, InfiniteQueryConfig, InfiniteQueryOptions, MutationArgs, MutationConfig, MutationHelpers, MutationParams, ProcessResponseFunction, QueryArgs, QueryConfig, QueryHelpers, QueryKeyCreatorResult, QueryParams, QueryUrlParamsArgs, Split, StreamHelper, createMutationKey, createQueryKey, declareClient, makeInfiniteQueryOptions, makeMutation, makeQueryOptions, mutationKeyCreator, queryKeyCreator };
1383
+ export { BaseMutationArgs, BaseMutationParams, BaseQueryArgs, BaseQueryParams, ClientEndpointHelper, ClientFromEndpointMethods, ClientInfiniteQueryMethods, ClientInstance, ClientMultipartMutationMethods, ClientMutationArgs, ClientMutationMethods, ClientOptions, ClientQueryArgs, ClientQueryMethods, ClientQueryUrlParamsArgs, ComputeBaseResult, ComputeResultType, EndpointHelper, InferEndpointResponse, InfiniteQueryConfig, InfiniteQueryOptions, MakeQueryOptionsParams, MutationArgs, MutationConfig, MutationHelpers, MutationParams, OptimisticUpdateCallbacks, OptimisticUpdateConfig, PrefetchHelper, ProcessResponseFunction, QueryArgs, QueryConfig, QueryHelpers, QueryKeyCreatorResult, QueryOptionsCreator, QueryParams, QueryResult, QueryUrlParamsArgs, ResponseDataType, Split, StreamHelper, createMultiOptimisticUpdate, createMutationKey, createOptimisticUpdate, createPrefetchHelper, createPrefetchHelpers, createQueryKey, declareClient, makeInfiniteQueryOptions, makeMutation, makeQueryOptions, mutationKeyCreator, prefetchAll, queryKeyCreator };
961
1384
  //# sourceMappingURL=index.d.mts.map