@fragno-dev/core 0.1.11 → 0.2.2

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 (155) hide show
  1. package/.turbo/turbo-build.log +87 -69
  2. package/CHANGELOG.md +79 -0
  3. package/dist/api/api.d.ts +21 -2
  4. package/dist/api/api.d.ts.map +1 -1
  5. package/dist/api/api.js +2 -1
  6. package/dist/api/api.js.map +1 -1
  7. package/dist/api/bind-services.d.ts +0 -1
  8. package/dist/api/bind-services.d.ts.map +1 -1
  9. package/dist/api/bind-services.js.map +1 -1
  10. package/dist/api/error.d.ts.map +1 -1
  11. package/dist/api/error.js.map +1 -1
  12. package/dist/api/fragment-definition-builder.d.ts +32 -40
  13. package/dist/api/fragment-definition-builder.d.ts.map +1 -1
  14. package/dist/api/fragment-definition-builder.js +15 -21
  15. package/dist/api/fragment-definition-builder.js.map +1 -1
  16. package/dist/api/fragment-instantiator.d.ts +51 -30
  17. package/dist/api/fragment-instantiator.d.ts.map +1 -1
  18. package/dist/api/fragment-instantiator.js +201 -52
  19. package/dist/api/fragment-instantiator.js.map +1 -1
  20. package/dist/api/request-context-storage.d.ts +4 -0
  21. package/dist/api/request-context-storage.d.ts.map +1 -1
  22. package/dist/api/request-context-storage.js +6 -0
  23. package/dist/api/request-context-storage.js.map +1 -1
  24. package/dist/api/request-input-context.d.ts +57 -1
  25. package/dist/api/request-input-context.d.ts.map +1 -1
  26. package/dist/api/request-input-context.js +67 -0
  27. package/dist/api/request-input-context.js.map +1 -1
  28. package/dist/api/request-middleware.d.ts +2 -2
  29. package/dist/api/request-middleware.d.ts.map +1 -1
  30. package/dist/api/request-middleware.js.map +1 -1
  31. package/dist/api/request-output-context.d.ts +1 -1
  32. package/dist/api/request-output-context.d.ts.map +1 -1
  33. package/dist/api/request-output-context.js.map +1 -1
  34. package/dist/api/route-caller.d.ts +30 -0
  35. package/dist/api/route-caller.d.ts.map +1 -0
  36. package/dist/api/route-caller.js +63 -0
  37. package/dist/api/route-caller.js.map +1 -0
  38. package/dist/api/route-handler-input-options.d.ts.map +1 -1
  39. package/dist/api/route.d.ts +8 -8
  40. package/dist/api/route.d.ts.map +1 -1
  41. package/dist/api/route.js.map +1 -1
  42. package/dist/api/shared-types.d.ts.map +1 -1
  43. package/dist/client/client-error.d.ts.map +1 -1
  44. package/dist/client/client-error.js.map +1 -1
  45. package/dist/client/client.d.ts +90 -50
  46. package/dist/client/client.d.ts.map +1 -1
  47. package/dist/client/client.js +128 -16
  48. package/dist/client/client.js.map +1 -1
  49. package/dist/client/client.svelte.d.ts +6 -5
  50. package/dist/client/client.svelte.d.ts.map +1 -1
  51. package/dist/client/client.svelte.js +10 -2
  52. package/dist/client/client.svelte.js.map +1 -1
  53. package/dist/client/internal/ndjson-streaming.js.map +1 -1
  54. package/dist/client/react.d.ts +5 -4
  55. package/dist/client/react.d.ts.map +1 -1
  56. package/dist/client/react.js +104 -12
  57. package/dist/client/react.js.map +1 -1
  58. package/dist/client/solid.d.ts +7 -5
  59. package/dist/client/solid.d.ts.map +1 -1
  60. package/dist/client/solid.js +23 -9
  61. package/dist/client/solid.js.map +1 -1
  62. package/dist/client/vanilla.d.ts +16 -4
  63. package/dist/client/vanilla.d.ts.map +1 -1
  64. package/dist/client/vanilla.js +21 -1
  65. package/dist/client/vanilla.js.map +1 -1
  66. package/dist/client/vue.d.ts +10 -4
  67. package/dist/client/vue.d.ts.map +1 -1
  68. package/dist/client/vue.js +24 -1
  69. package/dist/client/vue.js.map +1 -1
  70. package/dist/id.d.ts +2 -0
  71. package/dist/id.js +3 -0
  72. package/dist/internal/cuid.d.ts +16 -0
  73. package/dist/internal/cuid.d.ts.map +1 -0
  74. package/dist/internal/cuid.js +82 -0
  75. package/dist/internal/cuid.js.map +1 -0
  76. package/dist/internal/trace-context.d.ts +23 -0
  77. package/dist/internal/trace-context.d.ts.map +1 -0
  78. package/dist/internal/trace-context.js +14 -0
  79. package/dist/internal/trace-context.js.map +1 -0
  80. package/dist/mod-client.d.ts +7 -20
  81. package/dist/mod-client.d.ts.map +1 -1
  82. package/dist/mod-client.js +25 -13
  83. package/dist/mod-client.js.map +1 -1
  84. package/dist/mod.d.ts +8 -6
  85. package/dist/mod.js +3 -1
  86. package/dist/runtime.d.ts +15 -0
  87. package/dist/runtime.d.ts.map +1 -0
  88. package/dist/runtime.js +33 -0
  89. package/dist/runtime.js.map +1 -0
  90. package/dist/test/test.d.ts +6 -6
  91. package/dist/test/test.d.ts.map +1 -1
  92. package/dist/test/test.js.map +1 -1
  93. package/dist/util/ssr.js.map +1 -1
  94. package/package.json +42 -52
  95. package/src/api/api.test.ts +3 -1
  96. package/src/api/api.ts +28 -0
  97. package/src/api/bind-services.ts +0 -5
  98. package/src/api/error.ts +1 -0
  99. package/src/api/fragment-definition-builder.extend.test.ts +2 -1
  100. package/src/api/fragment-definition-builder.test.ts +2 -1
  101. package/src/api/fragment-definition-builder.ts +56 -112
  102. package/src/api/fragment-instantiator.test.ts +311 -166
  103. package/src/api/fragment-instantiator.ts +470 -131
  104. package/src/api/fragment-services.test.ts +1 -0
  105. package/src/api/internal/path-runtime.test.ts +8 -0
  106. package/src/api/internal/path-type.test.ts +3 -1
  107. package/src/api/internal/route.test.ts +1 -0
  108. package/src/api/request-context-storage.ts +7 -0
  109. package/src/api/request-input-context.test.ts +156 -2
  110. package/src/api/request-input-context.ts +87 -1
  111. package/src/api/request-middleware.test.ts +43 -2
  112. package/src/api/request-middleware.ts +4 -3
  113. package/src/api/request-output-context.test.ts +3 -1
  114. package/src/api/request-output-context.ts +2 -1
  115. package/src/api/route-caller.test.ts +195 -0
  116. package/src/api/route-caller.ts +167 -0
  117. package/src/api/route-handler-input-options.ts +2 -1
  118. package/src/api/route.test.ts +4 -2
  119. package/src/api/route.ts +9 -3
  120. package/src/api/shared-types.ts +2 -1
  121. package/src/client/client-builder.test.ts +4 -2
  122. package/src/client/client-error.test.ts +2 -1
  123. package/src/client/client-error.ts +1 -1
  124. package/src/client/client-types.test.ts +19 -5
  125. package/src/client/client.ssr.test.ts +6 -4
  126. package/src/client/client.svelte.test.ts +18 -9
  127. package/src/client/client.svelte.ts +38 -13
  128. package/src/client/client.test.ts +244 -10
  129. package/src/client/client.ts +473 -148
  130. package/src/client/internal/ndjson-streaming.test.ts +6 -3
  131. package/src/client/internal/ndjson-streaming.ts +1 -0
  132. package/src/client/react.test.ts +176 -6
  133. package/src/client/react.ts +226 -31
  134. package/src/client/solid.test.ts +29 -5
  135. package/src/client/solid.ts +60 -22
  136. package/src/client/vanilla.test.ts +148 -6
  137. package/src/client/vanilla.ts +63 -9
  138. package/src/client/vue.test.ts +397 -8
  139. package/src/client/vue.ts +74 -4
  140. package/src/id.ts +1 -0
  141. package/src/internal/cuid.test.ts +164 -0
  142. package/src/internal/cuid.ts +133 -0
  143. package/src/internal/trace-context.ts +35 -0
  144. package/src/mod-client.ts +55 -9
  145. package/src/mod.ts +9 -3
  146. package/src/runtime.ts +48 -0
  147. package/src/test/test.test.ts +4 -2
  148. package/src/test/test.ts +14 -7
  149. package/src/util/async.test.ts +1 -0
  150. package/src/util/content-type.test.ts +1 -0
  151. package/src/util/nanostores.test.ts +3 -1
  152. package/src/util/ssr.ts +1 -0
  153. package/tsconfig.json +1 -1
  154. package/tsdown.config.ts +2 -0
  155. package/vitest.config.ts +2 -1
