@fragno-dev/core 0.1.6 → 0.1.7

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 (38) hide show
  1. package/.turbo/turbo-build.log +16 -16
  2. package/CHANGELOG.md +6 -0
  3. package/dist/api/api.d.ts +1 -1
  4. package/dist/api/fragment-builder.d.ts +3 -3
  5. package/dist/api/fragment-instantiation.d.ts +3 -3
  6. package/dist/api/route.d.ts +2 -2
  7. package/dist/{api-CoCkNi6h.d.ts → api-BWN97TOr.d.ts} +2 -2
  8. package/dist/api-BWN97TOr.d.ts.map +1 -0
  9. package/dist/client/client.d.ts +3 -3
  10. package/dist/client/client.js +1 -1
  11. package/dist/client/client.svelte.d.ts +3 -3
  12. package/dist/client/client.svelte.js +1 -1
  13. package/dist/client/react.d.ts +3 -3
  14. package/dist/client/react.js +1 -1
  15. package/dist/client/solid.d.ts +3 -3
  16. package/dist/client/solid.js +1 -1
  17. package/dist/client/vanilla.d.ts +3 -3
  18. package/dist/client/vanilla.js +1 -1
  19. package/dist/client/vue.d.ts +3 -3
  20. package/dist/client/vue.js +5 -5
  21. package/dist/client/vue.js.map +1 -1
  22. package/dist/{client-DJfCJiHK.js → client-C5LsYHEI.js} +12 -5
  23. package/dist/client-C5LsYHEI.js.map +1 -0
  24. package/dist/{fragment-builder-8-tiECi5.d.ts → fragment-builder-MGr68GNb.d.ts} +10 -9
  25. package/dist/fragment-builder-MGr68GNb.d.ts.map +1 -0
  26. package/dist/mod.d.ts +3 -3
  27. package/dist/{route-mGLYSUvD.d.ts → route-Bl9Zr1Yv.d.ts} +2 -2
  28. package/dist/{route-mGLYSUvD.d.ts.map → route-Bl9Zr1Yv.d.ts.map} +1 -1
  29. package/dist/test/test.d.ts +3 -3
  30. package/package.json +1 -1
  31. package/src/api/internal/path-type.test.ts +7 -7
  32. package/src/api/internal/path.ts +1 -1
  33. package/src/client/client-types.test.ts +4 -4
  34. package/src/client/client.test.ts +77 -0
  35. package/src/client/client.ts +31 -12
  36. package/dist/api-CoCkNi6h.d.ts.map +0 -1
  37. package/dist/client-DJfCJiHK.js.map +0 -1
  38. package/dist/fragment-builder-8-tiECi5.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
 
2
- > @fragno-dev/core@0.1.6 build /home/runner/work/fragno/fragno/packages/fragno
2
+ > @fragno-dev/core@0.1.7 build /home/runner/work/fragno/fragno/packages/fragno
3
3
  > tsdown
4
4
 
5
5
  ℹ tsdown v0.15.12 powered by rolldown v1.0.0-beta.45
@@ -10,7 +10,7 @@
10
10
  ℹ dist/client/client.svelte.js  3.36 kB │ gzip: 1.00 kB
11
11
  ℹ dist/client/vanilla.js  3.35 kB │ gzip: 1.14 kB
12
12
  ℹ dist/client/solid.js  3.08 kB │ gzip: 0.99 kB
13
- ℹ dist/client/vue.js  2.90 kB │ gzip: 1.03 kB
13
+ ℹ dist/client/vue.js  2.92 kB │ gzip: 1.03 kB
14
14
  ℹ dist/client/react.js  2.53 kB │ gzip: 0.96 kB
15
15
  ℹ dist/test/test.js  2.15 kB │ gzip: 0.89 kB
16
16
  ℹ dist/integrations/react-ssr.js  1.27 kB │ gzip: 0.65 kB
@@ -20,17 +20,17 @@
20
20
  ℹ dist/api/api.js  0.17 kB │ gzip: 0.12 kB
21
21
  ℹ dist/api/route.js  0.17 kB │ gzip: 0.12 kB
22
22
  ℹ dist/api/fragment-builder.js  0.14 kB │ gzip: 0.11 kB
23
- ℹ dist/client-DJfCJiHK.js.map 77.68 kB │ gzip: 17.63 kB
23
+ ℹ dist/client-C5LsYHEI.js.map 79.23 kB │ gzip: 17.92 kB
24
24
  ℹ dist/fragment-instantiation-C4wvwl6V.js.map 34.58 kB │ gzip: 8.72 kB
25
- ℹ dist/client-DJfCJiHK.js 27.05 kB │ gzip: 6.89 kB
25
+ ℹ dist/client-C5LsYHEI.js 27.59 kB │ gzip: 7.01 kB
26
26
  ℹ dist/request-output-context-CdIjwmEN.js.map 20.33 kB │ gzip: 5.85 kB
27
- ℹ dist/fragment-builder-8-tiECi5.d.ts.map 17.79 kB │ gzip: 6.83 kB
27
+ ℹ dist/fragment-builder-MGr68GNb.d.ts.map 17.88 kB │ gzip: 6.82 kB
28
28
  ℹ dist/client/vanilla.js.map 12.96 kB │ gzip: 3.58 kB
29
29
  ℹ dist/fragment-instantiation-C4wvwl6V.js 12.96 kB │ gzip: 3.69 kB
30
30
  ℹ dist/client/client.svelte.js.map 11.35 kB │ gzip: 2.76 kB
31
31
  ℹ dist/client/solid.js.map 11.01 kB │ gzip: 2.79 kB
32
- ℹ dist/client/vue.js.map 10.12 kB │ gzip: 2.78 kB
33
- ℹ dist/api-CoCkNi6h.d.ts.map  9.69 kB │ gzip: 3.73 kB
32
+ ℹ dist/client/vue.js.map 10.13 kB │ gzip: 2.79 kB
33
+ ℹ dist/api-BWN97TOr.d.ts.map  9.70 kB │ gzip: 3.73 kB
34
34
  ℹ dist/client/react.js.map  9.54 kB │ gzip: 3.03 kB
35
35
  ℹ dist/request-output-context-CdIjwmEN.js  8.57 kB │ gzip: 2.53 kB
36
36
  ℹ dist/test/test.js.map  5.97 kB │ gzip: 1.90 kB
@@ -42,7 +42,7 @@
42
42
  ℹ dist/client/react.d.ts.map  2.81 kB │ gzip: 1.20 kB
43
43
  ℹ dist/client/solid.d.ts.map  2.62 kB │ gzip: 1.09 kB