@@ -1,11 +1,11 @@
1
1
  import { MaybeExtractPathParamsOrWiden } from "../api/internal/path.js";
2
2
  import { InferOr } from "../util/types-util.js";
3
+ import { AnyFragnoRouteConfig, AnyRouteOrFactory, FlattenRouteFactories } from "../api/route.js";
3
4
  import { FetcherConfig, FragnoFragmentSharedConfig as FragnoFragmentSharedConfig$1, FragnoPublicClientConfig, FragnoPublicConfig } from "../api/shared-types.js";
4
- import { FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, RequestThisContext } from "../api/api.js";
5
- import { AnyRouteOrFactory, FlattenRouteFactories } from "../api/route.js";
5
+ import { FragmentDefinition } from "../api/fragment-definition-builder.js";
6
6
  import { FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientUnknownApiError, FragnoErrorOptions } from "./client-error.js";
7
7
  import { FragnoFragmentSharedConfig } from "../api/fragment-instantiator.js";
8
- import { FragmentDefinition } from "../api/fragment-definition-builder.js";
8
+ import { FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, RequestThisContext } from "../api/api.js";
9
9
  import { ReadableAtom, Store } from "nanostores";
10
10
  import { FetcherStore, MutatorStore } from "@nanostores/query";
11
11
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -17,24 +17,56 @@ import { StandardSchemaV1 } from "@standard-schema/spec";
17
17
  declare const GET_HOOK_SYMBOL: unique symbol;
18
18
  declare const MUTATOR_HOOK_SYMBOL: unique symbol;
19
19
  declare const STORE_SYMBOL: unique symbol;
20
+ /**
21
+ * @internal
22
+ */
23
+ type FilterRouteByMethod<TRoute$1, TExpectedMethod extends HTTPMethod> = TRoute$1 extends FragnoRouteConfig<infer TMethod, infer TPath, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? [Extract<TMethod, TExpectedMethod>] extends [never] ? [Extract<TExpectedMethod, TMethod>] extends [never] ? never : FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never;
24
+ /**
25
+ * @internal
26
+ */
27
+ type FilterRouteByPath<TRoute$1, TPath$1 extends string> = TRoute$1 extends FragnoRouteConfig<infer TMethod, infer TRoutePath, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? [Extract<TRoutePath, TPath$1>] extends [never] ? [Extract<TPath$1, TRoutePath>] extends [never] ? never : FragnoRouteConfig<TMethod, TRoutePath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : FragnoRouteConfig<TMethod, TRoutePath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never;
28
+ /**
29
+ * @internal
30
+ */
31
+ type ExtractGetRoutesExact<T extends readonly AnyFragnoRouteConfig[]> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer TMethod, infer TPath, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? TMethod extends "GET" ? FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never : never }[number][];
20
32
  /**
21
33
  * Extract only GET routes from a library config's routes array
22
34
  * @internal
23
35
  */
24
- type ExtractGetRoutes<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer Method, infer Path, infer Input, infer Output, infer ErrorCode, infer QueryParams> ? Method extends "GET" ? FragnoRouteConfig<Method, Path, Input, Output, ErrorCode, QueryParams> : never : never }[number][];
36
+ type ExtractGetRoutes<T extends readonly AnyFragnoRouteConfig[]> = ExtractGetRoutesExact<T>;
37
+ /**
38
+ * @internal
39
+ */
40
+ type ExtractRoutePathExact<T extends readonly AnyFragnoRouteConfig[], TExpectedMethod extends HTTPMethod = HTTPMethod> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer TMethod, infer TPath, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string, RequestThisContext> ? TMethod extends TExpectedMethod ? TPath : never : never }[number];
41
+ /**
42
+ * @internal
43
+ */
44
+ type ExtractRoutePathLoose<T extends readonly AnyFragnoRouteConfig[], TExpectedMethod extends HTTPMethod = HTTPMethod> = { [K in keyof T]: FilterRouteByMethod<T[K], TExpectedMethod> extends FragnoRouteConfig<infer _TMethod, infer TPath, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string, RequestThisContext> ? TPath : never }[number];
45
+ /**
46
+ * @internal
47
+ */
48
+ type HasWidenedRouteShape<T extends readonly AnyFragnoRouteConfig[]> = T[number] extends infer TRoute ? TRoute extends FragnoRouteConfig<infer TMethod, infer TPath, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string, RequestThisContext> ? string extends TPath ? true : HTTPMethod extends TMethod ? true : false : false : false;
25
49
  /**
26
50
  * Extract the path from a route configuration for a given method
27
51
  * @internal
28
52
  */
29
- type ExtractRoutePath<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TExpectedMethod extends HTTPMethod = HTTPMethod> = { [K in keyof T]: T[K] extends FragnoRouteConfig<infer Method, infer Path, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string> ? Method extends TExpectedMethod ? Path : never : never }[number];
53
+ type ExtractRoutePath<T extends readonly AnyFragnoRouteConfig[], TExpectedMethod extends HTTPMethod = HTTPMethod> = [ExtractRoutePathExact<T, TExpectedMethod>] extends [never] ? HasWidenedRouteShape<T> extends true ? ExtractRoutePathLoose<T, TExpectedMethod> & string : never : ExtractRoutePathExact<T, TExpectedMethod>;
30
54
  /**
31
55
  * @internal
32
56
  */
33
- type ExtractGetRoutePaths<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = ExtractRoutePath<T, "GET">;
57
+ type ExtractGetRoutePaths<T extends readonly AnyFragnoRouteConfig[]> = ExtractRoutePath<T, "GET">;
34
58
  /**
35
59
  * @internal
36
60
  */
37
- type ExtractNonGetRoutePaths<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = ExtractRoutePath<T, NonGetHTTPMethod>;
61
+ type ExtractNonGetRoutePaths<T extends readonly AnyFragnoRouteConfig[]> = ExtractRoutePath<T, NonGetHTTPMethod>;
62
+ /**
63
+ * @internal
64
+ */
65
+ type ExtractRouteByPathExact<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string, TMethod$1 extends HTTPMethod = HTTPMethod> = { [K in keyof TRoutes]: TRoutes[K] extends FragnoRouteConfig<infer TRouteMethod, TPath$1, infer TInputSchema, infer TOutputSchema, infer TErrorCode, infer TQueryParameters, infer TThisContext> ? TRouteMethod extends TMethod$1 ? FragnoRouteConfig<TRouteMethod, TPath$1, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters, TThisContext> : never : never }[number];
66
+ /**
67
+ * @internal
68
+ */
69
+ type ExtractRouteByPathLoose<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string, TMethod$1 extends HTTPMethod = HTTPMethod> = { [K in keyof TRoutes]: FilterRouteByPath<FilterRouteByMethod<TRoutes[K], TMethod$1>, TPath$1> }[number];
38
70
  /**
39
71
  * Extract the route configuration type(s) for a given path from a routes array.
40
72
  * Optionally narrow by HTTP method via the third type parameter.
@@ -43,27 +75,29 @@ type ExtractNonGetRoutePaths<T extends readonly FragnoRouteConfig<HTTPMethod, st
43
75
  * if multiple methods exist for the same path.
44
76
  * @internal
45
77
  */
46
- type ExtractRouteByPath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TPath extends string, TMethod extends HTTPMethod = HTTPMethod> = { [K in keyof TRoutes]: TRoutes[K] extends FragnoRouteConfig<infer M, TPath, infer Input, infer Output, infer ErrorCode, infer QueryParams> ? M extends TMethod ? FragnoRouteConfig<M, TPath, Input, Output, ErrorCode, QueryParams> : never : never }[number];
78
+ type ExtractRouteByPath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string, TMethod$1 extends HTTPMethod = HTTPMethod> = [ExtractRouteByPathExact<TRoutes, TPath$1, TMethod$1>] extends [never] ? HasWidenedRouteShape<TRoutes> extends true ? ExtractRouteByPathLoose<TRoutes, TPath$1, TMethod$1> : never : ExtractRouteByPathExact<TRoutes, TPath$1, TMethod$1>;
47
79
  /**
48
80
  * Extract the output schema type for a specific route path from a routes array
49
81
  * @internal
50
82
  */