44
44
  ℹ dist/client/client.svelte.d.ts.map  2.52 kB │ gzip: 1.02 kB
45
- ℹ dist/route-mGLYSUvD.d.ts.map  2.32 kB │ gzip: 1.02 kB
45
+ ℹ dist/route-Bl9Zr1Yv.d.ts.map  2.32 kB │ gzip: 1.02 kB
46
46
  ℹ dist/client/vue.d.ts.map  2.30 kB │ gzip: 0.97 kB
47
47
  ℹ dist/test/test.d.ts.map  1.67 kB │ gzip: 0.74 kB
48
48
  ℹ dist/integrations/react-ssr.js.map  1.65 kB │ gzip: 0.84 kB
@@ -55,17 +55,17 @@
55
55
  ℹ dist/client/react.d.ts  3.47 kB │ gzip: 1.22 kB
56
56
  ℹ dist/test/test.d.ts  3.46 kB │ gzip: 1.23 kB
57
57
  ℹ dist/client/solid.d.ts  3.12 kB │ gzip: 0.99 kB
58
- ℹ dist/client/client.svelte.d.ts  2.86 kB │ gzip: 0.85 kB
58
+ ℹ dist/client/client.svelte.d.ts  2.86 kB │ gzip: 0.86 kB
59
59
  ℹ dist/client/vue.d.ts  2.79 kB │ gzip: 0.94 kB
60
60
  ℹ dist/client/client.d.ts  1.46 kB │ gzip: 0.50 kB
61
- ℹ dist/mod.d.ts  0.85 kB │ gzip: 0.31 kB
61
+ ℹ dist/mod.d.ts  0.85 kB │ gzip: 0.32 kB
62
62
  ℹ dist/integrations/react-ssr.d.ts  0.78 kB │ gzip: 0.38 kB
63
63
  ℹ dist/api/fragment-instantiation.d.ts  0.55 kB │ gzip: 0.24 kB
64
64
  ℹ dist/api/route.d.ts  0.42 kB │ gzip: 0.20 kB
65
- ℹ dist/api/api.d.ts  0.36 kB │ gzip: 0.19 kB
65
+ ℹ dist/api/api.d.ts  0.36 kB │ gzip: 0.20 kB
66
66
  ℹ dist/api/fragment-builder.d.ts  0.24 kB │ gzip: 0.16 kB
67
- ℹ dist/fragment-builder-8-tiECi5.d.ts 23.06 kB │ gzip: 5.11 kB
68
- ℹ dist/api-CoCkNi6h.d.ts 15.21 kB │ gzip: 4.26 kB
69
- ℹ dist/route-mGLYSUvD.d.ts  2.90 kB │ gzip: 0.73 kB
70
- ℹ 60 files, total: 395.50 kB
71
- ✔ Build complete in 10375ms
67
+ ℹ dist/fragment-builder-MGr68GNb.d.ts 23.32 kB │ gzip: 5.18 kB
68
+ ℹ dist/api-BWN97TOr.d.ts 15.22 kB │ gzip: 4.27 kB
69
+ ℹ dist/route-Bl9Zr1Yv.d.ts  2.90 kB │ gzip: 0.73 kB
70
+ ℹ 60 files, total: 397.99 kB
71
+ ✔ Build complete in 9800ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @fragno-dev/core
2
2
 
3
+ ## 0.1.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 09a1e13: Optional query parameters can now be used with reactive state
8
+
3
9
  ## 0.1.6
4
10
 
5
11
  ### Patch Changes
package/dist/api/api.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as addRoute, c as FragnoApiValidationError, i as ValidPath, n as HTTPMethod, o as RouteHandlerInputOptions, r as NonGetHTTPMethod, s as FragnoApiError, t as FragnoRouteConfig } from "../api-CoCkNi6h.js";
1
+ import { a as addRoute, c as FragnoApiValidationError, i as ValidPath, n as HTTPMethod, o as RouteHandlerInputOptions, r as NonGetHTTPMethod, s as FragnoApiError, t as FragnoRouteConfig } from "../api-BWN97TOr.js";
2
2
  export { FragnoApiError, FragnoApiValidationError, FragnoRouteConfig, HTTPMethod, NonGetHTTPMethod, RouteHandlerInputOptions, ValidPath, addRoute };
@@ -1,4 +1,4 @@
1
- import "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { n as FragmentDefinition, r as defineFragment, t as FragmentBuilder } from "../fragment-builder-8-tiECi5.js";
1
+ import "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { n as FragmentDefinition, r as defineFragment, t as FragmentBuilder } from "../fragment-builder-MGr68GNb.js";
4
4
  export { FragmentBuilder, FragmentDefinition, defineFragment };
@@ -1,4 +1,4 @@
1
- import "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { a as FetcherConfig, c as FragnoPublicClientConfig, d as instantiatedFragmentFakeSymbol, i as AnyFragnoFragmentSharedConfig, l as FragnoPublicConfig, o as FragnoFragmentSharedConfig, s as FragnoInstantiatedFragment, u as createFragment } from "../fragment-builder-8-tiECi5.js";
1
+ import "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { a as FetcherConfig, c as FragnoPublicClientConfig, d as instantiatedFragmentFakeSymbol, i as AnyFragnoFragmentSharedConfig, l as FragnoPublicConfig, o as FragnoFragmentSharedConfig, s as FragnoInstantiatedFragment, u as createFragment } from "../fragment-builder-MGr68GNb.js";
4
4
  export { AnyFragnoFragmentSharedConfig, FetcherConfig, FragnoFragmentSharedConfig, FragnoInstantiatedFragment, FragnoPublicClientConfig, FragnoPublicConfig, createFragment, instantiatedFragmentFakeSymbol };
@@ -1,3 +1,3 @@
1
- import "../api-CoCkNi6h.js";
2
- import { a as RouteFactoryContext, c as resolveRouteFactories, i as RouteFactory, n as AnyRouteOrFactory, o as defineRoute, r as FlattenRouteFactories, s as defineRoutes, t as AnyFragnoRouteConfig } from "../route-mGLYSUvD.js";
1
+ import "../api-BWN97TOr.js";
2
+ import { a as RouteFactoryContext, c as resolveRouteFactories, i as RouteFactory, n as AnyRouteOrFactory, o as defineRoute, r as FlattenRouteFactories, s as defineRoutes, t as AnyFragnoRouteConfig } from "../route-Bl9Zr1Yv.js";
3
3
  export { AnyFragnoRouteConfig, AnyRouteOrFactory, FlattenRouteFactories, RouteFactory, RouteFactoryContext, defineRoute, defineRoutes, resolveRouteFactories };