51
- type ExtractOutputSchemaForPath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined>[], TPath extends string> = { [K in keyof TRoutes]: TRoutes[K] extends FragnoRouteConfig<infer Method, TPath, StandardSchemaV1 | undefined, infer Output> ? Method extends "GET" ? Output : never : never }[number];
83
+ type ExtractOutputSchemaForPath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string> = ExtractRouteByPath<TRoutes, TPath$1, "GET"> extends {
84
+ outputSchema?: infer TOutputSchema;
85
+ } ? TOutputSchema : never;
52
86
  /**
53
87
  * Check if a path exists as a GET route in the routes array
54
88
  * @internal
55
89
  */
56
- type IsValidGetRoutePath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TPath extends string> = TPath extends ExtractGetRoutePaths<TRoutes> ? true : false;
90
+ type IsValidGetRoutePath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string> = TPath$1 extends ExtractGetRoutePaths<TRoutes> ? true : false;
57
91
  /**
58
92
  * Utility type to ensure only valid GET route paths can be used
59
93
  * @internal
60
94
  */
61
- type ValidateGetRoutePath<TRoutes extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[], TPath extends string> = TPath extends ExtractGetRoutePaths<TRoutes> ? TPath : `Error: Path '${TPath}' is not a valid GET route. Available GET routes: ${ExtractGetRoutePaths<TRoutes>}`;
95
+ type ValidateGetRoutePath<TRoutes extends readonly AnyFragnoRouteConfig[], TPath$1 extends string> = TPath$1 extends ExtractGetRoutePaths<TRoutes> ? TPath$1 : `Error: Path '${TPath$1}' is not a valid GET route. Available GET routes: ${ExtractGetRoutePaths<TRoutes>}`;
62
96
  /**
63
97
  * Helper type to check if a routes array has any GET routes
64
98
  * @internal
65
99
  */
66
- type HasGetRoutes<T extends readonly FragnoRouteConfig<HTTPMethod, string, StandardSchemaV1 | undefined, StandardSchemaV1 | undefined, string, string>[]> = ExtractGetRoutePaths<T> extends never ? false : true;
100
+ type HasGetRoutes<T extends readonly AnyFragnoRouteConfig[]> = ExtractGetRoutePaths<T> extends never ? false : true;
67
101
  /**
68
102
  * @internal
69
103
  */
@@ -71,48 +105,53 @@ type ObjectContainingStoreField<T extends object> = T extends Store ? T : { [K i
71
105
  /**
72
106
  * @internal
73
107
  */
74
- type FragnoStoreData<T extends object> = {
108
+ type FragnoStoreObjectData<T extends object> = {
75
109
  obj: T;
76
110
  [STORE_SYMBOL]: true;
77
111
  };
78
- type FragnoClientHookData<TMethod extends HTTPMethod, TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string> = {
79
- route: FragnoRouteConfig<TMethod, TPath, StandardSchemaV1 | undefined, TOutputSchema, TErrorCode, TQueryParameters>;
112
+ type FragnoStoreFactoryData<T extends object, TArgs extends unknown[] = []> = {
113
+ factory: (...args: TArgs) => T;
114
+ [STORE_SYMBOL]: true;
115
+ };
116
+ type FragnoStoreData<T extends object, TArgs extends unknown[] = []> = FragnoStoreObjectData<T> | FragnoStoreFactoryData<T, TArgs>;
117
+ type FragnoClientHookData<TMethod$1 extends HTTPMethod, TPath$1 extends string, TOutputSchema$1 extends StandardSchemaV1, TErrorCode$1 extends string, TQueryParameters$1 extends string> = {
118
+ route: FragnoRouteConfig<TMethod$1, TPath$1, StandardSchemaV1 | undefined, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
80
119
  query(args?: {
81
- path?: MaybeExtractPathParamsOrWiden<TPath, string>;
82
- query?: Record<TQueryParameters, string | undefined>;
83
- }): Promise<StandardSchemaV1.InferOutput<TOutputSchema>>;
120
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string>;
121
+ query?: Record<TQueryParameters$1, string | undefined>;
122
+ }): Promise<StandardSchemaV1.InferOutput<TOutputSchema$1>>;
84
123
  store(args?: {
85
- path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
86
- query?: Record<TQueryParameters, string | undefined | ReadableAtom<string | undefined>>;
87
- }): FetcherStore<StandardSchemaV1.InferOutput<TOutputSchema>, FragnoClientError<TErrorCode>>;
124
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string | ReadableAtom<string>>;
125
+ query?: Record<TQueryParameters$1, string | undefined | ReadableAtom<string | undefined>>;
126
+ }): FetcherStore<StandardSchemaV1.InferOutput<TOutputSchema$1>, FragnoClientError<TErrorCode$1>>;
88
127
  [GET_HOOK_SYMBOL]: true;
89
128
  } & {
90
- readonly _outputSchema?: TOutputSchema;
129
+ readonly _outputSchema?: TOutputSchema$1;
91
130
  };
92
- type FragnoClientMutatorData<TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string> = {
93
- route: FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>;
131
+ type FragnoClientMutatorData<TMethod$1 extends NonGetHTTPMethod, TPath$1 extends string, TInputSchema$1 extends StandardSchemaV1 | undefined, TOutputSchema$1 extends StandardSchemaV1 | undefined, TErrorCode$1 extends string, TQueryParameters$1 extends string> = {
132
+ route: FragnoRouteConfig<TMethod$1, TPath$1, TInputSchema$1, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
94
133
  mutateQuery(args?: {
95
- body?: InferOr<TInputSchema, undefined>;
96
- path?: MaybeExtractPathParamsOrWiden<TPath, string>;
97
- query?: Record<TQueryParameters, string | undefined>;
98
- }): Promise<InferOr<TOutputSchema, undefined>>;
134
+ body?: InferOr<TInputSchema$1, undefined>;
135
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string>;
136
+ query?: Record<TQueryParameters$1, string | undefined>;
137
+ }): Promise<InferOr<TOutputSchema$1, undefined>>;
99
138
  mutatorStore: MutatorStore<{
100
- body?: InferOr<TInputSchema, undefined>;
101
- path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
102
- query?: Record<TQueryParameters, string | undefined | ReadableAtom<string | undefined>>;
103
- }, InferOr<TOutputSchema, undefined>, FragnoClientError<TErrorCode>>;
139
+ body?: InferOr<TInputSchema$1, undefined>;
140
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string | ReadableAtom<string>>;
141
+ query?: Record<TQueryParameters$1, string | undefined | ReadableAtom<string | undefined>>;
142
+ }, InferOr<TOutputSchema$1, undefined>, FragnoClientError<TErrorCode$1>>;
104
143
  [MUTATOR_HOOK_SYMBOL]: true;
105
144
  } & {
106
- readonly _inputSchema?: TInputSchema;
107
- readonly _outputSchema?: TOutputSchema;
145
+ readonly _inputSchema?: TInputSchema$1;
146
+ readonly _outputSchema?: TOutputSchema$1;
108
147
  };
109
148
  /**
110
149
  * @internal
111
150
  */