@@ -46,7 +46,7 @@ type HasPathParams<T extends string> = ExtractPathParamNames<T> extends never ?
46
46
  * const query3: MyQuery = { page: "1", sort: "asc" }; // Valid - additional param
47
47
  * ```
48
48
  */
49
- type QueryParamsHint<TQueryParameters extends string, ValueType = string> = Partial<Record<TQueryParameters, ValueType>> & Record<string, ValueType>;
49
+ type QueryParamsHint<TQueryParameters extends string, ValueType = string> = Partial<Record<TQueryParameters, ValueType>> & Record<string, ValueType | undefined>;
50
50
  //#endregion
51
51
  //#region src/api/mutable-request-state.d.ts
52
52
  /**
@@ -374,4 +374,4 @@ declare function addRoute<TMethod extends HTTPMethod, TPath extends string, TInp
374
374
  }): FragnoRouteConfig<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>;
375
375
  //#endregion
376
376
  export { QueryParamsHint as _, addRoute as a, FragnoApiValidationError as c, InferOrUnknown as d, StatusCode as f, MaybeExtractPathParamsOrWiden as g, HasPathParams as h, ValidPath as i, OutputContext as l, ExtractPathParamsOrWiden as m, HTTPMethod as n, RouteHandlerInputOptions as o, MutableRequestState as p, NonGetHTTPMethod as r, FragnoApiError as s, FragnoRouteConfig as t, InferOr as u };
377
- //# sourceMappingURL=api-CoCkNi6h.d.ts.map
377
+ //# sourceMappingURL=api-BWN97TOr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-BWN97TOr.d.ts","names":[],"sources":["../src/api/internal/path.ts","../src/api/mutable-request-state.ts","../src/api/request-input-context.ts","../src/http/http-status.ts","../src/api/internal/response-stream.ts","../src/util/types-util.ts","../src/api/request-output-context.ts","../src/api/error.ts","../src/api/route-handler-input-options.ts","../src/api/api.ts"],"sourcesContent":[],"mappings":"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sBM,aTtBN,ESsBqB,UTtBrB,CAAA,CAAA,ESuBzB,OTvByB,CSuBjB,QTvBiB,CAAA;;AAI1B,iBSuBY,QTvBZ,CAAA,gBSwBc,UTxBd,EAAA,cAAA,MAAA,EAAA,sBS0BoB,gBT1BpB,GAAA,SAAA,EAAA,mBAAA,MAAA,GAAA,MAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,CAAA,CAAA,KAAA,ES8BK,iBT9BL,CS+BA,OT/BA,ESgCA,SThCA,CSgCU,KThCV,CAAA,EAAA,SAAA,ESkCA,aTlCA,ESmCA,UTnCA,ESoCA,gBTpCA,CAAA,GAAA;EACE,WAAA,CAAA,EAAA,SAAA;CACe,CAAA,ESoClB,iBTpCkB,CSoCA,OTpCA,ESoCS,KTpCT,EAAA,SAAA,ESoC2B,aTpC3B,ESoC0C,UTpC1C,ESoCsD,gBTpCtD,CAAA;AAAb,iBSuCQ,QTvCR,CAAA,gBSwCU,UTxCV,EAAA,cAAA,MAAA,EAAA,qBS0Ce,gBT1Cf,EAAA,sBS2CgB,gBT3ChB,GAAA,SAAA,EAAA,mBAAA,MAAA,GAAA,MAAA,EAAA,yBAAA,MAAA,GAAA,MAAA,CAAA,CAAA,KAAA,ES+CC,iBT/CD,CSgDJ,OThDI,ESiDJ,STjDI,CSiDM,KTjDN,CAAA,ESkDJ,YTlDI,ESmDJ,aTnDI,ESoDJ,UTpDI,ESqDJ,gBTrDI,CAAA,GAAA;EAAgD,WAAA,ESuDvC,YTvDuC;CAA1B,CAAA,ESyD3B,iBTzD2B,CSyDT,OTzDS,ESyDA,KTzDA,ESyDO,YTzDP,ESyDqB,aTzDrB,ESyDoC,UTzDpC,ESyDgD,gBTzDhD,CAAA"}
@@ -1,4 +1,4 @@
1
- import "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { A as createClientBuilder, B as FragnoClientUnknownApiError, C as FragnoClientMutatorData, D as ObjectContainingStoreField, E as IsValidGetRoutePath, F as FragnoClientApiError, I as FragnoClientError, L as FragnoClientFetchAbortError, M as isGetHook, N as isMutatorHook, O as ValidateGetRoutePath, P as isStore, R as FragnoClientFetchError, S as FragnoClientHookData, T as HasGetRoutes, V as FragnoErrorOptions, _ as ExtractGetRoutes, a as FetcherConfig, b as ExtractRouteByPath, g as ExtractGetRoutePaths, h as CreateHookOptions, j as getCacheKey, k as buildUrl, m as ClientBuilder, p as CacheLine, v as ExtractNonGetRoutePaths, w as FragnoStoreData, x as ExtractRoutePath, y as ExtractOutputSchemaForPath, z as FragnoClientFetchNetworkError } from "../fragment-builder-8-tiECi5.js";
1
+ import "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { A as createClientBuilder, B as FragnoClientUnknownApiError, C as FragnoClientMutatorData, D as ObjectContainingStoreField, E as IsValidGetRoutePath, F as FragnoClientApiError, I as FragnoClientError, L as FragnoClientFetchAbortError, M as isGetHook, N as isMutatorHook, O as ValidateGetRoutePath, P as isStore, R as FragnoClientFetchError, S as FragnoClientHookData, T as HasGetRoutes, V as FragnoErrorOptions, _ as ExtractGetRoutes, a as FetcherConfig, b as ExtractRouteByPath, g as ExtractGetRoutePaths, h as CreateHookOptions, j as getCacheKey, k as buildUrl, m as ClientBuilder, p as CacheLine, v as ExtractNonGetRoutePaths, w as FragnoStoreData, x as ExtractRoutePath, y as ExtractOutputSchemaForPath, z as FragnoClientFetchNetworkError } from "../fragment-builder-MGr68GNb.js";
4
4
  export { CacheLine, ClientBuilder, CreateHookOptions, ExtractGetRoutePaths, ExtractGetRoutes, ExtractNonGetRoutePaths, ExtractOutputSchemaForPath, ExtractRouteByPath, ExtractRoutePath, FetcherConfig, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientHookData, FragnoClientMutatorData, FragnoClientUnknownApiError, FragnoErrorOptions, FragnoStoreData, HasGetRoutes, IsValidGetRoutePath, ObjectContainingStoreField, ValidateGetRoutePath, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
@@ -1,7 +1,7 @@
1
1
  import "../api-DngJDcmO.js";
2
2
  import "../request-output-context-CdIjwmEN.js";
3
3
  import "../route-C5Uryylh.js";
4
- import { a as isGetHook, d as FragnoClientFetchAbortError, f as FragnoClientFetchError, i as getCacheKey, l as FragnoClientApiError, m as FragnoClientUnknownApiError, n as buildUrl, o as isMutatorHook, p as FragnoClientFetchNetworkError, r as createClientBuilder, s as isStore, t as ClientBuilder, u as FragnoClientError } from "../client-DJfCJiHK.js";
4
+ import { a as isGetHook, d as FragnoClientFetchAbortError, f as FragnoClientFetchError, i as getCacheKey, l as FragnoClientApiError, m as FragnoClientUnknownApiError, n as buildUrl, o as isMutatorHook, p as FragnoClientFetchNetworkError, r as createClientBuilder, s as isStore, t as ClientBuilder, u as FragnoClientError } from "../client-C5LsYHEI.js";
5
5
  import "../ssr-BByDVfFD.js";
6
6
 
7
7
  export { ClientBuilder, FragnoClientApiError, FragnoClientError, FragnoClientFetchAbortError, FragnoClientFetchError, FragnoClientFetchNetworkError, FragnoClientUnknownApiError, buildUrl, createClientBuilder, getCacheKey, isGetHook, isMutatorHook, isStore };
@@ -1,6 +1,6 @@
1
- import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData, w as FragnoStoreData } from "../fragment-builder-8-tiECi5.js";
1
+ import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData, w as FragnoStoreData } from "../fragment-builder-MGr68GNb.js";
4
4
  import { ReadableAtom } from "nanostores";
5
5
  import { Readable } from "svelte/store";
6
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -1,7 +1,7 @@
1
1
  import "../api-DngJDcmO.js";
2
2
  import "../request-output-context-CdIjwmEN.js";
3
3
  import "../route-C5Uryylh.js";
4
- import { a as isGetHook, o as isMutatorHook, s as isStore } from "../client-DJfCJiHK.js";
4
+ import { a as isGetHook, o as isMutatorHook, s as isStore } from "../client-C5LsYHEI.js";
5
5
  import "../ssr-BByDVfFD.js";
6
6
  import { atom } from "nanostores";
7
7
  import { get, writable } from "svelte/store";
@@ -1,6 +1,6 @@
1
- import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, h as HasPathParams, m as ExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData, w as FragnoStoreData } from "../fragment-builder-8-tiECi5.js";
1
+ import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, h as HasPathParams, m as ExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData, w as FragnoStoreData } from "../fragment-builder-MGr68GNb.js";
4
4
  import { ReadableAtom, Store, StoreValue } from "nanostores";
5
5
  import { FetcherValue } from "@nanostores/query";
6
6
  import * as react0 from "react";
@@ -1,7 +1,7 @@
1
1
  import "../api-DngJDcmO.js";
2
2
  import "../request-output-context-CdIjwmEN.js";
3
3
  import "../route-C5Uryylh.js";
4
- import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-DJfCJiHK.js";
4
+ import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-C5LsYHEI.js";
5
5
  import { o as hydrateFromWindow } from "../ssr-BByDVfFD.js";
6
6
  import { listenKeys } from "nanostores";
7
7
  import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
@@ -1,6 +1,6 @@
1
- import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData, w as FragnoStoreData } from "../fragment-builder-8-tiECi5.js";
1
+ import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData, w as FragnoStoreData } from "../fragment-builder-MGr68GNb.js";
4
4
  import { ReadableAtom, Store, StoreValue } from "nanostores";
5
5
  import { Accessor } from "solid-js";
6
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -1,7 +1,7 @@
1
1
  import "../api-DngJDcmO.js";
2
2
  import "../request-output-context-CdIjwmEN.js";
3
3
  import "../route-C5Uryylh.js";
4
- import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-DJfCJiHK.js";
4
+ import { a as isGetHook, c as isReadableAtom, o as isMutatorHook, s as isStore } from "../client-C5LsYHEI.js";
5
5
  import "../ssr-BByDVfFD.js";
6
6
  import { atom } from "nanostores";
7
7
  import { useStore } from "@nanostores/solid";
@@ -1,6 +1,6 @@
1
- import { g as MaybeExtractPathParamsOrWiden, h as HasPathParams, m as ExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData } from "../fragment-builder-8-tiECi5.js";
1
+ import { g as MaybeExtractPathParamsOrWiden, h as HasPathParams, m as ExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData } from "../fragment-builder-MGr68GNb.js";
4
4
  import { ReadableAtom } from "nanostores";
5
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
6
6
 
@@ -1,7 +1,7 @@
1
1
  import "../api-DngJDcmO.js";
2
2
  import "../request-output-context-CdIjwmEN.js";
3
3
  import "../route-C5Uryylh.js";
4
- import { a as isGetHook, o as isMutatorHook } from "../client-DJfCJiHK.js";
4
+ import { a as isGetHook, o as isMutatorHook } from "../client-C5LsYHEI.js";
5
5
  import "../ssr-BByDVfFD.js";
6
6
 
7
7
  //#region src/util/async.ts
@@ -1,6 +1,6 @@
1
- import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-CoCkNi6h.js";
2
- import "../route-mGLYSUvD.js";
3
- import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData } from "../fragment-builder-8-tiECi5.js";
1
+ import { _ as QueryParamsHint, g as MaybeExtractPathParamsOrWiden, r as NonGetHTTPMethod, u as InferOr } from "../api-BWN97TOr.js";
2
+ import "../route-Bl9Zr1Yv.js";
3
+ import { C as FragnoClientMutatorData, I as FragnoClientError, S as FragnoClientHookData } from "../fragment-builder-MGr68GNb.js";
4
4
  import { ReadableAtom, Store, StoreValue } from "nanostores";
5
5
  import { DeepReadonly, Ref, ShallowRef, UnwrapNestedRefs } from "vue";
6
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
@@ -1,10 +1,10 @@
1
1
  import "../api-DngJDcmO.js";
2
2
  import "../request-output-context-CdIjwmEN.js";
3
3
  import "../route-C5Uryylh.js";
4
- import { a as isGetHook, o as isMutatorHook } from "../client-DJfCJiHK.js";
4
+ import { a as isGetHook, o as isMutatorHook } from "../client-C5LsYHEI.js";
5
5
  import "../ssr-BByDVfFD.js";
6
6
  import { atom } from "nanostores";
7
- import { computed, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from "vue";
7
+ import { computed as computed$1, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from "vue";
8
8
 
9
9
  //#region src/client/vue.ts
10
10
  /**
@@ -78,9 +78,9 @@ function createVueMutator(hook) {
78
78
  };
79
79
  return {
80
80
  mutate,
81
- loading: computed(() => store.value.loading),
82
- error: computed(() => store.value.error),
83
- data: computed(() => store.value.data)
81
+ loading: computed$1(() => store.value.loading),
82
+ error: computed$1(() => store.value.error),
83
+ data: computed$1(() => store.value.data)
84
84
  };
85
85
  };
86
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vue.js","names":["ref","pathParams: Record<string, string | ReadableAtom<string>>","queryParams: Record<string, string | ReadableAtom<string>>"],"sources":["../../src/client/vue.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { atom, type ReadableAtom, type Store, type StoreValue } from \"nanostores\";\nimport type { DeepReadonly, Ref, ShallowRef, UnwrapNestedRefs } from \"vue\";\nimport { computed, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from \"vue\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport {\n isGetHook,\n isMutatorHook,\n type FragnoClientMutatorData,\n type FragnoClientHookData,\n} from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport type { MaybeExtractPathParamsOrWiden, QueryParamsHint } from \"../api/internal/path\";\nimport type { InferOr } from \"../util/types-util\";\n\nexport type FragnoVueHook<\n _TMethod extends \"GET\",\n TPath extends string,\n TOutputSchema extends StandardSchemaV1,\n TErrorCode extends string,\n TQueryParameters extends string,\n> = (args?: {\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Ref<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Ref<string> | ReadableAtom<string>>;\n}) => {\n data: Ref<InferOr<TOutputSchema, undefined>>;\n loading: Ref<boolean>;\n error: Ref<FragnoClientError<TErrorCode[number]> | undefined>;\n};\n\nexport type FragnoVueMutator<\n _TMethod extends NonGetHTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string,\n TQueryParameters extends string,\n> = () => {\n mutate: (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Ref<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Ref<string> | ReadableAtom<string>>;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading: Ref<boolean | undefined>;\n error: Ref<FragnoClientError<TErrorCode[number]> | undefined>;\n data: Ref<InferOr<TOutputSchema, undefined>>;\n};\n\n/**\n * Converts a Vue Ref to a NanoStore Atom.\n *\n * This is used to convert Vue refs to atoms, so that we can use them in the store.\n *\n * @private\n */\nexport function refToAtom<T>(ref: Ref<T>): ReadableAtom<T> {\n const a = atom(ref.value);\n\n watch(ref, (newVal) => {\n a.set(newVal);\n });\n\n // TODO: Do we need to unsubscribe, or is this handled by `onScopeDispose` below?\n\n return a;\n}\n\n// Helper function to create a Vue composable from a GET hook\n// We want 1 store per hook, so on updates to params, we need to update the store instead of creating a new one.\n// Nanostores only works with atoms (or strings), so we need to convert vue refs to atoms.\nfunction createVueHook<\n TMethod extends \"GET\",\n TPath extends string,\n TOutputSchema extends StandardSchemaV1,\n TErrorCode extends string,\n TQueryParameters extends string,\n>(\n hook: FragnoClientHookData<TMethod, TPath, TOutputSchema, TErrorCode, TQueryParameters>,\n): FragnoVueHook<TMethod, TPath, TOutputSchema, TErrorCode, TQueryParameters> {\n return ({ path, query } = {}) => {\n const pathParams: Record<string, string | ReadableAtom<string>> = {};\n const queryParams: Record<string, string | ReadableAtom<string>> = {};\n\n for (const [key, value] of Object.entries(path ?? {})) {\n const v = value as string | Ref<string> | ReadableAtom<string>;\n pathParams[key] = isRef(v) ? refToAtom(v) : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n // Dunno why the cast is necessary\n const v = value as string | Ref<string> | ReadableAtom<string>;\n queryParams[key] = isRef(v) ? (refToAtom(v) as ReadableAtom<string>) : v;\n }\n\n const store = hook.store({\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n\n const data = ref();\n const loading = ref();\n const error = ref();\n\n const unsubscribe = store.subscribe((updatedStoreValue) => {\n data.value = updatedStoreValue.data;\n loading.value = updatedStoreValue.loading;\n error.value = updatedStoreValue.error;\n });\n\n if (getCurrentScope()) {\n onScopeDispose(() => {\n unsubscribe();\n });\n }\n\n return {\n data,\n loading,\n error,\n };\n };\n}\n\n// Helper function to create a Vue mutator from a mutator hook\nfunction createVueMutator<\n TMethod extends NonGetHTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string,\n TQueryParameters extends string,\n>(\n hook: FragnoClientMutatorData<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters\n >,\n): FragnoVueMutator<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters> {\n return () => {\n const store = useStore(hook.mutatorStore);\n\n // Create a wrapped mutate function that handles Vue refs\n const mutate = async (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Ref<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Ref<string> | ReadableAtom<string>>;\n }) => {\n const { body, path, query } = args;\n\n const pathParams: Record<string, string | ReadableAtom<string>> = {};\n const queryParams: Record<string, string | ReadableAtom<string>> = {};\n\n for (const [key, value] of Object.entries(path ?? {})) {\n const v = value as string | Ref<string> | ReadableAtom<string>;\n pathParams[key] = isRef(v) ? v.value : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Ref<string> | ReadableAtom<string>;\n queryParams[key] = isRef(v) ? v.value : v;\n }\n\n // Call the store's mutate function with normalized params\n return store.value.mutate({\n body,\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n };\n\n // Return the store-like object with Vue reactive refs\n return {\n mutate,\n loading: computed(() => store.value.loading),\n error: computed(() => store.value.error),\n data: computed(() => store.value.data) as Ref<InferOr<TOutputSchema, undefined>>,\n };\n };\n}\n\nexport function useFragno<T extends Record<string, unknown>>(\n clientObj: T,\n): {\n [K in keyof T]: T[K] extends FragnoClientHookData<\n \"GET\",\n infer TPath,\n infer TOutputSchema,\n infer TErrorCode,\n infer TQueryParameters\n >\n ? FragnoVueHook<\"GET\", TPath, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoClientMutatorData<\n infer M,\n infer TPath,\n infer TInputSchema,\n infer TOutputSchema,\n infer TErrorCode,\n infer TQueryParameters\n >\n ? FragnoVueMutator<M, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K];\n} {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = {} as any;\n\n for (const key in clientObj) {\n if (!Object.prototype.hasOwnProperty.call(clientObj, key)) {\n continue;\n }\n\n const hook = clientObj[key];\n if (isGetHook(hook)) {\n result[key] = createVueHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createVueMutator(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n\nexport function useStore<SomeStore extends Store, Value extends StoreValue<SomeStore>>(\n store: SomeStore,\n): DeepReadonly<UnwrapNestedRefs<ShallowRef<Value>>> {\n const state = shallowRef();\n\n const unsubscribe = store.subscribe((value) => {\n state.value = value;\n });\n\n if (getCurrentScope()) {\n onScopeDispose(unsubscribe);\n }\n\n return state;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAuDA,SAAgB,UAAa,OAA8B;CACzD,MAAM,IAAI,KAAKA,MAAI,MAAM;AAEzB,OAAMA,QAAM,WAAW;AACrB,IAAE,IAAI,OAAO;GACb;AAIF,QAAO;;AAMT,SAAS,cAOP,MAC4E;AAC5E,SAAQ,EAAE,MAAM,UAAU,EAAE,KAAK;EAC/B,MAAMC,aAA4D,EAAE;EACpE,MAAMC,cAA6D,EAAE;AAErE,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,EAAE;GACrD,MAAM,IAAI;AACV,cAAW,OAAO,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG;;AAG9C,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;GAEtD,MAAM,IAAI;AACV,eAAY,OAAO,MAAM,EAAE,GAAI,UAAU,EAAE,GAA4B;;EAGzE,MAAM,QAAQ,KAAK,MAAM;GACvB,MAAM;GACN,OAAO;GACR,CAAC;EAEF,MAAM,OAAO,KAAK;EAClB,MAAM,UAAU,KAAK;EACrB,MAAM,QAAQ,KAAK;EAEnB,MAAM,cAAc,MAAM,WAAW,sBAAsB;AACzD,QAAK,QAAQ,kBAAkB;AAC/B,WAAQ,QAAQ,kBAAkB;AAClC,SAAM,QAAQ,kBAAkB;IAChC;AAEF,MAAI,iBAAiB,CACnB,sBAAqB;AACnB,gBAAa;IACb;AAGJ,SAAO;GACL;GACA;GACA;GACD;;;AAKL,SAAS,iBAQP,MAQ6F;AAC7F,cAAa;EACX,MAAM,QAAQ,SAAS,KAAK,aAAa;EAGzC,MAAM,SAAS,OAAO,SAIhB;GACJ,MAAM,EAAE,MAAM,MAAM,UAAU;GAE9B,MAAMD,aAA4D,EAAE;GACpE,MAAMC,cAA6D,EAAE;AAErE,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,EAAE;IACrD,MAAM,IAAI;AACV,eAAW,OAAO,MAAM,EAAE,GAAG,EAAE,QAAQ;;AAGzC,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;IACtD,MAAM,IAAI;AACV,gBAAY,OAAO,MAAM,EAAE,GAAG,EAAE,QAAQ;;AAI1C,UAAO,MAAM,MAAM,OAAO;IACxB;IACA,MAAM;IACN,OAAO;IACR,CAAC;;AAIJ,SAAO;GACL;GACA,SAAS,eAAe,MAAM,MAAM,QAAQ;GAC5C,OAAO,eAAe,MAAM,MAAM,MAAM;GACxC,MAAM,eAAe,MAAM,MAAM,KAAK;GACvC;;;AAIL,SAAgB,UACd,WAoBA;CAEA,MAAM,SAAS,EAAE;AAEjB,MAAK,MAAM,OAAO,WAAW;AAC3B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,WAAW,IAAI,CACvD;EAGF,MAAM,OAAO,UAAU;AACvB,MAAI,UAAU,KAAK,CACjB,QAAO,OAAO,cAAc,KAAK;WACxB,cAAc,KAAK,CAC5B,QAAO,OAAO,iBAAiB,KAAK;MAGpC,QAAO,OAAO;;AAIlB,QAAO;;AAGT,SAAgB,SACd,OACmD;CACnD,MAAM,QAAQ,YAAY;CAE1B,MAAM,cAAc,MAAM,WAAW,UAAU;AAC7C,QAAM,QAAQ;GACd;AAEF,KAAI,iBAAiB,CACnB,gBAAe,YAAY;AAG7B,QAAO"}
1
+ {"version":3,"file":"vue.js","names":["ref","pathParams: Record<string, string | ReadableAtom<string>>","queryParams: Record<string, string | ReadableAtom<string>>","computed"],"sources":["../../src/client/vue.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { atom, type ReadableAtom, type Store, type StoreValue } from \"nanostores\";\nimport type { DeepReadonly, Ref, ShallowRef, UnwrapNestedRefs } from \"vue\";\nimport { computed, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from \"vue\";\nimport type { NonGetHTTPMethod } from \"../api/api\";\nimport {\n isGetHook,\n isMutatorHook,\n type FragnoClientMutatorData,\n type FragnoClientHookData,\n} from \"./client\";\nimport type { FragnoClientError } from \"./client-error\";\nimport type { MaybeExtractPathParamsOrWiden, QueryParamsHint } from \"../api/internal/path\";\nimport type { InferOr } from \"../util/types-util\";\n\nexport type FragnoVueHook<\n _TMethod extends \"GET\",\n TPath extends string,\n TOutputSchema extends StandardSchemaV1,\n TErrorCode extends string,\n TQueryParameters extends string,\n> = (args?: {\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Ref<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Ref<string> | ReadableAtom<string>>;\n}) => {\n data: Ref<InferOr<TOutputSchema, undefined>>;\n loading: Ref<boolean>;\n error: Ref<FragnoClientError<TErrorCode[number]> | undefined>;\n};\n\nexport type FragnoVueMutator<\n _TMethod extends NonGetHTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string,\n TQueryParameters extends string,\n> = () => {\n mutate: (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Ref<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Ref<string> | ReadableAtom<string>>;\n }) => Promise<InferOr<TOutputSchema, undefined>>;\n loading: Ref<boolean | undefined>;\n error: Ref<FragnoClientError<TErrorCode[number]> | undefined>;\n data: Ref<InferOr<TOutputSchema, undefined>>;\n};\n\n/**\n * Converts a Vue Ref to a NanoStore Atom.\n *\n * This is used to convert Vue refs to atoms, so that we can use them in the store.\n *\n * @private\n */\nexport function refToAtom<T>(ref: Ref<T>): ReadableAtom<T> {\n const a = atom(ref.value);\n\n watch(ref, (newVal) => {\n a.set(newVal);\n });\n\n // TODO: Do we need to unsubscribe, or is this handled by `onScopeDispose` below?\n\n return a;\n}\n\n// Helper function to create a Vue composable from a GET hook\n// We want 1 store per hook, so on updates to params, we need to update the store instead of creating a new one.\n// Nanostores only works with atoms (or strings), so we need to convert vue refs to atoms.\nfunction createVueHook<\n TMethod extends \"GET\",\n TPath extends string,\n TOutputSchema extends StandardSchemaV1,\n TErrorCode extends string,\n TQueryParameters extends string,\n>(\n hook: FragnoClientHookData<TMethod, TPath, TOutputSchema, TErrorCode, TQueryParameters>,\n): FragnoVueHook<TMethod, TPath, TOutputSchema, TErrorCode, TQueryParameters> {\n return ({ path, query } = {}) => {\n const pathParams: Record<string, string | ReadableAtom<string>> = {};\n const queryParams: Record<string, string | ReadableAtom<string>> = {};\n\n for (const [key, value] of Object.entries(path ?? {})) {\n const v = value as string | Ref<string> | ReadableAtom<string>;\n pathParams[key] = isRef(v) ? refToAtom(v) : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n // Dunno why the cast is necessary\n const v = value as string | Ref<string> | ReadableAtom<string>;\n queryParams[key] = isRef(v) ? (refToAtom(v) as ReadableAtom<string>) : v;\n }\n\n const store = hook.store({\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n\n const data = ref();\n const loading = ref();\n const error = ref();\n\n const unsubscribe = store.subscribe((updatedStoreValue) => {\n data.value = updatedStoreValue.data;\n loading.value = updatedStoreValue.loading;\n error.value = updatedStoreValue.error;\n });\n\n if (getCurrentScope()) {\n onScopeDispose(() => {\n unsubscribe();\n });\n }\n\n return {\n data,\n loading,\n error,\n };\n };\n}\n\n// Helper function to create a Vue mutator from a mutator hook\nfunction createVueMutator<\n TMethod extends NonGetHTTPMethod,\n TPath extends string,\n TInputSchema extends StandardSchemaV1 | undefined,\n TOutputSchema extends StandardSchemaV1 | undefined,\n TErrorCode extends string,\n TQueryParameters extends string,\n>(\n hook: FragnoClientMutatorData<\n TMethod,\n TPath,\n TInputSchema,\n TOutputSchema,\n TErrorCode,\n TQueryParameters\n >,\n): FragnoVueMutator<TMethod, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters> {\n return () => {\n const store = useStore(hook.mutatorStore);\n\n // Create a wrapped mutate function that handles Vue refs\n const mutate = async (args: {\n body?: InferOr<TInputSchema, undefined>;\n path?: MaybeExtractPathParamsOrWiden<TPath, string | Ref<string> | ReadableAtom<string>>;\n query?: QueryParamsHint<TQueryParameters, string | Ref<string> | ReadableAtom<string>>;\n }) => {\n const { body, path, query } = args;\n\n const pathParams: Record<string, string | ReadableAtom<string>> = {};\n const queryParams: Record<string, string | ReadableAtom<string>> = {};\n\n for (const [key, value] of Object.entries(path ?? {})) {\n const v = value as string | Ref<string> | ReadableAtom<string>;\n pathParams[key] = isRef(v) ? v.value : v;\n }\n\n for (const [key, value] of Object.entries(query ?? {})) {\n const v = value as string | Ref<string> | ReadableAtom<string>;\n queryParams[key] = isRef(v) ? v.value : v;\n }\n\n // Call the store's mutate function with normalized params\n return store.value.mutate({\n body,\n path: pathParams as MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>,\n query: queryParams,\n });\n };\n\n // Return the store-like object with Vue reactive refs\n return {\n mutate,\n loading: computed(() => store.value.loading),\n error: computed(() => store.value.error),\n data: computed(() => store.value.data) as Ref<InferOr<TOutputSchema, undefined>>,\n };\n };\n}\n\nexport function useFragno<T extends Record<string, unknown>>(\n clientObj: T,\n): {\n [K in keyof T]: T[K] extends FragnoClientHookData<\n \"GET\",\n infer TPath,\n infer TOutputSchema,\n infer TErrorCode,\n infer TQueryParameters\n >\n ? FragnoVueHook<\"GET\", TPath, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K] extends FragnoClientMutatorData<\n infer M,\n infer TPath,\n infer TInputSchema,\n infer TOutputSchema,\n infer TErrorCode,\n infer TQueryParameters\n >\n ? FragnoVueMutator<M, TPath, TInputSchema, TOutputSchema, TErrorCode, TQueryParameters>\n : T[K];\n} {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = {} as any;\n\n for (const key in clientObj) {\n if (!Object.prototype.hasOwnProperty.call(clientObj, key)) {\n continue;\n }\n\n const hook = clientObj[key];\n if (isGetHook(hook)) {\n result[key] = createVueHook(hook);\n } else if (isMutatorHook(hook)) {\n result[key] = createVueMutator(hook);\n } else {\n // Pass through non-hook values unchanged\n result[key] = hook;\n }\n }\n\n return result;\n}\n\nexport function useStore<SomeStore extends Store, Value extends StoreValue<SomeStore>>(\n store: SomeStore,\n): DeepReadonly<UnwrapNestedRefs<ShallowRef<Value>>> {\n const state = shallowRef();\n\n const unsubscribe = store.subscribe((value) => {\n state.value = value;\n });\n\n if (getCurrentScope()) {\n onScopeDispose(unsubscribe);\n }\n\n return state;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAuDA,SAAgB,UAAa,OAA8B;CACzD,MAAM,IAAI,KAAKA,MAAI,MAAM;AAEzB,OAAMA,QAAM,WAAW;AACrB,IAAE,IAAI,OAAO;GACb;AAIF,QAAO;;AAMT,SAAS,cAOP,MAC4E;AAC5E,SAAQ,EAAE,MAAM,UAAU,EAAE,KAAK;EAC/B,MAAMC,aAA4D,EAAE;EACpE,MAAMC,cAA6D,EAAE;AAErE,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,EAAE;GACrD,MAAM,IAAI;AACV,cAAW,OAAO,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG;;AAG9C,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;GAEtD,MAAM,IAAI;AACV,eAAY,OAAO,MAAM,EAAE,GAAI,UAAU,EAAE,GAA4B;;EAGzE,MAAM,QAAQ,KAAK,MAAM;GACvB,MAAM;GACN,OAAO;GACR,CAAC;EAEF,MAAM,OAAO,KAAK;EAClB,MAAM,UAAU,KAAK;EACrB,MAAM,QAAQ,KAAK;EAEnB,MAAM,cAAc,MAAM,WAAW,sBAAsB;AACzD,QAAK,QAAQ,kBAAkB;AAC/B,WAAQ,QAAQ,kBAAkB;AAClC,SAAM,QAAQ,kBAAkB;IAChC;AAEF,MAAI,iBAAiB,CACnB,sBAAqB;AACnB,gBAAa;IACb;AAGJ,SAAO;GACL;GACA;GACA;GACD;;;AAKL,SAAS,iBAQP,MAQ6F;AAC7F,cAAa;EACX,MAAM,QAAQ,SAAS,KAAK,aAAa;EAGzC,MAAM,SAAS,OAAO,SAIhB;GACJ,MAAM,EAAE,MAAM,MAAM,UAAU;GAE9B,MAAMD,aAA4D,EAAE;GACpE,MAAMC,cAA6D,EAAE;AAErE,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,EAAE;IACrD,MAAM,IAAI;AACV,eAAW,OAAO,MAAM,EAAE,GAAG,EAAE,QAAQ;;AAGzC,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,EAAE,CAAC,EAAE;IACtD,MAAM,IAAI;AACV,gBAAY,OAAO,MAAM,EAAE,GAAG,EAAE,QAAQ;;AAI1C,UAAO,MAAM,MAAM,OAAO;IACxB;IACA,MAAM;IACN,OAAO;IACR,CAAC;;AAIJ,SAAO;GACL;GACA,SAASC,iBAAe,MAAM,MAAM,QAAQ;GAC5C,OAAOA,iBAAe,MAAM,MAAM,MAAM;GACxC,MAAMA,iBAAe,MAAM,MAAM,KAAK;GACvC;;;AAIL,SAAgB,UACd,WAoBA;CAEA,MAAM,SAAS,EAAE;AAEjB,MAAK,MAAM,OAAO,WAAW;AAC3B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,WAAW,IAAI,CACvD;EAGF,MAAM,OAAO,UAAU;AACvB,MAAI,UAAU,KAAK,CACjB,QAAO,OAAO,cAAc,KAAK;WACxB,cAAc,KAAK,CAC5B,QAAO,OAAO,iBAAiB,KAAK;MAGpC,QAAO,OAAO;;AAIlB,QAAO;;AAGT,SAAgB,SACd,OACmD;CACnD,MAAM,QAAQ,YAAY;CAE1B,MAAM,cAAc,MAAM,WAAW,UAAU;AAC7C,QAAM,QAAQ;GACd;AAEF,KAAI,iBAAiB,CACnB,gBAAe,YAAY;AAG7B,QAAO"}
@@ -1,7 +1,7 @@
1
1
  import { i as getMountRoute, n as RequestOutputContext, r as RequestInputContext } from "./request-output-context-CdIjwmEN.js";
2
2
  import { r as resolveRouteFactories } from "./route-C5Uryylh.js";
3
3
  import { a as getInitialData, n as addStore, t as SSR_ENABLED } from "./ssr-BByDVfFD.js";
4
- import { task } from "nanostores";
4
+ import { computed, task } from "nanostores";
5
5
  import { nanoquery } from "@nanostores/query";
6
6
 
7
7
  //#region src/api/internal/path.ts
@@ -425,7 +425,8 @@ function buildUrl(config, params) {
425
425
  const { pathParams, queryParams } = params ?? {};
426
426
  const normalizedPathParams = unwrapObject(pathParams);
427
427
  const normalizedQueryParams = unwrapObject(queryParams) ?? {};
428
- const searchParams = new URLSearchParams(normalizedQueryParams);
428
+ const filteredQueryParams = Object.fromEntries(Object.entries(normalizedQueryParams).filter(([_, value]) => value !== void 0));
429
+ const searchParams = new URLSearchParams(filteredQueryParams);
429
430
  return `${baseUrl}${mountRoute}${buildPath(path, normalizedPathParams ?? {})}${searchParams.toString() ? `?${searchParams.toString()}` : ""}`;
430
431
  }
431
432
  /**
@@ -433,6 +434,7 @@ function buildUrl(config, params) {
433
434
  *
434
435
  * The returned array is always: path, pathParams (In order they appear in the path), queryParams (In alphabetical order)
435
436
  * Missing pathParams are replaced with "<missing>".
437
+ * Atoms with undefined values are wrapped in computed atoms that map undefined to "" to avoid nanoquery treating the key as incomplete.
436
438
  * @param path
437
439
  * @param params
438
440
  * @returns
@@ -441,7 +443,11 @@ function getCacheKey(method, path, params) {
441
443
  if (!params) return [method, path];
442
444
  const { pathParams, queryParams } = params;
443
445
  const pathParamValues = extractPathParams(path).map((name) => pathParams?.[name] ?? "<missing>");
444
- const queryParamValues = queryParams ? Object.keys(queryParams).sort().map((key) => queryParams[key]) : [];
446
+ const queryParamValues = queryParams ? Object.keys(queryParams).sort().map((key) => {
447
+ const value = queryParams[key];
448
+ if (value && typeof value === "object" && "get" in value) return computed(value, (v) => v ?? "");
449
+ return value ?? "";
450
+ }) : [];
445
451
  return [
446
452
  method,
447
453
  path,
@@ -544,7 +550,8 @@ var ClientBuilder = class {
544
550
  const { pathParams, queryParams } = params ?? {};
545
551
  const normalizedPathParams = unwrapObject(pathParams);
546
552
  const normalizedQueryParams = unwrapObject(queryParams) ?? {};
547
- const searchParams = new URLSearchParams(normalizedQueryParams);
553
+ const filteredQueryParams = Object.fromEntries(Object.entries(normalizedQueryParams).filter(([_, value]) => value !== void 0));
554
+ const searchParams = new URLSearchParams(filteredQueryParams);
548
555
  return await route.handler(RequestInputContext.fromSSRContext({
549
556
  method: route.method,
550
557
  path: route.path,
@@ -772,4 +779,4 @@ function createClientBuilder(fragmentBuilder, publicConfig, routesOrFactories, a
772
779
 
773
780
  //#endregion
774
781
  export { isGetHook as a, isReadableAtom as c, FragnoClientFetchAbortError as d, FragnoClientFetchError as f, getCacheKey as i, FragnoClientApiError as l, FragnoClientUnknownApiError as m, buildUrl as n, isMutatorHook as o, FragnoClientFetchNetworkError as p, createClientBuilder as r, isStore as s, ClientBuilder as t, FragnoClientError as u };
775
- //# sourceMappingURL=client-DJfCJiHK.js.map
782
+ //# sourceMappingURL=client-C5LsYHEI.js.map