112
- declare function buildUrl<TPath extends string>(config: {
151
+ declare function buildUrl<TPath$1 extends string>(config: {
113
152
  baseUrl?: string;
114
153
  mountRoute: string;
115
- path: TPath;
154
+ path: TPath$1;
116
155
  }, params: {
117
156
  pathParams?: Record<string, string | ReadableAtom<string>>;
118
157
  queryParams?: Record<string, string | undefined | ReadableAtom<string | undefined>>;
@@ -128,22 +167,22 @@ declare function buildUrl<TPath extends string>(config: {
128
167
  * @returns
129
168
  * @internal
130
169
  */
131
- declare function getCacheKey<TMethod extends HTTPMethod, TPath extends string>(method: TMethod, path: TPath, params?: {
170
+ declare function getCacheKey<TMethod$1 extends HTTPMethod, TPath$1 extends string>(method: TMethod$1, path: TPath$1, params?: {
132
171
  pathParams?: Record<string, string | ReadableAtom<string>>;
133
172
  queryParams?: Record<string, string | undefined | ReadableAtom<string | undefined>>;
134
173
  }): (string | ReadableAtom<string>)[];
135
174
  /**
136
175
  * @internal
137
176
  */
138
- declare function isGetHook<TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string>(hook: unknown): hook is FragnoClientHookData<"GET", TPath, TOutputSchema, TErrorCode, TQueryParameters>;
177
+ declare function isGetHook<TPath$1 extends string, TOutputSchema$1 extends StandardSchemaV1, TErrorCode$1 extends string, TQueryParameters$1 extends string>(hook: unknown): hook is FragnoClientHookData<"GET", TPath$1, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
139
178
  /**
140
179
  * @internal
141
180
  */
142
- declare function isMutatorHook<TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string>(hook: unknown): hook is FragnoClientMutatorData<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>;
181
+ declare function isMutatorHook<TMethod$1 extends NonGetHTTPMethod, TPath$1 extends string, TInputSchema$1 extends StandardSchemaV1 | undefined, TOutputSchema$1 extends StandardSchemaV1 | undefined, TErrorCode$1 extends string, TQueryParameters$1 extends string>(hook: unknown): hook is FragnoClientMutatorData<TMethod$1, TPath$1, TInputSchema$1, TOutputSchema$1, TErrorCode$1, TQueryParameters$1>;
143
182
  /**
144
183
  * @internal
145
184
  */
146
- declare function isStore<TStore extends Store>(obj: unknown): obj is FragnoStoreData<TStore>;
185
+ declare function isStore<TStore extends object, TArgs extends unknown[] = []>(obj: unknown): obj is FragnoStoreData<TStore, TArgs>;
147
186
  type OnErrorRetryFn = (opts: {
148
187
  error: unknown;
149
188
  key: string;
@@ -157,11 +196,11 @@ type CreateHookOptions = {
157
196
  */
158
197
  onErrorRetry?: OnErrorRetryFn | null;
159
198
  };
160
- type OnInvalidateFn<TPath extends string> = (invalidate: <TInnerPath extends string>(method: HTTPMethod, path: TInnerPath, params: {
199
+ type OnInvalidateFn<TPath$1 extends string> = (invalidate: <TInnerPath extends string>(method: HTTPMethod, path: TInnerPath, params: {
161
200
  pathParams?: MaybeExtractPathParamsOrWiden<TInnerPath, string>;
162
201
  queryParams?: Record<string, string>;
163
202
  }) => void, params: {
164
- pathParams: MaybeExtractPathParamsOrWiden<TPath, string>;
203
+ pathParams: MaybeExtractPathParamsOrWiden<TPath$1, string>;
165
204
  queryParams?: Record<string, string>;
166
205
  }) => void;
167
206
  /**
@@ -178,13 +217,14 @@ declare class ClientBuilder<TRoutes extends readonly FragnoRouteConfig<HTTPMetho
178
217
  #private;
179
218
  constructor(publicConfig: FragnoPublicClientConfig, fragmentConfig: TFragmentConfig);
180
219
  get cacheEntries(): Readonly<Record<string, CacheLine>>;
181
- createStore<const T extends object>(obj: T): FragnoStoreData<T>;
220
+ createStore<const TArgs extends unknown[], const T extends object>(factory: (...args: TArgs) => T): FragnoStoreFactoryData<T, TArgs>;
221
+ createStore<const T extends object>(obj: T): FragnoStoreObjectData<T>;
182
222
  /**
183
223
  * Build a URL for a custom backend call using the configured baseUrl and mountRoute.
184
224
  * Useful for fragment authors who need to make custom fetch calls.
185
225
  */
186
- buildUrl<TPath extends string>(path: TPath, params?: {
187
- path?: MaybeExtractPathParamsOrWiden<TPath, string>;
226
+ buildUrl<TPath$1 extends string>(path: TPath$1, params?: {
227
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string>;
188
228
  query?: Record<string, string>;
189
229
  }): string;
190
230
  /**
@@ -195,16 +235,16 @@ declare class ClientBuilder<TRoutes extends readonly FragnoRouteConfig<HTTPMetho
195
235
  fetcher: typeof fetch;
196
236
  defaultOptions: RequestInit | undefined;
197
237
  };
198
- createHook<TPath extends ExtractGetRoutePaths<TFragmentConfig["routes"]>>(path: ValidateGetRoutePath<TFragmentConfig["routes"], TPath>, options?: CreateHookOptions): FragnoClientHookData<"GET", TPath, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath>["outputSchema"]>, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath>["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath>["queryParameters"]>[number]>;
199
- createMutator<TPath extends ExtractNonGetRoutePaths<TFragmentConfig["routes"]>>(method: NonGetHTTPMethod, path: TPath, onInvalidate?: OnInvalidateFn<TPath>): FragnoClientMutatorData<NonGetHTTPMethod,
238
+ createHook<TPath$1 extends ExtractGetRoutePaths<TFragmentConfig["routes"]>>(path: ValidateGetRoutePath<TFragmentConfig["routes"], TPath$1>, options?: CreateHookOptions): FragnoClientHookData<"GET", TPath$1, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1, "GET">["outputSchema"]>, NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1, "GET">["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1, "GET">["queryParameters"]>[number]>;
239
+ createMutator<TPath$1 extends ExtractNonGetRoutePaths<TFragmentConfig["routes"]>>(method: NonGetHTTPMethod, path: TPath$1, onInvalidate?: OnInvalidateFn<TPath$1>): FragnoClientMutatorData<NonGetHTTPMethod,
200
240
  // TODO: This can be any Method, but should be related to TPath
201
- TPath, ExtractRouteByPath<TFragmentConfig["routes"], TPath>["inputSchema"], ExtractRouteByPath<TFragmentConfig["routes"], TPath>["outputSchema"], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath>["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath>["queryParameters"]>[number]>;
241
+ TPath$1, ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["inputSchema"], ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["outputSchema"], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["errorCodes"]>[number], NonNullable<ExtractRouteByPath<TFragmentConfig["routes"], TPath$1>["queryParameters"]>[number]>;
202
242
  }
203
243
  /**
204
244
  * Create a client builder for fragments using the new fragment definition API.
205
245
  * This is the same as createClientBuilder but works with FragmentDefinition.
206
246
  */
207
- declare function createClientBuilder<TConfig, TOptions extends FragnoPublicConfig, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext extends RequestThisContext, THandlerThisContext extends RequestThisContext, TRequestStorage, const TRoutesOrFactories extends readonly AnyRouteOrFactory[]>(definition: FragmentDefinition<TConfig, TOptions, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext, THandlerThisContext, TRequestStorage>, publicConfig: FragnoPublicClientConfig, routesOrFactories: TRoutesOrFactories, authorFetcherConfig?: FetcherConfig): ClientBuilder<FlattenRouteFactories<TRoutesOrFactories>, FragnoFragmentSharedConfig$1<FlattenRouteFactories<TRoutesOrFactories>>>;
247
+ declare function createClientBuilder<TConfig, TOptions extends FragnoPublicConfig, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext extends RequestThisContext, THandlerThisContext extends RequestThisContext, TRequestStorage, const TRoutesOrFactories extends readonly AnyRouteOrFactory[], TInternalRoutes extends readonly AnyRouteOrFactory[] = readonly []>(definition: FragmentDefinition<TConfig, TOptions, TDeps, TBaseServices, TServices, TServiceDependencies, TPrivateServices, TServiceThisContext, THandlerThisContext, TRequestStorage, TInternalRoutes>, publicConfig: FragnoPublicClientConfig, routesOrFactories: TRoutesOrFactories, authorFetcherConfig?: FetcherConfig): ClientBuilder<FlattenRouteFactories<TRoutesOrFactories>, FragnoFragmentSharedConfig$1<FlattenRouteFactories<TRoutesOrFactories>>>;
208
248
  //#endregion
209
- export { CacheLine, ClientBuilder, CreateHookOptions, ExtractGetRoutePaths, ExtractGetRoutes, ExtractNonGetRoutePaths, ExtractOutputSchemaForPath, ExtractRouteByPath, ExtractRoutePath, type FetcherConfig, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientHookData, FragnoClientMutatorData, FragnoClientUnknownApiError, FragnoErrorOptions, type FragnoFragmentSharedConfig, type FragnoPublicClientConfig, FragnoStoreData, HasGetRoutes, IsValidGetRoutePath, ObjectContainingStoreField, ValidateGetRoutePath, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
249
+ export { CacheLine, ClientBuilder, CreateHookOptions, ExtractGetRoutePaths, ExtractGetRoutes, ExtractNonGetRoutePaths, ExtractOutputSchemaForPath, ExtractRouteByPath, ExtractRoutePath, type FetcherConfig, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientHookData, FragnoClientMutatorData, FragnoClientUnknownApiError, FragnoErrorOptions, type FragnoFragmentSharedConfig, type FragnoPublicClientConfig, FragnoStoreData, FragnoStoreFactoryData, FragnoStoreObjectData, HasGetRoutes, IsValidGetRoutePath, ObjectContainingStoreField, ValidateGetRoutePath, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
210
250
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","names":[],"sources":["../../src/client/client.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","names":[],"sources":["../../src/client/client.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { resolveRouteFactories } from "../api/route.js";
2
+ import { buildPath, extractPathParams } from "../api/internal/path.js";
2
3
  import { getMountRoute } from "../api/internal/route.js";
3
4
  import { RequestInputContext } from "../api/request-input-context.js";
4
5
  import { RequestOutputContext } from "../api/request-output-context.js";
5
- import { buildPath, extractPathParams } from "../api/internal/path.js";
6
- import { FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientUnknownApiError } from "./client-error.js";
7
6
  import { parseContentType } from "../util/content-type.js";
8
- import { handleNdjsonStreamingFirstItem } from "./internal/ndjson-streaming.js";
9
- import { SSR_ENABLED, addStore, getInitialData } from "../util/ssr.js";
10
7
  import { unwrapObject } from "../util/nanostores.js";
8
+ import { SSR_ENABLED, addStore, getInitialData } from "../util/ssr.js";
9
+ import { FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientUnknownApiError } from "./client-error.js";
11
10
  import { mergeFetcherConfigs } from "./internal/fetcher-merge.js";
11
+ import { handleNdjsonStreamingFirstItem } from "./internal/ndjson-streaming.js";
12
12
  import { computed, task } from "nanostores";
13
13
  import { nanoquery } from "@nanostores/query";
14
14
 
@@ -20,6 +20,97 @@ const GET_HOOK_SYMBOL = Symbol("fragno-get-hook");
20
20
  const MUTATOR_HOOK_SYMBOL = Symbol("fragno-mutator-hook");
21
21
  const STORE_SYMBOL = Symbol("fragno-store");
22
22
  /**
23
+ * Check if a value contains files that should be sent as FormData.
24
+ * @internal
25
+ */
26
+ function containsFiles(value) {
27
+ if (value instanceof File || value instanceof Blob) return true;
28
+ if (value instanceof FormData) return true;
29
+ if (typeof value === "object" && value !== null) return Object.values(value).some((v) => v instanceof File || v instanceof Blob || v instanceof FormData);
30
+ return false;
31
+ }
32
+ /**
33
+ * Convert an object containing files to FormData.
34
+ * Handles nested File/Blob values by appending them directly.
35
+ * Other values are JSON-stringified.
36
+ * @internal
37
+ */
38
+ function toFormData(value) {
39
+ const formData = new FormData();
40
+ for (const [key, val] of Object.entries(value)) if (val instanceof File) formData.append(key, val, val.name);
41
+ else if (val instanceof Blob) formData.append(key, val);
42
+ else if (val !== void 0 && val !== null) formData.append(key, typeof val === "string" ? val : JSON.stringify(val));
43
+ return formData;
44
+ }
45
+ /**
46
+ * Prepare request body and headers for sending.
47
+ * Handles FormData (file uploads) vs JSON data.
48
+ * @internal
49
+ */
50
+ function prepareRequestBody(body, contentType) {
51
+ if (body === void 0) return { body: void 0 };
52
+ if (contentType === "application/octet-stream") {
53
+ if (body instanceof ReadableStream || body instanceof Blob || body instanceof File || body instanceof ArrayBuffer || body instanceof Uint8Array) return {
54
+ body,
55
+ headers: { "Content-Type": "application/octet-stream" }
56
+ };
57
+ throw new Error("Octet-stream routes only accept Blob, File, ArrayBuffer, Uint8Array, or ReadableStream bodies.");
58
+ }
59
+ if (body instanceof FormData) return { body };
60
+ if (body instanceof File) {
61
+ const formData = new FormData();
62
+ formData.append("file", body, body.name);
63
+ return { body: formData };
64
+ }
65
+ if (body instanceof Blob) {
66
+ const formData = new FormData();
67
+ formData.append("file", body);
68
+ return { body: formData };
69
+ }
70
+ if (typeof body === "object" && body !== null && containsFiles(body)) return { body: toFormData(body) };
71
+ return {
72
+ body: JSON.stringify(body),
73
+ headers: { "Content-Type": "application/json" }
74
+ };
75
+ }
76
+ async function schemaAllowsUndefined(schema) {
77
+ try {
78
+ return !(await schema["~standard"].validate(void 0)).issues;
79
+ } catch {
80
+ return false;
81
+ }
82
+ }
83
+ async function assertBodyProvided(body, inputSchema, errorMessage) {
84
+ if (typeof body !== "undefined" || inputSchema === void 0) return;
85
+ if (await schemaAllowsUndefined(inputSchema)) return;
86
+ throw new Error(errorMessage);
87
+ }
88
+ /**
89
+ * Merge request headers from multiple sources.
90
+ * Returns undefined if there are no headers to merge.
91
+ * @internal
92
+ */
93
+ function mergeRequestHeaders(...headerSources) {
94
+ const result = {};
95
+ let hasHeaders = false;
96
+ for (const source of headerSources) {
97
+ if (!source) continue;
98
+ if (source instanceof Headers) for (const [key, value] of source.entries()) {
99
+ result[key] = value;
100
+ hasHeaders = true;
101
+ }
102
+ else if (Array.isArray(source)) for (const [key, value] of source) {
103
+ result[key] = value;
104
+ hasHeaders = true;
105
+ }
106
+ else for (const [key, value] of Object.entries(source)) {
107
+ result[key] = value;
108
+ hasHeaders = true;
109
+ }
110
+ }
111
+ return hasHeaders ? result : void 0;
112
+ }
113
+ /**
23
114
  * @internal
24
115
  */
25
116
  function buildUrl(config, params) {
@@ -104,9 +195,13 @@ var ClientBuilder = class {
104
195
  get cacheEntries() {
105
196
  return Object.fromEntries(this.#cache.entries());
106
197
  }
107
- createStore(obj) {
198
+ createStore(input) {
199
+ if (typeof input === "function") return {
200
+ factory: input,
201
+ [STORE_SYMBOL]: true
202
+ };
108
203
  return {
109
- obj,
204
+ obj: input,
110
205
  [STORE_SYMBOL]: true
111
206
  };
112
207
  }
@@ -117,7 +212,10 @@ var ClientBuilder = class {
117
212
  buildUrl(path, params) {
118
213
  return buildUrl({
119
214
  baseUrl: this.#publicConfig.baseUrl ?? "",
120
- mountRoute: getMountRoute(this.#fragmentConfig),
215
+ mountRoute: getMountRoute({
216
+ name: this.#fragmentConfig.name,
217
+ mountRoute: this.#publicConfig.mountRoute
218
+ }),
121
219
  path
122
220
  }, {
123
221
  pathParams: params?.path,
@@ -136,7 +234,7 @@ var ClientBuilder = class {
136
234
  }
137
235
  #getFetcher() {
138
236
  if (this.#fetcherConfig?.type === "function") return this.#fetcherConfig.fetcher;
139
- return fetch;
237
+ return globalThis.fetch.bind(globalThis);
140
238
  }
141
239
  #getFetcherOptions() {
142
240
  if (this.#fetcherConfig?.type === "options") return this.#fetcherConfig.options;
@@ -155,7 +253,10 @@ var ClientBuilder = class {
155
253
  if (route.method !== "GET") throw new Error(`Only GET routes are supported for hooks. Route '${route.path}' is a ${route.method} route.`);
156
254
  if (!route.outputSchema) throw new Error(`Output schema is required for GET routes. Route '${route.path}' has no output schema.`);
157
255
  const baseUrl = this.#publicConfig.baseUrl ?? "";
158
- const mountRoute = getMountRoute(this.#fragmentConfig);
256
+ const mountRoute = getMountRoute({
257
+ name: this.#fragmentConfig.name,
258
+ mountRoute: this.#publicConfig.mountRoute
259
+ });
159
260
  const fetcher = this.#getFetcher();
160
261
  const fetcherOptions = this.#getFetcherOptions();
161
262
  async function callServerSideHandler(params) {
@@ -263,7 +364,10 @@ var ClientBuilder = class {
263
364
  #createRouteQueryMutator(route, onInvalidate = (invalidate, params) => invalidate("GET", route.path, params)) {
264
365
  const method = route.method;
265
366
  const baseUrl = this.#publicConfig.baseUrl ?? "";
266
- const mountRoute = getMountRoute(this.#fragmentConfig);
367
+ const mountRoute = getMountRoute({
368
+ name: this.#fragmentConfig.name,
369
+ mountRoute: this.#publicConfig.mountRoute
370
+ });
267
371
  const fetcher = this.#getFetcher();
268
372
  const fetcherOptions = this.#getFetcherOptions();
269
373
  async function executeMutateQuery({ body, path, query }) {
@@ -285,11 +389,16 @@ var ClientBuilder = class {
285
389
  });
286
390
  let response;
287
391
  try {
288
- response = await fetcher(url, {
392
+ const { body: preparedBody, headers: bodyHeaders } = prepareRequestBody(body, route.contentType);
393
+ const mergedHeaders = mergeRequestHeaders(fetcherOptions?.headers, bodyHeaders);
394
+ const requestOptions = {
289
395
  ...fetcherOptions,
290
396
  method,
291
- body: body !== void 0 ? JSON.stringify(body) : void 0
292
- });
397
+ body: preparedBody,
398
+ ...mergedHeaders ? { headers: mergedHeaders } : {}
399
+ };
400
+ if (preparedBody instanceof ReadableStream) requestOptions.duplex = "half";
401
+ response = await fetcher(url, requestOptions);
293
402
  } catch (error) {
294
403
  throw FragnoClientFetchError.fromUnknownFetchError(error);
295
404
  }
@@ -299,7 +408,7 @@ var ClientBuilder = class {
299
408
  const mutatorStore = this.#createMutatorStore(async ({ data }) => {
300
409
  if (typeof window === "undefined") {}
301
410
  const { body, path, query } = data;
302
- if (typeof body === "undefined" && route.inputSchema !== void 0) throw new Error("Body is required.");
411
+ await assertBodyProvided(body, route.inputSchema, "Body is required.");
303
412
  const response = await executeMutateQuery({
304
413
  body,
305
414
  path,
@@ -338,7 +447,7 @@ var ClientBuilder = class {
338
447
  } });
339
448
  const mutateQuery = (async (data) => {
340
449
  const { body, path, query } = data;
341
- if (typeof body === "undefined" && route.inputSchema !== void 0) throw new Error("Body is required for mutateQuery");
450
+ await assertBodyProvided(body, route.inputSchema, "Body is required for mutateQuery");
342
451
  const response = await executeMutateQuery({
343
452
  body,
344
453
  path,
@@ -384,7 +493,10 @@ function createClientBuilder(definition, publicConfig, routesOrFactories, author
384
493
  name: definition.name,
385
494
  routes
386
495
  };
387
- const mountRoute = publicConfig.mountRoute ?? `/${definition.name}`;
496
+ const mountRoute = getMountRoute({
497
+ name: definition.name,
498
+ mountRoute: publicConfig.mountRoute
499
+ });
388
500
  const mergedFetcherConfig = mergeFetcherConfigs(authorFetcherConfig, publicConfig.fetcherConfig);
389
501
  return new ClientBuilder({
390
502
  ...publicConfig,